Module 4, Lesson 4: Custom Domain to Vercel

Module 4, Lesson 4: Custom Domain to Vercel

12 min read min

Before We Start

Here’s what I’d expect you to have in place before this lesson:

From previous lessons:

  • Your landing page is live on Vercel — you have a working .vercel.app URL from Module 4, Lesson 3
  • Your project is in a GitHub repo and Vercel is connected to it
  • The Kit (ConvertKit) integration is working — emails land in your subscriber list

Tools / setup you’ll need:

  • WebStorm (or VS Code)
  • Access to your Vercel dashboard
  • A domain name — either one you already own or one you’re buying now. I’ll walk through this in the lesson.
  • Access to your domain registrar (wherever you bought the domain — Namecheap, GoDaddy, Google Domains, etc.)

By the end of this lesson, you’ll:

  • Have a custom domain pointed at your Vercel deployment
  • Understand what DNS records are and the basic change you need to make
  • Have a proper, professional URL you can share with people — not yourproject.vercel.app

About This Lesson

Duration: ~5 minutes video + ~20 minutes practice (DNS can take a little time to propagate) Skill Level: Intermediate What You’ll Build: A custom domain connected to your live Vercel deployment

This is the finishing touch. We’ve got a live page, we’ve got email capture working — but the URL still says .vercel.app. In this lesson we swap that out for a real domain. It’s a small change that makes a big difference in how the product is perceived.


Watch the Lesson


ℹ️
How I’d suggest going through this: Watch the video first without stopping — just get the big picture. Then come back here and work through the guide section by section, pausing the video at the timestamps I’ve noted. After that, this guide is your reference — you shouldn’t need to rewatch to look something up.

What We’re Covering

Here’s what I’m walking you through in this lesson:

  • Why the .vercel.app URL isn’t your final address — and why a custom domain matters for perception and trust
  • Getting a domain — what to look for and where I buy mine
  • Adding the domain in Vercel — the two or three clicks it takes inside the dashboard
  • Updating your DNS records — the one change you need to make at your registrar
  • Verifying it’s live — what to check and how long to expect it to take

1. Let’s Set the Scene (~0:00)

At this point, we’re going into what is — honestly — as exciting to me as it probably is to you. We’ve been building all this stuff out, and now we’re at the part where it goes fully live with a real address.

In the previous lessons, we built the landing page, connected email capture, and deployed to Vercel. When you open that .vercel.app link and share it with someone, it works — but it doesn’t look like a product yet. It looks like a prototype or a dev environment. A custom domain changes that.

The goal of the landing page, remember, is to get people to sign up for the waitlist. We’re driving traffic to it and getting people to say I want to use this. That’s harder to do when the URL reads nurturo-landing-page-abc123.vercel.app. People notice those things, even if they don’t consciously register why.

This is the step that makes the page feel like a real product you’re launching — not something you’re still tinkering with.

ℹ️
Even if you’re building a mobile app (not a web app), this still matters. Your landing page is the public face of your product before it ships. It needs a proper home on the internet.

2. The Core Idea

2.1 What a Custom Domain Actually Is

When someone types nurturo.app into a browser, the internet needs to know which server to send them to. That routing is handled by DNS — Domain Name System. Think of it as a massive phonebook: “when someone asks for nurturo.app, send them to Vercel’s servers.”

Right now your site lives at Vercel’s servers, but the phonebook entry points to a Vercel subdomain — not your name. What we’re doing in this lesson is adding a new phonebook entry: “when someone asks for nurturo.app, send them to the same Vercel deployment.”

You do this by adding a DNS record at your domain registrar. That’s it. One record. Vercel handles everything else.

2.2 Why This Comes After Everything Else

We’ve deliberately left this until the end of the Build module because domain changes involve DNS propagation — a period of time (anywhere from a few minutes to 48 hours) where the new routing is spreading across the internet. There’s nothing to do during that window except wait.

By the time you do this, your page is already live and working. We’re just upgrading the address, not rebuilding the house.

2.3 How This Connects to Module 4, Lesson 3 — Connect to Vercel

