Compare

A customdomain.ai alternative: DoDomain vs customdomain.ai

customdomain.ai and DoDomain are in the same lane: both get the DNS record written inside the customer's own DNS provider rather than asking them to copy it, and both prove the record before go-live. The differences are the price of getting started, how connections are metered, how often drift is checked, how many providers are written automatically, and whether the vendor is willing to be your edge. This page sticks to what each site publishes, and customdomain.ai has changed a lot since our last check.

Facts about customdomain.ai checked on against customdomain.ai (pricing, llms.txt, compare/domain-connect) and docs.customdomain.ai (connect flow, monitoring, webhooks, changelog); check their site for current figures. DoDomain's numbers come from its live plan definitions. Published , updated .

Pricing at a glance

DoDomaincustomdomain.ai
Entry planFree: $0 forever, 50 verified connections per month, no cardStarter: $10/mo for 10 domain connections a year, 14-day trial, card at checkout; blocked past its allowance (per customdomain.ai and customdomain.ai/pricing, retrieved 2026-10-06)
First paid tierPro: $29/mo, 500 connections/moStartup: $149/mo, 600 connections/yr (per customdomain.ai and customdomain.ai/pricing, retrieved 2026-10-06)
Next tierScale: $99/mo, 2,500 connections/mo, unlimited appsGrowth: $649/mo, 600 connections/yr plus overage in 1,000-domain blocks; adds a reverse-proxy edge and automatic HTTPS (per customdomain.ai and customdomain.ai/pricing, retrieved 2026-10-06)
Top tiersEnterprise volume by contact, no quote-only feature tierPremium (12,000/yr, audit trail) and Enterprise (12,000+/yr, white-label, domain resale, contractual SLAs), custom pricing (per customdomain.ai and customdomain.ai/pricing, retrieved 2026-10-06)
Metered byVerified connections per month: a connection counts once, on its first verification; no overage billing, a hard cap insteadDomain connections per year; flat tiers with "no metering" inside a tier, overage blocks on Growth (per customdomain.ai and customdomain.ai/pricing, retrieved 2026-10-06)

Read the meters side by side before the prices: DoDomain counts per month and refuses new sessions at the cap rather than billing overage; customdomain.ai counts per year, and each hostname counts once, so customer.com and app.customer.com are two connections. A product onboarding 40 customers a month sits inside DoDomain's Free plan; on customdomain.ai that is 480 connections a year, which is Startup ($149/mo) territory, not Starter.

What it costs at your volume

customdomain.ai prices flat tiers: a monthly fee buys a yearly allowance of connections, and its pricing page says there is no metering inside a tier. That makes the bill easy to forecast, as long as your growth fits a tier. Past Growth's allowance, the pricing page describes overage in 1,000-domain blocks, and Premium and Enterprise are custom-priced; none of those prices is published. Starter is the only plan that is blocked rather than billed past its allowance, and the pricing page says nothing already live is cut off over volume.

DoDomain meters a verified connection, once, in the month it first goes live. Live domains cost nothing to keep: re-checks and drift monitoring are free and uncapped on every plan. The allowance is a hard cap with no overage billing, so past it new sessions are refused with a 402 quota_exceeded until the next billing month or an upgrade, and existing connections keep working.

ScenarioNew domains a monthDomains liveDoDomaincustomdomain.ai
Launching20100Free: $0 foreverStartup: $149/mo
Growing3002,000Pro: $29 per monthPast every priced allowance: Growth overage blocks, Premium or Enterprise, prices not published
Established2,00020,000Scale: $99 per monthPast every priced allowance: Growth overage blocks, Premium or Enterprise, prices not published

List prices, monthly billing. DoDomain counts a domain once, in the month it first verifies; re-checks and drift monitoring are free on every plan, so live domains add nothing. One-click setup starts on Pro: a cheaper plan above is the guided-records flow. customdomain.ai's column is the cheapest priced tier whose yearly allowance covers the scenario (per customdomain.ai and customdomain.ai/pricing, retrieved 2026-10-06); past 600 a year only Growth overage, Premium or Enterprise apply, and none of their prices is published. It excludes any overage and the cost of its edge beyond the Growth tier.

The honest reading: at launch volume the question is whether a $149 flat tier or a free plan with a monthly allowance fits better. At higher volume customdomain.ai stops printing numbers, and DoDomain's published price list runs through Scale at $99 per month. If you do not need its edge, you also avoid paying for the part of Growth that is not DNS.

