Where Cloudflare Pages's free tier stops
Cloudflare Pages gives every project unlimited sites, unlimited static requests, and unlimited bandwidth on the free plan, which is unusual among static hosts. The build pipeline is the part that has real numbers attached: 500 builds a month, one build at a time, and a 20 minute timeout per build. A project can carry up to 100 custom domains and 100 projects fit on one account. Each deployed site tops out at 20,000 files, with a 25 MiB limit on any single file. Preview deployments and the number of users on a site are both unlimited.
Switch table
| Cloudflare Pages | GitHub Pages | Firebase Hosting | Surge | Netlify | Neocities | Azure Static Web Apps | |
|---|---|---|---|---|---|---|---|
| Free plan duration | Yes, no stated expiration | Yes, no stated expiration | Yes, no stated expiration (Spark plan) | Yes, no stated expiration | Yes, 300 credits/mo | Yes, no stated expiration | Yes, no stated expiration |
| Monthly build allowance | 500 builds/mo, 1 build at a time, 20 min timeout | 10 builds/hour soft limit (no cap via custom GitHub Actions) | Not applicable, no build pipeline | Unlimited publishing | 1 concurrent build, credits shared with other usage | Not applicable, no build pipeline | Not applicable, no build-count quota stated |
| Bandwidth | Unlimited | 100 GB/mo soft limit | 360 MB/day | Not stated | Included in the credit pool | 200 GB/mo | 100 GB/mo per subscription |
| Storage / file limit | 20,000 files/site, 25 MiB max file size | 1 GB published site limit | 10 GB storage | Not stated | Included in the credit pool | 1 GB storage | 0.5 GB storage, 0.25 GB per app deployment |
| Custom domains | 100 per project (100 projects/account) | Custom domain via CNAME, one site per account | Custom domain supported, multiple sites per project | Custom domain included | Custom domains with SSL | Not applicable, subdomain hosting | 2 per app |
| First paid tier | Pro, $20/mo billed annually | No paid plan | Blaze, pay as you go, no monthly base fee | Surge Professional, $30/mo | Personal, $9/mo | Supporter, $5/mo | Standard, metered per app, no flat monthly figure listed |
| Card required | - | Unknown | No | Unknown | Unknown | Unknown | Unknown |
| First paid tier | - | No paid plan | Blaze, pay as you go | Surge Professional, $30/mo | Personal, $9/mo | Supporter, $5/mo | Standard, metered per app |
The alternatives
GitHub Pages
FTV 90 / 100GitHub Pages skips the build-quota question by keeping its limits small and simple: one user or organization site per account, plus unlimited project sites, with a soft cap of 100 GB of bandwidth a month and 10 builds an hour unless a repo runs its own GitHub Actions workflow instead. That trade suits a personal site, a project's docs, or a small portfolio that publishes straight from a repo and rarely redeploys more than a few times an hour. It loses to Cloudflare Pages on raw headroom: 10 builds an hour is a real ceiling for a busy team pushing frequent commits, where Cloudflare's 500 builds a month spread across one build at a time gives more room before you hit it. Pick GitHub Pages if your project already lives in a GitHub repo and you want the shortest path from a push to a live page.
- Beats Cloudflare Pages: No stated project limit on custom domains or file count, and a source repo you already control
- Falls short: A 10 builds per hour soft limit, tighter than Cloudflare's monthly build allowance for a team that redeploys often
- Who should switch: Switch to GitHub Pages if your site already lives in a GitHub repo and you publish it without a heavy CI pipeline.
Firebase Hosting
FTV 52 / 100Firebase Hosting's Spark plan gives 10 GB of storage and 360 MB of data transfer a day, with support for multiple sites under one project and no payment method required to start. That daily transfer figure is the number to watch: it resets every day rather than every month, so a site with a steady trickle of daily visitors fits comfortably, while a single traffic spike can burn the day's allowance fast. It loses to Cloudflare Pages on bandwidth shape: Cloudflare puts no cap on bandwidth at all, where Firebase measures it daily and in low hundreds of megabytes. Pick Firebase Hosting if the site is already part of a Firebase project and its daily traffic stays well under 360 MB.
- Beats Cloudflare Pages: 10 GB of storage on the Spark plan
- Falls short: A 360 MB per day transfer cap, against Cloudflare's unlimited bandwidth
- Who should switch: Switch to Firebase Hosting if you already use Firebase for a database or auth and want the static frontend on the same project.
Surge
FTV 47 / 100Surge's free plan is unlimited publishing with a custom domain and basic SSL included, and nothing else to configure. There is no monthly build count, no file cap stated, and no separate preview environment; you push a static folder from the command line and it is live. That makes it the simplest option here for a single static site pushed by hand or from a script. It loses to Cloudflare Pages on everything past publishing itself: no CDN detail, no preview deployment system, and no stated file or project ceiling to plan against. Pick Surge if you want the smallest possible command-line workflow for one static folder.
- Beats Cloudflare Pages: Unlimited publishing with no monthly build count to track
- Falls short: No preview deployment system and no stated storage or file ceiling
- Who should switch: Switch to Surge if you want to publish a static folder from the command line with the least setup.
Netlify
FTV 43 / 100Netlify's free plan runs on a monthly credit system, 300 credits included, rather than separate named quotas for bandwidth, builds, and functions. That covers unlimited deploy previews, a global CDN, and one concurrent build, with the credits spent across whichever mix of hosting, functions, and edge features a project actually uses. It loses to Cloudflare Pages on build concurrency specifically: Cloudflare also allows one build at a time, but Netlify's credit system means a heavy month of serverless function calls can eat into the same pool a busy build schedule draws from, where Cloudflare's build allowance and bandwidth are counted separately. Pick Netlify if the project needs serverless functions or edge logic alongside static hosting, not just a static build pipeline.
- Beats Cloudflare Pages: 300 monthly credits that cover functions and edge logic, not just static hosting
- Falls short: One concurrent build, and functions usage draws from the same credit pool as hosting
- Who should switch: Switch to Netlify if the project needs serverless functions or edge middleware next to the static site, not a pure static build.
Neocities
FTV 39 / 100Neocities gives 1 GB of storage and 200 GB of bandwidth on its free plan, along with a subdomain, SSL, a CDN, and a set of community features like site profiles and a follow system built around the platform itself. It is built for hand-built HTML sites and small personal pages rather than a git-driven build pipeline, so there is no CI concept to compare against Cloudflare's build allowance at all. It loses to Cloudflare Pages the moment a project needs a real deploy pipeline from a repository, since Neocities has no equivalent to builds, previews, or custom domain counts tied to a project. Pick Neocities if the site is a small hand-edited page and the community features around hosting matter as much as the hosting itself.
- Beats Cloudflare Pages: 200 GB of bandwidth on the free plan, plus built-in community and discovery features
- Falls short: No git-based build pipeline, previews, or per-project custom domain allowance
- Who should switch: Switch to Neocities if you want a small hand-built page with a community around it, not a repo-driven deploy pipeline.
Azure Static Web Apps
FTV 17 / 100Azure Static Web Apps' free tier includes 100 GB of bandwidth per subscription, 0.5 GB of storage with a 0.25 GB cap per app deployment, and 2 custom domains per app. The bandwidth figure is shared across every app in the subscription rather than granted per project, so a subscription running several small sites splits that 100 GB between them. It loses to Cloudflare Pages on almost every axis here: Cloudflare's per-account build allowance, unlimited bandwidth, and 100 custom domains per project are each larger than Azure's equivalent. Pick Azure Static Web Apps only if the project is already inside an Azure subscription and needs to sit next to other Azure services.
- Beats Cloudflare Pages: Native integration with other Azure services inside the same subscription
- Falls short: A 100 GB bandwidth pool shared across the whole subscription and just 2 custom domains per app
- Who should switch: Switch to Azure Static Web Apps only if the site needs to live alongside other services already running in the same Azure subscription.
Two quick picks
GitHub Pages
GitHub Pages is the closest swap for anyone whose Cloudflare Pages usage was a straightforward static site pushed from a repo. It replaces Cloudflare's build allowance with a simpler soft limit, keeps the project free with no stated expiration, and needs no new account if the project already lives on GitHub.
Neocities
Neocities wins on bandwidth alone: 200 GB a month on the free plan, well past what any of the other alternatives here state, in exchange for giving up the git-based build pipeline Cloudflare Pages and GitHub Pages both offer.
Frequently asked questions
Does Cloudflare Pages' free plan expire?
No. The free plan has no stated expiration and stays free for as long as the account exists. The build allowance (500 builds a month, one at a time) is the part that resets and can be hit, not the plan itself.
What happens when a project goes past Cloudflare Pages' build limit?
Cloudflare queues or rejects further builds once you hit 500 in a month or already have one build running, since the free plan allows only one concurrent build.
Which alternative is closest to Cloudflare Pages?
GitHub Pages is the closest match for a repo-driven static site: both stay free indefinitely and publish straight from a git push, though GitHub Pages measures its limits in bandwidth and builds per hour rather than builds per month.
Which alternative has the most bandwidth headroom?
Neocities, at 200 GB a month on its free plan, ahead of Azure Static Web Apps' 100 GB and Firebase Hosting's 360 MB per day.
Which alternative includes serverless functions, not just static hosting?
Netlify. Its 300 monthly credits cover functions and edge logic alongside static hosting, where GitHub Pages, Surge, and Neocities publish static files only.
Bottom line
GitHub Pages is the safest general swap for a repo-driven static site: free with no expiration, and simple enough to set up in minutes if the project already lives on GitHub. If bandwidth is the constraint that pushed you off Cloudflare Pages, Neocities' 200 GB free allowance is the largest of the group, though it means giving up the build pipeline both Cloudflare and GitHub offer.
Read the full listing for Cloudflare Pages. Scores use the FTV methodology at /ftv. Browse more alternatives on /alternatives, or head-to-head comparisons on /compare.