In Module 4, Lesson 3, we set up the GitHub → Vercel deployment pipeline. Your project is already live on Vercel — we’re not redeploying anything in this lesson. We’re just telling Vercel “this custom domain also belongs to this project,” and telling your domain registrar “send traffic for this domain to Vercel.”


3. Get a Domain (~1:00)

If you already have a domain for your product, skip this section. If not — here’s how I approach it.

3.1 Where to Buy

I use Namecheap for most domains. It’s straightforward, reasonably priced, and the DNS management interface is clear. Other good options are Porkbun (often has great first-year prices) or Cloudflare Registrar (sells at cost, no markup). I’d avoid GoDaddy — the upsells are relentless and the UX is not great.

3.2 What to Look For

Keep it simple. For a landing page at this stage, you want:

  • Short — easy to type, easy to say out loud
  • Memorable — one word is better than three
  • .com if you can — it carries more weight than people like to admit. If .com is taken, .co or .io or app are solid alternatives depending on your market

Don’t overthink this. You’re not naming your company — you’re giving the landing page a home. Pick something that makes sense and move on.

3.3 Register and Log In

Go to your registrar, search for your domain, purchase it. Once it’s in your account, you’ll need to access your DNS settings — that’s the panel where you manage your DNS records. In Namecheap, it’s under Advanced DNS on the domain management page.

Leave that tab open — you’ll be coming back to it shortly.


4. Add the Domain in Vercel (~2:30)

4.1 Go to Your Project in Vercel

Log into vercel.com and open the project you deployed in Module 4, Lesson 3. At the top of the project page, you’ll see a set of tabs — look for Settings.

Inside Settings, find Domains in the left sidebar.

4.2 Add Your Domain

Click Add Domain. Type in your domain — for example, nurturo.app. Click Add.

Vercel will immediately tell you what DNS records you need to set. It usually shows you one of two things:

  • An A record pointing to Vercel’s IP address (for the root domain — yournurturo.com)
  • A CNAME record pointing to cname.vercel-dns.com (for a www subdomain — www.yournurturo.com)
💡
Vercel will show you the exact values you need to copy. Don’t try to remember them — keep the Vercel tab open alongside your registrar tab so you can copy and paste directly.

Vercel will show a red or yellow status next to the domain — that’s expected. It means it hasn’t verified the DNS change yet. That changes once you update your records.


5. Update Your DNS Records (~3:30)

5.1 Go to Your Registrar’s DNS Settings

Switch to the tab where you have your registrar open. Navigate to your DNS management panel — in Namecheap, this is Advanced DNS on your domain page. In other registrars, it might be called “DNS Zone Editor” or just “DNS Settings.”

You’re looking for where you can add or edit DNS records.

5.2 Add the Records Vercel Gave You

Vercel will typically ask for two records:

Record 1 — Root domain (@)

Type Host Value TTL
A @ 76.76.21.21 Automatic

Record 2 — www subdomain

Type Host Value TTL
CNAME www cname.vercel-dns.com Automatic
⚠️
Copy the exact values from your Vercel dashboard — don’t copy the values from these notes. Vercel’s IP addresses and CNAME targets are correct as of when this was written, but always defer to what Vercel is currently telling you in the interface.

In Namecheap, to add a record: click Add New Record, set the type, fill in the host and value, and save. Do this for both records.

5.3 Remove Conflicting Records (If Any)

If there’s already an A record or CNAME for @ or www pointing somewhere else (like a parking page), delete those first. You can’t have two A records for the same host pointing to different places — the old one will override or conflict with the new one.


6. Wait for Propagation (~4:30)

Once you’ve saved the DNS records, go back to Vercel. Refresh the Domains page for your project.

Vercel will start checking automatically. In most cases — especially with Namecheap — this happens within a few minutes. Sometimes it takes longer. DNS propagation is just the internet updating its phonebook entries, and some parts of the internet update faster than others.

When Vercel shows a green checkmark next to your domain, you’re done. Open a new browser tab, type your domain, and your landing page should appear.

