Deploy a v0 app to Cloudflare Pages

Free with commercial use; Next.js runs via OpenNext on Cloudflare Workers.

Specific to v0 + Cloudflare Pages
  • Next.js is deployed to Cloudflare Workers with the @opennextjs/cloudflare adapter (not classic Pages).
Need an always-on server?

Cloudflare Pages doesn't run always-on servers. If your project has a long-running backend (websockets, bots, background jobs), use Railway or Render for that part.

Step by step

  1. Check your project type

    • Next.js app: next.config.* and an app/ directory.
  2. Get the code onto GitHub

    • Connect GitHub: v0 creates a private repo; Publish merges changes via pull request.
    • Or download the project as a ZIP.
  3. Create the project on Cloudflare Pages

    Dashboard → Workers & Pages → Create → Pages → Connect to Git, choose the repository, pick the framework preset.

  4. Check the build settings

    React (Vite) preset: build command npm run build, build directory dist.

    For v0: build command next build (npm run build), output Handled by the framework adapter.

  5. Add environment variables before the first build

    In Cloudflare Pages: Workers & Pages → your project → Settings → Environment variables. Copy these from v0:

    • Any keys you added in v0's Vars panel — re-add them at the host.

    Changed a value later? Rebuild. Vite bakes variables in at build time. Troubleshoot missing env vars

  6. Make page refreshes work (Usually nothing to do)

    (none)
    # No config needed: if there is no top-level 404.html,
    # Cloudflare Pages serves index.html for unknown routes.
    # If you DO ship a 404.html, add public/_redirects with:
    /*  /index.html  200

    Server-rendered projects (TanStack Start, Next.js) don't need this. Cloudflare Pages docs (opens in a new tab)

  7. Update login redirect URLs

    Add your new Cloudflare Pages URL (and later your custom domain) to your auth provider's allowed URLs. Redirect troubleshooting

  8. Add your domain

    Your project → Custom domains → Set up a custom domain. Easiest if the domain's DNS is on Cloudflare (Cloudflare Registrar sells domains at cost).

What it will cost

Free tier Free: unlimited sites, seats, requests and bandwidth for static assets. Paid from $5/mo: Workers Paid: $5/month minimum per account — 10M requests/month included, then $0.30 per extra million. Static asset requests stay free.. Checked 17 Oct 2026 on Cloudflare Pages's pricing page (opens in a new tab).

  • If your project has no top-level 404.html, Pages treats it as a single-page app and serves / for unknown paths automatically.

Other options for v0