Apex domain (naked / root domain)

The bare domain without any subdomain prefix. The DNS standard doesn't allow CNAME records here, which is the root cause of a lot of custom-domain setup pain.

An apex domain (also called naked domain or root domain) is the bare hostname: example.com. Compare with a subdomain: www.example.com or shop.example.com.

Why the apex is special

DNS allows CNAME records only on non-apex hostnames. The apex has to use:

  • A record (IPv4) or AAAA record (IPv6) pointing at a literal IP, or
  • NS records (delegating the zone), or
  • No record (which means the apex doesn't resolve).

You cannot do example.com CNAME edge.someapp.com at the apex. RFC 1034 says so. Every major SaaS that supports custom domains has a help-doc paragraph about this.

Why this matters for SaaS

Your customer's first instinct is to point their bare domain (janesbakery.com) at your app. Your standard instruction is "add a CNAME to edge.yourapp.com." They try. Their DNS provider rejects it with "CNAME not allowed at root." They blame your app.

The three workarounds

  1. Use www. instead. Tell customers to point www.janesbakery.com at your app via CNAME, then 301-redirect the apex to www at their registrar. Most reliable.
  2. CNAME flattening. Some DNS providers (Cloudflare, DNSimple, Route 53 with ALIAS) let you "fake" a CNAME at the apex by resolving it server-side and returning A records. See CNAME flattening.
  3. A record to your edge IPs. You publish a small set of fixed edge IPs, customer adds A records pointing at them. Works, but you can never rotate those IPs without breaking every customer.

Most custom-domain APIs default to (1) and offer (2) as a paid tier or recommendation if the customer's DNS provider supports it.

Want this handled for you? Start free with Domainee — 50 custom domains + 100 GB bandwidth, no card.