Ian Macartney
banner
ianmacartney.bsky.social
Ian Macartney
@ianmacartney.bsky.social
Friendly engineer at Convex.dev
Documentation for the Agent component is live 🎉
-> docs.convex​.dev/agents

Odd coincidence that there's ~2300 lines of documentation & ~2300 lines of example code 🤔

...maybe more surprising there's fewer lines of React?
@​convex-dev/agent
July 22, 2025 at 5:31 AM
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
I do RAG via hybrid text/vector search using reciprocal rank fusion (the one-weird-trick of hybrid search imo) for my new Agent framework/component.

It's open source and the code is remarkably simple, if you're looking for an example for yourself.
April 10, 2025 at 12:59 AM
Welp not all experiments work out, but what will outlive all products is the insights you glean along the way.

I reimplemented Mastra workflows in Convex last week and I regret it. Article in 🧵
March 31, 2025 at 8:35 PM
I made some cartoons today for an article I'm writing.
This one is me when I'm too deep in a project that's gone off the rails, complete with alt text.

Should I ship it or make a "better" version to make it "more professional"?
March 28, 2025 at 3:04 AM
Programmers know why this sorting is busted the way it is.

Maybe they should also know better :P
March 27, 2025 at 8:47 PM
Thoughts on about safety & reliability in the age of agentic flows and durable workflows:

Details in 🧵, but tl;dr:
1️⃣ Isolate unreliable steps to safely retry
2️⃣ Model LLMs as ~idempotent & ~deterministic
3️⃣ Run asynchronously, subscribe to results

Bonus: I made a thing
March 25, 2025 at 11:44 PM
Made this architecture diagram yesterday, implementing it today. Any guesses on what it is? Wish me luck!
March 22, 2025 at 12:11 AM
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
The Telepathy Tapes podcast is adding to the pile of worldview-changing things to grapple with.
What deserves my attention?
February 20, 2025 at 1:45 AM
Local file sharing app (Open Source)
Drag your files onto the site
Drag them off on another computer

git clone github.com/mikecann/our...
cd ourfiles/
docker compose up
open localhost:5173

by
@mikeysee

video in 🧵
February 14, 2025 at 8:26 PM
Self-hosting Convex just got way easier,
including running the dashboard.

npx degit get-convex/convex-backend/self-hosted/fly fly && cd fly/backend && fly launch

Dockerfiles, images, binaries @flydotio and more.
Check it out 🧵
February 13, 2025 at 3:55 PM
Another feature of the BlockNote/Tiptap sync component that might interest folks:
Server-side document editing, w/o clobbering user changes
You can access & transform a document, but the really cool thing is that you provide a callback to rebase your transform on the latest version.
January 28, 2025 at 10:32 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