Module 4 · Lesson 15 of 16 · ~30 minEveryone

Drag the ZIP onto a host. Your site is live in under thirty minutes.

Cloudflare Pages, Netlify, and Vercel each let you publish a folder of HTML for free. Pick one — the differences are smaller than the marketing makes them seem. Wire your own domain afterwards and your operator email signature finally has a URL worth printing.

4 of 5 lessons in Module 4

A host is a computer somewhere that answers when a browser asks for your-restaurant.com. You don't need to own the computer, configure it, or pay for it monthly. The three hosts below run your site for free as long as a few thousand diners visit per month — which, for a 60-seat neighborhood restaurant, is most of them.

What you'll be able to do by the end
  • Pick a host (Cloudflare Pages, Netlify, or Vercel) — all free, all equivalent for this site.
  • Upload the ZIP via drag-and-drop or CLI; see the interim URL go live.
  • Connect your custom domain via DNS CNAME / A record; wait 10-60 min for propagation.
Plain language version — the fast read

Pick one of three hosts: Cloudflare Pages, Netlify, or Vercel. All are free for your site. Drag the unzipped folder onto the host's upload area. Wait about thirty seconds. Your site is live at a free URL. Then add your real domain.

Pick a host — they're almost the same

The honest truth: for a static HTML site like yours, all three hosts do the same thing. They take your folder, copy it to a network of servers around the world, and serve it back over HTTPS when a diner's browser asks. The small differences:

HostWhat's niceWhat's annoying
Cloudflare Pages The most generous free tier. Excellent global network — your site loads fast in Mexico City and Manila. Built-in analytics that don't need cookies. Custom domain wiring takes one extra step (you have to move DNS to Cloudflare or add a CNAME elsewhere). Their dashboard has more buttons than you need.
Netlify Easiest first deploy — you can literally drag your unzipped folder onto a browser window. Friendly defaults. Good docs. The free tier has a 100 GB/month bandwidth cap. Plenty for a restaurant, but worth knowing. Build minutes apply only if you connect a Git repo (we're uploading manually, so it doesn't bite us).
Vercel Polished dashboard. Fastest custom-domain setup of the three. Good for operators who want to grow into a Next.js app later (you don't, but it's there). Marketing is heavily framed around React/Next.js, which can intimidate. Static HTML works fine — but the docs assume you're building an app, not uploading a folder.

Our suggestion: Cloudflare Pages if you already use Cloudflare for anything (or you're willing to). Netlify if you want the smoothest first-deploy experience. Vercel if you want the slickest dashboard. All three are real, free, fine.

Step-by-step for each host

The tabs below walk you through each host with the full detail. Above them, the seven-step tracker is your "where am I" anchor — pick your host at the top, then mark each step done as you complete it. Your progress saves locally and (if you're signed in) syncs across devices, so you can start the deploy on your laptop and check in from your phone.

The tabs walk you through each host. Each one starts from "I have a ZIP from Lesson 14" and ends with "my site is live at a real URL." Pick the tab for the host you chose; ignore the other two.

You need a domain before the "custom domain" step works. If you don't own one yet, buy your-restaurant.com at Cloudflare Registrar (~$10/year, no markup) or Porkbun (~$11/year). Avoid GoDaddy and Squarespace — both charge double for the same product and lock you into upsells. If your restaurant name was checked in Lesson 5 and the .com was available, this is the moment to buy it.

The DNS step that scares everyone (it shouldn't)

DNS (the Domain Name System) is the phone book of the internet. When you typed your restaurant's name into a host, the host gave you back a string like "your-restaurant.netlify.app" — that's where the files live. The DNS step tells the phone book: "when a diner types your-restaurant.com, send them to that Netlify address."

You're not configuring servers. You're updating one entry in a phone book. The host you picked gives you the exact lines to copy; the registrar where you bought your domain has a form to paste them into. Two screens, five minutes, one ten-minute wait for propagation. That's it.

If the DNS step feels alarming, the operator-friendly fix is: move your domain to Cloudflare Registrar (free transfer, takes a week). Then connect Cloudflare Pages — no DNS records to copy, one click.

Verify the deploy

Before you tell anyone the URL, run this three-minute check:

  • Open the URL on your phone over cellular (not WiFi). The home page should render in under two seconds; your name, hours, address, and phone should be visible without scrolling.
  • Tap the phone number. It should open your phone's dialer with the right digits filled in.
  • Tap the address. It should open Maps with the right pin.
  • Visit each of the four pages (home / menu / about / contact). No 404s, no broken links, no missing images.
  • Show your spouse, your business partner, or a regular. Ask: "if you found this site by searching for a restaurant, would you call?" If the answer is "I don't know" — back to Lesson 3 for the promise.

What this changes downstream

Lesson 16 (the 30-day rhythm) assumes your site is deployed and gives you the four recurring tasks that keep it from going stale — including "regenerate and re-deploy when you add a dish." The README in your ZIP from Lesson 14 has the host-specific deploy steps abbreviated, so you can re-deploy without coming back here. Your GBP from L11 now has a website URL field to fill in — paste your live URL there so Google's listing and your real site finally agree.

Your restaurant has a URL.

A real address on the internet — yours, on your domain, on HTTPS, free, fast, accessible. You picked a host, dragged a folder, copied two DNS lines. The site that thirteen lessons taught you to build is now live.

The operator who walks back into the dining room after deploying just did the thing that scared them the most. Everything after this is iteration.

Print the Lesson 15 tear-sheet →

Lesson 16 closes the bootcamp.