Nymwell
Nymwell foundation

Connect a Domain to Vercel, Netlify, Cloudflare Pages or GitHub Pages

The DNS records Vercel, Netlify, Cloudflare Pages and GitHub Pages ask for, for the root domain and for www, how to set them on Nymwell, and how to check that HTTPS works.

View as Markdown

This guide is for developers who have deployed a project and want it on their own domain. It lists the records each host asks for, for the root domain (example.com) and for www, as each host documents them on 2026-11-01, then shows how to set them on Nymwell and how to check the result.

  • Add the domain on the host first. Cloudflare Pages and GitHub Pages both say to add the custom domain in their dashboard before you create DNS records [1][2].
  • The root and www take different records. The root gets A records (on Cloudflare Pages, the whole domain moves to Cloudflare); www gets a CNAME that points at the host.
  • Copy the values your host shows you. Vercel and Netlify give each project its own target, so the dashboard is the source of truth [3][4].
  • The host issues the HTTPS certificate once DNS points at it. Allow up to a day for DNS changes to reach everyone [2][4].

Which records does each host ask for?

HostRoot (example.com) and www
VercelRoot: A 76.76.21.21, or the address on your domain card. www: CNAME from your domain card.
NetlifyRoot: A 75.2.60.5. www: CNAME to <site>.netlify.app.
Cloudflare PagesRoot: move the domain to Cloudflare (nameservers). www: CNAME to <project>.pages.dev.
GitHub PagesRoot: four A records, 185.199.108.153 to 185.199.111.153. www: CNAME to <user>.github.io.

Checked against each host's documentation on 2026-11-01. <site>, <project> and <user> stand for your own names on that host.

How do I connect a domain to Vercel?

In the project, open Settings, then Domains, and add the domain. If you add example.com, Vercel offers to add www as well and recommends using www with a redirect from the root. From a terminal, vercel domains add example.com <project> does the same [5].

Then create the records on the domain card:

@    A      76.76.21.21                  # or the address your domain card shows
www  CNAME  <the target on your domain card>

76.76.21.21 is the usual address for the root, but Vercel says to always use the value on your project's domain card, and newer projects can get a different one [3]. The www target is unique to each project, for example d1d4fc829fe7bc7c.vercel-dns-017.com [5]. Vercel also says to remove any AAAA records on the root [3].

Once the records have propagated, Vercel requests a Let's Encrypt certificate for the domain by itself [6].

How do I add a custom domain to Netlify?

Add the domain to your site in Netlify first. At the end of that step Netlify shows the CNAME to create [4].

@    A      75.2.60.5
www  CNAME  <site>.netlify.app            # the subdomain Netlify shows you

For the root, Netlify's first choice is an ALIAS, ANAME or flattened CNAME pointing at apex-loadbalancer.netlify.com; where the DNS provider has no such record, it asks for an A record to 75.2.60.5 [4]. Nymwell's DNS offers A, AAAA, CNAME, MX, TXT, SRV and NS records, so on Nymwell you use the A record.

Netlify provisions a Let's Encrypt certificate automatically when you add a custom domain, and renews it [7].

How do I set a custom domain on Cloudflare Pages?

It depends on whether you use a subdomain or the root.

**A subdomain such as www or app** can stay on Nymwell's DNS. In the Pages project, add the custom domain first, then create a CNAME to <project>.pages.dev. If the CNAME exists before the domain is added in the dashboard, the name fails to resolve and shows a 522 error [1].

The root domain has to be a zone on the same Cloudflare account as the Pages project, which means pointing the domain's nameservers to Cloudflare [1]. After that, Cloudflare answers for all of the domain's DNS, so copy your other records, email included, to Cloudflare first. On Nymwell you change the nameservers on the domain's page; it's a sensitive change, so the console asks you to confirm it.

How do I use a custom domain with GitHub Pages?

Add the domain in the repository's Pages settings before you touch DNS. GitHub warns that doing it the other way round could let someone else host a site on your subdomain [2].

@    A      185.199.108.153
@    A      185.199.109.153
@    A      185.199.110.153
@    A      185.199.111.153
www  CNAME  <user>.github.io             # without the repository name

GitHub also lists four optional AAAA addresses, 2606:50c0:8000::153 to 2606:50c0:8003::153, and strongly recommends against wildcard records such as *.example.com [2]. The Enforce HTTPS option can take up to 24 hours to become available after DNS is set [2].

How do I set the records on Nymwell?

The quickest way is a preset. Open the domain in the console, go to DNS, and under Connect a website pick Vercel, Netlify, GitHub Pages or Cloudflare Pages. Where the host gives you an address, such as your-site.netlify.app, enter it. Nymwell lists the records it will add and asks you to confirm; you can take them back in one step afterwards.

This is what each preset adds:

PresetRecords it adds
VercelA @ 76.76.21.21, CNAME www cname.vercel-dns.com
NetlifyA @ 75.2.60.5, CNAME www to the site you enter
GitHub PagesFour A @ records, CNAME www to the address you enter
Cloudflare PagesCNAME www to the project you enter

