<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Prashant Kumar]]></title><description><![CDATA[Prashant Kumar]]></description><link>https://pkdevpro.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Sun, 04 Oct 2026 15:10:36 GMT</lastBuildDate><atom:link href="https://pkdevpro.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[How I Connected My Namecheap Domain to a Next.js Portfolio on Vercel]]></title><description><![CDATA[Introduction
I recently connected my new custom domain, pkdev.pro, to my Next.js developer portfolio hosted on Vercel.
At first, I thought this would be a simple process:
Buy domain → connect domain →]]></description><link>https://pkdevpro.hashnode.dev/how-i-connected-my-namecheap-domain-to-a-next-js-portfolio-on-vercel</link><guid isPermaLink="true">https://pkdevpro.hashnode.dev/how-i-connected-my-namecheap-domain-to-a-next-js-portfolio-on-vercel</guid><category><![CDATA[Next.js]]></category><category><![CDATA[Vercel]]></category><category><![CDATA[dns]]></category><category><![CDATA[JavaScript]]></category><category><![CDATA[Web Development]]></category><dc:creator><![CDATA[Prashant]]></dc:creator><pubDate>Thu, 10 Sep 2026 07:14:29 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6aa24629981d25221a1e7336/c277a4da-f2c1-461e-8124-165230d79066.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>Introduction</h2>
<p>I recently connected my new custom domain, <code>pkdev.pro</code>, to my Next.js developer portfolio hosted on Vercel.</p>
<p>At first, I thought this would be a simple process:</p>
<p><strong>Buy domain → connect domain → done.</strong></p>
<p>But while doing it, I ended up learning several practical concepts that every web developer should understand:</p>
<ul>
<li><p>What DNS actually does</p>
</li>
<li><p>What an <strong>A record</strong> is</p>
</li>
<li><p>What a <strong>CNAME record</strong> is</p>
</li>
<li><p>What <code>@</code> and <code>www</code> mean</p>
</li>
<li><p>Why Namecheap creates default parking records</p>
</li>
<li><p>Why conflicting DNS records can break a domain</p>
</li>
<li><p>How Vercel verifies a custom domain</p>
</li>
<li><p>How HTTPS fits into the process</p>
</li>
</ul>
<p>So in this article, I'll walk through the <strong>exact process I followed to connect</strong> <code>pkdev.pro</code> <strong>from Namecheap to my Next.js portfolio on Vercel.</strong></p>
<hr />
<h2>The final setup</h2>
<p>Before getting into the steps, here's what my setup looks like:</p>
<pre><code class="language-text">User
  │
  ▼
pkdev.pro
  │
  ▼
Namecheap DNS
  │
  ├── A Record (@)
  │
  └── CNAME (www)
          │
          ▼
       Vercel
          │
          ▼
    Next.js Portfolio
</code></pre>
<p>My stack:</p>
<ul>
<li><p><strong>Domain:</strong> <code>pkdev.pro</code></p>
</li>
<li><p><strong>Domain registrar:</strong> Namecheap</p>
</li>
<li><p><strong>DNS:</strong> Namecheap</p>
</li>
<li><p><strong>Application:</strong> Next.js</p>
</li>
<li><p><strong>Hosting:</strong> Vercel</p>
</li>
<li><p><strong>HTTPS:</strong> Vercel</p>
</li>
</ul>
<hr />
<h2>1. Choosing a domain name</h2>
<p>I wanted a short domain for my developer portfolio.</p>
<p>I searched through different domain extensions and compared their prices before eventually choosing <code>pkdev.pro</code>.</p>
<p>During the search, I found several alternatives such as <code>pkdev.tech</code>, <code>pkdev.site</code>, <code>pkdev.sbs</code>, and others.</p>
<p>The important lesson here is:</p>
<blockquote>
<p><strong>Don't look only at the first-year price.</strong></p>
</blockquote>
<p>A domain might be cheap for the first year but have a much higher renewal price. Some promotional offers can also require a longer registration period.</p>
<p>For example, I encountered a <code>.com</code>/<code>.in</code> promotional offer where the ₹1 price was tied to a three-year term.</p>
<p>Eventually, I found <code>pkdev.pro</code> at a price I was comfortable with.</p>
<p>I purchased it through Namecheap.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6aa24629981d25221a1e7336/1406762c-4d3f-4a7e-b3c6-ef4b5d3b09c6.png" alt="" style="display:block;margin:0 auto" />

