Bring your own domain (BYOD)
A SaaS feature where users provide a domain they already own and the SaaS makes it work, instead of the SaaS selling them the domain.
Bring your own domain (BYOD) is the pattern where your customer already has a domain at a registrar (GoDaddy, Namecheap, Google Domains) and you let them point it at your product. You handle TLS and routing; they handle DNS at their existing provider.
This is distinct from selling them a new domain through your app (which is what a Buy-a-Domain API does).
The architecture
Customer's registrar Your edge Your origin
───────────────────── ───────── ───────────
janesbakery.com → CNAME edge.yourapp.com → yourapp's pods
What you need to support BYOD:
- An endpoint where customers add a hostname. Your UI calls something like
POST /custom-domains { hostname }. - A CNAME target your customers point their DNS at. Usually a single static value like
edge.yourapp.com. - DNS verification. You check that the customer actually added the CNAME before you treat the domain as "live."
- Cert issuance. First request to the domain triggers Let's Encrypt to mint a cert. Or you issue it pre-emptively after DNS verification.
- Status updates. A webhook or polling endpoint your UI uses to tell the customer "domain ready" / "DNS not propagated yet."
BYOD vs Buy
| If the customer | They want |
|---|---|
| Already has a domain from a previous project | BYOD |
| Is starting fresh and asks "where do I get a domain?" | Buy-a-Domain flow inside your product |
Both should ideally exist in a mature SaaS. BYOD ships first because it's simpler and covers most users initially.