Deploy your MVP to a shareable URL
Your investor wants a link. Turn the folder on your laptop into a URL you can send.
You built something over the weekend, AI wrote most of it, and it works on localhost. On Monday morning your investor replies, "love the concept, send me a link." All you have is files.
This recipe gets you to a URL in three commands.
Prerequisites
- Your build output sits in a directory (e.g.
./dist,./out,./public). If you used Canvas, Artifacts, or v0, you canSave asthe HTML to a file or deploy with the Chrome extension. - The VibeHost CLI installed and signed in. If it isn't, follow the first two steps of the quickstart.
1. Deploy
vibehost app create my-mvp
vibehost link --app my-mvp
vibehost deploy ./distThe app name is workspace-scoped and must match [a-z0-9-]. vibehost link records which app this directory maps to, so later deploys don't need --app. Point vibehost deploy at wherever your build output lives (e.g. ./dist, ./out, ./public).
The response gives you a URL:
{
"ok": true,
"data": {
"url": "https://my-mvp-yourws.vibehost.space",
"deployKind": "static",
"status": "healthy"
}
}Open the URL in a browser. It should serve your app. If it doesn't:
- A
404means the directory has noindex.htmlat its root. Check that you pointed at the build output, not the source. TARBALL_INVALIDmeans the directory contains symlinks or files over the 100MB per-file cap. See the static-sites limits.
2. Decide who can see it
By default the app is private, and only you can view it. You have three ways to let the investor in:
Anyone with the URL can view it without signing in. This is the easiest option for an investor on a phone.
vibehost app visibility my-mvp publicPublic doesn't mean searchable. Every app is served with X-Robots-Tag: noindex, nofollow until you turn on search engine indexing, so the MVP stays out of Google unless you opt in.
The investor signs in with Google to view it, and you control exactly who has access.
vibehost app grants add-email investor@vc.com viewer --app my-mvpThe grant works before they sign up. The first time they visit the URL, they're asked to sign in with the matching email, and after that they have viewer access.
You can grant several investors at once:
for EMAIL in alice@vc.com bob@vc.com carol@vc.com; do
vibehost app grants add-email "$EMAIL" viewer --app my-mvp
done3. Send the URL
The URL you got back from vibehost deploy is your live URL. Paste it into your email reply.
For in-person demos, you can also print a QR code:
vibehost app qr --app my-mvpA phone camera opens it, which helps if you're showing the MVP over coffee.
Iterate
The investor wants changes. Make them locally, then deploy:
vibehost deployThe same URL now serves the new deployment, because its alias moves to it. The old version isn't deleted.
Roll back if a change breaks something:
vibehost rollback --app my-mvpCost
All of this runs on the free tier, on *.vibehost.space URLs. There's no credit card and no 7-day expiry. See limits for the caps.
If you want a custom domain (mvp.yourcompany.com), that's the Business plan ($20/month per workspace, not per app). See custom domains.
What this isn't
- This recipe ships a static site, which is what VibeHost serves today.
- If a video walkthrough would do instead of a live demo, just send a Loom.
- An MVP that needs payments or auth on the page itself needs a backend somewhere. VibeHost hosts the frontend, and a managed service can host the backend.
See also
- Quickstart is the same flow with more explanation.
- Grants and visibility covers the access model in detail.
- Custom domains helps when you want your own brand instead of
*.vibehost.space.