Launch your site
Fork a template, connect a domain, wire up email — and go live. About 30 minutes, most of it waiting on DNS. This is the same process we run for our own sites.
Phase 01
Put your domain on Cloudflare
Cloudflare is your registrar + DNS. The free plan is all you need.
- Add your domain to Cloudflare — register it there, or, if you bought it elsewhere, add the site and move its nameservers to the two Cloudflare gives you.
- Wait for “Your domain is now protected by Cloudflare.” Minutes if registered there; up to a couple hours if you moved nameservers.
Why Cloudflare
Holding the domain here means a bare apex (
yourdomain.com) can point at your host — most registrars can’t — and you’re pre-wired for automatic SSL.Phase 02
Fork the template & brand it
One file turns the starter into your site — no backend code.
- Make your copy: on the template repo, click
Use this template → Create a new repository. Keep it private. - Edit the one file,
site.config.ts— set yourname,tagline,description, andbrandPalette. - Commit and push to
main.
AI-friendly
Want a different look? Hand the repo plus the prompts in
docs/prompts/ to Lovable, v0, or Cursor and have it re-skin the site — the built-in checks keep the backend wiring intact while the design changes freely.Phase 03
Deploy on Vercel
Ship in demo mode first — see the branded site before any backend exists.
- Import the repo: Vercel →
Add New → Project. It auto-detects Next.js. - Set environment variables (Production), then Deploy. Start in demo mode to preview instantly:
| Variable | Preview (demo) | Live |
|---|---|---|
NEXT_PUBLIC_DEMO | 1 | (blank) |
GENESIS_API_ORIGIN | — | your API origin |
NEXT_PUBLIC_API_URL | leave blank — routes through the same-origin proxy so login works | |
NEXT_PUBLIC_SITE_URL | https://yourdomain.com |
Tip
With
NEXT_PUBLIC_DEMO=1, every page renders sample data and forms politely refuse to write — perfect for reviewing the design before your backend is ready.Can't see your repo?
The import list only shows repos Vercel’s GitHub app can reach. Click
Adjust GitHub App Permissions under the repo list, grant All repositories, then refresh.Phase 04
Point your domain at the site
Add the domain in Vercel, then create two DNS records in Cloudflare.
- Vercel →
Settings → Domains→ clickAdd Existing(top-right — not the listed.vercel.appentry) → addyourdomain.com. Keep “redirect apex to www” and connect to Production. - In Cloudflare →
DNS → Records, add the values Vercel shows:
| Type | Name | Value | Proxy |
|---|---|---|---|
A | @ | 76.76.21.21 | DNS only |
CNAME | www | cname.vercel-dns.com | DNS only |
Critical — grey cloud
Set both records to “DNS only”: click the orange ☁ cloud so it turns grey. An orange (proxied) cloud in front of Vercel breaks SSL and causes redirect loops. Turn it on later if you want.
- Wait a few minutes. Vercel flips to “Valid Configuration” and issues SSL. Visit
https://yourdomain.com.
Phase 05
Set up email
Cloudflare Email Routing forwards you@yourdomain.com to any inbox — free.
- Cloudflare → your domain →
Email → Email Routing → Enable. Settings → DNS records → Add missing records— adds all five (3 MX + SPF + DKIM) at once; they flip from Missing to Active.Destination Addresses → Addyour real inbox → click the verification link Cloudflare emails you.Routing rules → Create address→admin@yourdomain.com→ Send to your verified inbox. (Or flip on catch-all.)
Notes
These
MX/TXT records are email-only — they don’t touch the website records from Phase 04. Use admin@yourdomain.com as the account email for Stripe and other services.Phase 06
Go live
Flip from demo to real once your backend and Stripe are connected.
- In Vercel, remove
NEXT_PUBLIC_DEMOand setGENESIS_API_ORIGINto your API origin. - In your dashboard, add your own Stripe, phone, and email credentials — they stay yours; the platform just orchestrates them.
- Redeploy. Login, payments, and messaging now run against the real backend.
That’s a live business.
A branded site on your own domain, with working email, connected to a production backend for auth, payments, and comms. You brought the front — we bring the back.