HostingApr 20263 min read

Cloudflare Pages vs Netlify — The Edge Isn't Always Free

Netlify built the JAMstack playground, but Cloudflare Pages is here with a faster, cheaper wrecking ball.

🧊Nice Pick

Cloudflare Pages

Cloudflare Pages wins on raw price-to-performance. It offers unlimited bandwidth, 500 builds/month on the free tier, and a globally distributed network that consistently delivers lower latency for static assets. Netlify's creeping paywalls for core features like forms and analytics make it the pricier, slower option for most projects.

Pricing & The Bandwidth Heist

Let's cut to the chase: Netlify's free tier is a trap for anything beyond a hobby. You get 100GB of bandwidth and then you're hit with a $55/month charge for the next 100GB. Cloudflare Pages offers unlimited bandwidth on *every* plan, including free. That's not a typic. For builds, Pages gives you 500 free builds/month versus Netlify's 300. The real kicker? Netlify now gatekeeps features like form submissions (100 free, then $19+/site/month) and analytics behind expensive add-ons. Cloudflare's ethos is to commoditize the expensive parts (bandwidth, global network) and it shows.

Developer Experience & Ecosystem Lock-In

Netlify's DX is polished and pioneered the git push to deploy workflow. Its UI is intuitive, and its integration with tools like Vercel and specific headless CMSs feels seamless. However, this polish often leads to vendor lock-in. You're encouraged to use Netlify Identity, Netlify Analytics, Netlify Forms. Cloudflare Pages feels more like a powerful, focused primitive. Its integration with Wrangler and Cloudflare Workers for full-stack apps is superb, offering a more programmable edge. The trade-off? Pages' UI is more spartan and its preview deployment system, while fast, isn't as visually rich as Netlify's Deploy Previews.

Performance: The Network is the Battlefield

This is where Cloudflare Pages humiliates the competition. It deploys directly to Cloudflare's massive 300+ city network, the same one that proxies a huge chunk of the internet. Your assets are served from a data center literally milliseconds from your users. Netlify uses a multi-CDN strategy (primarily Fastly with others) which is good, but not as uniformly vast or integrated. Real-world tests consistently show Pages with lower Time to First Byte (TTFB) globally. If your users are international, Pages' network advantage is a tangible performance win you cannot ignore.

The Full-Stack Gotcha

Both offer serverless functions. Netlify Functions (AWS Lambda-based) have a longer history and a 100GB free bandwidth allowance. Cloudflare Pages Functions run on Cloudflare Workers, which are fundamentally different and faster for simple, IO-bound tasks due to their lightweight isolate model. However, the gotcha is runtime support: Workers use V8 isolates, not Node.js. Need a Node-specific library? Tough luck. You must use workarounds or find alternatives. Netlify's Node.js environment is more familiar but can suffer from cold starts. Choose your poison: faster execution with runtime constraints (Pages) or slower, more compatible functions (Netlify).

Migration Path & The Inevitable Switch

Moving from Netlify to Cloudflare Pages is trivial for static sites. Change your DNS, update your build command, and connect your repo. The pain points emerge if you drank Netlify's Kool-Aid: migrating form submissions, rewriting authentication (Identity), and re-implementing serverless functions for a non-Node runtime. Moving from Pages to Netlify is equally straightforward for static assets. The lesson? Avoid heavy vendor-specific features unless you're committed. Using Pages with a platform-agnostic backend (like Supabase) is the smart, portable play.

Quick Comparison

FactorCloudflare PagesNetlify
Free BandwidthUnlimited100GB/month
Free Builds/Month500300
Global Network300+ cities (own network)Multi-CDN (Fastly, etc.)
Serverless RuntimeCloudflare Workers (V8 Isolates)Netlify Functions (Node.js/AWS Lambda)
Forms (Free Tier)Third-party only100 submissions/month
Monorepo SupportNative, with configurationNative, more mature UI
DDoS ProtectionUnmetered & integratedBasic on Pro, advanced add-on
Base Pro Plan Price$20/month (5 users + more)$19/month (per user)

The Verdict

Use Cloudflare Pages if: You run a content-heavy site, have global traffic, hate bandwidth anxiety, or want to build integrated full-stack apps with Workers.

Use Netlify if: You are deeply embedded in the Netlify ecosystem (Forms, Identity), need Node.js functions without friction, or prioritize a more guided, all-in-one UI.

Consider: For pure, global JAMstack performance on a budget, Cloudflare Pages is objectively superior. Netlify is playing catch-up on infrastructure while monetizing features Pages never charged for.

🧊
The Bottom Line
Cloudflare Pages wins

Cloudflare Pages wins on raw price-to-performance. It offers unlimited bandwidth, 500 builds/month on the free tier, and a globally distributed network that consistently delivers lower latency for static assets. Netlify's creeping paywalls for core features like forms and analytics make it the pricier, slower option for most projects.

Related Comparisons

Disagree? nice@nicepick.dev