Custom domains for the pages your agent builds.
Bind any published page to a domain you own, in minutes. A CNAME and a TXT record, SSL provisions itself, and the deliverable serves from reports.yourco.com instead of a vendor URL. Re-bind the same domain to next month's page without touching DNS again.
No card · 3 pages free · about a minute
How do you put a single HTML page on a custom domain?
You do not need a full website or a hosting stack behind it: publish the single HTML page to Stacktree, add your hostname in the dashboard, and create the two DNS records it gives you, a CNAME pointing at Stacktree and a TXT record proving ownership. Verification takes one click, the SSL certificate provisions automatically via Cloudflare for SaaS, and the page serves from your domain within minutes. Solo includes 1 domain, Studio 10 and Firm 25, and a verified domain can be re-bound to any site you host. A hostname can also point at a client space instead of a single page, so one address serves everything you have filed for that client.
The link is part of the deliverable
When you send client work as a link, the domain in that link does half the talking. A report at claude.ai/public/artifacts/... or name.openai.chatgpt.site says "a tool made this." The same report at reports.yourstudio.com says "we made this." For agencies and consultants delivering agent-built pages, that difference is the difference between looking like the author and looking like the operator of someone else's software.
Where the platforms stand on custom domains
Verified against each platform's own documentation as of July 2026:
- Claude artifacts. Publishing creates a claude.ai link. Anthropic's support doc covers embedding an artifact on a site, but documents no custom-domain option, and artifacts on Team and Enterprise plans cannot be published publicly at all.
- ChatGPT Sites. Sites live at
name.openai.chatgpt.site, with genuine same-URL production deploys, which is real replace-in-place and worth crediting. The docs now document custom domains too (apex or subdomain via DNS, "where available", not for Enterprise-owned sites at launch). The remaining gaps are around the domain, not the domain itself: no account-free gated viewing, no expiry or burn, and publishing is bound to ChatGPT rather than open over API or MCP. - Vercel Drop. Vercel proper handles custom domains well; that is not the gap. The gap is that each drop creates a new project, so the domain you attached stays pointed at the old drop. Keeping a domain current across iterations means graduating to Git or the CLI.
- Cloudflare Drop. Sites deploy to a public
workers.devURL. Adding a domain sits behind claiming the deployment into a Cloudflare account and doing the Workers DNS configuration yourself.
All four are good at what they lead with. None of them puts an agent-built page on a domain you own as part of the normal flow.
How it works on Stacktree
- Publish the page. From Claude, Codex, Cursor, any MCP agent, or drag and drop.
- Add your hostname. The dashboard returns two DNS records: a CNAME and a
_stacktree-verifyTXT. - Create the records, click verify. Stacktree checks the TXT over DNS and registers the hostname with Cloudflare for SaaS.
- SSL provisions itself. The certificate issues automatically; you never handle a cert file.
From then on the domain is a pointer you control. Re-bind proposal.yourstudio.com to a different site in one call when the next engagement starts, and because a Stacktree page updates in place, revising the deliverable never changes the URL under the domain either.
A domain for one page, or an address for one client
A hostname binds to one of two things. Bind it to a site and it serves that page, which is the flow above. Bind it to a client space and it serves that client's portal at the root, with every deliverable filed for them sitting at its own path underneath. acme.yourstudio.com stops meaning "this month's report" and starts meaning "the place Acme's work lives"; the bookmark holds while the ledger behind it grows. What sits behind the address is on client spaces.
A space address is counted as a client space rather than as a custom domain, so it does not come out of the 1, 10 or 25 above. Activated spaces, meaning ones with a hostname bound or a portal turned on, are 1 on Solo, 10 on Studio and unlimited on Firm. Filing work under a client is free on every plan.
Claim the parent domain once, skip the DNS per client
A CNAME and a TXT per hostname is fine for one or two addresses. It gets tedious when every client gets their own. So you can claim the parent domain instead: verify youragency.com once with a single TXT record, add one wildcard CNAME for *.youragency.com, and from then on each new acme.youragency.com needs no DNS work at all. No per-hostname TXT, no second wait on propagation; add the hostname and verify it in the same sitting.
The claim also reserves the namespace. Once youragency.com is verified to your account, no other Stacktree account can register a hostname beneath it, which matters precisely because a wildcard CNAME points everything under your domain at us. If your DNS is on Cloudflare, set that wildcard record to DNS-only.
White-label, all the way down
The domain is the visible half of white-labelling a client report. The other half: on paid plans, pages render with no Stacktree badge, so nothing on the page names the host. And if you gate the page with a password or an email-domain gate, the link unfurls in Slack and Teams as a locked graphic that leaks no title and no description. Your domain, your work, and no third-party fingerprints for the client to find.
The gate itself is quiet too. On your own hostname, a passcode-protected page asks for the passcode on a plain styled page that names neither us nor the product, rather than the browser's basic-auth dialog. The client types it once; on a client-space address that answer holds for 30 days across every deliverable in the space. There is still no account and no login for them to keep.
Domains an agent can buy for itself
Custom domains are a subscription feature (Solo 1, Studio 10, Firm 25), with one exception built for automation: an agent can purchase a single domain slot for $5 per 30 days over x402, settling in USDC on Base with no card and no human in the loop. A pipeline that publishes client reports can provision its own branded hostname the same way it publishes.
Frequent questions
Can I put a Claude artifact on my own domain? +
Can a ChatGPT Site have a custom domain? +
How do I white-label a client report link? +
Do I need to move my hosting to use my domain? +
What DNS records do I need to add? +
Do I have to add DNS records for every client subdomain? +
youragency.com and one wildcard CNAME for *.youragency.com covers everything under it. After that, adding acme.youragency.com takes no DNS work at all, and the claim reserves the namespace so no other Stacktree account can register a hostname beneath your domain.Can one address serve everything I do for a client? +
How many custom domains do I get? +
Related guides
- Client spaces Point the domain at a client, not a page: one address, every deliverable, one passcode.
- Share an HTML file with a client The delivery half: private link, gates, and no login for the client.
- Share deliverables with clients The full client-handoff flow this feature slots into.
- Share Claude artifacts privately Get the HTML out of Claude and onto a link you control.
- Can a Codex Site have a custom domain? The workspace-era predecessor to ChatGPT Sites, examined.
- Pricing Solo at $19/mo includes 1 custom domain; Studio at $79 includes 10.
Sources and further reading
- Cloudflare for SaaS: custom hostnames ↗ The infrastructure Stacktree uses to verify hostnames and issue certificates.
- Claude Help Center: publishing and sharing artifacts ↗ Anthropic's official doc: embedding is covered, custom domains are not, and Team/Enterprise artifacts cannot be published publicly.
- ChatGPT Sites documentation ↗ OpenAI's docs: sharing options, openai.chatgpt.site hosting, and custom domains ("where available", not Enterprise-owned sites at launch).
- Vercel docs: deploying with Vercel Drop ↗ The stated limitation this page cites: each drop creates a new project and does not redeploy into an existing one.
Send the next deliverable from your own domain.
CNAME, TXT, verified, live. Domains start on Solo at $19 a month.
Sign up free →