Feature by feature

DoDomaincustomdomain.ai
Writes the DNS for the userCloudflare OAuth one-click; signed Domain Connect apply where the provider has enabled DoDomain's templates; guided per-provider records everywhere elsePer its llms.txt, 25 of 63 providers are written automatically (Domain Connect 2, OAuth 6, direct API 17) and 38 are guided; four write paths: OAuth, provider-hosted one-click, your own token, guided manual (per customdomain.ai and customdomain.ai/pricing, retrieved 2026-10-06)
Proof of successAuthoritative-nameserver read on every path before success is declaredPublic DNS first, then the zone's own nameservers when the resolver is stale; a provider's success return is never taken as proof (docs.customdomain.ai)
Drift monitoringEvery 10 min for a connection's first day, hourly for a week, then 6 h; 3 confirmed checks before a break; free, uncapped, every planEvery live domain checked once an hour; automatic repair only where it holds continuous access (3 repairs per 24h); fleet-scale policies and alerting from Premium
Record types per sessionA, AAAA, CNAME, TXT, MX in a records array, apex or subdomain; SPF, DKIM and DMARC are requested as TXT/CNAME records and verified by meaningA, CNAME, TXT, MX, SPF, DKIM per its homepage; its llms.txt adds AAAA, ALIAS/ANAME, DMARC, CAA and 301 redirects; SPF is merged, not overwritten
Serves traffic / issues certificatesNever: TLS terminates at your hostOptional: a reverse-proxy edge with Let's Encrypt certificates and automatic HTTPS from Growth, or hand DNS back to your stack
Developer surfaceREST API, OpenAPI 3.1, @dodomain/node, @dodomain/connect, @dodomain/react, dodomain-sdk (Python), MCP server with eight tools over OAuth 2.1, signed webhooksA 67-endpoint REST API with OpenAPI 3.1, customdomain-js and @customdomain/react on npm, a themed widget, a hosted MCP server, signed webhooks on every plan

How each one proves the record and watches it

The Domain Connect protocol has a structural gap: a DNS provider that accepts a signed apply has no way to tell the service provider whether the write actually landed. Any product that treats the apply redirect as success is trusting a callback, and both products here say they do not. customdomain.ai's docs put it as "a return that reports success is never taken as proof: only public DNS promotes the connection." DoDomain reads the domain's authoritative nameservers on every path (OAuth, Domain Connect, manual) and only then records the connection, meters it, and signs the connection.verified webhook.

The mechanics differ slightly. customdomain.ai's poller resolves each record against public DNS and, when the public answer is stale, asks the zone's own nameservers, requiring every one that answers to serve the record. DoDomain goes to the authoritative nameservers directly. In practice both avoid the failure that matters, a callback standing in for proof, and which read comes first changes how quickly a correct record is confirmed more than whether a wrong one is accepted.

After go-live, the difference is cadence and action. customdomain.ai checks hourly and, where it holds continuous access and repair is on, puts a missing record back; a changed record is never overwritten and repairs stop after 3 per 24 hours. DoDomain checks every 10 minutes in a connection's first day, when most breakage happens, then hourly for a week and every 6 hours after, and it reports rather than repairs: three confirmed checks, then connection.failed naming the records. If you want a vendor that fixes DNS for you, that is a real point for customdomain.ai. If you want the decision kept in your product, it is a point for DoDomain.

What the DoDomain side looks like in code

customdomain.ai and DoDomain are head-to-head at the DNS layer, so the record in a session points the customer's domain at your host. Here that is a CNAME from app.customer.com to cname.yourapp.com. If you chose customdomain.ai's edge, its record would point at its own proxy instead; DoDomain has no equivalent because it never serves the traffic.

The integration is three pieces: a server call that creates the session, a page that opens the connect sheet, and a webhook route that marks the domain live. The records array takes A, AAAA, CNAME, TXT and MX, so an ownership-proof TXT or an apex A record is a second entry in the same call, not a second integration.

// 1. Your server: mint a connect session for the customer's domain.
import { DoDomain, verifyWebhook } from "@dodomain/node";
import { env } from "./env"; // your validated server env

const dodomain = new DoDomain({ secretKey: env.DODOMAIN_SECRET_KEY });
const session = await dodomain.sessions.create({
  domain: "customer.com",
  records: [
    { type: "CNAME", host: "app", value: "cname.yourapp.com" },
  ],
  returnUrl: "https://yourapp.com/settings/domains",
});

