Business owners

Custom domain

Business ownersCustom 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

Domain onboarding UI is not yet shipped
The dashboard page at /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

  1. Enter your domain (e.g. book.yoursalon.com) in the dashboard.
  2. 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.com or app.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.com to book.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.

The DNS details
The DNS target is 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.

Need a human?

Email hello@netwit.ca or call +1-604-206-8169. NetWit responds in 1 business day.