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 address, its certificate and its security headers, requested the way a browser asks; an incident opens after two failures in a row, never on one blip.
Every deploy, as it goes live
With a read-only Vercel token each deploy is checked, its variable names compared with the last deploy’s (never their values), and walked by your journeys.
Previews, before promotion
Every branch or pull-request preview gets the same checks on its own address within five minutes of being ready, and never counts against the live app.
Sign-in and checkout, in a real browser
Walked after every publish and on your plan’s schedule, sign-up emails and magic links included; a payment journey stops before the pay step.
Payments
A read-only Stripe key compares payments with what that hour of the week usually brings, and reads webhook endpoints and failed deliveries.
AI spend
OpenAI or Anthropic usage, read hourly, so a spike is caught within a few hours; paid plans add a daily budget that warns at 80% and alerts at 100%.
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 an access token, which Keelnest only reads with, 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.
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.