Customize and deploy

Download the zip, change the words and the form action, then put the folder on Cloudflare Pages or any static host.

Download template See live preview

1. What’s in the ZIP

waitlist-template/
  index.html      ← waitlist page
  css/styles.css  ← layout
  js/app.js       ← form toast + Formspree hook
  js/analytics.js ← UTM + event hooks (placeholders)

2. Copy and branding

  1. Open index.html and replace the product name, headline, and list items.
  2. Update <title>, meta description, Open Graph, and Twitter tags.
  3. Swap the header text or drop in your own favicon.
  4. Colors live in css/styles.css under :root.

3. Wire the email form

The demo form uses a Formspree placeholder and only shows a toast until you replace the ID:

<form data-waitlist-form action="https://formspree.io/f/YOUR_FORM_ID" method="POST">
  <input name="email" type="email" required placeholder="you@company.com" />
  <button type="submit">Join waitlist</button>
</form>

4. Meta / OG stubs

<meta property="og:title" content="Your Product — Join the waitlist" />
<meta property="og:description" content="One-line pitch for share cards." />
<meta property="og:url" content="https://your-domain.example/" />
<meta name="twitter:card" content="summary_large_image" />

5. Analytics placeholders

In the downloadable template, replace these before you ship your own page:

Events already hooked: click_cta, download_template, submit_waitlist (plus UTM/referrer capture).

6. Deploy on Cloudflare

From the project root (this site, or unzip the template into a Workers project with wrangler.jsonc pointing at ./public):

cd /workspace/day1-site/waitlist-saas-template
npx wrangler@3 login
npx wrangler@3 deploy

Or drag the folder into Cloudflare Pages → Create project → Direct Upload. Static files only — no KV, R2, or D1 required.

7. Quick check

Live preview Download ZIP