// 2. Your page: open the connect sheet with session.token.
import { showDoDomain } from "@dodomain/connect";

showDoDomain({ token, onVerified: ({ domain }) => markDomainLive(domain) });

// 3. Your webhook route: DoDomain calls it once the record is live at the
//    domain's authoritative nameservers, and again if it ever breaks.
if (!verifyWebhook(env.DODOMAIN_WEBHOOK_SECRET, rawBody, signatureHeader)) {
  return new Response("bad signature", { status: 400 });
}

From Pro up, the session picks the path on its own: a Cloudflare-hosted domain gets the OAuth one-click, a provider that has enabled DoDomain's Domain Connect templates gets a signed apply, and every other provider gets step-by-step records for that provider's dashboard. On the free plan every provider gets the step-by-step records. The full walkthrough is in the quickstart.

How to choose, and how to switch

Pick DoDomain when your product already serves custom hostnames somewhere else (Vercel, Caddy, Cloudflare for SaaS) and the missing piece is getting records written correctly and noticing when they break. It fits teams that want a free plan with a monthly allowance to build against, a published price list through Scale, a monitoring schedule that is densest right after setup, and no automatic changes to a customer's zone.

Pick customdomain.ai when you want the vendor to carry more of the stack: an edge with automatic HTTPS, domain registration and resale, managed DNS, auto-repair, a wider record vocabulary, or a self-hosted deployment. Pick it too when your customers' providers are mostly on its automatic list and the entry price matters more than the monthly allowance.

Switching is incremental. DoDomain touches only the customer's DNS and your own code, so you can send new customers through a DoDomain session and leave domains already connected on customdomain.ai alone. If you used its edge, keep serving from it until you have a replacement, since DoDomain will not take that role; DoDomain's SSL guide covers the hosts that do. DoDomain's docs describe no bulk import of domains connected elsewhere, so each domain DoDomain should monitor goes through its own session. Wire the webhook first, with verifyWebhook from @dodomain/node, because that is what your product reacts to.

Where customdomain.ai still wins

Honest flip side, strongest points first. customdomain.ai will be your edge if you want it to: from Growth it serves customer domains from a reverse proxy with on-demand Let's Encrypt certificates, and its docs say connecting and serving are separate planes, with the API never in the proxied request path. DoDomain does not serve traffic at all.

Its entry price is also lower in absolute terms for a small, steady product that needs the edge or its extra features: $149 a month for 600 connections a year, against our $29 Pro for a month's allowance. Its Domain Connect footprint is larger, with 18 templates published to the public registry, and the Starter trial lets you test before paying.

The rest is breadth. A wider record vocabulary (ALIAS/ANAME, CAA and 301 redirects besides the usual types), auto-repair of missing records where it holds continuous access, domain registration and resale, a managed DNS option, a self-hosted quickstart, a 67-endpoint REST API, share links, and about 90 white-label tokens in 13 locales. It routes 63 providers and says 150+ are known. DoDomain offers none of registration, managed DNS or self-hosting. On the other side of the ledger, customdomain.ai states that SOC 2 and ISO 27001 are in progress and that it is not yet certified, publishes no founding date or customer names, and the pages disagree with each other on provider counts and tier features. Ask before you rely on a number.

Where DoDomain earns its place is a free plan with a monthly allowance, published self-serve pricing with no overage, drift checks every 10 minutes right after setup, authoritative-nameserver verification on every path, and an architecture that is never in your request path.

Frequently asked questions

What does customdomain.ai cost?

As published on customdomain.ai/pricing (retrieved 2026-10-06): Starter is $10/month for 10 domain connections a year with a 14-day trial; Startup is $149/month with 600 connections a year; Growth is $649/month with 600 a year plus overage in 1,000-domain blocks, and adds a reverse-proxy edge with automatic HTTPS. Premium (12,000 a year) and Enterprise (12,000+ a year) are custom-priced. Check customdomain.ai for current figures.

Is customdomain.ai free?

Not any more. Its pricing page says "Start with a 14 day free trial" and that you add a card at checkout, with the first charge when the trial ends; the changelog says Starter replaces the Free plan, and that a new workspace connects its first domain without adding a card (per customdomain.ai and customdomain.ai/pricing, retrieved 2026-10-06). After the trial, Starter is $10/month for 10 connections a year. DoDomain's Free plan is $0 forever with 50 verified connections a month and no card.

