Static Site Hosting Compared - Cloudflare Pages vs Vercel vs Netlify vs GitHub Pages
Deploying a static tool site or blog can cost zero. This guide compares four free hosting platforms.
Overview
| Platform | Free Bandwidth | CDN | Custom Domain | Builds | Best For |
|---|---|---|---|---|---|
| Cloudflare Pages | Unlimited | Global | Yes | 6000/mo | High-traffic, global |
| Vercel | 100GB/mo | Global | Yes | 6000/mo | Next.js, dev experience |
| Netlify | 100GB/mo | Global | Yes | 300/mo | Forms, functions |
| GitHub Pages | 100GB/mo | Weaker | Yes | Unlimited | Open source docs |
Cloudflare Pages
Pros:
- Unlimited bandwidth (biggest advantage)
- Top-tier global CDN quality
- Seamless integration with Cloudflare DNS/Workers
- Free unlimited requests
Cons:
- Slower builds (limit 500/month on free)
- Less rich ecosystem than Vercel
Best for: High-traffic tool sites, global users, long-term projects.
Vercel
Pros:
- Dead-simple deployment (connect GitHub, auto-build)
- Official Next.js support
- Preview deployments (one per PR)
- Edge Functions
Cons:
- Commercial use requires paid plan (Hobby tier is personal non-commercial)
- 100GB might not be enough for high traffic
Best for: Personal projects, Next.js apps, dev experience focus.
Netlify
Pros:
- Form handling (free 100/mo)
- Identity authentication
- Split testing
- Plugin ecosystem
Cons:
- Tighter free limits than Vercel
- Average China access
Best for: Static sites needing forms or lightweight backend.
GitHub Pages
Pros:
- Completely free, no traffic limit (practically 100GB/mo)
- Native GitHub repo integration
- Unlimited builds for open source
Cons:
- Weak CDN, slow in China
- Static only (no server-side)
- 1GB repo/site limit
Best for: Open source project docs, simple personal sites.
Best Choice for Tool Sites
Winner: Cloudflare Pages
- Unlimited bandwidth: No cost pressure as traffic grows
- Global CDN: Fast everywhere
- Free SSL: Auto-configured
- DNS integration: One-stop with your domain
Runner-up: Vercel
If you use Next.js or prioritize dev experience. Watch the Hobby tier commercial restriction.
General Deployment Steps
- Push code to GitHub
- Connect repo in platform
- Set build command (none needed for static)
- Set output directory (e.g.,
.orpublic) - Bind custom domain
- Configure DNS (CNAME to platform)
Performance Tips
- Enable Brotli/Gzip compression (most platforms default on)
- Set long cache headers (
Cache-Control: max-age=31536000for static assets) - Use WebP/AVIF images
- Pure frontend tool sites are naturally lightweight