The Founder's Stack · Hosting

Best Hosting for Static Sites: DX, Cost, or Simplicity

A static site — plain HTML, CSS, and JavaScript, or the output of a static-site generator like Astro, Hugo, Eleventy, Jekyll, or a Next.js export — is the easiest thing on the internet to host. There is no server-side runtime to run; the files just need a CDN. Every option below serves them well, so "best" is the wrong question. The real decision is which axis you optimize: developer experience, bandwidth cost at scale, or dead-simple and free for a small project.

The fork: which axis are you optimizing?

  • Cost at scale — high or global traffic, and you want the smallest bandwidth bill.
  • Developer experience — built-in forms, redirects, previews, and a smooth deploy flow matter more than saving a few dollars.
  • Dead-simple and free — a small, personal, or open-source site where the goal is zero cost and zero setup.

Your answer maps straight to the table below.

The options, sorted by fit

HostOptimizes forBest forFree tierWatch-out
Cloudflare PagesEdge delivery + cheapest bandwidth at scaleHigh-traffic or globally distributed static sitesGenerous free tierDynamic bits run as Functions on the Workers runtime — verify compatibility
NetlifyDeveloper experience + built-ins (Forms, redirects, headers)Marketing and docs sites that want batteries includedYesUsage-based costs can climb as bandwidth and build minutes grow
VercelDeveloper experience, especially if a framework may come laterStatic now, but you might add Next.js or similarYes (hobby)Usage-based pricing; the sweet spot is framework-driven apps
GitHub PagesFree and dead simpleOSS projects, docs, and personal sitesYesNo server-side logic; custom domains and builds lean on Actions
Render (static)Part of a broader PaaS you may already useTeams already running services on RenderYesOverkill if a static site is all you host — a pure static CDN is simpler
AWS S3 + CloudFrontControl and cheap delivery at large scaleTeams that want raw AWS primitivesFree-tier eligibleYou wire up buckets, CDN, TLS, and invalidations yourself

Three recommendations

Optimizing for cost and scale

Reach for Cloudflare Pages. Bandwidth is the variable cost for a static site at high traffic, and Cloudflare's is the most generous of the major options — served from a global edge network. If you later need dynamic pieces, they run as Pages Functions on the Workers runtime, so you don't have to move hosts to grow.

Optimizing for developer experience

Choose Netlify for its built-ins — Forms, redirects, headers, and deploy previews that save you from wiring them up yourself. Prefer Vercel instead when there's a real chance you'll add a framework later, since its sweet spot is framework-driven apps and your static site can grow into one without a migration.

Free and simple for a small or OSS site

For a personal, docs, or open-source site, GitHub Pages is free and about as simple as hosting gets — push to a repo and it's live. The trade-off is no server-side logic at all, so only pick it if you're sure the site stays fully static.

The trap to avoid

The classic mistake is over-engineering static hosting — reaching for a full PaaS or a server when static files only need a CDN. You pay for and operate infrastructure the site never uses. The inverse trap is picking GitHub Pages for the free simplicity, then hitting a wall the moment you need a form handler, an API route, or anything server-side it fundamentally can't do. Match the host to what the site actually is, and neither happens.

How to choose in 60 seconds

  1. Cost at scale your priority? Cloudflare Pages — cheapest bandwidth on a global edge.
  2. Developer experience and built-ins? Netlify; or Vercel if a framework may come later.
  3. Small, personal, or OSS and want free + simple? GitHub Pages — just push to a repo.
  4. Unsure? Start on Cloudflare Pages or Netlify's free tier — both serve any static site well and leave room to add functions later.

A note on pricing

Static hosting is cheap, and for small sites it's usually free. The variable that matters at scale is bandwidth — the more traffic you serve, the more it drives the bill, and Cloudflare Pages is generally the cheapest there. Free-tier limits and overage rates change often, so verify current numbers on each provider's pricing page before you commit.

FAQ

Is a CDN enough for a static site?

Yes. A static site is plain HTML, CSS, and JavaScript files, so it only needs a static host or CDN to serve those files fast and globally. There is no server-side runtime to run, which is exactly why static hosting is the easiest — and often free — thing to host.

Which is cheapest at scale?

Usually Cloudflare Pages, because bandwidth is the variable cost for a static site at high traffic and Cloudflare's bandwidth pricing is the most generous of the major options. AWS S3 + CloudFront can also be very cheap at scale, but you assemble and operate it yourself. Always verify current pricing on each provider's page.

Can I add dynamic features later?

Yes. Most static hosts let you bolt on edge or serverless functions for dynamic bits — Cloudflare Pages Functions on the Workers runtime, or Netlify and Vercel functions. Check the runtime and its limits before you commit, since GitHub Pages is the notable exception with no server-side option at all.

Building the site these will serve, not just choosing where to put it? The MVP Machine turns a spec into a shipped product.