If your page loads at your custom domain — with HTTPS — that’s it. You’re live with a proper address.
ℹ️
Vercel automatically provisions an SSL certificate (HTTPS) for your custom domain once the DNS is verified. You don’t need to set that up manually — it just happens. Give it a few minutes after the domain goes green.

7. Try It Yourself

Exercise 1: Get the Domain Connected

What to do: If you don’t already have a domain, buy one. Then follow sections 4 and 5 — add it in Vercel, copy the DNS records Vercel gives you, and enter them at your registrar.

A nudge if you’re stuck: The most common confusion is which record goes where. Remember: the A record is for the root domain (the @ or blank host field), and the CNAME is for www. Vercel will tell you both.

How you’ll know it’s working: Vercel shows a green checkmark next to your domain, and typing the domain in the browser loads your landing page.

What to do: Once your domain is live, share it with at least one real person. Not just open it yourself — send the link to someone.

What this is practising: Validation. The point of this whole module was to get something people can visit. Sharing it is the final step in making it real, not just technically live.


8. You Should Be Able to Build This Now

Here’s what you can do with what we just covered:

  • Connect any custom domain to a Vercel deployment
  • Add A and CNAME DNS records at any major registrar
  • Understand what DNS propagation is and how long to expect it to take

Check Yourself

  • I have a domain registered and I know how to access its DNS settings
  • I’ve added the domain in my Vercel project under Settings → Domains
  • I’ve added the A record and CNAME record at my registrar exactly as Vercel specified
  • Vercel shows a green checkmark next to my domain
  • I’ve confirmed the page loads at my custom domain (with HTTPS)
If you’re ticking those boxes — you’re done with the landing page build. You’ve gone from nothing to a live, email-capturing, properly-addressed product page. That’s real.

If Something’s Not Working

⚠️
Vercel still showing red after 30+ minutes
What’s happening: Either the DNS records haven’t propagated yet, or the values were entered incorrectly.
How to fix it: Double-check the records in your registrar — make sure the host and value fields match exactly what Vercel specified. One typo in the CNAME value will cause this. If everything looks right, just wait — some registrars take a few hours.
⚠️
Domain loads but shows a different page (or an old site)
What’s happening: There may be old DNS records or caching getting in the way.
How to fix it: Check your registrar’s DNS settings and delete any A records or CNAMEs that aren’t the ones you added for Vercel. Then try a hard refresh in your browser (Shift+Ctrl+R on Windows, Shift+Command+R on Mac) or open the link in an incognito window.
⚠️
HTTPS isn’t working — browser shows “Not Secure”
What’s happening: Vercel’s SSL certificate provisioning takes a few minutes after the domain goes green. It’s not instant.
How to fix it: Wait 5–10 minutes after the domain verifies, then try again. If it’s still showing after an hour, check Vercel’s SSL settings in your project dashboard — sometimes you need to manually trigger a certificate refresh.
⚠️
Conflicting existing A record — can’t add Vercel’s
What’s happening: Your registrar probably added a default A record pointing to a parking page when you registered the domain.
How to fix it: Delete the existing A record for @ first, then add Vercel’s. You can only have one A record per host pointing to one destination.

The Short Version

Here’s what I want you to walk away with:

  • A .vercel.app URL is temporary — it works, but it doesn’t signal “real product” to visitors
  • Custom domains work via DNS — you add two records at your registrar, Vercel picks them up, and your domain starts routing to your deployment
  • Vercel handles HTTPS automatically — once the domain verifies, the SSL certificate is provisioned for you
  • DNS propagation takes time — usually minutes, sometimes hours. Not a bug, just how the internet works

Quick Reference

DNS Records to Add at Your Registrar

Type Host Value TTL
A @ (copy from Vercel — usually 76.76.21.21) Automatic
CNAME www cname.vercel-dns.com Automatic

(Always use the exact values Vercel gives you — don’t rely on this table alone)

Where to Find Things in Vercel

Your project → Settings (top nav) → Domains (left sidebar) → Add Domain

DNS Settings in Common Registrars

Namecheap   → Domain List → Manage → Advanced DNS
Porkbun     → Account → Domain Management → DNS Records
GoDaddy     → My Products → DNS → Manage Zones
Cloudflare  → DNS → Records