<hr />
<h2>2. My portfolio was already deployed on Vercel</h2>
<p>My Next.js portfolio was already running on Vercel.</p>
<p>That meant I <strong>didn't need to move my website to another hosting provider</strong>.</p>
<p>I only needed to tell the DNS system:</p>
<blockquote>
<p>"When someone visits <code>pkdev.pro</code>, send them to my Vercel application."</p>
</blockquote>
<p>This is an important distinction:</p>
<p><strong>Namecheap</strong> and <strong>Vercel</strong> are doing different jobs.</p>
<h3>Namecheap</h3>
<p>Namecheap is where I registered the domain and managed its DNS records.</p>
<h3>Vercel</h3>
<p>Vercel hosts and deploys my Next.js application.</p>
<p>So I didn't transfer the domain to Vercel.</p>
<p>I simply connected the two using DNS.</p>
<hr />
<h2>3. Add the domain to Vercel</h2>
<img src="https://cdn.hashnode.com/uploads/covers/6aa24629981d25221a1e7336/a7bfdf89-b665-4e2d-92dc-7f6f62d36730.png" alt="" style="display:block;margin:0 auto" />

<p>Inside my Vercel project, I opened the <strong>Domains</strong> section.</p>
<p>Then I selected <strong>Add Existing</strong> and entered:</p>
<pre><code class="language-text">pkdev.pro
</code></pre>
<p>Vercel then showed me the DNS configuration required for my project.</p>
<p>For my setup, Vercel gave me:</p>
<table>
<thead>
<tr>
<th>Type</th>
<th>Host</th>
<th>Value</th>
</tr>
</thead>
<tbody><tr>
<td>A Record</td>
<td><code>@</code></td>
<td><code>76.76.21.21</code></td>
</tr>
<tr>
<td>CNAME Record</td>
<td><code>www</code></td>
<td><code>cname.vercel-dns.com</code></td>
</tr>
</tbody></table>
<p><strong>Important:</strong> These are the values Vercel gave me for this setup. If you're following this tutorial, <strong>use the values Vercel currently shows for your own project</strong> rather than blindly copying values from a tutorial.</p>
<p>Vercel's current documentation explains the difference between A and CNAME records and how they are used for domain configuration. ([Vercel][2])</p>
<hr />
<h2>4. What is an A record?</h2>
<h2>Before changing anything in Namecheap, it's worth understanding what we're actually doing.</h2>
<p>An <strong>A record</strong>, or Address record, connects a hostname to an IPv4 address.</p>
<p>In my case:</p>
<pre><code class="language-text">A Record

Host:  @
Value: 76.76.21.21
</code></pre>
<p>The <code>@</code> represents the root domain.</p>
<p>So conceptually:</p>
<pre><code class="language-text">pkdev.pro
     ↓
A Record
     ↓
76.76.21.21
</code></pre>
<p>Namecheap's documentation also describes <code>@</code> as the host used for the bare/root domain. ([Namecheap][1])</p>
<hr />
<h2>5. What is a CNAME record?</h2>
<h3>A <strong>CNAME</strong>, or Canonical Name record, creates an alias from one hostname to another hostname.</h3>
<h3>In my case:</h3>
<pre><code class="language-text">CNAME

Host:  www
Value: cname.vercel-dns.com
</code></pre>
<p>So:</p>
<pre><code class="language-text">www.pkdev.pro
       ↓
CNAME
       ↓
cname.vercel-dns.com
</code></pre>
<p>This is different from an A record because the CNAME points to another hostname rather than directly to an IPv4 address.</p>
<p>Namecheap also recommends using CNAME records for hosts such as <code>www</code>, rather than putting a CNAME on the bare/root domain. ([Namecheap][3])</p>
<hr />
<h3>6. The interesting part: Namecheap's default DNS records</h3>
<img src="https://cdn.hashnode.com/uploads/covers/6aa24629981d25221a1e7336/abc7c8c4-7a8d-47a7-a3bc-b963ec82ad50.png" alt="" style="display:block;margin:0 auto" />

<p>This is where I learned something I didn't expect.</p>
<p>After purchasing the domain, Namecheap had automatically created some default records.</p>
<p>I found:</p>
<pre><code class="language-text">CNAME Record

Host:  www
Value: parkingpage.namecheap.com
</code></pre>
<p>and:</p>
<pre><code class="language-text">URL Redirect Record

