Home / Fixes / Custom domain

You added the domain. Chrome still says Not Secure.

Vercel will not issue a certificate until the records it printed are the only ones answering. Adding the domain in the dashboard is click one of twelve.

Symptoms

Why this bites AI-built apps

Lovable and Bolt give you a preview host. A custom domain is a DNS job the generator cannot finish. People add the domain in Vercel, then add a CNAME at the registrar, often to an old host, and wait five minutes. Certificates need the exact A and CNAME pair Vercel printed, and they need competing records gone.

The actual fix

  1. Vercel, Project, Settings, Domains: add yourdomain.com and www.yourdomain.com.
  2. Copy the records on that screen. Typically an A on the apex (Vercel anycast IPs) and a CNAME on www pointing at cname.vercel-dns.com. Use what the dashboard shows today, not a blog post from 2022.
  3. At the DNS host, delete leftover A, AAAA, CNAME, and ALIAS records for those names that still point at Webflow, Netlify, Squarespace, GitHub Pages, or a previous Vercel project.
  4. Do not put a CNAME on the apex if the host also has MX/TXT and forbids flattening. Use the A record Vercel gave you, or the host ALIAS/ANAME.
  5. Wait. Refresh the Vercel domain page until the certificate is green. Do not click Add again; that creates duplicates.
  6. Once green, update every callback: Supabase Site URL, OAuth redirects, Stripe webhook, success_url, and any VITE_SITE_URL. Then redeploy so baked-in URLs change.
Apex and www are two hostnames. Redirect one to the other in Vercel after both certs are green, so OAuth is not registered on the host you then bounce away from.

How to know you are done

Incognito load of https://yourdomain.com shows a padlock and the current app, not a host parking page. www lands in the same place. Stripe and Google callbacks use the custom domain, not the vercel.app URL.

A 12-click version lives in ops/deploy-on-vercel.md in this repo.

$49 to run this against your tree

Zip or GitHub URL in. Ranked HTML/PDF in 24h. No call. First 10 audits are $49, credited if you continue to triage. Email contact@shipready.local.

Start an audit See a sample report