Why private is the hard requirement
Agent-generated HTML is assembled from whatever was in the context window, which routinely includes query results, customer rows, internal metrics and occasionally the credential that fetched them. Publishing that to a public URL is not a privacy preference, it is a disclosure. Every host below can serve a file; the axis that separates them is what happens by default to a file nobody vetted.
What to look for
- What the default state is. Public-with-a-privacy-upgrade and private-with-a-publish- upgrade behave very differently at 3am.
- Whether a program can call it. An API is table stakes; a tool interface an agent already speaks is the difference between one call and a shell-out.
- Whether re-publishing keeps the URL. If it does not, every revision invalidates the link you already sent.
- Whether links can end. Expiry that actually deletes, not just hides.
- What gates exist per link. Password, work-email domain, one-time view, encryption — and whether they survive the link being forwarded.
- How you leave. If you cannot get the exact bytes back, it is not hosting, it is hostage-taking.
Seven shapes, and what each is best at
A publish primitive (this deployment)
One call in, private URL out; twelve MCP tools; replace-in-place; per-link password, email gate, one-time view, expiry and end-to-end encryption. Weakest where you want a project: no build, no runtime, no version history.
Drag-and-drop hosts
Fastest possible path from a file on your desktop to a link, and comprehensible to anyone. Aimed at a person at a browser, so automation and per-link gating are afterthoughts.
Agent-storage services
Hosting bundled with durable state for agents. Attractive when the artifact needs to remember something between runs; more product surface to adopt than a single verb.
Source-hosted pages, on a private plan
Documentation living beside the code it documents, with access tied to organisation membership. Excellent for internal docs, wrong for a link to one external reviewer.
Polished static hosts with an editor
A nice middle ground for people who want to tweak the page after publishing. The editor is the product, which means the agent is a second-class caller.
Company-gated publishing tools
Everything is visible to your company and nobody else. The right answer inside one organisation, and no answer at all when the reader is a client.
Full application platforms
Builds, functions, previews, rollbacks. Correct for products, an order of magnitude too much machinery for a page an agent wrote this afternoon.
Summary comparison
| Shape | Private by default | Agent-callable | Same URL on revision | Links can expire |
|---|---|---|---|---|
| Publish primitive | Yes | Yes — MCP + REST | Yes | Yes, by default |
| Drag-and-drop host | No | Partly | Usually not | Rarely |
| Agent-storage service | Often | Yes | Yes | Varies |
| Source-hosted pages | Org plan only | Via commits | Yes | No |
| Static host with editor | Plan feature | Partly | Yes | Varies |
| Company-gated publisher | Within the company | Varies | Yes | Varies |
| Application platform | Plan feature | Yes, project-shaped | Yes | No |
Recommendation by situation
Where this deployment is the weaker choice
Stated plainly, because a roundup that never loses is an advertisement. There is no build step, so anything needing a bundler must be built before it arrives. There is no server-side runtime for your code. There is no version history — replacing content overwrites the same object. There are no branch previews, no team roles, and no CDN configuration knobs. And it is self-hosted, which means the uptime, the quota and the upgrade are yours.
Is an unguessable URL enough on its own?
For a lot of sharing, yes — it is capability-based access control and the entropy is not the weak point. It stops being enough the moment the link gets forwarded, which is what the password, email gate and one-time options are for.
How do I test a host without committing?
Publish the same artifact to two of them and send yourself both links. The differences you care about — default privacy, whether the URL survives a revision, what the reader sees — all show up in about ten minutes.
What is the cheapest option?
Self-hosting, if you already run the platform account — this deployment is designed to sit inside a free tier. That trade buys you the operational responsibility, which is not free.