Toolmingo
Guides13 min read

Vercel vs Netlify vs Cloudflare Pages: Which Frontend Host to Choose in 2025?

In-depth comparison of Vercel, Netlify, and Cloudflare Pages — performance, pricing, free tiers, build limits, edge functions, and which platform fits your project.

Vercel, Netlify, and Cloudflare Pages are the three dominant platforms for deploying frontend apps, Jamstack sites, and fullstack Next.js / Astro / SvelteKit projects. All three offer git-push deployments, preview URLs, and edge functions — but they differ sharply on pricing, performance, framework support, and vendor lock-in. This guide covers every meaningful dimension so you can pick without regret.

At a glance

Vercel Netlify Cloudflare Pages
Founded 2015 2014 2021
Free tier bandwidth 100 GB/mo 100 GB/mo Unlimited
Free tier builds 6,000 min/mo 300 min/mo 500 builds/mo
CDN locations ~100 PoPs ~100 PoPs 300+ PoPs
Edge functions Vercel Edge Functions Netlify Edge Functions Workers (same runtime)
Serverless functions Vercel Functions (Node/Python/Ruby/Go/Edge) Netlify Functions (Node/Go) Cloudflare Workers
Next.js support ⭐ First-party (built by Vercel) Good (community adapter) Good (OpenNext adapter)
Framework agnostic Good Excellent Excellent
Analytics built-in Yes (Vercel Analytics) Yes (Netlify Analytics) Yes (Web Analytics)
Forms No Yes (Netlify Forms) No
CMS integrations Many Many Many
Free custom domains Yes Yes Yes

Pricing breakdown

Free tiers (Hobby / Starter / Free)

Feature Vercel (Hobby) Netlify (Starter) Cloudflare Pages (Free)
Bandwidth 100 GB/mo 100 GB/mo Unlimited
Build minutes 6,000 min/mo 300 min/mo 500 builds/mo
Concurrent builds 1 1 1
Serverless executions 100 GB-hrs 125,000/mo 100,000 req/day (Workers)
Team members 1 (personal projects only) 1 Unlimited
Preview deployments Yes Yes Yes
Custom domains Unlimited Unlimited Unlimited
SSL Yes Yes Yes
Password protection No No No
Analytics Limited No Yes (Web Analytics free)

Key difference: Cloudflare Pages' free bandwidth is genuinely unlimited — Vercel and Netlify both cap at 100 GB and charge overage. For high-traffic sites, this is a major cost advantage.

Pro / paid tiers (per month)

Feature Vercel Pro ($20/user) Netlify Pro ($19/user) Cloudflare Pages (Free)
Bandwidth 1 TB 1 TB Unlimited
Build minutes 24,000 25,000 5,000 (Workers Paid $5/mo)
Concurrent builds 10 3 5
Preview deployments Yes Yes Yes
Password protection Yes Yes Yes (Access addon)
Analytics Yes (Advanced) Yes Yes

Cloudflare Pages is technically free forever — you pay only for Workers (compute), which starts at $5/month for 10M requests/day. For most projects, Cloudflare Pages stays free even at significant scale.


Performance comparison

CDN and edge network

Vercel Netlify Cloudflare Pages
PoP count ~100 ~100 300+
Network owner Third-party CDN Akamai + own Cloudflare (owns the pipes)
TTFB (global avg) ~30-60ms ~40-70ms ~20-40ms
Cache headers Auto + manual override Auto + manual Full control via Headers
HTTP/3 + QUIC Yes Yes Yes
Brotli compression Yes Yes Yes

Cloudflare has the largest private network (300+ PoPs, including tier-2 cities) and typically wins on raw global latency. Vercel and Netlify rely on third-party CDNs for some regions. For truly global audiences (Southeast Asia, Africa, South America), Cloudflare Pages usually has lower TTFB.

Edge functions performance

Edge functions run at CDN nodes — closer to users than traditional serverless.

