The HTML file in your Slack thread, openable.
Slack renders HTML files as code blocks nobody can read. One click on the message turns the file into a private link, posted back into the conversation. No account, no dashboard, no copy-pasting.
How do you open an HTML file someone posted in Slack?
You host it. Slack shows uploaded HTML as a code preview, not a rendered page. The Stacktree Slack app adds a message shortcut: click ⋮ → Host on Stacktree on any message carrying an .html or .md file, and it publishes to a private, unguessable URL and replies with the link, visible to everyone in the conversation. Installing takes one OAuth approval and no Stacktree account: the workspace gets its own free identity automatically.
The moment this exists for
A colleague asks for the architecture diagram. You have it as a self-contained HTML file, because that is what your agent produced, so you drag it into Slack, and Slack displays line 1 through 5 of the markup with syntax highlighting. Nobody is reading a diagram out of a code block. The information is right there and completely unreadable.
We built this app after being caught by exactly that moment ourselves, in our own Slack, by a colleague who knew what we build. The lesson we took: the file-into-Slack reflex is unbeatable, so stop fighting it. Drop the file the way you always do; the shortcut makes the drop the publish.
How it works
- Install once. One OAuth approval. The workspace gets its own free Stacktree identity at that moment, so there is no signup, no API key, no configuration. Anyone in the workspace can use the shortcut immediately.
- ⋮ → Host on Stacktree. On any message with an HTML or Markdown file, in any channel or DM. The bot needs no invite, because it is a shortcut, not a member.
- The link comes back into the conversation. Private, unguessable, viewable with no account. The person who asked clicks it and sees the rendered page, not the markup.
- Outgrow it, then link. When the workspace's free 5 sites are used, the reply itself offers to link a Stacktree account, which migrates the workspace's existing sites into your dashboard and applies your plan's limits. Friction arrives after value, not before.
What it deliberately does not do
No event subscriptions, no channel presence, no passive scanning of files or messages. The app acts only when a person runs the shortcut on a specific message, and touches only that message's files. Hosted pages carry a strict Content-Security-Policy, are excluded from search indexing, and can be gated further (password, email-domain verification, expiry) from the dashboard. The privacy bar for putting something at a URL should be higher than for a file in a channel, and here it is.
Frequent questions
How do I share an HTML file in Slack so people can actually open it? +
Does the app read my messages or files? +
Do I need a Stacktree account to use it? +
Does it work in DMs? +
How private is the hosted link? +
What file types does it handle? +
Related guides
- Agent skills The other front doors: publish skill, MCP server, migration, agent payments.
- Share architecture diagrams The exact artifact that sparked this app, and the workflow around it.
- Internal tool hosting Where the single-file utilities in your threads should live.
- Private HTML hosting The unguessable-URL access model and the gates you can add.
Sources and further reading
Stop screenshotting HTML into Slack.
Install once, no account needed. The next HTML file anyone drops is one click from a private, openable link.
Sign up free →