Host:  @
Value: http://www.pkdev.pro/
</code></pre>
<p>These are essentially <strong>parking/default records</strong>.</p>
<p>The <code>www</code> address was pointing toward Namecheap's parking page rather than my Vercel application.</p>
<p>And the root domain was redirecting to <code>www</code>.</p>
<h3>Why was this a problem?</h3>
<p>Because I needed:</p>
<pre><code class="language-text">@ → Vercel
www → Vercel
</code></pre>
<p>but Namecheap was currently configured as:</p>
<pre><code class="language-text">@ → redirect to www
www → Namecheap parking
</code></pre>
<p>Those records conflicted with the DNS configuration Vercel had provided.</p>
<p>Interestingly, Namecheap's own documentation explains that newly registered domains can have parking records configured by default and that these records should be removed when setting custom host records. It also warns about conflicting A, CNAME, and redirect records. ([Namecheap][4])</p>
<hr />
<h2>7. Remove the conflicting records</h2>
<h3>I removed the two default records:</h3>
<h3>Removed:</h3>
<pre><code class="language-text">CNAME
www → parkingpage.namecheap.com
</code></pre>
<p>and:</p>
<pre><code class="language-text">URL Redirect
@ → http://www.pkdev.pro/
</code></pre>
<p>I <strong>didn't change my nameservers</strong>.</p>
<p>This is an important point.</p>
<p>You don't necessarily need to move your DNS management somewhere else just because you're hosting your website on Vercel.</p>
<p>In my case, Namecheap's DNS was perfectly capable of managing the required A and CNAME records.</p>
<p>Namecheap documents that host records can be managed from:</p>
<p><strong>Domain List → Manage → Advanced DNS → Host Records</strong> when using its supported DNS systems. ([Namecheap][5])</p>
<hr />
<h2>8. Add Vercel's DNS records to Namecheap</h2>
<h3>After removing the conflicting records, I added the records Vercel provided.</h3>
<h3>Inside Namecheap:</h3>
<p><strong>Domain List → Manage → Advanced DNS → Host Records</strong></p>
<p>I added:</p>
<h3>A Record</h3>
<pre><code class="language-text">Type:  A Record
Host:  @
Value: 76.76.21.21
</code></pre>
<h3>CNAME Record</h3>
<pre><code class="language-text">Type:  CNAME Record
Host:  www
Value: cname.vercel-dns.com
</code></pre>
<p>I left the TTL at the default/automatic value.</p>
<p>Namecheap notes that DNS changes can take time to propagate and recommends checking for conflicting records when configuring a domain. ([Namecheap][1])</p>
<hr />
<h2>9. Verify the domain in Vercel</h2>
<img src="https://cdn.hashnode.com/uploads/covers/6aa24629981d25221a1e7336/24a00719-f4e9-4400-b66d-b235d914649c.png" alt="" style="display:block;margin:0 auto" />