Vercel Edge Functions Netlify Edge Functions Cloudflare Workers
Runtime V8 isolates Deno V8 isolates
Cold start <1ms (no cold start) <1ms <1ms
Max execution time 30s 30s 30s (50ms CPU)
Max memory 128 MB 512 MB 128 MB
Node.js APIs Subset (Web APIs only) Subset + Node compat Subset + Node compat
Max bundle size 1 MB 20 MB 1 MB (compressed)
Locations ~100 ~100 300+

All three use V8-based edge runtimes (Deno for Netlify). Cloudflare Workers is the most mature — it's been in production the longest and has the widest feature set.


Framework support

Next.js

Feature Vercel Netlify Cloudflare Pages
ISR (Incremental Static Regen) ✅ Native ✅ (via adapter) ✅ (via OpenNext)
App Router ✅ Full
Server Actions ✅ Full
Image Optimization ✅ Native (next/image) ⚠️ Partial (via Workers)
Middleware
Streaming SSR

Vercel built Next.js and deploys every new feature on day zero. Netlify and Cloudflare Pages both use community/official adapters and may lag 1-2 releases behind on bleeding-edge features.

Other frameworks

Framework Vercel Netlify Cloudflare Pages
Astro
SvelteKit ✅ (adapter-cloudflare)
Nuxt
Remix
Gatsby
Hugo / Jekyll
Create React App
Vite
Angular

All three are framework-agnostic for static output. Serverless/edge features depend on the framework adapter.


Build system

Feature Vercel Netlify Cloudflare Pages
Auto-detect framework Yes Yes Yes
Build cache Yes (aggressive) Yes Yes
Monorepo support Yes (turborepo native) Yes Yes
Environment variables Yes Yes Yes
Secrets Encrypted Encrypted Workers Secrets
Deploy previews Every PR Every PR Every PR
Branch deploys Yes Yes Yes
Rollback Yes (instant) Yes Yes
Build plugins Limited Yes (rich ecosystem) No

Netlify has the most mature build plugin ecosystem — things like lighthouse CI, sitemap generation, and image optimization plugins. Vercel has deep Turborepo integration for monorepos. Cloudflare Pages has the simplest build system (intentionally minimal).


Serverless functions

Feature Vercel Functions Netlify Functions Cloudflare Workers
Runtimes Node.js, Python, Ruby, Go, Edge Node.js, Go, Edge JavaScript/TypeScript (V8)
Max execution time 10s (Hobby), 300s (Pro) 10s (Starter), 26s (Pro) 30s wall, 50ms CPU
Max memory 1 GB 1 GB 128 MB
Free invocations 100 GB-hrs 125,000/mo 100,000/day
Cold starts ~250ms ~250ms <1ms
File system access No (read /tmp) No No
Durable Objects / KV No No Yes (KV, R2, D1, Durable Objects)
Background tasks Vercel Cron Netlify Scheduled Functions Workers Cron

Cloudflare Workers has no cold starts — V8 isolates boot in microseconds. The tradeoff is a smaller memory limit and CPU time limit (50ms per request, not wall time). Vercel Functions have the most runtime flexibility (Python, Ruby, Go alongside Node).


Storage and databases

Service Vercel Netlify Cloudflare
Key-value store Vercel KV (Upstash Redis) Netlify Blobs Workers KV
Object storage Vercel Blob Large Media (Git LFS) R2 (S3-compatible, no egress fee)
SQL database Vercel Postgres (Neon) No native D1 (SQLite at edge)
Edge caching Yes Yes Yes

Cloudflare's storage ecosystem (KV + R2 + D1 + Durable Objects) is the most comprehensive. R2 is particularly compelling — S3-compatible object storage with no egress fees, which can save significantly at scale. Vercel's integrations (KV via Upstash, Postgres via Neon) are convenient but carry the underlying service's costs.


Developer experience

Git integration

