Skip to main content
Hostwares

How do you deploy a v0 app to your own domain?

Inside v0, a custom domain is configured through Vercel from the Publish menu, so it comes with a Vercel project and Vercel's pricing. To host it anywhere else, push the v0 project to GitHub (merge the chat's branch into main first), deploy the Next.js app from that repository, and point the domain at the new host. On Hostwares the Next.js build is detected, environment variables go on the Environment tab, and the domain goes on the Domains tab; nothing in the app depends on Vercel unless you used Vercel-only packages.

Step by step

  1. 1

    Get the code onto GitHub from the right branch

    Each v0 chat works on its own branch. Open the project's GitHub view in v0, merge the branch you want into main (or pick that branch at deploy time). Confirm the repository has next.config and package.json.

  2. 2

    Remove Vercel-only dependencies

    Search the code for @vercel/analytics, @vercel/kv, @vercel/postgres, @vercel/blob and export const runtime = 'edge'. Replace storage packages with a managed Postgres connection string, drop the analytics import or swap it for a self-hosted one, and remove edge runtime declarations so routes run on Node.

    Find them

    grep -rn "@vercel/\|runtime = 'edge'" src app
  3. 3

    Deploy the repository

    Dashboard → Deployments → New: choose the repository, branch and a pack. Next.js is detected and the build and start commands are filled in. The order creates an invoice and the build starts once it is paid. From Claude Code, "Deploy this repo to Hostwares as my-app" calls the deploy tool and returns the approval link.

  4. 4

    Set the environment variables

    NEXT_PUBLIC_ values are baked in at build time, so add every variable on the Environment tab before the first build finishes, or redeploy after (redeploy_site over MCP). Server-only secrets go in the same place without the prefix.

    Variables are read at build time, so the site rebuilds after you change them; the current version keeps serving until the new build is ready.

  5. 5

    Attach the domain and check

    Domains tab → enter the domain → create the record it shows. The certificate is issued once DNS resolves. Then open a deep link and an API route; diagnose_site reads status and logs together if anything is off.

What breaks, and the fix

Build fails on @vercel/* imports
Remove or replace those packages; they only work inside Vercel's platform.
Images do not optimise
next/image runs with the app's own sharp pipeline on a Node host; it works, but check remotePatterns in next.config for external hosts.
NEXT_PUBLIC_ values are undefined
They were not set before the build. Add them on the Environment tab and redeploy.

What it costs

  • A Frontend pack from $1/mo; a server-rendered Next.js app usually wants the Standard pack at $5/mo (1 vCPU / 4 GB / 25 GB).
  • A managed Postgres from $10/mo if the app replaced @vercel/postgres.
  • No per-seat fee and nothing metered; payment comes before the build starts.

App

$1/mo

Starter Frontend pack, 1 vCPU / 1 GB RAM / 10 GB

Database, users and files

$5/mo

Smallest dedicated Supabase pack; several projects fit on one

For comparison

  • Vercel Pro (needed for team seats; custom domains also work on Hobby for non-commercial use): $20 per seat/mo (checked 2026-11-06, vercel.com)
  • Vercel Pro bandwidth overage beyond the included 1 TB (sources cite $0.15/GB; some cite higher): $0.15/GB (checked 2026-11-06, vercel.com)

Questions

Does v0 require Vercel for a custom domain?+

Inside v0, yes: the Publish menu hands domain setup to the Vercel console. Outside v0, the code is a normal Next.js project and runs on any Node host with your domain.

Will server components and API routes work off Vercel?+

Yes. A pack runs next start, so server components, route handlers and middleware all run. Only routes declared with the edge runtime need that declaration removed.

Does my v0 app have Vercel-only packages?+

Often. Search for @vercel/ in package.json. Analytics, KV, Postgres and Blob are the common ones and each has a drop-in alternative.

Can I deploy from Claude Code or Cursor?+

Yes. Add the Hostwares MCP server and say "Deploy this repo to Hostwares as my-app". The deploy tool returns a price and an approval link; add_domain attaches the domain afterwards.

What about preview deployments per branch?+

Push a branch and deploy it as its own site, or ask the agent to; list_previews over MCP shows what is running.

What does it cost?+

A Frontend pack from $1/mo; the Standard pack at $5/mo for most server-rendered apps. Flat for the term, no seats, no bandwidth meter.