Deployment Guide

Where to put your app once it's built

Your app is one portable .html file with everything inline โ€” no build step, no dependencies, no server required. That means it runs on literally any static host. Here's the built-in option, and every major place you can self-host for a custom domain.

Fastest path
Don't need a custom domain? Click ๐Ÿš€ Publish in the builder โ€” your app goes live at vibesafebuilder.com/p/<id> in seconds, security-scanned first, installable to a phone's home screen, works offline. Everything below is for when you want your own domain instead.

Contents

  1. Built-in: Publish in the app
  2. Before you deploy elsewhere: one prep step
  3. Netlify Drop
  4. Vercel
  5. Cloudflare Pages
  6. GitHub Pages
  7. Surge.sh
  8. Firebase Hosting
  9. Which one should I use?
  10. Adding a custom domain
  11. A note on installability elsewhere

01Built-in: Publish in the app

The Preview tab has a ๐Ÿš€ Publish button. One click uploads the current version to vibesafebuilder.com/p/<id> โ€” no account, no setup, no file renaming. It's security-scanned server-side before it goes live, and it's installable to a phone's home screen with offline support built in (see the user guide). Republish any time to update the same link.

Use everything below only if you want a custom domain (myapp.com instead of a vibesafebuilder.com link), or want the file hosted somewhere you fully control.

02Before you deploy elsewhere: one prep step

Every host below expects a file named index.html as the entry point. Your download is named my-app.html โ€” rename it to index.html before uploading anywhere. That's the only preparation needed: there's no build command, no npm install, no framework to configure. It's one file with inline <style> and <script> โ€” every static host on this list treats that as a complete, deployable site.

03Netlify Drop

Best for: the fastest possible way to get a real URL with zero account setup.

1

Go to app.netlify.com/drop

No sign-up required to get a live link; create a free account only if you want to keep it long-term or add a custom domain.

2

Drag your renamed index.html onto the page

Netlify uploads it and gives you a live https://random-name.netlify.app URL immediately.

3

Optional: claim it and add a domain

Create an account to keep the site permanently, rename the subdomain, or connect your own domain under Site settings โ†’ Domain management.

04Vercel

Best for: builders who want a dashboard, previews, and easy custom-domain HTTPS.

1

Create a free account at vercel.com

Sign up with GitHub, GitLab, or email.

2

New Project โ†’ Deploy without Git

Vercel supports dragging in a folder containing your renamed index.html โ€” no repository required for a single static file.

3

Add your domain

Project โ†’ Settings โ†’ Domains. Point your domain's DNS at Vercel and HTTPS is issued automatically.

05Cloudflare Pages

Best for: the fastest global CDN and generous free tier, if you already use Cloudflare for DNS.

1

Create a free Cloudflare account

Go to the Pages section of the dashboard.

2

Create a project โ†’ Upload assets

Upload your renamed index.html directly โ€” no Git repo needed for a direct upload deploy.

3

Attach your domain

Custom domains โ†’ Set up a domain. Works especially smoothly if the domain's DNS is already on Cloudflare.

06GitHub Pages

Best for: if you already have a GitHub account and want your app's source visible/version-controlled publicly.

1

Create a new repository

Upload your renamed index.html to it (GitHub's web UI lets you drag-and-drop a file, no Git CLI required).

2

Enable Pages

Repository โ†’ Settings โ†’ Pages โ†’ set the source branch to main and folder to /root.

3

Visit your live URL

Live in a minute or two at yourusername.github.io/repo-name. Custom domains are supported under the same Pages settings.

Note: GitHub Pages repositories are public by default (private-repo Pages requires a paid GitHub plan) โ€” don't use this route for an app containing anything sensitive.

07Surge.sh

Best for: builders comfortable with a terminal who want the fastest possible command-line deploy.

1

Install Surge

npm install -g surge (requires Node.js installed).

2

Deploy from your app's folder

With your renamed index.html in an otherwise-empty folder, run surge and follow the prompts โ€” first run asks you to create a free account.

3

Get your URL

Surge picks a random *.surge.sh domain by default, or you can type your own subdomain โ€” and your own custom domain via surge --domain yourdomain.com.

08Firebase Hosting

Best for: if you're already in the Firebase/Google Cloud ecosystem, or want to add a real backend to your app later.

1

Install the Firebase CLI

npm install -g firebase-tools, then firebase login.

2

Initialize hosting

firebase init hosting in a folder containing your renamed index.html as the public directory.

3

Deploy

firebase deploy โ€” live instantly at yourproject.web.app, with custom domain support in the Hosting dashboard.

09Which one should I use?

PlatformSetupAccount needed?Custom domainBest for
Our Publish buttonOne clickNoNoInstant sharing, zero setup
Netlify DropDrag & dropOnly to keep itโœ“Fastest external option
VercelDrag folder or CLIYesโœ“Dashboard + previews
Cloudflare PagesUpload assetsYesโœ“Fastest global CDN
GitHub PagesUpload to repoYesโœ“Public, version-controlled
Surge.shCLI commandYesโœ“Terminal users, scripting
Firebase HostingCLI init + deployYesโœ“Adding a backend later

10Adding a custom domain

The general pattern is the same everywhere: buy a domain from any registrar (Namecheap, Cloudflare Registrar, Google Domains successors, etc.), then in your chosen host's dashboard add the domain and point its DNS records (usually a CNAME or A record) at the values the host gives you. All six platforms above issue free HTTPS certificates automatically once the domain is verified โ€” no extra cost or manual certificate setup.

11A note on installability elsewhere

Your downloaded file already includes a manifest and icon, so it's installable to a phone's home screen wherever you host it. What it won't have outside our own domain is offline caching โ€” that part of our Launch Check / publish pipeline registers a service worker scoped to vibesafebuilder.com/p/<id> specifically, since offline caching requires the host to serve that worker file itself. If you self-host and want offline support too, you'd add your own small service-worker script to the platform you choose โ€” outside the scope of this guide, but every platform above supports it the same way any static site does.