How do you share a v0 project with a client?

v0 shares chats and publishes apps to Vercel. How to put your v0 app in front of a client privately, with a tour, and see what they did.

On this page

By Kaz Kato · Published 12 October 2026 · Updated 12 October 2026

v0 publishes your project to Vercel, where who can open it depends on your Vercel plan and its protection settings. Sharing a v0 chat shows how the app was built, not a finished demo. To show a client the working app on a link of their own, and see what they did, deploy its code to a room.

This guide covers v0’s two kinds of sharing and what each shows a client. Then whether your v0 app runs as a static demo or a live one, and the route from v0 through GitHub to a room. Share a v0 build is the short version, and hosting compared sets Roomi beside Vercel and the other hosts.

How does v0 share a project today?

Two ways, and they do different jobs. Sharing a chat opens the conversation that built the app, prompts and all. Publishing puts the app itself on Vercel, at an address of its own. Who can open the published app is set in Vercel, by your plan and its deployment protection. Neither tells you which person opened it.

Sharing the chat. A v0 chat shared with “Anyone with the link” opens the chat itself, with its prompt history, to anyone who has the address. Inviting named people needs a Plus, Business or Enterprise plan. A v0 chat shared with “Anyone on the web” can be viewed by anyone, and may be indexed by search engines and shown in public galleries.

That is useful for a colleague who wants to see how you got there. It is the wrong thing to send a client. They see every prompt you wrote, including any that describe them, and a work in progress instead of a demo.

Publishing to Vercel. v0 publishes a project to Vercel. Who can open the deployed app depends on your Vercel plan and its deployment protection settings. A v0 project’s Deployment Protection and Web Analytics are managed in the Vercel project it publishes to.

So once it is published, the sharing options are Vercel’s:

  • Public. Anyone with the address can open it.
  • A shareable link. A Vercel shareable link lets anyone who has it open a protected deployment, through a query string in its address. Shareable links are on every plan. On Vercel’s Hobby plan you can create one shareable link to a protected deployment, in total, per account. Vercel’s page on shareable links says nothing about an expiry date, or a record of who opened one.
  • An invitation. Vercel recommends inviting outside viewers to a deployment by email, and you can revoke each person’s access. On Hobby you can have one collaborator at a time. Someone you invite to a Vercel deployment must log in to Vercel to leave a comment, or to open it at all if it is protected.

Vercel shareable link or a room compares the shareable link with a room line by line.

What does your client see, and what do you learn?

It depends on the route. A chat link shows the chat. Vercel shows the app, to anyone with the address or to the people you let in, and counts visitors without names. A room shows the app with a guided tour, on a link made for one person, and tells you what that person did.

Way What the client sees Account to open it Who opened it Plan
Share the v0 chat The chat, with every prompt Not stated on v0’s page Not described Any v0 plan
Publish to Vercel, public The app, for anyone with the address None Visitors in total, with no names Hobby is for non-commercial use
A Vercel shareable link The app, for whoever has the link None Not described One link per account on Hobby
A Vercel invitation The app, for each person invited A Vercel login, if it is protected Not described One collaborator at a time on Hobby
A room on Roomi (ours) The app, a guided tour, their own link None Each person, by name Pro, at £4 a month

We make Roomi, so weigh that. Vercel is the right home for the real product. A room is for showing a demo build of it to the people you are selling to.

Will your v0 app run as a static demo or a live one?

It depends on whether it needs Next.js’s server. An app that renders every page ahead of time can be exported as files and runs as a static demo, on every plan. One that uses server actions, API routes or pages rendered on request needs a server, so it runs as a container demo, on Pro and above.

v0 builds in Next.js by default, with server actions and API routes keeping the front end and back end together. It can use other frameworks, but says Next.js gives the most reliable results. So a v0 project is usually a Next.js app, and it may use Next.js’s server. To find out which yours is, ask v0 or your coding agent: “Does this app use server actions, API routes, or anything rendered on request?”

Your v0 app On Roomi What it takes Plan
No server features A static demo: the exported files A static export (output: 'export' and trailingSlash: true), then roomi init Every plan
Server actions, API routes or pages rendered on request A container demo: a copy of its own for each viewer link A Dockerfile, and Docker on your own machine to build it Pro and above

