Median

Custom domain

Serve your public site from your own address, like help.example.com.

Updated Oct 1, 20263 minute read
median site domain set help.example.com

A custom domain becomes the site's address. Once it is live, <slug>.median.website redirects to it.

Any domain you own works: a subdomain like docs.example.com or support.example.com, a deeper one, or the apex example.com itself.

Connect a domain

Add the domain

Go to Site → Overview → Custom domain. Enter the hostname and press Connect.

Add the DNS records

Copy each record into your DNS provider. Names are relative to your domain: help for help.example.com, @ for example.com itself.

Wait for Live

The status moves from Waiting for DNS to Live once the records are found. Check now checks straight away.

DNS records

DomainTypeNameValue
A subdomain, like help.example.comCNAMEhelpThe target shown, like cname.vercel-dns.com
The apex, like example.comA@The address shown, like 76.76.21.21
Any, when listedTXT_vercelThe value shown. Proves you own a domain that is already used elsewhere on Vercel

Use the values the dashboard shows. They can differ from these examples.

:::warning Turn off any proxy on the record, like Cloudflare's orange cloud. The HTTPS certificate is only issued while DNS points straight at the site. :::

Status

StatusMeaning
Waiting for DNSRecords are missing, or have not spread yet. The records still to add are listed
LiveThe site answers on the domain over HTTPS. <slug>.median.website redirects to it with a 308
FactDetail
ChecksOn connect, then on their own: after 2 minutes, then further apart, for about 4 days. Daily once live
CertificateIssued and renewed for you
PathsThe redirect keeps the path and query. /support goes to /support
Broken recordsA live domain whose records stop resolving goes back to Waiting for DNS, and the redirect stops
One per siteConnecting another domain replaces the first
RemoveThe site answers on <slug>.median.website again
Sign-inWorks on both addresses

Plan and access

RequirementDetail
PlanThe Site add-on, or Pro. See Plans
RoleAdmins and owners

API and CLI

ActionCLIREST
Showmedian site domain getGET /v1/site/domain
Connectmedian site domain set <hostname>POST /v1/site/domain
Check nowmedian site domain checkPOST /v1/site/domain/check
Removemedian site domain removeDELETE /v1/site/domain

MCP: median.site.domain(), setDomain({ domain }), checkDomain(). See the management API.

Troubleshooting

MessageFix
Enter the whole domain, like docs.yourcompany.com.Include the domain, not only the subdomain
No domain ends in .<ending>. Check the spelling.The ending does not exist in DNS. Check it against your registrar
Domains can only use letters, numbers and hyphens, and a part can't start or end with a hyphen.Underscores and other symbols can't be in a hostname
Use a domain name, not an IP address.Enter the hostname, not the address it points at
Your median.website address comes from your slug. Change it in Settings under General.A different median.website address is a slug change, not a custom domain
vercel.app addresses belong to Vercel. Use a domain you own.Connect your own domain, not the Vercel address
localhost only works on your own computer. Use a public domain.Use a domain that resolves on the internet
median.sh addresses are only for Median's own site.Median keeps its own domain for its own site
That domain is already connected to another site.Remove it from the other organization's site first
That domain is already in use somewhere else. Remove it there first.It is attached to another Vercel project. Remove it there
That domain can't be used. Check the spelling and try again.Check the spelling
This feature requires an eligible paid plan.Add Site, or move to Pro
Custom domains are not available right now. Please try again later.Try again later
We couldn't check this domain just now. We'll try again soon.Nothing. The next check runs on its own
Stuck on Waiting for DNSRun dig help.example.com. It has to return the value shown, with no proxy in front

Still need help?

    Esc