StorefrontsCustom domains

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_TENANT set)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_TENANT unset)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_TENANT set. 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) — a CNAME is simplest.
  • Apex (yourbrand.com) — use the A/AAAA records 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.