Setting up a Namecheap domain on Begin.
Tags: namecheap, dns, serverless, aws
Published: 2021-01-14 13:51:29

## Introduction

> This article will give you a complete walk-through for setting up your Namecheap domain on your Begin app. The entire process should take no longer than 10 minutes.

Although you may use a free registrar-based DNS to host your domain on Begin such as Godaddy, Namecheap, One.com, etc., Route53 is the preferred registrar and DNS management system for Begin users:

- It's integrated with Amazon's other cloud services.
- Your DNS will resolve from 15+ locations worldwide, making your website faster for your end-users.
- Route53 is a DNS management system (Smart DNS) compared to all the others, which are merely domain registrars with a limited feature set for manipulating DNS.

Check out our guide for [Setting up an AWS Route53 domain on Begin](https://dev.to/shawnhosea/setting-up-an-aws-route53-domain-on-begin-4gcm)

---

> This article assumes that you have already: 
- signed up for Namecheap 
- purchased the domain of your choice 
- created your Begin app to map your domain

## Step 1: Getting started.

 The first step in domain mapping is to enter the domains you'll be using.

Begin's first-class support for staging environments means you'll need to add a staging domain (or subdomain), too.

Say your domain is `www.zombo.com`. We'd suggest keeping it simple and setting your staging domain to staging.zombo.com – but you can also opt to configure it to be `zombostaging.net` if you prefer.

This article is for users that want to map a `naked domain`. A naked domain (also referred to as a zone apex) is simply a domain set up to respond to requests without a subdomain. For example:

- `https://begin.com` is a web address using a naked domain
- `https://docs.begin.com` has a subdomain and is thus not a naked domain.

Namecheap has the ability to add ALIAS records (also sometimes called `ANAME`, or `A ALIAS`), in order to create a mapped naked domain.

In the next step, you'll enter the first two values in your DNS provider's interface, which will prove you own your domains and generate your SSL certificates.

![Screen Shot 2021-01-14 at 6.42.28 AM](https://dev-to-uploads.s3.amazonaws.com/i/76q4fbdx1s848zp7cy19.png)

## Step 2: Verify your ownership of the domain(s).

In this step, you'll need to add two `CNAME` values to your Namecheap DNS in order to verify your ownership of the domain and generate your SSL certificates for HTTPS.

Head back to the Namecheap console and navigate to the `Advanced DNS` page for your specific domain. During the SSL verification step, the first part of the name gets entered as your CNAME subdomain, and the value is inputted as the value. For instance, when you're provided the following CNAME entry:

- Name: `_2f9b34277e4b159e0beaa859e8802a93.www.example.com`
- Value: `_58cb94c5d71976edd03e8303fc1a126b.acm-validations.aws.`

You'll add a CNAME subdomain of 
- `_2f9b34277e4b159e0beaa859e8802a93` within your Namecheap 
- `Host` zone, and set its value to `_58cb94c5d71976edd03e8303fc1a126b.acm-validations.aws.`.

![Screen Shot 2021-01-14 at 7.20.50 AM](https://dev-to-uploads.s3.amazonaws.com/i/wwcd9ofxt2galwhkpsm3.png)

Due to the eventually consistent nature of DNS-based verification, it may take a few minutes for your changes to get picked up. Check back after a few minutes, and your values should be green, and you should be able to complete the next and final step.

> If for some reason after more than a few minutes your domains haven't verified, make sure that you've correctly entered the settings into your DNS.

![Screen Shot 2021-01-14 at 6.44.32 AM](https://dev-to-uploads.s3.amazonaws.com/i/7xsptz8ggih0tskgzaqo.png)

## Step 3: Map the domain to your Begin app.

In the final step, you'll add the final `CNAME` and `ALIAS` records to your Namecheap. This points your domain at your Begin app.

When you provide the `CNAME` record:

- Switch to `CNAME` record setting.
- Host: `staging`
- Value: `pi1f6fddqd0dje.cloudfront.net`


When you provide the `ALIAS` record:

- Switch to `Alias` record setting.
- Host: `@`
- Value: `pi1f6fddqd0dje.cloudfront.net`

## Conclusion

Now we're done! You can check to see if your domains are online with this [DNS Checker tool](https://dnschecker.org/).

Keep in mind that it make take a few hours for DNS to fully propagate so be patient.

### Starting over

Something not looking right? No sweat, DNS can be finicky. If you need to hit the reset button, just click Start over (or, if you've finished mapping your domain, Delete domain mapping).

Your app will then be restored to its original `yourappname.begin.app` URLs, and you'll be able to re-map your domain again.