Custom domains

Bring your own domain like crm.acme.com for a white-labeled workspace URL.

By default, your workspace is at <your-slug>.apexium.team. Custom domains let you serve the same workspace at your own URL — crm.acme.com, app.your-brand.com, anything you control.

Why use a custom domain

  • Brand consistency — your customers + team see your brand in the URL, not Apexium's.
  • Trust — customers tend to trust links that match your established domain.
  • Email links — broadcast emails carry your domain in unsubscribe + tracking links (improves deliverability + open rates).
  • SSO routing — custom domains can serve as a per-tenant SSO routing target.

Custom domains are optional. The default <slug>.apexium.team works indefinitely; many workspaces never bother. Set this up when your brand polish is a priority.

DNS configuration

You'll need access to your domain's DNS provider (Cloudflare, Route53, GoDaddy, Namecheap, etc.).

Head to Settings → Domains → Add a custom domain. Enter the domain you want to use (e.g. crm.acme.com).

Apexium gives you ONE DNS record to add:

| Type | Name | Value | |-------|-------|----------------------------------| | CNAME | crm | cname.vercel-dns.com. |

(Exact value will be shown in the UI; Vercel handles the underlying SSL certificate provisioning.)

Apex domains (no subdomain)

If you want the apex (e.g. acme.com instead of crm.acme.com), you need an A record instead of CNAME:

| Type | Name | Value | |------|------|----------------| | A | @ | 76.76.21.21 |

Apex domains have limitations: you can't have a CNAME at the apex, so the DNS shape is different. Lean: use a subdomain (crm. or app.) — fewer footguns.

Verification

After you add the DNS record, click Verify on the domain row. Apexium checks DNS propagation:

  • Verified — record found + Vercel issues an SSL cert (usually within 60 seconds). Domain goes live; HTTPS works automatically.
  • Pending — DNS propagation in progress (can take 5-60 minutes depending on your DNS provider's TTL).
  • Misconfigured — DNS record doesn't match what we expect. Check the CNAME value matches the displayed instructions exactly (trailing dot matters).
  • Rate limited — Vercel temporarily rate-limited your project. Retry in 15 minutes; the UI shows the retry-after time.

The verification job re-runs automatically every few hours for pending domains. You can also force a manual re-check from the domain row.

Troubleshooting

"DNS record not found" — check your DNS provider's panel; confirm the CNAME exists + has propagated (try dig crm.acme.com CNAME from your terminal). Different DNS providers have different propagation times.

"SSL certificate failed" — Vercel auto-provisions Let's Encrypt certs. Failures usually mean the CNAME is correct but DNS hasn't fully propagated yet, OR your domain has a CAA record blocking Let's Encrypt. Add 0 issue "letsencrypt.org" as a CAA record if you have strict CAA.

"Domain conflicts with another workspace" — every custom domain is globally unique. If the domain is already claimed by another workspace, it can't be added until released.

"Verified but app doesn't load" — browser cache. Hard-refresh (Ctrl+Shift+R) or test in a private window.

Removing a custom domain

To remove a custom domain: Settings → Domains → [domain] → Remove. Workspace reverts to <slug>.apexium.team immediately. Your DNS record stays in your provider's panel (delete it manually if you want a clean slate).

Removing the domain releases it for other workspaces to claim. If you re-add it later, you'll need to verify again.

What to do next

  • If you're also setting up white-label email branding, head to Settings → White label to set your FROM identity (getting started → sending channel).
  • For SSO routing to specific tenants by domain, see your enterprise admin contact (per-tenant SAML/OIDC config is enterprise-tier).