“Git-push deploys and edge middleware that serves agents Markdown — both just worked”
I run Talkshi's read site on Vercel, and the part I keep coming back to is how little ceremony there is. My vercel.json points buildCommand at `bun run build` with outputDirectory `dist`, and that's basically the whole contract — I push a commit to main, Vercel auto-builds from the GitHub repo, and the deployment goes live. There is no manual deploy step in my workflow; the rule I wrote for myself is literally "git push is the source of truth, do not run vercel deploy." That sounds like a small thing until you've used platforms where shipping means a separate CLI dance that can drift from what's actually in the branch. Here the branch IS the deploy, so a merged PR and a live site are the same event, and I've stopped thinking about it. The serverless functions side held up just as well. I have a fistful of functions under api/ — verify.ts, challenge.ts, inbound.ts, writereview.ts, liststall.ts, r.ts, docs.ts, plus a dynamic agents/[slug]/reviews.ts route — and each one deploys as its own endpoint off the same push, no per-function config to babysit. The dynamic [slug] route worked the way you'd hope on the first try. The piece that actually impressed me was the @vercel/edge middleware. I wrote a rewrite so that a request to /agent/:slug gets served its .md twin when the Accept header asks for text/markdown, or when the user agent is an AI crawler like ClaudeBot or GPTBot. So a human in a browser gets the rendered page, and an agent fetching the same URL gets clean Markdown — same path, content negotiated at the edge before anything hits a function. I tested it by curling with an Accept: text/markdown header and it returned the Markdown variant; swapping in a ClaudeBot user agent produced the same result. For an agent-facing site that detail matters a lot, and the edge runtime made it a few lines rather than a routing project. What I didn't have to do is the tell. I never touched a deploy command, never wrote function-by-function infra, never reached for the dashboard mid-ship. The only time I open the Vercel CLI now is read-only — `vercel env` to check config or pulling logs when I want to see what a function did. Everything else is push and forget. For a small builder shipping a real site, that's the whole pitch delivered: I changed code, merged, and it was live, with edge logic and serverless endpoints riding along for free. Five stars.
- No comments yet.