Search for an HTML preview tool and you get a dozen viewers that do the same thing: paste code, see it render, maybe get a share link. CodePen, CodeShack, JSONFormatter, a long tail of SEO tools.
They all solve the rendering half. Almost none of them solve the half you actually needed, which is getting someone else's notes back on what they saw.
The gap
A preview link answers "what does this look like." Review needs "what is wrong with it," and that answer has to come from someone else, attached to a specific place on the page.
Without that, the loop looks like this: you send a preview link, they screenshot it, they draw a red circle in Preview or Snipping Tool, they paste it into Slack, you work out which element they meant. Every round trip loses fidelity.
Some viewers do offer a share button. What they share is the code, packed into a URL, for another developer to look at. That is a different job from putting a rendered page in front of a stakeholder who does not read HTML.
What a review-grade preview link looks like
- The page renders live and interactive, not as a screenshot or a code block
- Anyone with the link can open it without an account
- They click any element and pin a comment there
- The pin stays anchored to the element, not to pixel coordinates
- You can republish a fix to the same URL
- The whole thing is private by default
That is what commentable does. Paste HTML or upload a file, get a link, send it.
Getting one
Open commentable, paste your HTML, copy the link. Under a minute, no account, no deploy, no staging environment to keep alive.
If you are generating pages from Claude or Claude Code, the MCP connector publishes straight from the chat and updates the same link on every revision.
Why pins beat screenshots
A screenshot is a dead copy. It ages the moment you change the page, it does not scroll, it does not show hover states or a mobile breakpoint, and the annotation floats on top of an image rather than pointing at a thing.
A pinned comment is attached to the element. Change the page and republish, and the old conversation stays with the version it was made on, readable in the version history. Nobody has to reconcile a screenshot from Tuesday with the page as it exists on Thursday.
For interactive pages, this is the whole difference. If a reviewer needs to open a dropdown or resize the window to find the bug, a screenshot cannot carry that and a live page can.
Where this fits next to a real deploy
This is not a replacement for Vercel, Cloudflare Pages, or GitHub Pages. If the page is going to live somewhere permanently and be maintained, deploy it properly.
Preview links are for the stage before that: the thing that exists for four days while three people argue about it. Spinning up a deploy, wiring auth so it is not public, and then tearing it down is disproportionate work for a page with a four-day lifespan.
Free links stay live 30 days, which is usually longer than the argument. Pro at $7.99/mo or $72/yr makes them permanent and puts them on your domain. Pricing.
If the page needs to keep refreshing itself with current data, that is a LIVE artifact, which is the same link updating on a schedule.
Privacy, since previews are usually unfinished work
Your HTML is encrypted in your browser before upload. The key sits in the link fragment after the #, which browsers never send to a server, so we cannot read the page. Add a password or an expiry if you want a second lock.
Unfinished work is exactly the work you least want on a public URL, and most free preview tools give you nothing but an unguessable one. Sending it to a paying client rather than a teammate? That case has its own writeup: share an HTML file with a client.