How to put your v0 website online on your own domain
Three ways to put a v0 site on your own domain: Vercel, ProHostiva, or another host. Getting the code out, moving its settings, DNS and the usual pitfalls.
The short version
v0 is Vercel's AI app builder. What it makes is ordinary code, usually a Next.js app styled with Tailwind and shadcn/ui. You can publish it to Vercel from v0 and point your domain there, or take the code to any host that runs Next.js, ProHostiva included. If your app uses a database or sign-in service such as Supabase or Neon, that part stays where it is: you're only choosing where the website itself runs.
| Option | Good for | What to know |
|---|---|---|
| Vercel (v0's own publishing) | Staying with v0's built-in flow, with the fewest steps | You get a vercel.app address, and add your domain in the Vercel project. Vercel's free Hobby plan is for non-commercial use; check Vercel's plans and terms. |
| ProHostiva | Hosting that's separate from your builder and its platform, and help if you're not technical | A paid plan. We check your project for free first, and can publish it and connect your domain for you. |
| Another host (Netlify, Render, Railway, a VPS…) | Developers happy to set up a Next.js server themselves | You configure the build, the start command, environment variables and DNS yourself. |
Not sure your project is ready?
Option 1: publish to Vercel
v0 is made by Vercel, so publishing from v0 creates a Vercel project for you. To use your own domain, open that project on Vercel, add the domain in its settings and create the DNS records Vercel shows. Vercel's documentation has the current steps.
If that covers what you need, it's a perfectly good choice. Reasons people move: a commercial site that doesn't fit the free plan, wanting hosting that isn't tied to one platform, predictable pricing, or a person to call when something breaks.
Option 2: host it on ProHostiva
1. Get the code out of v0
- GitHub (best if you'll keep changing the site): connect the chat to a GitHub repository from v0, so its changes are pushed there. Each update is then one click on ProHostiva.
- Download (fine for a site you finish once): download the project from v0 as a ZIP. It's source code: we install its dependencies during every deployment. See Deploying from a ZIP.
2. Copy your settings out of Vercel
When you connect a database or another service in v0, its keys are usually stored as environment variables in your Vercel project, not in the code. Open the project on Vercel, go to its environment variables, and note every name and value your app uses (for example POSTGRES_URL, NEXT_PUBLIC_SUPABASE_URL or OPENAI_API_KEY). You'll add them to ProHostiva in step 4.
3. Check it (free)
Paste the repository's address into Check my project, or upload the ZIP. The Environment part of the report lists the variables your code reads, which is a handy cross-check against the list you copied from Vercel.
4. Create the website and publish
Start a new website
In your dashboard, click Host a website, then choose GitHub repository and connect GitHub, or upload the ZIP. See Deploying from GitHub.
Check what we detected
We recognise a Next.js app, build it with your build script and run it with
next start. The defaults are right for almost every v0 project.Add environment variables
Add every variable you copied from Vercel under Developer settings → Environment variables. Tick Secret for anything private. Names starting with
NEXT_PUBLIC_are built into the page, so they're public by design: never give a secret key one of those names.Publish
Name the website, choose its address and click Publish website. A few minutes later it's online at
yourname.prohostiva.com. Open it and click around before you move your domain.
5. Connect your domain
Go to Domains in your dashboard, add your domain and choose the website. Add the two DNS records we show where you manage your domain's DNS, click Verify DNS, and HTTPS is set up automatically. The full walkthrough is in Connecting your own domain.
6. Updating the site later
Keep editing in v0. With GitHub, once the changes are on your deployed branch, click Publish latest version on the website's page; with a ZIP, download a new one and use Upload a new version. Nothing goes live until you do, and if a new version fails to build, the current one stays online.
Rather we did it?
Vercel features to check before moving
Most v0 projects are plain Next.js and run anywhere. A few things only work, or only work without setup, on Vercel:
| If your project uses | Outside Vercel |
|---|---|
Cron jobs in vercel.json | They won't run. Use an external scheduler that calls your route, or remove them. |
@vercel/analytics or @vercel/speed-insights | They only report on Vercel. Remove them or switch to another analytics tool. |
| Vercel's AI Gateway, Blob or other Vercel storage | They can work from other hosts with an API key or token set as an environment variable, where Vercel would otherwise connect them for you. Check each service's documentation. |
| Database and service integrations | The services themselves keep working; only their keys need copying (step 2 above). |
Option 3: another host
A v0 app usually needs a Node.js server, so pick a host that runs one (or a static export, if your app has no server code). The settings for a typical project:
| Setting | Value for a typical v0 project |
|---|---|
| Source | Your GitHub repository, or the downloaded ZIP |
| Install and build | npm install, then npm run build |
| Start command | npm start (runs next start) |
| Port | The PORT environment variable, which Next.js reads by default |
| Environment variables | Everything you copied from your Vercel project |
Then add your domain in the host's dashboard and create the DNS records it shows you. ProHostiva does the detection, the server setup and HTTPS for you; elsewhere, check each one yourself.
Before you point your domain at the new host
- Add the new domain to your sign-in settings. With Supabase: Authentication → URL Configuration, add your domain to Redirect URLs and set it as the Site URL. Other sign-in services (Clerk, Auth0, NextAuth with Google or GitHub) keep similar lists of allowed addresses, and NextAuth also needs its URL setting updated.
- Update webhooks, such as Stripe's, that point at your
vercel.appaddress. - Remove the domain from Vercel if it was connected there, and delete Vercel's DNS records. Two sets of records for the same name send some visitors to the old site.
Common problems
- The build fails with a missing variable: Next.js reads some variables while building. Add every variable from your Vercel project, then deploy again.
- Pages work but data doesn't load: a database or API key wasn't copied over, or still has its development value.
- It worked in v0's preview but the build fails: the production build is stricter (TypeScript and lint errors, for example). Ask v0 to fix the first error in the deployment log.
- Health check failed: the home page redirects to a login or returns an error. Make
/answer with a page; see Troubleshooting. - The domain won't verify: new DNS records can take up to 48 hours, and on Cloudflare the record must be DNS only (grey cloud). See Troubleshooting.