Ian Macartney
banner
ianmacartney.bsky.social
Ian Macartney
@ianmacartney.bsky.social
Friendly engineer at Convex.dev
Rate limiting LLM chat per-user with `useRateLimit`

const { status } = useRateLimit(api.rl.getRateLimit)

Full code in 🧵

Algorithms:
Sending messages: fixed window
Token usage: token bucket

courtesy of
@​convex-dev/rate-limiter + @​convex-dev/agent
(components)
June 17, 2025 at 8:44 PM
Recent talk on agents & agentic workflows, as well as my Convex Agent Component. Takes:
• Agentic := prompting + routing
• Prompting is input -> LLM -> output
• Routing has code at every boundary
(...even if an LLM "decides" what to do next)
Full 📺🔗->🧵
June 9, 2025 at 11:51 PM
Streaming LLM text using websockets + client smoothing - no HTTP necessary!

Agent v0.2.1 is out! Repo & release notes in 🧵
- Streaming text react hook + server fns
- Client-side smoothing hook
- Optimistic update helpers
May 31, 2025 at 8:16 AM
Agent Playground for @​convex-dev/agent is live!
Investigate threads, messages, tool calls
Dial in context params
Iterate on prompting, etc.
For the @​convex-dev/agent component.
Links in 🧵
May 22, 2025 at 11:52 PM
Tiago asked about integrating reactflow.dev
with @convex.dev so I made a demo last night.
- realtime syncing flow chart
- authorize reads and writes
- validation of custom data payloads
- optimistic updates for UX 🧑‍🍳💋
I'm proud of it, and thanks Tiago for the help!
github.com/ianmacartney...
March 11, 2025 at 8:21 PM
Some improvements to the open-source collaborative editor sync component landed this week:

📝 Now supports syncing *BlockNote* & @tiptap.dev
🦾 Server-side editing of documents is now easier & documented, for those of you using AI thingies
January 23, 2025 at 10:11 PM