Vercel Domain — Full Domain Setup Flow
Guide the complete setup of a custom domain from start to finish.
Prerequisites Check
- Domain: Where was it purchased? (Cloudflare / GoDaddy / Namecheap / etc.)
- Vercel project: Already linked?
- Supabase: In use? (redirect URL update needed)
- Stripe: In use? (webhook URL update needed)
Steps
1. Add Domain to Vercel
vercel domains add {domain}
# Or via Vercel Dashboard > Settings > Domains
2. DNS Configuration
Direct Vercel connection (recommended):
Arecord:76.76.21.21CNAME(www):cname.vercel-dns.com
Via Cloudflare:
- Set Proxy to OFF (DNS Only), or
- Set Cloudflare SSL to Full (Strict)
3. HTTPS Verification
# After DNS propagation (up to 48 hours, usually minutes)
curl -I https://{domain}
# 200 OK means it's working
4. Update Supabase Redirect URLs
Supabase Dashboard > Authentication > URL Configuration:
- Site URL:
https://{domain} - Add to Redirect URLs:
https://{domain}/**http://localhost:3000/**(for development)
5. Update Stripe Webhook URL
Stripe Dashboard > Developers > Webhooks:
- Change endpoint URL to
https://{domain}/api/stripe/webhook - Or add a new endpoint
6. Register with Google Search Console
- Add
https://{domain}to Search Console - Verify via DNS or HTML file
- Submit sitemap:
https://{domain}/sitemap.xml
7. Update URLs in App Code
# Search for hardcoded URLs in source
grep -r "localhost:3000\|vercel.app" src/
Update environment variables like NEXT_PUBLIC_APP_URL to the production domain.
Checklist
- Domain is recognized by Vercel
- HTTPS access works
- www -> apex (or reverse) redirect works
- Supabase Auth redirects work
- Stripe webhook works at new URL
- Search Console ownership verified
- sitemap.xml submitted
- OG image URLs use new domain