Without trailingSlash: true, Next writes each page as patients.html, and the room looks for patients/index.html. A viewer who opens that page by its address gets the home page, and a tour step cannot open it at all. A container runs on Node 24, whatever the Dockerfile’s base image says, and has no internet. If your v0 app calls an AI model while it runs, that call fails in the room. Ask your agent to replace it with canned answers for the demo. Static demos shows a Next.js export, and container demos has the build contract.

From v0 to a room, step by step

You deploy from your own machine, with the Roomi CLI and a coding agent such as Claude Code or Cursor doing the technical part. The deploy rehearses first, and nothing goes live until you add --commit.

  1. Put the code on GitHub. v0’s Free plan includes deploying apps to Vercel and syncing a project with GitHub. Connecting a v0 project to GitHub creates a private repository and pushes the project’s current code to it. From then on, the repository holds the project’s code.
  2. Clone it. Open the repository on your machine in Claude Code or Cursor.
  3. Install Roomi. Run npm install -g @getroomi/cli, then roomi login, which opens your browser for you to approve. Install the CLI has the details.
  4. Make it a demo. Ask your agent to swap the database and any AI calls for sample data, then to make a static export or a container, as the table above says.
  5. Describe it. Run roomi init. It writes pitch.json, and PITCH.md, the rules your agent follows from then on. It adds a line to AGENTS.md or CLAUDE.md pointing your agent at them. It takes the demo’s name from package.json, which a generated project often leaves as its template’s, so check name in pitch.json is one your client should read. Build with your AI agent covers each file.
  6. Write the tour. Three to six steps, one idea each, in the order you would pitch it.
  7. Rehearse. Run roomi deploy. It builds the app, scans for secrets, checks every step of the tour, and shows what would go live.
  8. Publish. Read the rehearsal, then run roomi deploy --commit.

Keep building in v0 afterwards. When you have changed something worth showing, pull the repository and deploy again: every link opens the new build on its next load. To look at a build in the room first, send it as a preview deploy, which only you and your team see until you make it live.

What about its data and keys?

A v0 app often talks to a real database or a paid service. The copy you send a client never should. Every demo on Roomi runs on mock data, and every room tells its viewers so. The deploy scans the project and the build for anything that looks like a live key, and stops if it finds one.

A static demo’s files are sent to every viewer’s browser, so a key in one is a key published. A container demo has no internet, so it cannot reach a real system even by mistake. Security explains both. The checklist for an app built with AI has every check to make before you send it.

How do you send it and see what they did?

Make a link in your client’s name, with an expiry if you want one, and send it yourself. When they open it, the room greets them by name. You see each visit, the time on each screen, how far through the tour they got, and what they said, and their card on the pipeline moves as they go.

roomi link "Priya Shah" --expires 14

Roomi sends nothing for you. In your message, say who you are and how to reach you, and that the room records what they do there and shows it to you. The terms ask every publisher to say so.

Their card moves from sent to opened to engaged, and on to said yes, later or not now when they answer. If they forward the link, the next person is asked who they are and appears under it. Sharing a private link covers expiry, revoking and forwarding.

Questions people ask

Does my client need a v0 or Vercel account?

Not to open a public deployment, or a protected one through a shareable link. Someone you invite to a protected deployment has to log in to Vercel. A room on Roomi needs no account at all: your client opens their link in a browser.

Can I see who opened my v0 app?

Not by person. Vercel’s Web Analytics tells visitors apart by a hash that resets every day, without cookies. It reports pages, referrers, countries, operating systems and browsers across all visitors. A room files every visit under the name on the link.

Do I have to stop using v0?

No. Keep building in v0 as you do now. The code syncs to GitHub, you pull it onto your machine, and you deploy a copy for clients whenever you have changed something worth showing.

Is Vercel’s free plan fine for client work?

Vercel’s Hobby plan is free, and Vercel says it is for personal, non-commercial use. Read its terms before you put a client’s demo on it. A room is built for showing work to the people you sell to.

Can I check the room before the client sees it?

Yes. roomi dev shows the real room around your own dev server, and records nothing. A preview deploy puts a build on the platform for you and your team only, until you make it live.

Sources

About the author

Kaz Kato, Co-founder & CTO, Roomi. Kaz co-founded Roomi with Tesh, whom he has built with since 2017: two startups that failed, one venture studio that didn’t, and an exit.

Show the v0 app, not the chat.

Start free, and give each client a link of their own on Pro.