A generator is just a function. It takes your data on one side and produces a working website on the other. The rail in the right column has been running that function on every page of this course — re-rendering your home page as you filled in each lesson. This page is where the same function lets you download the result.
What you'll be able to do by the end
- Verify your readiness checklist — every required field captured across L1-L13.
- Preview the rendered home + menu + about + contact pages in the live iframe.
- Download the ZIP — your full restaurant site as plain HTML + CSS, ready to deploy.
Plain language version — the fast read
The checklist shows what's filled in and what's missing. Each missing item links back to the lesson that fills it. When everything's green, click Download. A ZIP file lands in your Downloads. Unzip and look at it. That's your site.
What this lesson does that the others didn't
Twelve lessons asked you to make a decision and save it. One lesson — Lesson 13 — gave you a habit to keep using after launch. This lesson is the one where the saved decisions become a thing you can actually deploy. Three components:
- The readiness checklist below tells you exactly what's filled in and what's missing. A red row means the generator will use a placeholder — clickable to jump to the lesson that captures the field.
- The live preview in the rail shows the home page as it will ship. It's the same render the ZIP contains — change a palette in L7 and this preview repaints in real time.
- The download button packages everything into a ZIP. Four HTML pages (each with inline CSS), a sitemap, a robots.txt, and a README that tells you how to host it.
None of this calls a server. The ZIP is built in your browser using a small library (JSZip) that the page lazy-loads only when you click download. Everything you saved across the bootcamp lives in your browser's localStorage (a small key-value store browsers expose to pages on the same domain); this page reads it, templates the pages, packs the ZIP, hands you the file. We never see your restaurant data.
- 1
- 2
- 3
1. What you've assembled so far
Your readiness checklist
Eight fields are required for a deployable site. Two are optional but recommended. If you see red rows, follow the link to the lesson that captures the field — your work in this browser is preserved, the lesson page will reflect it when you arrive.
Readiness
Checking…Enable JavaScript to see your readiness checklist. The list reads your saved bootcamp answers from this browser and tells you which lessons are still open.
2. See what's in the ZIP
What's in the ZIP
Seven files. Together they are the entire site. You can open index.html in your browser locally to see what your hosted site will look like before you deploy.
index.htmlHome page — your name, one-promise, palette-keyed colors, cuisine chip, "reserve" CTA linking to the contact page.menu.htmlMenu page — dishes from L8 with names and prices.about.htmlAbout page — your one-promise from L3 as the lead, customer paragraph from L4 as supporting copy.contact.htmlContact page — address with Google Maps link, tappable phone, weekly hours table.sitemap.xmlTells Google your four pages exist and when they were generated.robots.txtAllows all crawlers. Standard, dull, correct.README.mdDeploy instructions for Cloudflare Pages, Netlify, and Vercel — keyed to the host preference you save in L15.
Note what's not in the ZIP: no JavaScript. No fonts loaded from Google. No analytics scripts. No cookie banners. The generated site is the simplest possible thing that solves the operator's problem — a fast, accessible, plain-HTML restaurant site that loads in under 200 ms on a phone with two bars of cellular.
Why no JavaScript? Because your operator-facing job — diners want hours, address, menu, phone — does not require it. Every kilobyte of JS is a kilobyte that a diner downloads on a bad connection, that a screen reader has to wait for, that a security review has to audit. Plain HTML loads faster, stays accessible, and never breaks because a CDN went down.
3. Download your site
Download your site
Generate the ZIP
The button below packages your current answers into a ZIP named after your restaurant. Re-run it whenever you change something — re-running takes about a second.
The button enables once all eight required fields above are green. JSZip lazy-loads on click (one small static asset, ~95 KB); nothing leaves your browser.
Save this generated site to the Workshop
Keep a versioned snapshot so it follows you across devices. The save is your current answers — re-run the generator any time to regenerate the ZIP.
What this changes downstream
Lesson 15 (deploy) takes the ZIP you download here and walks you through three free hosts — Cloudflare Pages, Netlify, or Vercel — to get a real URL pointing at your real domain in under thirty minutes. Lesson 16 (the 30-day rhythm) gives you the four recurring tasks that keep the deployed site from going stale — including "regenerate when you add a dish" so the L14 download stays current.
You have a deployable site, right now, in this browser.
The readiness checklist tells you what's ready and what's still open. The rail shows you what will ship. The ZIP download packages it all into a file you can hand to any host. Thirteen lessons of decisions just became a website.
The generator is the proof that no fetch, no storage, no account was the right posture from the start.
Lessons 15 and 16 are live — deploy and the 30-day rhythm.