Last updated: 2026-07-14.
Everything you need is a free Cloudflare account + one scoped API token. No separate host, no backend for static sites.
Account → Cloudflare Pages → Edit and Zone → DNS → Edit. These two are required.Account → Registrar → Edit./dash.cloudflare.com/ on most pages..html, or a .zip containing index.html) → create a handoff link → send it to your client.Static means HTML/CSS/JS only. If a site needs a server, database, or server-side payments, host that part elsewhere — Handoff delivers the frontend.
When your client opens the handoff link, they either already own a domain or they don't. Two paths:
(Any registrar — Squarespace, GoDaddy, Namecheap, Google, etc.) Handoff adds their domain to your Cloudflare and shows them two Cloudflare nameservers. They log into wherever they bought the domain and switch the domain's nameservers to those two (most registrars call this "custom nameservers" or list it under DNS settings). Once Cloudflare detects the switch — usually minutes, occasionally up to a few hours — the site is live. Their domain stays registered where they bought it; Cloudflare just becomes the DNS and the host.
This one step can't be automated, and here's why: their registrar holds the nameservers, and only the domain owner can change them. No app can reach into Squarespace (or any registrar) and flip them for the client. So set the expectation up front: "you'll paste two nameservers into your registrar — about two minutes, then it's live."
For a subdomain like www.theirbrand.com, a single CNAME record at their registrar is enough. For the root domain (theirbrand.com itself), the nameserver switch is the reliable route (a CNAME at the root isn't standard DNS).
ada.ns.cloudflare.com + mario.ns.cloudflare.com) — they are not the same for everyone, and not the generic nameservers in tutorials. Pasting a guide's example pair, or the nameservers from another domain, points the domain at the wrong place and it will never go live. Always take the two nameservers Handoff shows you for this handoff (or from your Cloudflare dashboard → the zone → Overview), and paste exactly those at wherever the domain was bought — Squarespace, GoDaddy, Namecheap, Google, anywhere. The registrar doesn't matter; using yours does.If you've enabled domain registration (the Registrar → Edit scope on your token plus a Cloudflare billing profile + a default registrant contact), the client can register a brand-new domain right from the handoff page. It's registered to them, billed to your Cloudflare (non-refundable), and — because it's born on Cloudflare — the DNS is already correct. No nameserver step, no external registrar to coordinate with; it's live as soon as the registration completes. You see the price and a confirm step before any charge.
Which to offer? If they already have a domain they like: path 1 (one manual step). If they want a fresh domain and you're set up for registration: path 2 (fully automatic). Either way the site ends up on your Cloudflare; the difference is just whose registrar holds the name and whether there's a one-time nameserver paste.
If you're on the Pro plan, there's a third option that's free per client and needs zero work from the client: give them an address on your domain, like maria.yourdomain.com. When you create a handoff link, type a short label (auto-suggested from the client's name); the client just clicks Launch and the site is live at that address. No domain for them to buy, no nameservers to paste — because the address is on a domain you already control in Cloudflare, Handoff creates the DNS record and attaches it automatically.
One-time setup: in the Hosting tab, pick which of your Cloudflare zones to use as the subdomain parent (it must already be a zone in your Cloudflare account — add your domain to Cloudflare first if it isn't). After that, every handoff can get an instant subdomain. The address has your domain in it (not a fully-their-own .com), so use it for clients who don't care about owning their own domain; use path 1 or 2 for clients who do.
Squarespace is just a registrar — the same path-1 nameserver swap applies, with one Squarespace-specific prerequisite. Here's exactly what to do.
You (in Handoff): open the handoff → Handoffs tab → Bring into Cloudflare. Handoff adds their domain as a zone in your Cloudflare and gives you two nameservers (e.g. ada.ns.cloudflare.com, mario.ns.cloudflare.com). Send those to your client with the steps below.
ada/mario ones printed here. Same goes for any tutorial: those nameservers belong to whoever wrote it, not to your client's domain.Your client (in Squarespace, ~2 min):
That's it. Cloudflare detects the switch (minutes, occasionally up to a few hours) and the site serves at their domain. The handoff chip flips from nameservers needed to domain live.
Two warnings to pass along: (1) swapping nameservers hands all DNS for that domain to Cloudflare — if they run email (MX records) or a Squarespace site on that domain, tell you first so you can recreate those records in Cloudflare and their mail keeps working. (2) For a subdomain only (e.g. www.theirbrand.com), they can skip the nameserver swap and instead add one record: DNS → Custom Records → CNAME, host www, data = the target Handoff shows. Use the nameserver path whenever possible — one paste, done forever.
If your client sees "this link isn't active," you may have revoked the handoff, or deleted the site. Create a new handoff link from the dashboard and resend it.
If your client is told you need to upgrade, it means your free launches are used up. Subscribe ($19.99/mo) for unlimited launches — your waiting client can then launch immediately.
For a domain they brought from another registrar, check in this order:
For a domain registered through the flow: it should be live within minutes of the registration completing — if not, contact support.
Support: contact us. For account or billing issues, include the email on your account.