- ›
/domain— register, transfer, and configure domains for any Naïve Company in one call - ›
Cloudflare-backed DNS— propagation in seconds, not hours; full DNSSEC support - ›
Email records auto-configured— DKIM, SPF, DMARC, MX records published when /email is attached - ›
Connect to apps in one call— connect_domain_to_app for landing pages, blogs, and storefronts - ›
Composes with /llc, /email, /brand— the Company's public identity ships from one primitive - ›
Transfer-friendly— bring an existing domain via standard transfer codes or auth-code-less in-Cloudflare moves
Today we're launching /domain — the primitive that gives a Naïve Company a real internet identity. Register or transfer a domain, configure DNS via Cloudflare, auto-publish email records when /email is attached, and point the domain at landing pages, blogs, or storefronts. The first thing every Company needs after formation.
The problem: DNS is the slowest blocker for autonomous businesses
Every agent-run business needs a domain. The Company's email lives on it. Customers find the brand through it. Partner integrations route through it. And yet: domain configuration is the slowest, most-fragile primitive in the stack.
The status quo:
- Buy at GoDaddy / Namecheap, manually copy DNS records into a registrar UI — agent-hostile, error-prone, breaks every time the UI changes.
- Use a registrar API like Cloudflare, Porkbun, or Hover — works, but you're now building DNS configuration, DNSSEC, email-record publishing, and renewal handling yourself.
- Static DNS hosted on Vercel or Netlify — fast, but no email, no DNSSEC, no transfer story.
The result: most agent-run companies operate with broken email, missing DNSSEC, or a domain that can't be transferred without a week of registrar dance. Until now.
How /domain works
The workflow is three steps:
- Register —
register_domainwith a name and a Company ID. Naïve registers via Cloudflare and configures DNS by default. - Configure — DKIM, SPF, DMARC, and MX records auto-publish when
/emailis attached. CNAMEs and apex records auto-publish whenconnect_domain_to_appis called. - Verify —
check_domain_dnsreturns propagation status across major resolvers;retry_domain_dnsre-runs verification after a delay.
Two ways to register: prompt or code
1. Natural language
naive domains purchase lumenletters.com
The CLI registers the domain at Cloudflare, attaches it to the Company, and publishes DKIM/SPF/DMARC/MX records for the Company's /email sending pool.
2. Code
const res = await fetch("https://api.usenaive.ai/v1/domains/purchase", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.NAIVE_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
domain: "lumenletters.com",
}),
});
const domain = await res.json();
// domain.id, domain.status, domain.dns_records
DNSSEC is enabled by default. The runtime publishes the DS records to the registrar automatically.
DNS that propagates in seconds
The thing that makes /domain work end-to-end is Cloudflare's authoritative DNS. Anycast routing, sub-second propagation, automatic DNSSEC. When /email attaches a new domain, the records are visible to receiving mail servers within seconds — not the 24-48 hour TTL nightmare you'd get from a typical registrar.
# Connect a domain
naive domains connect lumenletters.com
# Check DNS records
naive domains dns-records <domain_id>
# Verify DNS propagation
naive domains verify <domain_id>
This matters because email reputation accrues per-domain. If you're waiting hours for DNS, you're waiting hours per Employee, per Company. The compounding cost of slow DNS in an agent context is one of the silent killers of deliverability.
Connect a domain to an app in one call
Most Companies want their domain pointed at something — a landing page, a blog, a storefront. connect_domain_to_app configures the apex (or any subdomain) to point at a Naïve-deployed app:
naive domains connect lumenletters.com --app app_landing_v3
# SSL provisioned, redirects configured, www → apex set up.
For external apps (Vercel, Netlify, Cloudflare Pages), Naïve publishes the appropriate CNAME and pre-validates the SSL hand-off so there's no race condition during issuance.
Bring an existing domain
If you already have a domain, transfer it in or just point its nameservers at Cloudflare:
naive domains connect lumenletters.com
For domains already at Cloudflare under a different account, Naïve supports auth-code-less in-Cloudflare moves. For external registrars, the standard ICANN transfer flow applies.
What you can build with /domain
Provision the full identity for a newly-formed Company — Compose /domain with /llc, /email, and /brand so within minutes of forming, the Company has a domain, branded email, and a landing page.
Run a fleet of single-purpose Companies with isolated identities — Each autonomous business has its own domain, its own email reputation, and its own brand. None contaminate the others.
Spin up disposable domains for experiments — Register a .io for a test campaign, attach email, run the experiment, and either keep it or let it lapse. Cheap and fast.
Manage subdomains for content distribution — blog.lumenletters.com for the blog, mail.lumenletters.com for transactional, studio.lumenletters.com for the public app — all configured per-subdomain in the same primitive.
Migrate existing brand domains to agent-runnable infrastructure — Transfer in via auth code; DNS, email, SSL all auto-configure on the Naïve side; the agent can take over comms and distribution from there.
Get started
- Read the docs: usenaive.ai/docs/guides/domains
- Quickstart: usenaive.ai/docs/getting-started/quickstart
- Background reading: Cloudflare Registrar, DNSSEC overview, and RFC 7489 (DMARC).
- Join the community on Discord