Four platforms compared for personal-private static sites — the kind that need to be online, locked down, and cost nothing to keep there.
The use case is narrow but common: a static HTML dashboard, regenerated by a script (often nightly), that you and maybe one or two others need to view on phones and laptops. The shared requirement across the four platforms below is "stay private, stay free, stay simple." The differences only matter once those three are met.
Static hosting on Cloudflare's edge, paired with their Zero Trust auth product. The combination that, in practice, has no real downside for this use case.
wrangler pages deploy from any script*.pages.dev or custom (free)The first thing engineers reach for. Mature, stable, free — but its auth story is essentially "make it public and hope nobody finds it."
git push to gh-pages branchOnce the obvious choice for static sites. The 2025 move to credit-based billing made the free tier unworkable for anything with a daily cron.
The SaaS sibling of the work-tier Posit Connect server. Its strength isn't static HTML — it's running Python and R apps as live apps with user auth.
Holding everything constant — single user, daily deploys, private dashboard, $0 target — the picture clarifies.
| Cloudflare Pages | GitHub Pages | Netlify | Posit Connect Cloud | |
|---|---|---|---|---|
| Cost (private) | $0 | $4/mo | $9/mo+ | paid only |
| Real auth at $0 | Yes — Access | No | No | No |
| Daily-cron friendly | Yes | Yes | Credits run out | Yes (paid) |
| Server-side runtime | Static only | Static only | Functions (paid) | Python / R |
| Setup friction | Wrangler login + Access | git push | Drag & drop | GitHub-tied |
For a private static site with a small allowlist of viewers, this is the only combination in 2026 that delivers genuinely free, genuinely private, and genuinely scriptable in one package. Everything else either bills you, leaks you, or solves a different problem.
The one-time setup — wrangler login, a Pages project, a Zero Trust application with one reusable policy — takes ten minutes. After that, every future dashboard is just another wrangler pages deploy.