How we tested
We ran Cloudflare as the primary platform for three projects over 60 days: a static documentation site (Pages), a media-heavy API serving 8TB/month from R2 + Workers, and an AI chat interface using Workers AI. We benchmarked Workers vs Lambda + CloudFront for cold starts and latency, audited the November 2025 invoice including all egress fees vs equivalent AWS, and tested D1 with realistic read/write patterns at 500 req/s. Pricing claims were verified against actual invoices.The verdict, in 60 seconds
Where the 93 comes from
Eight weighted dimensions on the hosting rubric. Cloudflare scores 93 by leading on every cost / scale / location dimension, paying for it modestly on DX and support.| Dimension | Weight | Cloudflare | What it measures |
|---|---|---|---|
| Performance (TTFB) | 20% | 98 | V8 isolates + 330+ PoPs deliver category-best TTFB and cold start latency. |
| Pricing value | 16% | 98 | Effectively free bandwidth + R2 zero egress reset the cost ceiling for the entire category. |
| Uptime | 14% | 96 | 99.99% measured. Network resilience is part of the core product. |
| Developer experience | 12% | 86 | Improved meaningfully in 2024-25 but still trails Vercel. Wrangler CLI is solid; dashboard is OK. |
| Support response | 10% | 78 | Weakest dimension. Community-first on free; paid plans get email but slow. Enterprise has CSM. |
| Regions / PoPs | 10% | 99 | 330+ PoPs — more than any direct competitor by a wide margin. |
| Scaling & auto-scale | 10% | 95 | Auto-scales to global volume without configuration. True edge-native. |
| Security & DDoS | 8% | 96 | DDoS protection is unlimited and free, WAF on Pro+, SOC 2 / ISO / FedRAMP / HIPAA. |
What it gets right
Bandwidth pricing changed the math for the entire category
Pages bandwidth is unlimited and free. Workers requests cost $0.30/M after the included 10M. R2 charges nothing for egress. Compare to S3 + CloudFront where 1TB of egress costs $90 ($0.09/GB), or Vercel's $0.15/GB.
Realistic example from our test: a media site serving 5TB/month would cost $450 on AWS (egress) or $750 on Vercel (bandwidth tier). On Cloudflare: $0 for Pages bandwidth + ~$60 for R2 storage. This is not a minor optimization — it's a structural cost advantage.
V8 isolates beat container serverless on latency
Workers cold starts measured 5-15ms in our testing. Compare AWS Lambda cold start: 200-800ms (warm: 50-150ms). Vercel Fluid Compute: 28ms (warm: 8ms). Cloudflare wins both metrics by physics — V8 isolates initialize in single-digit milliseconds because the JavaScript engine is already running, just executing different code.
For latency-sensitive workloads (auth, personalization, AI streaming first-token), the difference is user-visible.
330+ PoPs is a moat
Vercel has 100+. AWS CloudFront has 600+ but most are 'cache only' with no compute. Cloudflare Workers run on all 330+ PoPs as full compute nodes. For global SaaS this means your users in Mumbai, Lagos, São Paulo get sub-50ms TTFB without you doing anything.
We measured: a single Workers deployment served all 195 countries with p95 TTFB under 80ms. No region configuration, no CDN setup.
R2 + zero egress unlocks new architectures
Storage is $0.015/GB-month (same as S3). Egress is free. Operations are cheaper than S3. The net is that workloads previously priced out of cloud (large video catalogs, AI model serving with frequent downloads, ML dataset hosting) become economically viable.
Our test workload: 8TB media catalog with 40TB/month egress. AWS S3 + CloudFront: $3,820/month. R2: $120/month. The math is real.
Where it falls short
DX still trails Vercel
Wrangler CLI works but doesn't feel as polished as the Vercel CLI. The dashboard takes more clicks to surface what you want. Git integration is functional but not as tight as Vercel's PR previews (Pages does generate them but they're slower to spin up).
For solo devs and small teams used to Vercel's hand-holding, the first week on Cloudflare feels like driving a manual after years of automatic.
128MB Workers memory is a real constraint
Workers cap at 128MB memory and ~30 seconds CPU time. For most edge workloads (auth, personalization, API gateways) this is fine. For anything with significant in-memory state (large data transforms, ML preprocessing, video manipulation) you'll hit walls and need to architect around them.
Container Workers (beta in 2025) lift this ceiling but you lose some of the V8 isolate latency advantage.
D1 maturity still has rough edges
D1 is SQLite at the edge with strong consistency reads and eventually-consistent writes. Read-heavy workloads work great. Write contention is the failure mode — schema migrations on production databases sometimes fail in ways that require manual intervention. We hit one such case during testing.
For mission-critical transactional workloads, pair with a real Postgres until D1 hits v2.0 maturity.
Support is the platform's worst dimension
Free tier: community Discord, GitHub issues, Stack Overflow. Pro Workers ($5/mo): email support but median response was 36 hours in our testing. Business plan: same email tier. Enterprise: dedicated CSM.
For production workloads where outages cost real money, the support story pushes you toward Enterprise — at which point Vercel's Pro support starts to look more competitive on total cost.
Documentation gaps for advanced patterns
Workers basics are well-documented. Durable Objects (stateful Workers), Hyperdrive (database connection pooling at the edge), Queues, Pub/Sub — these advanced features have documentation that assumes you've already read deeply elsewhere. Community blog posts fill some gaps; official docs catch up slowly.
Pricing reality
Cloudflare's pricing is genuinely one of the friendliest in cloud — Free tier is real, Workers Paid is $5, and bandwidth is free on Pages.| Plan | Price | Includes | Best for |
|---|---|---|---|
| Free | $0 | 100k Workers req/day, unlimited Pages BW | Side projects, real production at small scale |
| Workers Paid | $5 / mo | 10M req/mo, unlimited Pages | Most growing apps |
| Workers + R2 typical | ~$25-50 / mo | 10M req + 100GB R2 | Production small/mid apps |
| Enterprise | Custom | SLA, dedicated CSM, FedRAMP | Mission-critical / regulated |
Benchmark matrix
Benchmarks against the edge and CDN-style hosting alternatives.| Workload | Cloudflare | Vercel | Fastly | AWS CloudFront+Lambda@Edge |
|---|---|---|---|---|
| Global TTFB p95 (static) | 32ms | 38ms | 35ms | 48ms |
| Cold start p99 | 12ms | 28ms | 45ms | 180ms |
| 1TB egress cost | $0 (Pages) | $150 | $80 | $90 |
| PoP count | 330+ | 100+ | 80+ | 600+ (cache only) |
| Workers / function quota | 10M / day | Unlimited (paid) | Limited | Unlimited (Lambda) |
Cost-to-performance ratio
Cost per million requests including bandwidth + compute, modeled for a typical SaaS workload.| Tier / scenario | 1M req cost | 10M req cost | 100M req cost |
|---|---|---|---|
| Free tier (within limits) | $0 | n/a | n/a |
| Workers Paid | $5 | $5 (included) | $32 |
| Workers Paid + R2 (heavy) | $15-25 | $45-80 | $150-280 |
| Vercel equivalent | $20-40 | $140-220 | $420-680 |
Hardware & software stack
Cloudflare operates 330+ PoPs in 120+ countries. Each PoP runs the full Workers compute layer (V8 isolates), Cache, R2 metadata, and edge SSL termination. The backbone is private fiber + multiple Tier-1 transit providers. Anycast routing places traffic at the topologically closest PoP. R2 storage is distributed across regional data centers; D1 SQLite replicates reads to PoPs. The architecture is purpose-built for edge-first, not retrofitted.Scenario simulation: what Cloudflare costs for your work
Three operating shapes where we tested Cloudflare against realistic team scenarios.Scenario A: Indie SaaS, 5k MAU
Workload: API on Workers, frontend on Pages, R2 for user uploads, total ~3M req/mo
Monthly cost: $0-5/mo (often free tier)
Free tier covers comfortably. Side projects of meaningful scale run for free indefinitely. Pages bandwidth is unlimited, Workers gets 100k/day. The math is dramatically different from Vercel where $20/mo is the entry-level commercial commitment.
Scenario B: Media-heavy SaaS
Workload: Video / image catalog, 8TB storage, 40TB/mo egress, 10M API req
Monthly cost: $120-180/mo
The killer use case for Cloudflare. Same workload on AWS S3+CloudFront: $3,800/mo. On Vercel: not viable (bandwidth would dominate). R2 + zero egress make architectures economically possible that weren't before.
Scenario C: Global B2B SaaS, 50k MAU
Workload: Workers API + D1 read cache + Postgres (external) + Pages frontend
Monthly cost: $80-150/mo Cloudflare side
Strong fit if your users are global. The 330+ PoPs deliver sub-50ms TTFB to every country without configuration. Caveat: pair with external Postgres for write workloads; D1 alone isn't ready for transactional production.
Use-case match matrix
| Workload | Cloudflare fit | Better alternative |
|---|---|---|
| Static site / docs | Excellent | Pages is the right call — unlimited free BW |
| Edge API / authentication | Excellent | Workers cold starts beat everything |
| Media / video catalog hosting | Excellent | R2 zero egress changes the math |
| Next.js app | Strong | Works via OpenNext but Vercel feature parity is incomplete |
| AI chat / streaming UI | Excellent | Workers AI + low cold-start latency is purpose-built |
| Database hosting (transactional) | Mixed | D1 OK for read-heavy; pair Postgres for writes |
| Long-running background jobs | Mixed | Use Queues + Workers, or move to Fly.io for >30s tasks |
| WebSocket-heavy real-time | Strong | Durable Objects handle this; Fly.io is alternative |
| Big data / analytics pipeline | Avoid | Use BigQuery / Snowflake / Databricks |
| Enterprise compliance-first | Strong | FedRAMP + HIPAA available; CSM relationship slower than AWS |
Stability & uptime history
Cloudflare's status page is unusually transparent — they own incidents quickly and publish post-mortems.| Period | Stated SLA | Measured uptime | Major incidents |
|---|---|---|---|
| Last 30 days | 99.99% | 99.99% | 1 (8-min Workers regional) |
| Last 90 days | 99.99% | 99.99% | 2 (longest: 22 min) |
| Last 12 months | 99.99% | 99.97% | 5 (longest: 1hr 50min) |
| Worst month | 99.99% | 99.65% | Jun 2025, control plane outage |
Longitudinal pricing data
Pricing history. Cloudflare has held the line on Workers pricing and reduced costs over time.| Year | Free tier req/day | Workers Paid /mo | R2 egress /GB |
|---|---|---|---|
| 2021 | 100k | $5 | n/a (R2 launched late 2022) |
| 2022 | 100k | $5 | $0 (launched) |
| 2023 | 100k | $5 | $0 |
| 2024 | 100k | $5 | $0 |
| 2025 | 100k | $5 | $0 |
| 2026 YTD | 100k | $5 | $0 |
Community sentiment
Community sentiment across G2, Reddit, Hacker News, and GAX user interviews.| Source | Sample size | Avg rating | Top complaint | Top praise |
|---|---|---|---|---|
| G2 | 1,420 reviews | 4.6 | DX friction vs Vercel | Bandwidth economics |
| Reddit r/CloudFlare | 200+ threads sampled | 4.5 | Support response on paid | R2 changed everything |
| Hacker News | 50+ threads sampled | 4.4 | Workers memory limit | Edge-first architecture |
| GAX user interviews | 32 engineers | 4.6 | Documentation gaps on advanced features | Zero egress on R2 |
Who should avoid this
Skip this if you fall into any of these buckets. Naming it up-front beats a support ticket later.
- Teams deeply invested in Next.js-specific Vercel features they can't refactor
- Workloads requiring more than 128MB working memory per request
- Operations needing white-glove support on standard plans
- Mission-critical write-heavy databases (use real Postgres, not D1)
- Workflows that depend on AWS-native services (SQS, DynamoDB, etc.) tightly
- Teams without an engineer comfortable with edge-first thinking
Testing evidence
region cold_p50 cold_p95 cold_p99 us-east 6ms 10ms 14ms us-west 5ms 9ms 12ms eu-west 6ms 11ms 15ms ap-southeast 8ms 13ms 18ms ap-northeast 7ms 12ms 16ms sa-east 9ms 14ms 21ms
component AWS S3+CloudFront Cloudflare R2+Pages storage (8TB) $184 $120 egress (40TB) $3,600 $0 requests (50M) $36 $15 TOTAL / month $3,820 $135 ANNUAL SAVINGS: $44,220
ROI calculator
Plug your team's workload to see what Cloudflare costs you. Numbers update live.
Inputs reflect November 2025 list pricing. Live calculator lets you model your own request volume + storage + egress.
The verdict
Cloudflare earns 93 by being the most cost-effective and globally-distributed platform in hosting, with the trade-off of DX that hasn't fully caught Vercel and support that's the platform's weakest dimension. The 2024-25 product expansion — R2 zero egress, Workers AI, D1, Durable Objects, Hyperdrive — turned Cloudflare from CDN+edge-compute into a credible end-to-end platform. If your workload involves significant bandwidth, media, or genuinely global users, Cloudflare's economics make alternatives hard to justify. If DX and hand-holding matter more than every dollar, Vercel remains the easier choice. For most teams in 2026, the right answer is to use both — Cloudflare for media + edge + cost-sensitive layers, Vercel for the Next.js app that needs every feature.If Cloudflare doesn't fit, consider
Vercel
Default for Next.js apps that lean on Vercel-native features. Higher cost, better DX.
Read Vercel review →Fly.io
Containers with persistent connections — what Workers can't do.
Read Fly.io review →Hetzner
Pair Hetzner VPS with Cloudflare in front for unbeatable cost-per-throughput.
Read Hetzner review →