Console — connect your own domain
The no-code path — from sign-up to a domain serving your app over HTTPS, and what every screen is actually doing.
Use the console when the domain is yours and you want it to point at something you run. If your customers should connect their domains inside your product, that is the widget, not this page.
1. Sign up and verify
Sign up at app.customdomain.ai. You
reach the console immediately; a verification email is sent and its link
(valid for one hour) marks the address verified — nothing is gated on it
by default. Operators who set REQUIRE_EMAIL_VERIFICATION=true on their
deployment get the stricter mode: no session until the address is verified,
with a Check your email screen that has Resend the link, and an expired
link lands on a page that issues a new one.
2. Connect a domain
Domains → Connect a domain. Enter the hostname:
www.acme.com/app.acme.com— a subdomain: any DNS provider can hold theCNAMEwe need.acme.com— the root. Works everywhere, but the record depends on the provider — Root domains.
The pre-flight refuses two things up front: a domain that doesn't resolve at
all (unregistered, or never delegated at the registrar) and a hosting
platform's own subdomain (www.<name>.vercel.app). Both used to sit on
"waiting for DNS" for days.
3. Choose how to add the records
The What works at … card (named for your provider) is the truth for your provider, straight from the server. The options appear in this order; the recommended one is marked.
- Sign in with the provider — Cloudflare, DNSimple, Netlify, Vercel, WordPress.com. Approve once in a popup; we add the records with a one-time token we never store. Fastest.
- One-click setup — only where the provider serves our template (NameSilo, Glauca Digital, Domain Chief today). GoDaddy, IONOS and Cloudflare are not offered this, on purpose.
- API key — paste a scoped provider credential; used once, discarded (opt in to remember it). GoDaddy only issues API access to 10+ domain or paid accounts; Namecheap needs an IP allowlist — for most accounts, skip to manual.
- Add the records by hand — the exact rows to copy, with a link to your provider's DNS panel. Then Check now.
4. Verify
The connection sits in pending until the records resolve, then goes
live; you can leave and come back — Domains shows every connection with
its reason and a Resume link. After three minutes of waiting the page
offers a fallback. A stalled connection is paused, not failed: it keeps
being checked every six hours.
5. Serve something
Live means the edge terminates TLS and proxies the domain to your
application's origin. If you haven't set one, the domain shows a "not
configured" page — set it under Settings → Where your domains point.
Root-domain redirects (www_redirect) and per-path rules live on the
connection's detail page.
What the console is not
It is one application in your workspace. Everything it does is an API call you could make yourself — the API page maps each step — and its Embed and Keys pages are where the other paths begin.
Which path are you on?
Custom Domain is one product with four front doors — the console, the API, the embeddable widget, and the MCP server. Pick yours, then read the truths every path shares.
API — provision domains from your server
The server-to-server path with an sk_ key — pre-flight honestly, create, apply, verify, react — and the mistakes integrators actually make.