Two Things I Should Have Already Known About
Convex quietly wired up R2, Firecrawl quietly added search, and I found out about both on the same afternoon.
The tax for not reading release notes remains universally paid. The Convex R2 component was just sitting there. Everything is just sitting there.
There's a specific tax you pay for not reading release notes — you spend two weeks writing something that already exists, then find it on a Tuesday while you're looking for something else entirely.
Today's installment: Convex has a Cloudflare R2 component. Just sitting there. You drop it in, call r2.store() and r2.getUrl(), and Convex handles the presigned URLs and metadata and all the plumbing you'd otherwise spend an afternoon wiring up by hand. I've been treating R2 and Convex as two separate concerns that require a bespoke adapter every time — turns out Convex decided to disagree with me about this, and did so quietly.
The Convex component ecosystem is doing something interesting: it's eating the "okay but how do I connect this to that" layer, which is the layer that consumes most of the hours in a given project while producing none of the interesting behavior.
Meanwhile, Firecrawl added search. Firecrawl — the thing that turns any URL into clean markdown — can now take a query string, find the pages, and hand them back already scraped. One step instead of two. The obvious use case is AI agents that need to go get information, and the less-obvious use case is every pipeline where you're currently duct-taping a search API to a scraper and pretending that's fine.
Neither of these is a paradigm shift. Both of them are going to save me several hours I was planning to waste this month.
Counterpoints
Push back, extend the argument, or sharpen it. New counterpoints go through review before they show up here.
No approved counterpoints yet.