How a v0 app runs in production
Publishing from v0 deploys to Vercel. A project backed by GitHub works through a branch per chat and a pull request, and every branch gets its own preview deployment before anything reaches production.
Databases and payments usually arrive through Vercel’s Marketplace — Supabase, Neon, Upstash, Stripe — which write their keys into the project’s environment variables for you.
What breaks after launch
- It works in preview and breaks in productionVercel scopes each environment variable to Production, Preview or both. A key set for one and not the other is the classic “it worked in preview” failure.How to tell, and the fix
- Payments stop after a deployA deploy that drops or renames STRIPE_WEBHOOK_SECRET stops payments confirming, and nothing on the page shows it.How to tell, and the fix
- Errors spike right after a publishA change that looked right in the chat can still throw on production data the moment it ships.How to tell, and the fix
- The build passed; the site returns 500A green build is not a working site: a missing variable or a failing server call turns it into a 500 on the first request.How to tell, and the fix
What Keelnest watches
- The site, every five minutes. The production address is requested the way a browser would ask for it, then the certificate and the security headers. An incident opens after two failed checks in a row, never on one blip, and a certificate is flagged from fourteen days before it expires.
- Every deploy, as it goes live. With a read-only Vercel token, each deploy is checked — the address, the certificate, the headers, and the environment variable names compared with the last deploy, never their values — and your journeys are walked against it. Vercel.
- Previews, before promotion. Every branch or pull-request deploy Vercel builds gets the same checks on the preview’s own address within five minutes of being ready, so a broken preview is news before anybody promotes it.
- Sign-in and checkout, in a real browser. A journey is the steps a customer takes, written in plain words and walked in a real browser after every publish and on your plan’s schedule. It can type a one-off inbox address and wait for the email, so a sign-up confirmation or a magic link is walked to the end. A payment journey stops before the pay step; nothing is charged.
- Payments. With a read-only Stripe key, payments are compared with what that hour of the week usually brings, and webhook endpoints and failed deliveries are read, so money that stops arriving is noticed in hours rather than at the month’s close. Stripe.
- AI spend. With an admin key for OpenAI or Anthropic, usage is read hourly and a spike is caught within two hours, so a runaway loop shows up today rather than on next month’s invoice. Paid plans add budgets that alert at 80% and 100%. OpenAI, Anthropic.
When you publish
On a Vercel Pro or Enterprise team, an account webhook tells Keelnest the moment each deploy succeeds, and verification starts within seconds. On a Hobby team Vercel offers no webhook, so the five-minute poll finds each deploy instead. Either way the deploy gets its verdict, and the incident names the deploy that caused it.
Fixes: a prompt, or a pull request
Every incident carries a prompt you can paste into v0’s chat. With the GitHub repository connected and a paid plan, Keelnest can prepare the fix as a pull request instead — on Vercel it gets a preview of its own, which Keelnest checks before a named person approves the merge.
Setting it up
- Add the production address. The first check runs straight away.
- Connect Vercel with a read-only access token, and on a Pro team add the deploy webhook Keelnest shows you.
- Connect Stripe with a restricted key if the app takes payments, and OpenAI or Anthropic with an admin key if it calls a model.
- Write one journey — sign in, or reach the checkout — in plain words. It is walked after every deploy.
Or start without an account: the free health check reads any live address in a few seconds.
Questions
Does it need a Vercel Pro plan?
No. Pro teams can add the deploy webhook, which starts verification within seconds; on Hobby the five-minute poll finds each deploy. Everything else is the same.
Does Keelnest check preview deployments?
Yes. Every branch or pull-request deploy on Vercel gets HTTP, SSL and the app’s journeys on its own address before anybody promotes it. A failed preview never counts against the live app.
Can Keelnest read my environment variables?
It reads their names, to notice one that disappeared between deploys. Values are never read or stored.
Is it free?
Your first app is: the five-minute checks, the check after every publish, and one journey, walked weekly and after every publish. Paid plans add journeys, run them hourly or faster, and prepare fixes as pull requests.
Sources
What v0 does, as its own documentation described it on 23 September 2026. Builders change quickly; if something here is out of date, tell us.