GitHub Pages alternatives for internal HTML
GitHub Pages has earned its place: push to a branch, get a URL, pay nothing. The catch is one word in the contract — public. The moment the HTML is a coverage report, a benchmark dashboard, or anything else you wouldn't put on the open internet, Pages stops being the easy option.
The actual constraint
- Private Pages requires Enterprise Cloud. Access-controlled Pages sites are an Enterprise feature; below that, the site is public even when the repo is private.
- Viewers must be GitHub org members. Your PM, your finance partner, your exec sponsor — everyone needs a GitHub seat and repo-level access to open a report. That's the wrong identity system for documents.
- One site per repo, branch-based. Sharing many independent reports means repo gymnastics or a homegrown index.
- No review layer. Nothing anchors feedback to the report; comments happen in Slack, detached from the thing being discussed.
The shortlist
1. Comma — when the HTML is a report people review
Publish from anywhere that can curl — including
directly from GitHub Actions: one POST with a scoped token, and
the report sits behind private, team, domain-gated, or link access. Repeat
pushes append revisions to the same URL with diffs between any two.
Teammates comment on the rendered document; agents can read and respond to
those comments over MCP. Viewers don't need GitHub accounts —
or paid seats of anything.
Not for: hosting a whole static site with deep internal routing. Comma's unit is the report.
Pricing: Free (3 active reports) · Pro $9/mo · Team $75/seat/mo · Enterprise custom.
2. GitHub Enterprise Cloud — if everyone is already in the org
Access-controlled Pages works, and it's zero new vendors. It's also a per-seat platform upgrade priced for the whole organization, purchased to gate static HTML. Right answer when you're on Enterprise anyway; expensive answer when you're not.
3. Cloudflare Pages + Access — self-assembled gating
Host on Cloudflare Pages (free), put Cloudflare Access in front, gate by email domain or SSO. Genuinely capable, free for small viewer counts — and you are now operating a zero-trust config for documents. See Cloudflare Access alternatives →.
4. Netlify / Vercel — app platforms with paid protection
Password or team-member protection exists on paid tiers, but you inherit the app-deployment mental model for what is, again, a document. See Vercel alternatives →.
At a glance
| Tool | Private viewing | Viewer needs | Comments / history | Publish from CI |
|---|---|---|---|---|
| Comma | Private / team / domain / link | Email (or nothing, link) | Yes / yes | One curl |
| GitHub Pages | Enterprise Cloud only | GitHub seat + repo access | No | Native |
| CF Pages + Access | Yes (you configure it) | Email / SSO | No | Yes |
| Netlify / Vercel | Paid tiers | Password or team seat | No | Yes |
Checked June 2026. Verify current gates and prices before committing.
How to choose
- Public docs or project site? Keep GitHub Pages. It's free and good.
- Internal report, dashboard, eval output? Use a sharing layer with access control and a review surface — that's the job Comma is built for.
- Whole internal site behind your IdP? Cloudflare Access in front of static hosting is the engineering-grade answer, with the operational cost that implies.