Owner's guide — remove the nav link before going live

Make this site yours — in an afternoon.

Everything you need is on this page: pick one of the six looks, put your brand in one config file, edit anything else with Claude Code, and host it free on Cloudflare Pages. No build pipelines to learn, no CMS, no monthly hosting bill.

1
Run it
Open the site on your own computer
2
Pick a look
Six ready-made designs — click to preview
3
Make it yours
Your name, logo, prices — one file (or ask Claude)
4
Put it live
Free hosting on your own domain

That's the whole journey — each step has its own section below, in order.

01Quick start

Run it on your machine

Two things to install once, then four copy-paste commands. Ten minutes, no coding.

Never used a terminal? Start here

The terminal is just a window where you type a command and press Enter — that's all you'll do. Open it with Cmd+Space → type "Terminal" on Mac, or the Start menu → "PowerShell" on Windows.

First install Node.js (the engine that runs the site tools): go to nodejs.org, click the big green LTS button, and click through the installer like any other app.

Then point the terminal at this project's folder: type cd (with a space), drag the project folder from Finder/Explorer onto the terminal window, and press Enter. Now run the commands below, one line at a time:

npm install        # once — installs everything the site needs
npm run dev        # opens a live preview → http://localhost:5173
npm run build      # packages the finished site into the dist/ folder
npm run preview    # double-check that finished version locally

Keep npm run dev running while you edit — every change shows up in the browser instantly, like editing a Google Doc.

02Six looks, one word

Pick your variant

The template ships with six complete visual identities — different fonts, colours, card styles and backgrounds. Click any screenshot below to see the whole site in that look (it opens a live preview — nothing changes until you pick). Then switch for real by changing ONE word in src/brand.config.ts:

theme: "original",   // "original" | "nebula" | "bloom" | "ember" | "tidal"
The home page in the Original lookClick to preview live ↗
Originalactive

Frosted-glass cards over a slow-drifting grid with film grain. Fresh green accent, Space Grotesk headlines.

theme: "original"Preview live ↗
The home page in the Nebula lookClick to preview live ↗
Nebula

Indigo & violet on solid elevated cards with a soft violet glow — a modern app-surface look. Sora headlines, orb background, no grid.

theme: "nebula"Preview live ↗
The home page in the Bloom lookClick to preview live ↗
Bloom

Rose & fuchsia with Fraunces serif headlines on soft paper cards — big radius, pastel shadows, warm bloom background. Boutique and editorial.

theme: "bloom"Preview live ↗
The home page in the Ember lookClick to preview live ↗
Ember

Amber & orange with Bricolage Grotesque headlines on flat, confidently bordered cards — warm blooms, a hint of grain. Bold and energetic.

theme: "ember"Preview live ↗
The home page in the Tidal lookClick to preview live ↗
Tidal

Sky & cyan in Manrope on crisp hairline cards — tight shadows, sharp corners, a single top glow. Minimal and product-led.

theme: "tidal"Preview live ↗
The home page in the Mono lookClick to preview live ↗
Mono

Black & white minimalism — Inter everywhere, near-black buttons, hairline gray borders, zero decoration. The Linear/Notion look.

theme: "mono"Preview live ↗

Every theme works with your brand colour too — set the six colour stops in brand.config.ts → colors and they override the theme's default accent. Want a sixth look? Copy a theme object in src/themes.ts and tweak it.

…and six home-page layouts

Separate from the look, you can change what the home page is built from — which sections appear, in what order, and how the top opens. Same one-word switch: homeLayout: "classic". Any layout works with any theme.

Classicactive

The full story: big hero with the animated inbox, then why-it's-different, how it works, features, pricing.

homeLayout: "classic"Preview live ↗
Story

The long-form page: every section — comparison, steps, industries, features, integrations, a mid-page CTA — before pricing. For cold traffic that needs convincing.

homeLayout: "story"Preview live ↗
Split

Product-led: copy left + live chat demo right, features first, industries and comparison after.

homeLayout: "split"Preview live ↗
Demo

Show, don't tell: how it works right after the hero, then industries, features and a mid-page CTA before the comparison.

homeLayout: "demo"Preview live ↗
Video launch

A conversion page for paid traffic: VSL video up top (hero.videoId — a styled placeholder until you set it), how it works, industries, pricing early, FAQ, done.

homeLayout: "vsl"Preview live ↗
Compact

A tight one-pager: minimal hero (no demo), channels & tools, features, pricing, FAQ. For warm audiences that just need the essentials.

homeLayout: "compact"Preview live ↗
03One file

Put your brand in

