Skip to content

KB-003: Why Atlantis Uses Cloudflare CNAME Flattening

Field Detail
Document ID KB-003
Version 1.0
Date March 2026
Author Gemi (Gemini — Atlantis AI)
Reviewed By Shane Hardin
Applies To Apex/root domain DNS — atlantisits.ai, atlantisits.co
Difficulty Intermediate
Est. Time 5 minutes to read, 5 minutes to configure
Related Docs KB-002 — Cloudflare to Vercel DNS Only, KB-004 — Error 1014

1. Overview

This article explains what CNAME Flattening is, why standard DNS doesn't support CNAMEs at the root domain, and how Cloudflare solves this problem automatically for Atlantis domains.

This is particularly relevant for atlantisits.ai — the newly acquired AI-first domain that needs to point to Vercel without relying on a static IP address.


2. The Problem — Why You Can't CNAME a Root Domain

Standard DNS has a rule: you cannot place a CNAME record at the apex (root) of a domain.

The apex is the naked domain — atlantisits.ai with no subdomain prefix. The DNS standard only allows an A record (a static IP address) at the apex.

This creates a real problem for modern hosting:

  • Vercel, Netlify, and similar platforms don't give you a static IP — they give you a CNAME target like cname.vercel-dns.com
  • Their IP addresses change as they scale and update their infrastructure
  • If you hardcode an A record IP today, it may stop working when Vercel updates their servers
Standard DNS Rule:
  atlantisits.ai → A Record (must be a static IP)   ← problem: Vercel IPs change
  www.atlantisits.ai → CNAME (allowed on subdomains) ← this works fine

3. The Solution — Cloudflare CNAME Flattening

Cloudflare solves this with a feature called CNAME Flattening. It works like this:

  1. You add a CNAME record at the apex in Cloudflare (e.g., atlantisits.ai → cname.vercel-dns.com)
  2. Cloudflare resolves the CNAME behind the scenes in real time
  3. When a visitor's browser requests atlantisits.ai, Cloudflare returns the current IP of the CNAME target — not the CNAME itself
  4. The visitor gets a valid IP address, DNS standards are satisfied, and Vercel's current infrastructure is always used
How CNAME Flattening Works:
  Browser requests atlantisits.ai
    ↓
  Cloudflare resolves cname.vercel-dns.com → gets current IP (e.g., 76.76.21.9)
    ↓
  Cloudflare returns that IP to the browser
    ↓
  Browser connects to Vercel using the current IP
    ↓
  Vercel serves atlantisits.ai — always up to date

💡 TIP: CNAME Flattening is a Cloudflare-specific feature — it is not available in standard DNS providers like GoDaddy DNS or Route 53 (without extra configuration). This is one of the reasons Atlantis uses Cloudflare as the DNS layer for all domains.


4. Configuration

Step 1 — Add the CNAME Record at the Apex

  1. Log in to dash.cloudflare.com as Srhardin@gmail.com
  2. Select your domain (e.g., atlantisits.ai)
  3. Click DNSRecords
  4. Click Add Record
Field Value
Type CNAME
Name @ (the apex/root)
Target cname.vercel-dns.com
Proxy Status ☁️ DNS Only (Grey Cloud)
TTL Auto
  1. Click Save

⚠️ NOTE: Cloudflare will automatically detect that this is an apex CNAME and apply flattening. You do not need to configure anything additional — the feature activates automatically for apex CNAME records.


Step 2 — Verify CNAME Flattening is Active (Optional)

To confirm flattening is working, you can check via the Cloudflare dashboard:

  1. In DNS → Records, look at the record you just created
  2. The record type will show as CNAME in Cloudflare's UI
  3. Externally (via nslookup or dig), the record will resolve as an A record with an IP — this confirms flattening is active
# Run in PowerShell to verify — should return an IP address, not a CNAME
Resolve-DnsName atlantisits.ai -Type A

5. CNAME Flattening vs Standard DNS

Scenario Standard DNS Cloudflare CNAME Flattening
Root domain → static IP ✅ A Record works ✅ A Record also works
Root domain → Vercel/Netlify CNAME ❌ Not allowed by DNS standard ✅ Supported via flattening
IP changes when provider scales ❌ Must manually update A Record ✅ Auto-resolves current IP
Works on subdomains ✅ CNAME supported natively ✅ Also supported
Requires Cloudflare N/A ✅ Yes — Cloudflare-specific feature

6. Atlantis Domain Context

Domain Record Method Notes
atlantisits.ai CNAME @cname.vercel-dns.com CNAME Flattening Newly acquired AI domain — March 2026
atlantisits.co A Record @ → Vercel IP Standard A Record Primary domain
www.atlantisits.co CNAME wwwcname.vercel-dns.com Standard CNAME Subdomain — no flattening needed
ai.atlantisits.co CNAME ai → Vercel target Standard CNAME Roofing Lead Engine

7. Troubleshooting

Error / Symptom Cause Fix
"Cannot add CNAME at apex" error Attempting this in a non-Cloudflare DNS provider Migrate DNS to Cloudflare or use an A record with a static IP
Root domain resolves but www doesn't www CNAME not added separately Add a separate CNAME for wwwcname.vercel-dns.com
Error 1014 on apex domain CNAME cross-user conflict See KB-004 — set Proxy Status to DNS Only
Site works on IP but not domain DNS not propagated Wait 5 minutes, then run Resolve-DnsName to confirm
Cloudflare shows CNAME but nslookup shows A Record This is correct — flattening is working as expected No action needed

8. Quick Reference

Item Value
Feature name CNAME Flattening
Who provides it Cloudflare (automatic for apex CNAMEs)
When to use it Pointing a root/apex domain to Vercel, Netlify, or any CNAME-based host
Record type in Cloudflare UI CNAME
Record type seen externally A Record (IP) — flattening resolves it
Proxy Status required ☁️ DNS Only (Grey Cloud) for Vercel compatibility
Vercel CNAME target cname.vercel-dns.com
Verify with PowerShell Resolve-DnsName atlantisits.ai -Type A
Related error Error 1014 → see KB-004

Document prepared by Gemi (Gemini — Atlantis AI Automations)

atlantisits.info | KB-003 | v1.0 | March 2026