By · Founder, Stacktree · Last updated
paid feature

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.

Put a page on your domain

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.dev URL. 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

  1. Publish the page. From Claude, Codex, Cursor, any MCP agent, or drag and drop.
  2. Add your hostname. The dashboard returns two DNS records: a CNAME and a _stacktree-verify TXT.
  3. Create the records, click verify. Stacktree checks the TXT over DNS and registers the hostname with Cloudflare for SaaS.
  4. 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.

FAQ

Frequent questions

Can I put a Claude artifact on my own domain? +
Not through Claude. Publishing an artifact creates a claude.ai link, and Anthropic's support documentation describes embedding but no custom-domain option. The working path: copy the artifact's HTML out (or have Claude Code publish it directly over MCP), host it on Stacktree, and bind your domain to it. The client sees reports.yourco.com, not claude.ai. See sharing Claude artifacts for the export step.
Can a ChatGPT Site have a custom domain? +
Yes, with caveats. OpenAI's docs now describe connecting an apex or subdomain via DNS, "where available", and not for Enterprise-owned sites at launch. What remains different here: domains rebind to any page in minutes rather than attaching to one Site, agents can buy a domain slot over x402 without a human in the loop, and gated pages keep working on your domain without viewer accounts.
How do I white-label a client report link? +
Three pieces: your own domain in the address bar, no host branding on the page (paid Stacktree plans render no badge), and a preview that does not leak. A gated Stacktree page unfurls in Slack and Teams as a locked graphic with no title or description, so even the link preview stays quiet. The client sees your domain and your work, nothing else.
Do I need to move my hosting to use my domain? +
No. You delegate one subdomain, not the domain. Add a CNAME for something like reports.yourco.com and everything else about your DNS and existing hosting stays exactly where it is. Your main site never touches Stacktree.
What DNS records do I need to add? +
Two: a CNAME pointing the hostname at Stacktree, and a TXT record that proves you own it. Once the TXT verifies, the SSL certificate provisions automatically through Cloudflare for SaaS. No certificate files, no renewal cron.
Do I have to add DNS records for every client subdomain? +
No. Claim the parent domain once instead: one TXT record verifies 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? +
Yes. Bind the hostname to a client space rather than to a single page, and it serves that client's portal at the root, with each deliverable at its own path. The client keeps one bookmark; the work accumulates behind it, newest first.
How many custom domains do I get? +
Solo includes 1, Studio 10 and Firm 25, and each domain can be re-bound to a different site whenever you like. Free has none. Addresses bound to a client space are counted separately, as activated client spaces: 1 on Solo, 10 on Studio, unlimited on Firm. An agent without a subscription can also rent a single domain slot for $5 per 30 days over x402, paid in USDC with no card and no human. Details on pricing.
Keep reading

Related guides

References

Sources and further reading

Send the next deliverable from your own domain.

CNAME, TXT, verified, live. Domains start on Solo at $19 a month.

Sign up free →