| Cloudflare Pages / Workers Static Assets | $0 | Unlimited requests & bandwidth (static) | 25 MiB/file · 20,000 files/site | Yes, free (100/project) · Auto HTTPS | Drag-and-drop upload or Wrangler | New projects steered to Workers; ecosystem lock-in |
| GitHub Pages | $0 (public repo) | ~100 GB/mo (soft) | Site ≤ 1 GB total | Yes, free · Auto HTTPS | Commit / web upload | Terms bar sites “primarily directed at facilitating commercial transactions or providing commercial SaaS” |
| Netlify | $0 = 300 credits/mo | 20 credits/GB (≈15 GB max on free) | No per-file cap found | Yes, free · Auto HTTPS | Drag-and-drop (Drop) — easiest | Credits out → all sites pause 15 credits per deploy |
| Vercel Hobby | $0 | 100 GB/mo | — | Yes · Auto HTTPS | Git push / CLI | Non-commercial only caps pause features; can't buy more |
| GitLab Pages | $0 | — | Site ≤ 1 GB | Yes (≤150) · Auto HTTPS | Needs a CI pipeline | Most setup friction for one file; 400 CI min/mo on Free |
| Codeberg Pages | $0 | — | Pre-built HTML only | Yes (.domains file) · Let's Encrypt | Push pre-built files | FLOSS-only; “best effort”, single maintainer |
| Neocities | $0 / $5/mo Supporter | 200 GB free / 3,000 GB paid | 1 GB storage free / 50 GB paid | Paid only | Web upload / WebDAV (paid) | Free tier: no custom domain, file-type limits |
| Surge | $0 | No bandwidth billing | 450 MB/project · 10,100 files | Yes, free · Auto HTTPS | CLI surge | 450 MB/project cap (index-only data — see Open questions) |
| Render (static sites) | $0 | 5 GB/mo pooled, then $0.15/GB or suspension | — | 2 incl., then $0.25/mo · Auto HTTPS | Git / manual deploy | Tightest bandwidth pool in the field |
| Tiiny Host | $0 | 5 GB/mo | 3 MB/file free | Paid ($13/mo tier) | Drag-and-drop | 3 MB cap is below most of your artifacts; banner; log in every 3 months |
| Home + Cloudflare Tunnel | $0 (+ domain) | Your uplink; edge-cached | None (your disk) | Yes (DNS on Cloudflare) · Auto HTTPS | Copy file to server folder | Cloudflare in the middle; home uptime |
| Home + Tailscale Funnel | $0 | Unpublished, non-configurable limits | None | No — *.ts.net only | Copy file + tailscale funnel | Beta; ports 443 / 8443 / 10000 only |
| Home + DDNS / port-forward + Caddy | $0 (+ domain) | Your uplink only | None | Yes · Auto (Caddy) | Copy file to server folder | Home IP exposed ISP ToS / port blocks / CGNAT; your uptime |
| VPS (Hetzner CX23 class) + Caddy | ≈ €5.49–5.99/mo | 20 TB incl. (EU), overage €1/TB | None (40 GB disk) | Yes · Auto (Caddy) | rsync / git | You patch & back it up; 2026 price rises + stock issues* |
| Cloudflare R2 (public bucket) | $0 ≤ 10 GB · $0.015/GB-mo | Egress free | None practical | Yes · HTTPS yes | Upload object (S3 API/CLI) | A bucket, not a host: no builds / index niceties |
| AWS S3 website | $0.023/GB-mo | Egress $0.09/GB after 100 GB/mo free | None | Yes · via CloudFront (~$0.085/GB) | Upload object | Egress pricing; most setup friction |
| Backblaze B2 + CDN | ~$0.00695/GB-mo | Free ≤ 3× stored; free via Cloudflare/Fastly | None | Via CDN partner | Upload object | Needs a partner in front to be a website |