HTML as a human-facing AI output
When the answer becomes a place.
Chat is excellent for taking turns. HTML is better when an answer needs shape, memory, movement, or somewhere for the reader to play.
01 / Different physics
A conversation flows. An artifact composes.
A chat answer arrives in one dimension: first this paragraph, then the next. That is exactly right for clarification, negotiation, and quick advice. It is less good when the reader must compare several things at once, inspect evidence, vary an assumption, or return next week and recover the whole idea.
HTML gives the answer a surface. Headings can reveal hierarchy. Tables can align differences. Diagrams can preserve relationships. Details can open only when needed. A little JavaScript can turn a claim into something the reader can test directly.
This is not decoration. A well-made interface can reduce the reader's memory burden. It keeps related evidence in view and makes questions such as “what if this assumption changes?” cheap to ask. The output stops being merely text about a model and becomes a small instrument for thinking with it.
Tiny simulation A
What should this answer become?
This is a toy, not a rule. It makes the decision tangible: longevity, interaction, and audience change the useful shape of an answer.
Give the answer an address
Publish the HTML
The artifact is reusable, discoverable, and intended for more readers.- shareable URL
- versionable
- measurable
02 / A wider output vocabulary
HTML can be a document, a diagram, and a tiny application at once.
The browser already knows how to lay out text, draw, animate, accept input, preserve local state, print, and adapt to a phone. Scripted HTML lets one artifact use all of those verbs.
Progressive explanation
Keep the main argument calm, then reveal methods, sources, or code on demand.
Direct manipulation
Let the reader move the assumption instead of reading five hypothetical paragraphs.
Spatial comparison
Align options, evidence, and costs so differences are visible without hunting.
Small simulations
Make a probability, workflow, or system behavior observable and repeatable.
Audience layers
Serve a quick summary and an expert trail from the same source.
Portable proof
Keep the words, visual design, and behavior together as something another person can open.
03 / Writing to think
The page can reveal the weakness in the thought.
I have been using writing this way in a vocabulary-estimation project published as a series on Clojure Civitas. The articles do not simply report a finished result. They make me name the quantity being estimated, expose assumptions, preserve uncertainty, and distinguish an attractive candidate from one that passed its test.
The most useful pages are executable. In the Bayes simulations, controls and graphics let a reader watch evidence alter a distribution. That feedback also disciplines the author: if I cannot make the relationship legible and operable, I may not understand it well enough.
Start the Civitas vocabulary-estimation series ↗04 / One-file mode
Sometimes I make a standalone HTML file.
“Standalone” means the document carries its own presentation and behavior. Its CSS and JavaScript are embedded in the file, and small data or images can be embedded too. There is no build server and no website to visit. Double-click it and a browser opens it.
These files are really cool to send through WhatsApp, Slack, email, Teams, or any messaging channel that accepts attachments. The recipient gets the artifact itself, not an account invitation or a promise that a URL will remain alive. It can be excellent for a private calculator, an annotated report, a workshop exercise, or a playful explanation that does not need a public home.
There are tradeoffs. Some messaging systems distrust or rename HTML attachments. A strict browser may limit local file access. External fonts, libraries, APIs, or media break the “one file” promise unless they are embedded. And executable HTML should be treated like code: only open files from a source you trust.
Tiny simulation B
A real standalone file, nested in this article
05 / Give it an address
I generally prefer publishing durable resources to Cloudflare.
A URL removes attachment friction, works across devices, supports updates, and lets one artifact become part of a library. For my low-usage resources, Cloudflare is almost practically free.
Cloudflare documents static-asset requests as free and unlimited on Free and Paid plans.
Dynamic requests per day, with 10 ms of CPU time per invocation.
Minimum per account, including 10 million requests and 30 million CPU ms each month.
Per extra million requests, plus 2¢ per extra million CPU milliseconds.
Cloudflare Workers Standard prices and limits checked 31 July 2026. Static and dynamic routing details matter. Storage services have separate allowances and charges. See the official pricing page.
Wrangler CLI
A repeatable publishing handle
Wrangler is Cloudflare's command-line tool for creating, developing, configuring, and deploying Workers projects. It turns publishing into a command that can live beside the source and its tests, rather than a sequence of remembered dashboard clicks.
Wrangler documentation ↗npx wrangler dev
npx wrangler deploy
npx wrangler versions listTiny simulation C
Touch the Cloudflare pricing formula
Workers Paid estimate
$8.00 / month- Base
- $5.00
- Request overage
- $1.50
- CPU overage
- $1.50
This average exceeds at least one Free-plan limit.
The Free limit is 100,000 requests per UTC day, not three million pooled across a month. The “fits” signal assumes an even 30-day month. Paid estimates cover Workers requests and CPU only.
06 / Cloudflare or OpenAI Sites?
Control and transparency versus managed velocity.
OpenAI Sites is the appealing other path. It can turn a prompt or compatible project into a hosted site without a separate deployment workflow. The right choice depends less on page design than on how much hosting machinery you want to own.
Build, configure, and deploy with Wrangler.
Ask ChatGPT to build or import, review, save, and deploy.
Published usage prices, plus a generous Free tier.
Plan-gated during beta, with usage limits shown in ChatGPT. No public per-request tariff is stated.
Explicit config, CLI, domains, routing, CI, and edge services.
Managed versions, access, analytics, storage bindings, and hosting inside ChatGPT.
You own the deployment workflow, compatibility, config, and account hygiene.
OpenAI owns more of the hosting path, but the supported runtime and beta limits define the box.
A durable public resource library with a branded domain and repeatable deployment.
A fast hosted prototype, internal tool, game, or shared experience with minimal setup.
The shortest line from idea to hosted experience
Sites manages versions, deployment, sharing, basic analytics, custom domains where available, optional ChatGPT sign-in, and D1 or R2 storage for compatible apps. It is especially attractive for a prototype or internal tool whose value is the experience, not the hosting workflow.
A public library with an explicit operational contract
Cloudflare gives me a mature CLI, transparent unit prices, deliberate DNS and routing, and a workflow I can reproduce from the repository. It asks for more engineering, but that control is useful for a branded, long-lived collection such as this one.
Send one HTML file
Best when portability matters more than discoverability.
Use OpenAI Sites
Best when managed creation, hosting, sharing, and refinement are the point.
Use Cloudflare
My preference for a branded library with explicit costs and repeatable deployment.
The larger shift
Do not ask only, “What should the assistant say?”
Ask what the human should be able to see, touch, compare, keep, and pass on. Sometimes the honest answer is a few lines in chat. Sometimes it is a single file in a message. Sometimes it deserves a public address. HTML makes all three points on that spectrum unusually cheap.