All three support GitHub, GitLab, and Bitbucket. Deployment on push to any branch, preview URLs on PRs, and comment bots posting preview links — standard across all three.

CLI

# Vercel
npx vercel --prod
vercel env pull .env.local

# Netlify
netlify deploy --prod
netlify env:list

# Cloudflare Pages
npx wrangler pages deploy ./dist
wrangler secret put MY_SECRET

Local development

Vercel Netlify Cloudflare
Local dev server vercel dev netlify dev wrangler dev
Local edge functions Yes Yes Yes
Live reload Yes Yes Yes
Simulates production? Close Close Very close (same V8 runtime)

Analytics and observability

Feature Vercel Analytics Netlify Analytics Cloudflare Web Analytics
Privacy-friendly Yes (no cookies) No (server-side logs) Yes (no cookies, no fingerprinting)
Real User Monitoring Yes No Yes
Core Web Vitals Yes No Yes
Free tier Limited (Hobby) $9/site/mo Free
Data retention 30 days 30 days 6 months
Pageview accuracy High (no ad blockers) High High

Cloudflare Web Analytics is free, privacy-first, and includes Core Web Vitals — a strong alternative to Google Analytics without the GDPR headaches.


Unique features

Vercel only

  • Next.js ISR — native, most reliable implementation
  • Fluid compute — scales serverless functions to handle traffic bursts without cold starts on Pro
  • Vercel AI SDK — first-party SDK for streaming AI responses in Next.js
  • Turborepo — native monorepo caching (Vercel acquired Turborepo)
  • Speed Insights — built-in Core Web Vitals monitoring per deployment

Netlify only

  • Netlify Forms — handle form submissions without a backend (free tier: 100 submissions/mo)
  • Split testing — A/B test between branches natively
  • Build plugins — 100+ community plugins (lighthouse, sitemap, etc.)
  • Netlify CMS / Decap CMS — open-source Git-based CMS, originated here
  • Identity — built-in JWT authentication service

Cloudflare Pages only

  • Unlimited bandwidth — genuinely free, forever
  • Workers ecosystem — KV, R2, D1, Durable Objects, Queues, AI (Workers AI with GPU access)
  • Zero Trust / Access — fine-grained auth on preview/production URLs
  • DDoS protection — enterprise-grade, included in free tier
  • Email routing — free email forwarding for custom domains
  • Turnstile — CAPTCHA alternative (free, privacy-friendly)

When to choose each

Choose Vercel if:

  • You're building with Next.js and want first-party support (ISR, App Router, Server Actions all work best on Vercel)
  • You need Python, Ruby, or Go serverless functions
  • Your team uses Turborepo for monorepos
  • You want the best Next.js DX with no adapter friction
  • You're building AI-powered apps and want to use the Vercel AI SDK

Choose Netlify if:

  • You need built-in forms without a backend
  • You want A/B split testing on branches
  • Your team relies on build plugins (lighthouse CI, image optimization, etc.)
  • You're using Netlify CMS / Decap CMS
  • You want the richest plugin ecosystem and most battle-tested Jamstack workflow

Choose Cloudflare Pages if:

  • You have high bandwidth or expect traffic spikes — unlimited bandwidth is a genuine advantage
  • You want the fastest global edge with 300+ PoPs
  • You plan to use Workers, KV, R2, or D1 — Cloudflare's storage ecosystem is excellent
  • You need enterprise DDoS protection without paying enterprise prices
  • You want free analytics that are privacy-compliant out of the box
  • You're on a budget — the free tier is the most generous

Migration considerations

From Netlify to Vercel

  • Redirect rules (netlify.tomlvercel.json rewrites/redirects)
  • Netlify Forms → need to replace (use a form service like Formspree, Resend, or your own API)
  • Build plugins → check if Next.js handles the feature natively or build a script

