Custom domain
Your public booking page can live on your own domain — e.g. book.yoursalon.com or yoursalon.com/book. The custom domain workflow is a roadmap item; the columns exist in D1 (tenants.custom_domain, domain_status, domain_verified_at, domain_cf_hostname_id — see migration 0004) and the API exposes customDomain as a writable field on the tenant, but the DNS verification, status pill, and per-tenant CF Hostname provisioning described below are not yet wired up in the Worker.
Where to set it up
/dashboard/settings/domain and the accompanying status pill are not built. The PATCH /api/businesses/me endpoint accepts a customDomain string today, and a site router Worker that reads the Host header to map a request to a tenant is on the roadmap.The setup
- Enter your domain (e.g.
book.yoursalon.com) in the dashboard. - Go to your DNS provider (where you bought the domain) and add a CNAME record:
Type: CNAME
Name: book
Value: bookflow-sites.netwit.ca
TTL: 300 (or Auto)Wait 5–30 minutes for DNS to propagate. Click "Re-check" in the dashboard. When the status flips to "Active", your domain is live.
If you want it on the root domain
CNAMEs don't work on the root. You have two options:
- Use a subdomain (recommended):
book.yoursalon.comorapp.yoursalon.com. - Use ALIAS / ANAME / flatten at a registrar that supports it (Cloudflare, DNSimple, Namecheap's PremiumDNS). The dashboard detects this and validates.
- Use URL forwarding (last resort): forward
yoursalon.comtobook.yoursalon.com. Slight SEO loss, but works.
SSL
SSL is automatic via Cloudflare Universal. No certificate to buy, no renewal. Works on the wildcard *.netwit.ca certificate that covers your subdomain.
bookflow-sites.netwit.ca (a Cloudflare Pages project that sits in front of the BookFlow site router Worker). The Worker inspects the Host header, looks up your tenant by domain, and serves your booking page.Troubleshooting
- "Status: pending" — DNS hasn't propagated yet. Wait 5–30 min. Re-check.
- "Status: failed" — wrong CNAME. Double-check the value. Cloudflare's orange-cloud proxy can interfere; if you use Cloudflare DNS, set the record to "DNS only" (grey cloud) and let BookFlow's Worker handle SSL.
- "My site shows another business" — the Worker is reading the Host header, but two tenants set the same domain. The first to claim wins. Contact hello@netwit.ca to debug.
- "My existing site broke" — you set the CNAME on the wrong subdomain. Revert the DNS change and try again on a different subdomain.
What works once your domain is active
- Your public booking page at the new URL
- The embed widget (auto-detects the domain)
- SSL (the green padlock)
- SEO — the page is canonical to your domain
- Email — the confirmation still comes from BookFlow but mentions your business
Your dashboard and customer account still live at booking.netwit.ca. We don't (yet) let you white-label the dashboard.
Email hello@netwit.ca or call +1-604-206-8169. NetWit responds in 1 business day.