How does DoDomain's free plan compare?

DoDomain's Free plan is $0 forever with 50 verified connections per MONTH, guided manual setup, authoritative verification, signed webhooks and drift monitoring, with no card. One-click setup (Cloudflare OAuth, and Domain Connect where the provider has enabled DoDomain's templates) starts on Pro at $29 per month. Over a year the Free allowance is 600 connections, against 10 on customdomain.ai's $10 Starter. Starter is a plan for integrating and testing; the two are not the same kind of product at that price.

Do both products write the DNS record for the end user?

Yes, that is what makes this a head-to-head, and the coverage differs in kind. customdomain.ai's llms.txt says it routes 63 providers: Domain Connect for 2, OAuth for 6, a direct API for 17 and guided manual setup for 38, so 25 are written automatically (per customdomain.ai and customdomain.ai/pricing, retrieved 2026-10-06). Its homepage cites 150+ known providers and 40+ set up automatically, so ask which of your customers' providers are on the automatic list. DoDomain writes through a scoped Cloudflare OAuth grant, through a signed Domain Connect apply where the user's provider has enabled DoDomain's templates, and guides provider-specific records everywhere else.

How does each product verify that a record is live?

customdomain.ai's docs say its poller resolves each desired record against public DNS and, when the public resolver is stale, asks the zone's own nameservers instead: every nameserver that answers must serve the record. They also state that "a return that reports success is never taken as proof: only public DNS promotes the connection." DoDomain reads the domain's authoritative nameservers on every path, Cloudflare OAuth, Domain Connect or manual, and only then records the connection, meters it and signs the connection.verified webhook. The positions are close; the difference is the order of the reads.

How does drift monitoring differ?

customdomain.ai's docs say every live domain is checked once an hour; a suspected drift is confirmed by looking again at the zone's own nameservers, and missing records are repaired automatically only where it holds continuous access and repair is switched on, capped at 3 repairs per 24 hours. A changed record is never overwritten. Its docs also say drift webhooks are off by default in the hosted product, which its marketing pages do not mention; confirm with them. DoDomain re-checks every 10 minutes for a connection's first day, hourly for a week, then every 6 hours; confirms drift on three consecutive checks; and emits connection.failed naming the exact records. DoDomain does not repair a customer's DNS on its own.

Does DoDomain serve customer domains from an edge like customdomain.ai's Growth plan?

No, by design. DoDomain never proxies traffic and never holds certificates: DNS points at your own host and TLS terminates there (Vercel, Cloudflare for SaaS, Approximated, Caddy, nginx). customdomain.ai offers both modes: serving customer domains from a reverse-proxy edge with automatic HTTPS, or handing DNS back to your stack, and its pricing page puts the edge at Growth and above. If you want the vendor to be the edge, that is a real difference in their favour.

Which one is more proven on the Domain Connect protocol?

customdomain.ai publishes more templates. Its own compare page says it publishes 18 Domain Connect templates to the standard's public registry, and its docs name IONOS and NameSilo as providers where Domain Connect is the rail. DoDomain has five templates merged into the registry, and its first two completed real signed applies end to end on live third-party providers: the provider wrote the record, DoDomain verified it at the authoritative nameservers, and the signed webhook fired. Template count and providers served are the useful measures; neither product can claim every provider.

Does customdomain.ai handle apex domains, and does DoDomain?

customdomain.ai's pricing FAQ says apex domains work on every plan, using ALIAS/ANAME or CNAME flattening where the host supports it and A records otherwise. DoDomain accepts A, AAAA, TXT and MX at the apex (host "@") on every path, and treats a CNAME at the apex as impossible, as the DNS RFCs do. For a CNAME-only target, the apex-domains guide in the docs covers the patterns that work.

Can I use DoDomain next to customdomain.ai?

Technically yes: neither product touches anything but the customer's own DNS records and your code. They overlap on the connect step, so the sensible split is by customer segment or by new versus existing domains, not both flows against one domain. If you use customdomain.ai's edge, DoDomain would only add a second view of record health. The DoDomain docs describe no bulk import of domains connected elsewhere, so each domain DoDomain should watch goes through its own session.

Start on the free plan

No card, no sales call: create an app, mint a session, and watch the first domain verify.

Other comparisons