Checking Propagation

Open a terminal and run:

dig yourdomainname.com

You should see Vercel’s IP address (76.76.21.21) in the A record section. If you see something else, propagation hasn’t reached your network yet. Give it more time.


Resources

Tools Used

  • Vercel — deployment and hosting platform, used since Module 4, Lesson 3
  • WebStorm — IDE used throughout the course (VS Code works fine too)

Questions I Get Asked

Q: Do I really need a .com? What about .io or .co?

.com carries more instinctive trust, especially outside the tech world. But .io is well understood in the startup space and .co is clean and recognisable. If .com is taken and you can get .co or .io, that’s a fine call. What I’d avoid is anything obscure — .xyz, .biz, .info. They read as low-effort to most people.

Q: Can I use a domain I already have that’s pointing somewhere else?

Yes — but you’ll need to update the DNS records, which will redirect the domain to Vercel. If that domain is actively being used for something else (like an existing website), you’ll take that down by changing the records. Make sure you understand what you’re pointing away from before you do this.

Q: Do I need both the A record and the CNAME, or just one?

Both. The A record handles the root domain (yournurturo.com), and the CNAME handles the www version (www.yournurturo.com). Vercel will redirect one to the other automatically — but you need both records for it to verify and provision the certificate correctly.

Q: How long does DNS propagation actually take?

In my experience with Namecheap → Vercel, it’s usually 5–15 minutes. The theoretical maximum is 48 hours (that’s the TTL), but in practice it’s rarely that long. If you’re still seeing red in Vercel after an hour, recheck the record values — something is usually off.

Q: What happens to my .vercel.app URL once I add a custom domain?

It still works. Vercel doesn’t disable it. You’ll have two addresses pointing to the same deployment — the original Vercel subdomain and your new custom domain. Some people keep the Vercel URL as a backup; some just ignore it. Either way, it’s not going anywhere unless you explicitly remove it.

Q: How do I know I’m ready to move on?

Your custom domain loads your landing page with HTTPS in the browser. That’s the bar. When that’s working, you’re done with this lesson.


💬 Stuck? Come Talk to Us

💡
If something’s not clicking or you want to share what you’ve built — come find us in Discord.
The Product Path community → https://discord.gg/RFXRf9yg
Drop your question in the right channel. The community’s active and I check in there too.

Glossary

Custom domain: A domain name you own — like yournurturo.com — as opposed to the free subdomain Vercel assigns to your project (something.vercel.app). Connected to your Vercel deployment via DNS records. (introduced in Module 4, Lesson 4)

DNS (Domain Name System): The internet’s phonebook. When someone types a domain name into a browser, DNS translates it into the IP address of the server that should respond. (introduced in Module 4, Lesson 4)

A record: A type of DNS record that maps a domain name to an IP address. Used here to point your root domain (@) at Vercel’s servers. (introduced in Module 4, Lesson 4)

CNAME record: A type of DNS record that maps one domain name to another. Used here to point www.yournurturo.com at cname.vercel-dns.com, which Vercel then resolves to the right deployment. (introduced in Module 4, Lesson 4)

DNS propagation: The time it takes for a DNS record change to spread across the internet’s network of servers. Usually minutes, can take up to 48 hours. Nothing you can do to speed it up — just wait. (introduced in Module 4, Lesson 4)

Domain registrar: The company where you bought your domain name. Namecheap, Porkbun, Cloudflare, and GoDaddy are examples. Your registrar is where you go to manage DNS records. (introduced in Module 4, Lesson 4)

SSL certificate / HTTPS: The encryption layer that makes your site load with https:// instead of http://. Vercel provisions this automatically for custom domains once DNS is verified. The padlock icon in the browser address bar means it’s working. (introduced in Module 4, Lesson 4)

Vercel subdomain: The free URL Vercel gives every deployment — something like your-project.vercel.app. Works, but doesn’t look like a finished product. Replaced in this lesson with a proper custom domain. (first introduced in Module 4, Lesson 3 — Connect to Vercel)

Discuss this lesson in the community