Custom domains
Your store works on the *.vercel.app URL immediately (thanks to env-pinned
tenant resolution). Pointing your own domain at it is a two-side step: Vercel
needs the domain, and Flightdeck needs to know it’s yours.
1 · Add the domain in Vercel
Project -> Settings -> Domains -> Add. Vercel gives you the DNS records
(usually a CNAME to cname.vercel-dns.com, or A/AAAA for an apex). Add
them at your DNS provider. Vercel issues the TLS certificate automatically.
2 · Verify the domain in your merchant console
Add the same hostname to your store and verify ownership (a DNS TXT record, or
whatever your console’s flow specifies). Verification is what marks the domain
as belonging to your tenant.
Do I even need step 2?
It depends on which resolution mode your deployment uses:
- Env-pinned (
FLIGHTDECK_TENANTset) — No. The store resolves by tenant, so it serves correctly on your custom domain the moment Vercel routes it, whether or not the domain is verified in Flightdeck. This is the recommended setup for a single store, and the simplest. - Host-resolved (
FLIGHTDECK_TENANTunset) — Yes. The store is resolved from the request host against your verified domain mappings. An unverified host is a hard 404. Verify the domain before it will serve.
Recommendation: keep
FLIGHTDECK_TENANTset. It removes the ordering dependency between DNS/TLS propagation and Flightdeck verification, and your store is never down waiting on a verification round-trip.
Apex vs subdomain
- Subdomain (
shop.yourbrand.com) — aCNAMEis simplest. - Apex (
yourbrand.com) — use theA/AAAArecords Vercel provides, or your DNS provider’s ALIAS/flattening feature.
Set the canonical one as Primary in Vercel; add the other as a redirect
(e.g. www -> apex) so you don’t split traffic across two hostnames.
Propagation
DNS + TLS can take anywhere from a minute to a few hours. During that window the
*.vercel.app URL keeps working. Nothing about the store changes when the
domain goes live — same tenant, same catalog.
Moving a domain between projects/orgs
If the domain currently lives on another Vercel project (or another org), Vercel won’t let two projects claim the same domain. Remove it from the old project first, then add it to the new one. Across orgs, you may need to initiate a domain transfer or re-add it from the DNS side. Plan a short cutover — the domain is briefly unattached between the remove and the re-add.