<h3>After saving the DNS records, I returned to Vercel.</h3>
<h3>I clicked <strong>Refresh</strong>.</h3>
<p>And then...</p>
<p><strong>Success. 🎉</strong></p>
<p>Both domains showed:</p>
<pre><code class="language-text">✓ Valid Configuration
</code></pre>
<p>The two entries were:</p>
<pre><code class="language-text">pkdev.pro
www.pkdev.pro
</code></pre>
<p>Vercel also showed a:</p>
<pre><code class="language-text">308
</code></pre>
<p>redirect from <code>pkdev.pro</code> to <code>www.pkdev.pro</code>.</p>
<p>A 308 is a permanent redirect response, so seeing that isn't necessarily a problem. It simply means Vercel is redirecting one URL variant to the other.</p>
<p>The important thing is that the intended canonical URL works.</p>
<hr />
<h2>10. Verify the website</h2>
<h3>Now it was time for the most satisfying part.</h3>
<h3>I opened:</h3>
<pre><code class="language-text">https://pkdev.pro
</code></pre>
<p>And my portfolio loaded.</p>
<p>My Next.js portfolio was now accessible through my own custom domain.</p>
<hr />
<h2>11. Verify HTTPS</h2>
<p>The final thing I wanted to confirm was HTTPS.</p>
<p>I opened the website using:</p>
<pre><code class="language-text">https://pkdev.pro
</code></pre>
<p>and verified the browser's connection information.</p>
<p>One thing I learned here is that <strong>you shouldn't rely only on the old padlock icon</strong>.</p>
<p>Modern Chrome versions can display connection information differently.</p>
<p>You can:</p>
<ol>
<li><p>Open <code>https://pkdev.pro</code></p>
</li>
<li><p>Click the connection/settings icon beside the address</p>
</li>
<li><p>Check the connection/security information</p>
</li>
<li><p>Confirm that the connection is secure</p>
</li>
</ol>
<p>You can also press:</p>
<pre><code class="language-text">Ctrl + L
</code></pre>
<p>to focus the address bar and inspect the complete URL.</p>
<p>The final result:</p>
<pre><code class="language-text">https://pkdev.pro
</code></pre>
<p>loads my portfolio securely.</p>
<hr />
<h2>12. Common mistakes when connecting a domain to Vercel</h2>
<h3>Here are the mistakes I'd specifically watch out for.</h3>
<h3>1. Creating duplicate records</h3>
<p>Don't create two different A records or CNAME records for the same host unless your hosting provider explicitly tells you to.</p>
<hr />
<h3>2. Leaving Namecheap's parking record</h3>
<p>If you have:</p>
<pre><code class="language-text">www → parkingpage.namecheap.com
</code></pre>
<p>and then try to create:</p>
<pre><code class="language-text">www → cname.vercel-dns.com
</code></pre>
<p>you have a conflict.</p>
<p>Remove the conflicting record.</p>
<hr />
<h3>3. Using the wrong record type</h3>
<p>Don't assume every domain connection requires a CNAME.</p>
<p>In my setup:</p>
<pre><code class="language-text">@    → A Record
www  → CNAME
</code></pre>
<p>The correct values should come from your hosting provider.</p>
<hr />
<h3>4. Copying DNS values from an old tutorial</h3>
<p>DNS instructions can change.</p>
<p>Instead of copying values from a random blog post, go to your Vercel project and check the DNS configuration Vercel currently provides.</p>
<hr />
<h3>5. Changing nameservers unnecessarily</h3>
<p>If your current DNS provider can manage the records you need, you may not need to change nameservers.</p>
<p>Changing nameservers is a bigger DNS change than simply adding the required host records.</p>
<hr />
<h3>6. Looking only at the first-year domain price</h3>
<p>A domain might look extremely cheap for year one but become significantly more expensive at renewal.</p>
<p>Always check:</p>
<ul>
<li><p>First-year price</p>
</li>
<li><p>Registration term</p>
</li>
<li><p>Renewal price</p>
</li>
<li><p>Taxes/fees</p>
</li>
<li><p>Transfer rules</p>
</li>
</ul>
<hr />
<h2>What I learned from this</h2>
<p>The biggest lesson wasn't actually <strong>how to connect a domain</strong>.</p>
<p>It was understanding how the pieces of the web fit together.</p>
<p>Before doing this, I could deploy a Next.js application to Vercel.</p>
<p>But now I have a better mental model:</p>
<pre><code class="language-text">Domain
  ↓
DNS
  ↓
A / CNAME records
  ↓
Hosting platform
  ↓
Next.js application
  ↓
HTTPS
  ↓
User
</code></pre>
<p><strong>Namecheap doesn't host my portfolio.</strong></p>
<p>It manages my domain and DNS.</p>
<p><strong>Vercel doesn't own my domain.</strong></p>
<p>It hosts my application and handles the deployment/custom-domain side.</p>
<p>DNS is what connects the two.</p>
<p>And once I understood that, the whole process became much less confusing.</p>
<hr />
<h2>Final result</h2>
<h3>My portfolio is now live at:</h3>
<h3><a href="https://pkdev.pro"><strong>https://pkdev.pro</strong></a></h3>
<p>The final setup is:</p>
<pre><code class="language-text">Namecheap
   │
   │ DNS
   ▼
pkdev.pro
   │
   ▼
Vercel
   │
   ▼
Next.js Portfolio
   │
   ▼
HTTPS
</code></pre>
<p>A small setup, but a useful piece of real-world web development knowledge.</p>
<hr />
<h2>Official references</h2>
<p>For readers who want to go deeper:</p>
<ul>
<li><p><a href="https://www.namecheap.com/support/knowledgebase/article.aspx/434/2237/how-do-i-set-up-host-records-for-a-domain/?utm_source=chatgpt.com">Namecheap — How to set up host records</a></p>
</li>
<li><p><a href="https://www.namecheap.com/support/knowledgebase/article.aspx/319/2237/how-can-i-set-up-an-a-address-record-for-my-domain/?utm_source=chatgpt.com">Namecheap — How to set up an A record</a></p>
</li>
<li><p><a href="https://www.namecheap.com/support/knowledgebase/article/9837/46/how-to-connect-a-domain-or-hosting/?utm_source=chatgpt.com">Namecheap — Connect a domain to hosting</a></p>
</li>
<li><p><a href="https://vercel.com/i/cname-vs-a-record?utm_source=chatgpt.com">Vercel — A Record vs CNAME</a></p>
</li>
</ul>
]]></content:encoded></item></channel></rss>