Everything customer-facing — name, copy, pricing, FAQ, legal pages — flows from src/brand.config.ts. It's heavily commented; read it top to bottom once and you'll know the whole site.

Identity & copy

Set brandName, domain, app URL and support email, then work through each section (hero, pricing tiers, FAQ…). Search the project for the string YourBrand if you think you missed a spot.

Logo & images

Drop your files into public/brand/: logo.svg, favicon.svg and og.svg (the social-share image). Any format works — update the paths in the config if you use .png.

Legal pages

Terms and Privacy are generated from the config's legalEntity, legalJurisdiction and infrastructure blocks. Anything in [SQUARE BRACKETS] MUST be replaced before you go live — and have a lawyer review both pages.

Testimonials ship empty

On purpose. Add only your own reviews, with permission — never reuse someone else's. Leave the array empty and the whole section hides itself.

04AI-assisted editing

Edit anything with Claude Code

Claude Code is Anthropic's AI coding agent that runs in your terminal. This project ships pre-configured for it: it already knows the template's structure, rules and gotchas, so you can change anything in plain English — no coding needed.

npm install -g @anthropic-ai/claude-code   # install once
cd path/to/this-project
claude                                     # start it inside the project

What's packaged for you

CLAUDE.md — the project briefing Claude reads automatically: architecture, where every kind of change lives, and what not to touch.

.claude/skills/ — guided workflows you can invoke by name: /rebrand (interview → your whole brand filled in), /theme (switch or design variants) and /deploy (build + ship to Cloudflare Pages).

Prompts that work

Just describe the change:

"Rebrand this site to AcmeReply, domain acmereply.com, brand colour #7c3aed"
"Add a fourth pricing tier called Agency at $297/mo"
"Rewrite the hero for a dental-clinic audience"
"Swap the theme to tidal and make the FAQ six questions"

After Claude makes a change, it runs npm run build to verify nothing broke — that's the safety net; the site can't deploy in a broken state if the build fails.

05Version control

Put it on GitHub

Git gives you an undo history for every change; GitHub stores it online and is what Cloudflare Pages deploys from. One-time setup, five minutes.

# 1. one-time: install git (git-scm.com) and create a free github.com account

# 2. in the project folder — start the history and make the first snapshot
git init
git add .
git commit -m "My site — initial version"

# 3. create a PRIVATE repo on GitHub and push
#    (easiest: install GitHub's CLI from cli.github.com, then)
gh auth login
gh repo create my-site --private --source=. --push

Daily rhythm

After every editing session:

git add .
git commit -m "what changed"
git push

That's it. Each commit is a restore point, and each push triggers a fresh deploy if you connect Cloudflare Pages to the repo (next section).

No terminal? No problem

GitHub Desktop (desktop.github.com) does all of the above with buttons: File → Add local repository, then "Publish repository" (keep "private" ticked), then Commit + Push after each change. Claude Code can also run the git commands for you — just ask it to "commit and push my changes".

06Free hosting

Host it free on Cloudflare Pages

Cloudflare Pages serves static sites like this one on a global CDN, free — unlimited bandwidth, free SSL, custom domains included. Two ways to ship:

A) Connect GitHub (recommended)

1. dash.cloudflare.com → sign up free → Workers & Pages → Create → Pages → "Connect to Git".

2. Authorize GitHub and pick your repo.

3. Build settings — framework preset None, build command npm run build, output directory dist.

4. Deploy. You get a free *.pages.dev URL, and every git push auto-deploys the new version.

B) Direct upload

No GitHub needed — build locally and push the dist/ folder up:

npm run build
npx wrangler pages project create my-site
npx wrangler pages deploy dist --project-name=my-site

(Or drag-and-drop the dist folder in the dashboard: Create → Pages → "Upload assets".)

Custom domain

In your Pages project → Custom domains → "Set up a domain". If your domain already uses Cloudflare for DNS it's one click; otherwise Cloudflare shows you the exact CNAME record to add at your registrar. SSL is automatic. Set both yourbrand.com and www, and remember to put the final URL in brand.config.ts → siteUrl and rebuild so canonical/OG tags match.

07Going further

You're live — now iterate

Funnel copy

Need ads, an opt-in page or an email sequence to drive traffic here? Ask Claude Code — it can read your whole brand config, so "write me 5 ad angles and a 3-email follow-up sequence matched to this landing page" comes back on-brand.

Keep it fresh

Update pricing, FAQ answers and screenshots as your offer evolves — it's one config edit + push. Stale pricing pages lose deals silently.

Before you launch

Checklist: [SQUARE BRACKETS] all gone, legal reviewed, your real WhatsApp link in whatsAppLink, og.svg shows your brand, and siteUrl matches your real domain.