A preset only adds records. It skips ones that are already there, but it doesn't remove other A, AAAA or CNAME records for the same name, so delete any leftovers in the records list. If your Vercel domain card shows values that differ from the preset's, add the card's values as records yourself instead.

Owners and admins apply a preset at once; when a domain manager or DNS operator applies one, the change goes to Approvals. An AI agent connected over the signed-in MCP server (https://nymwell.com/mcp/account) can apply the same presets or stage single records, and the workspace's setting decides whether the change applies at once or waits for you. The nymwell CLI reads records (npx nymwell dns example.com, with an agent key) but doesn't change them.

How long does it take, and when does HTTPS work?

DNS changes can take up to 24 hours to reach everyone, according to GitHub; Netlify says it may take a full day [2][4]. Records added by a Nymwell preset have a TTL of 300 seconds.

The certificate comes after DNS. Vercel and Netlify request one from Let's Encrypt on their own [6][7]. Cloudflare issues the certificate for a Pages custom domain, and a CAA record that doesn't allow its certificate authorities stops it [1]. On GitHub Pages, turn on Enforce HTTPS once the option appears [2].

How do I check that it's working?

Ask for the public records of the name you connected:

npx nymwell info www.example.com --json

In the answer, dns.a and dns.aaaa show the addresses the name resolves to now, and website.https shows whether it answers over HTTPS. Without --json you get a short summary. This is part of what it printed for nextjs.org on 2026-11-01, with some lines left out:

$ npx nymwell info nextjs.org
nextjs.org: registered
  nameservers ns1.vercel-dns.com, ns2.vercel-dns.com
  website     answers over HTTPS

If you prefer dig, GitHub's guide lists the commands for the root and for www [2].

What usually goes wrong?

A CNAME on the root. DNS doesn't allow a CNAME at the root name, and Nymwell refuses one. Use the host's A records, or move the zone as Cloudflare Pages asks.

Old records for the same name. When a domain shows an invalid configuration, Vercel's first suggestion is to look for conflicting A, AAAA or CNAME records for the same name [5].

Records created too early. On Cloudflare Pages a CNAME added before the domain shows a 522 error [1]; on GitHub Pages it opens the door to a takeover [2].

A CAA record that blocks the certificate. Vercel and Netlify use Let's Encrypt [6][7]; Cloudflare lists the authorities to allow for Pages [1]. If the domain has CAA records, make sure they include your host's.

Can Claude Code do this for me?

Partly. In a terminal it can run the host's own CLI, such as vercel domains add, and check the result with npx nymwell info. Changing records on Nymwell goes through the console or through the signed-in MCP connection described above. Buy a domain from Claude Code covers the setup.

Questions

Should I use www or the root domain? Add both and redirect one to the other. Vercel recommends serving from www with a redirect from the root, and GitHub recommends setting up www alongside the root for HTTPS [5][2].

Do I need to change my nameservers? Not for Vercel, Netlify or GitHub Pages: the A and CNAME records are enough, and Vercel notes that changing only those doesn't require moving your other DNS records [5]. Cloudflare Pages needs the nameservers on Cloudflare only for the root domain [1].

Will connecting my site affect email? Not if you only change the A, AAAA and CNAME records for the root and www; MX records stay as they are. If you move the nameservers to another provider, copy the MX and TXT records there first [5].

Why does my host still say the configuration is invalid? Usually because DNS hasn't propagated yet, an old record for the same name is still there, or the value differs from the one in the host's dashboard. Compare with npx nymwell info and the dashboard [5].

Can I undo a preset? Yes. The console can take back the records a preset added in one step.

Next step

Add your domain on the host, then open it in the Nymwell console, apply the matching preset under DNS, and check it with npx nymwell info www.yourdomain.com once the host shows the domain as ready.

Sources

Checked on 2026-11-01.

  1. Cloudflare Pages docs, custom domains: https://developers.cloudflare.com/pages/configuration/custom-domains/
  2. GitHub Docs, managing a custom domain for your GitHub Pages site: https://docs.github.com/en/pages/configuring-a-custom-domain-for-your-github-pages-site/managing-a-custom-domain-for-your-github-pages-site
  3. Vercel Knowledge Base, can I use my domain on Vercel with A records?: https://vercel.com/kb/guide/a-record-and-caa-with-vercel
  4. Netlify docs, configure external DNS for a custom domain: https://docs.netlify.com/manage/domains/configure-domains/configure-external-dns/
  5. Vercel docs, adding and configuring a custom domain: https://vercel.com/docs/domains/working-with-domains/add-a-domain
  6. Vercel docs, working with SSL certificates: https://vercel.com/docs/domains/working-with-ssl
  7. Netlify docs, HTTPS (SSL): https://docs.netlify.com/manage/domains/secure-domains-with-https/https-ssl/