← Blog
2026-08-236 min read

How to publish a v0 project (and what to do if it is Next.js)

v0 hands you anything from loose components to a complete Next.js project, and that changes quite a lot about what comes next. This guide starts at the moment you like how it looks and want to get it out of there.

Getting the project out

On your project: the ••• menu → Download ZIP. That is all of it, when it works.

Sometimes it does not, and it is a known problem: the download hangs waiting on the sandbox, or you get a nearly empty zip with just the README. If that happens there are two ways out — retry after a reload, or connect the GitHub repository from the same menu and pull it from there, which is the route that does not depend on the sandbox.

Check whether it is Next.js

Open the package.json in the zip and look for next in the dependencies. If it is there, you have a Next.js project, and there is a decision to make before publishing it on any static host.

Next.js can work two ways: writing out files (static export), or running a server that assembles each page when someone asks for it. The second needs a process running all the time; the first needs nothing but files.

The line that changes everything

If your project does not use server routes — and most of what comes out of v0 does not — the fix is one line in next.config.js:

  • Add output: 'export' inside the config object.
  • Run the build. Next.js now writes your site into the out/ folder instead of waiting for a server.
  • That folder is an ordinary static site and publishes anywhere.

FluentOps detects Next.js with output: 'export' and builds it for you. Without it, it rejects the project with the reason written out — "Next.js without output: 'export' (SSR / next start) is not supported" — instead of leaving you guessing. That is deliberate: telling you what is missing beats publishing you something half-working.

If your project does use API routes or server rendering, then it is not a static site and needs a different path; one config line will not cover that.

If you got loose components

Sometimes v0 gives you one or two React files rather than a project. A component is not a site: it needs a project around it. The fastest fix is to ask v0 for the full project, or drop it into a Vite project and publish the built result.

Publishing it

  1. Do not unzip it — it uploads as it comes.
  2. If it is Next.js, check for output: 'export' first.
  3. Drag it into FluentOps. It detects the stack, builds and publishes.
  4. Get your URL with SSL, and the report of what you are exposing.

Other tools

Lovable and Bolt also hand you zips, but of Vite projects, which skip this step entirely: the guide to all six tools.

Publish your project free →

Try it with your own project.

Drag your folder or paste your repo. We detect your stack, build it and hand you a public URL — free, no card, and your site is never paused.

Start free
Read next
How to add a form to a static site without a backend