Short answer: when you publish a v0 chat, v0's docs say it creates a production deployment on Vercel. Before you share the link, open Inspect on Vercel and set every environment variable for production, connect your custom domain, replace any placeholder text, images and prices, add your live domain to your auth provider's allowed URLs, then walk the main path on the live URL on a phone. Fix what you find with Publish Changes, and test again.
Step 1: publish, then look at what is live
Per v0's docs, Publish to Production in the Publish menu deploys your app on Vercel's infrastructure, and Publish Changes updates it. Open the production URL in a private window, not the chat preview.
Step 2: environment variables
v0's docs send advanced settings, including environment variables and domains, to the Vercel dashboard through Inspect on Vercel. Set every variable the app needs for the production environment. In Next.js, only variables prefixed with NEXT_PUBLIC_ reach the browser, and anything with that prefix is public, so never give a secret key that prefix. Redeploy after changing variables.
Step 3: custom domain
v0's docs say every deployment gets a vercel.app address and you can add a custom domain. Add it, set the DNS records your registrar needs, and wait until Vercel shows it as valid. Then use only that address in links, emails and ads.
Step 4: replace placeholders
Generated apps often ship with sample content. Search the code and the live site for lorem ipsum, example.com, sample prices, stock photos with no meaning, fake testimonials and "Your Company". Fake reviews or logos on a live site mislead buyers; remove them.
Step 5: forms, auth and email on the live URL
- Sign up, sign in and reset a password on the production domain.
- Add the production domain to your auth provider's allowed redirect URLs.
- Submit every form and check the email arrives with a working link.
- Check what happens on errors.
Step 6: phone and speed
Open the live site on a phone over mobile data. The headline and main button should show without scrolling. Run Lighthouse on a mobile profile and fix the largest items first, usually images.
Step 7: SEO basics
Give each page its own title and description, and add a sitemap and robots.txt. The details are in v0 SEO and AI search.
Where Persqo helps
You can do all of this in v0 and Vercel. Persqo tests the production app as a stranger:
- Paste the Persqo prompt into your v0 chat and your app gets a Persqo admin page at /admin/persqo. The key goes in v0's Vars for each environment, never in the chat.
- An AI visitor tests the live app on desktop and mobile, with screenshots and a replay. Every finding comes with a fix prompt you paste into v0. Persqo fills in forms but does not send them unless you opt in. There is no verification step for you: Persqo confirms the site is yours in the background.
- One click: the Persqo fix runtime the prompt adds to your Next.js app applies the home page title and description, business and FAQ schema and llms.txt, each with Undo, live within a minute.
- If your v0 project is connected to GitHub, connect the same repository and Persqo opens a pull request for llms.txt and robots.txt. Merge it, then use Pull Changes in v0. Persqo never merges.
More on Persqo for v0.
Sources
- Deployments, v0 docs, checked November 6, 2026
- Custom domains, Vercel docs, checked November 6, 2026
- Environment variables, Next.js docs, checked November 6, 2026
Last updated: November 6, 2026.
Questions people ask
How do I publish a v0 app?
Per v0's docs, Publish to Production in the chat's Publish menu creates a production deployment on Vercel, and Publish Changes updates it later. Advanced settings such as environment variables and domains are in the Vercel dashboard, through Inspect on Vercel.
Do environment variables move with my v0 code?
Do not assume so. Set each variable for the production environment where the app runs, and check the live app reads it. Keep secrets out of variables exposed to the browser, such as those prefixed NEXT_PUBLIC_.
Can I use my own domain with v0?
Yes. v0's docs say every deployment gets a vercel.app address and you can add a custom domain, then set DNS records and finish setup in Vercel.