Add custom domains
import { Aside, Steps } from ‘@astrojs/starlight/components’;
Every fresh Website ships on a Vercel preview URL like
client-your-slug.vercel.app. To put it on a custom domain:
Prerequisites
Section titled “Prerequisites”- A Melbora Website with
status: "active" - A domain registered somewhere (Cloudflare, Namecheap, GoDaddy, Route 53, etc.)
- Access to that domain’s DNS settings
Add a site domain
Section titled “Add a site domain”-
Add the domain to the Website.
Terminal window vantage domains add <websiteId> --domain yourdomain.com --kind siteThe response includes the DNS records Vercel needs. Example output:
✓ Added domain yourdomain.com (pending).Set these DNS records at your registrar:TYPE NAME VALUEA @ 76.76.21.21CNAME www cname.vercel-dns.com -
Copy those records into your registrar’s DNS console.
Exact UI varies (Cloudflare = “DNS” tab; GoDaddy = “DNS Management”; etc.). Add each row as printed. TTL of 300 (5 min) is fine.
-
Wait for DNS propagation.
Usually 1-5 minutes; can take longer on slow registrars. Check with
dig:Terminal window dig +short yourdomain.com# Should return 76.76.21.21 -
Melbora auto-verifies in the background.
Terminal window vantage domains list <websiteId>statusflips frompending→verifiedwhen Vercel sees the right records. Usually within a minute of DNS resolving. -
Visit your domain.
https://yourdomain.comshould now serve your site. SSL certificate is provisioned automatically by Vercel (Let’s Encrypt) — that adds another minute on first hit.
Apex + www
Section titled “Apex + www”Best practice is to serve from the apex (yourdomain.com) and redirect
www.yourdomain.com → apex. The A + CNAME records above set this
up automatically:
- Apex (
@) resolves to Vercel’s IP and serves the site wwwresolves via CNAME to Vercel and 308-redirects to apex
To go the other way (serve from www., redirect apex → www.), add
the www. domain as the canonical and apex as an alias in the Vercel
project. The CLI doesn’t currently expose this — do it in the Vercel
UI for now.
Vercel-managed DNS
Section titled “Vercel-managed DNS”If you want Vercel to handle DNS entirely:
- Add the domain as above
- Go to your registrar and change the nameservers to Vercel’s:
ns1.vercel-dns.com+ns2.vercel-dns.com - Wait for the nameserver change to propagate (can take 24-48 hours)
Melbora sets vercelManaged: true on the domain row once it detects
this. Tradeoff: every DNS change for that domain now goes through
Vercel’s UI, not your old registrar.
Add an email domain
Section titled “Add an email domain”Email domains go through the Resend integration:
vantage domains add <websiteId> --domain mail.yourdomain.com --kind emailYou’ll get DKIM/SPF/DMARC records to set. Resend verifies them
asynchronously. Status flips to verified once Resend confirms.
Remove a domain
Section titled “Remove a domain”vantage domains remove <websiteId> yourdomain.comThis:
- Removes the domain from the Vercel project
- Deletes the row from
vantage-domains - Does not alter your registrar’s DNS records — those stay until you remove them manually
After removal the apex DNS will still point at Vercel but Vercel will 404. Either delete the records at your registrar or repoint them elsewhere.
Troubleshooting
Section titled “Troubleshooting”status: "failed" after waiting 10+ minutes.
DNS records are wrong or not propagated. Re-check with dig and
compare to what Melbora printed. Common gotchas:
Arecord value typo (76.76.21.21≠76.76.21.12)CNAMEfor the apex (most registrars don’t allow this — useA/AAAA)- TTL too high; old records cached
Domain works on https:// but not https://www. (or vice versa).
The second record wasn’t set. Re-run vantage domains list to see what
was printed at add time, or check Vercel directly.
“This domain is already in use” error. A different Vercel project (possibly an old test) owns the domain. Remove from the other project first.
See also
Section titled “See also”- Concepts → Domains — the data model