← Writing

How the Internet Found My Website

July 4, 2026·3 min read

Bought saadmukhtar.devtoday. Here's what I learned setting it up.

The short version

Your computer speaks IPs, not domain names. DNS is the phonebook that translates between the two. Setting up a custom domain is just updating the phonebook to point at your server.

That's it. Everything below is detail.

Two records. That's all.

Vercel needs two DNS records added in Cloudflare:

@ (apex)   CNAME  →  4cca535debee29c0.vercel-dns-017.com
www        CNAME  →  4cca535debee29c0.vercel-dns-017.com

Proxy: off. Grey cloud in Cloudflare, not orange. Vercel has its own CDN — Cloudflare's proxy creates SSL conflicts. Always grey.

Cloudflare vs Vercel — two different jobs

Cloudflare manages the phonebook. Buy the domain there, add the DNS records, done.

Vercel hosts your site. You also need to add the domain inside Vercel's dashboard — that's how it knows which project to serve when traffic arrives.

Both sides. Most people miss the Vercel side.

Apex vs www

saadmukhtar.dev is the apex — the root domain.

www.saadmukhtar.dev is technically a subdomain. Different address.

Add only the apex in Vercel. It automatically redirects www → apex with a 308. Nobody types www anymore anyway.

CNAME on a root domain?

Normally only A records (IP addresses) are allowed on an apex domain. CNAMEs are for subdomains.

Cloudflare gets around this with CNAME flattening — it resolves the CNAME chain down to an IP automatically. So you get the flexibility of a CNAME without breaking DNS rules.

“Invalid Configuration” — don't panic

Vercel shows this the second you add the domain. It doesn't mean something is broken.

It means DNS hasn't propagated yet. On Cloudflare: usually 5–30 min. Refresh. It turns green.

What's actually happening

You type saadmukhtar.dev
    ↓
DNS lookup → Cloudflare returns Vercel's IP
    ↓
Browser hits Vercel, Host: saadmukhtar.dev
    ↓
Vercel: I know that domain → your site loads