By · Founder, Stacktree · Last updated
workflow

Host the HTML dashboard your agent built.

The agent did the hard part: gathered the data, drew the charts, wrote dashboard.html. What is missing is a URL. Publish the file to a private, unguessable link that opens in any browser with no account, refresh it in place when the numbers change, or let it expire after the meeting.

Get started free

No card · 3 pages free · about a minute

How do you host an HTML dashboard online?

Save the dashboard as one self-contained HTML file and publish it: drag it onto app.stacktr.ee, have the agent call publish_html, or POST it to the API with curl. You get an unguessable private URL that opens in any browser with no account, and the agent can refresh it in place.

The dashboard is done. The URL is the missing step.

Agents build dashboards on demand now: ask for a view of the sprint, the funnel, the incident, and a few minutes later there is a finished HTML file with the charts drawn and the data inlined. The file is the whole app. What it does not have is an address, and a dashboard nobody else can open is a screenshot with extra steps.

Hosting it does not need a deploy pipeline, a repo, or a static-site project. It needs the file served at a link, private because the numbers are usually real. Here is a live one: an incident triage board, exactly the kind of single-file dashboard an agent emits, hosted as a Stacktree page. More finished shapes are in the examples gallery.

Typical flow

  1. Ask the agent for the dashboard as one self-contained file: styles inlined, data snapshot embedded as JSON, charts drawn client-side. No build step, nothing to install.
  2. The agent publishes it with publish_html and hands back the private URL in the same conversation. No agent in the loop? Drag the file onto app.stacktr.ee or curl it (below).
  3. Send the link. It opens in any browser; nobody creates an account. If the numbers are client-facing, add a passcode or gate it to their email domain.
  4. When the data moves, the agent re-renders and calls update_site. Same URL, new numbers, so the link in the channel stays right.
  5. If it was a one-meeting dashboard, set an expiry instead and let it delete itself.

Standing dashboard or throwaway?

Both are legitimate, and the plumbing differs by one decision.

  • Standing. The dashboard lives at one URL and a schedule refreshes it: the agent on a cron, an n8n workflow via the community node, or CI via the stevysmith/stacktree-actions GitHub Action with a pinned site id. This is the recurring report workflow wearing charts.
  • Throwaway. Publish with an expiry, or publish anonymously and take the free 24-hour lifespan. The pattern of building a dashboard for one conversation and discarding it is real; the hosting should be as disposable as the artifact.

Run it now

1. Paste one line into your agent

Fetch and follow https://stacktr.ee/prompt.md, then publish this dashboard as a private link I can send to the team.

Works in any agent that can fetch a URL. The instructions are plain Markdown you can read first.

2. Install once

npx stacktree-install

Configures Claude Code, Cursor, Codex CLI, OpenCode, or Amp. On Claude.ai, add the connector URL https://api.stacktr.ee/mcp instead; one-click setup.

3. No signup: curl it

curl -X POST https://api.stacktr.ee/sites -F file=@dashboard.html

Publishes anonymously: a private URL that lives 24 hours, no account and no key. The response includes a claim token if the dashboard turns out to deserve a longer life.

FAQ

Frequent questions

Does an HTML dashboard need a server? +
Not if the data rides inside the file, which is how agents build them: a JSON snapshot embedded in the page, charts drawn client-side. Stacktree serves the file from a CDN like any web page. If your dashboard fetches a live API instead, that API must be reachable from the viewer's browser; for most agent-built dashboards the honest answer is to re-render and update the page rather than wire up live queries.
Is the dashboard public once hosted? +
No. The URL is an unguessable token that is never listed or indexed, so only people you send it to can find it. On top of that you can add a passcode on any plan, or restrict viewers to a company email domain from Solo. Viewers never create accounts.
How do I update the numbers without sending a new link? +
Re-render and replace. The agent calls update_site with the same site id and the URL you already shared shows the new data. A replace does not count as a new publish, so a dashboard refreshed daily costs one page slot, not thirty.
What about a throwaway dashboard for one meeting? +
Set an expiry when you publish and the page removes itself on schedule. An anonymous publish already does this: no account, link lives 24 hours, which is exactly the lifespan of most meeting dashboards. Burn-after-read is there for the extreme case of a single view.
Keep reading

Related guides

References

Sources and further reading

Give the dashboard a link.

Publish it anonymously right now, no account; it lives 24 hours. Keep it, gate it, and refresh it in place from $0.

Sign up free →