OpenTree DashboardSign in

$ file output.html

You built it by talking to a model. Where does it go?

The output of an afternoon of building-by-conversation is usually a single self-contained page, occasionally a real application. Those two need completely different homes, and the confusion between them is why people reach for a deploy platform to host a calculator.

The boundary, plainly

Does anything have to execute on a server when a visitor arrives? If yes — a database query, an authenticated session, an API key that must stay secret — you have an application, and it needs a platform that runs code. If no, you have a document, and hosting it is one call.

Most of it is the static kind

Landing pages, calculators, dashboards over data baked in at generation time, interactive explainers, prototypes, single-page tools, visualisations. All of these are HTML with inline CSS and JavaScript. They run entirely in the visitor's browser, which is precisely why they render anywhere with no build step.

curl -X POST https://read.botook.ai/v1/publish -F file=@index.html
# → { "url": "https://read.botook.ai/s/…" }   (no account, short-lived)

With an API key the link lives longer and gains the gates; without one it is anonymous and rate-limited. Either way there is no project, no build and nothing to tear down.

Built an actual application?

Then use a platform that runs code, and consider publishing the static view of it here — the screenshot-shaped summary, the report it generates, the design you want a client to sign off on. That way the private link carries the part that needs a gate, and the platform carries the part that needs a runtime.

Two things people get wrong

How do I know if my page is static?

Open it from your filesystem with a file:// URL. If it works, it is static. If it needs a server, it will fail there and it will fail here.

Can I use a custom domain?

Yes — register the hostname, add the two DNS records it returns, verify, and it serves from there.

What if I want it public?

Publish it and share the link freely; nothing forces it to stay private. The difference is that exposure is a decision rather than a starting state.

Can I keep iterating after publishing?

That is the intended loop — update_site replaces the content under the same URL, as many times as you like.

Keep reading