From Vercel to Cloudflare Pages

  • Next.js → use OpenNext or the official Cloudflare Next.js adapter
  • vercel.json_headers, _redirects files or wrangler.toml
  • Vercel Edge Functions → Cloudflare Workers (V8 runtime, similar APIs)

From Netlify to Cloudflare Pages

  • netlify.toml build settings → wrangler.toml or UI config
  • Netlify Functions → Cloudflare Workers (rewrite; different API surface)
  • Netlify Forms → replace with a form service

Full comparison table

Dimension Vercel Netlify Cloudflare Pages
Free bandwidth 100 GB/mo 100 GB/mo Unlimited
Free builds 6,000 min/mo 300 min/mo 500 builds/mo
PoP count ~100 ~100 300+
Edge function cold start <1ms <1ms <1ms
Next.js support ⭐ Best Good Good
Framework agnosticism Good Best Best
Storage ecosystem Good (via integrations) Limited Best (KV/R2/D1/DO)
Built-in forms No Yes No
A/B testing No Yes No
DDoS protection Basic Basic Enterprise-grade
Analytics (free) Limited No Yes
Python/Ruby functions Yes (Vercel) No No
No-cold-start compute Fluid (Pro) No Yes (Workers)
Pricing at scale Expensive Expensive Cheapest
Vendor lock-in risk Medium (Next.js tight) Low Low
Best for Next.js / React Jamstack / forms High traffic / edge

Common mistakes

Mistake Why it hurts Fix
Using Vercel for non-Next.js and paying Pro Paying for features you don't need Cloudflare Pages or Netlify are cheaper for static sites
Exceeding Vercel/Netlify bandwidth on free tier Surprise bills Move high-traffic static assets to Cloudflare Pages or R2
Netlify build minutes exceeded Build queue, deploy delays Cache dependencies, or switch to Vercel/Cloudflare for more build time
Using Node.js-only APIs in Cloudflare Workers Runtime error at edge Use Web APIs or nodejs_compat flag
Ignoring preview URLs in Netlify PR feedback loop slow Enable deploy previews and share links with stakeholders
Deploying secrets as env vars publicly Security breach Use encrypted secrets / Wrangler secrets, never commit
Assuming Cloudflare Workers = full Node.js Runtime incompatibility Test with wrangler dev first
Over-relying on Netlify Forms on paid plan Form costs add up Use free tier limit or switch to Resend/Formspree

FAQ

Q: Is Cloudflare Pages production-ready?
Yes. Cloudflare Pages launched in 2021 and is used by large companies. It's the same infrastructure that powers Cloudflare Workers, which handles over 50 million HTTP requests per second globally.

Q: Can I use Vercel for non-Next.js projects?
Yes. Vercel supports any static site or serverless framework. But Next.js gets the most native support — ISR, image optimization, and Server Actions work best without adapters.

Q: Do I pay for bandwidth on Cloudflare Pages?
No. Cloudflare Pages has no bandwidth fees on any tier. You pay only if you use Workers (compute), starting at $5/month for 10M requests/day.

Q: Which has the fastest cold starts?
All three edge function runtimes (Vercel Edge, Netlify Edge, Cloudflare Workers) use V8 isolates and have near-zero cold starts. Traditional serverless functions on Vercel and Netlify can take 200-500ms cold start.

Q: Can I use Cloudflare Pages with Next.js?
Yes — use the OpenNext Cloudflare adapter or the @cloudflare/next-on-pages package. Most Next.js features work, with some caveats around Image Optimization and certain ISR patterns.

Q: Which is cheapest for a high-traffic marketing site?
Cloudflare Pages — unlimited bandwidth at zero cost for static assets. For dynamic functions, the Workers free tier (100,000 requests/day) covers most marketing sites. At scale, Cloudflare is significantly cheaper than Vercel Pro or Netlify Pro.

Related tools

Keep reading

All Toolmingotools are free & run in your browser

No sign-up, no upload, no watermark. Your files never leave your device.

Browse all tools