This article contains affiliate links. We may earn a commission if you purchase through them, at no extra cost to you.
You’ve got a Next.js app and you need to deploy it. Two names keep coming up: Vercel and Cloudflare Pages. One was literally built by the people who made Next.js. The other runs on the most distributed edge network on the planet and has a free tier so generous it almost feels irresponsible. So which one should you actually use in 2026?
I’ve deployed production Next.js apps on both — a SaaS dashboard on Vercel for 18 months, and two content-heavy marketing sites on Cloudflare Pages. I’ve hit the billing surprises, the edge runtime gotchas, and the moments where one platform just worked while the other made me want to throw my laptop. Here’s what I actually found.
Quick Verdict / TL;DR
Why This Comparison Actually Matters in 2026
Next.js has gotten dramatically more complex. The App Router, React Server Components, Partial Prerendering, Server Actions — all of this was experimental in 2023 and is now the default way to build. The deployment target you choose has a massive impact on which of these features actually work, how fast your app loads in São Paulo vs Stockholm, and how much you’re paying when you hit 500k monthly visits.
Vercel built Next.js. That’s not a small thing. They’re not just a hosting provider that supports it — they’re the ones shipping the features. Cloudflare Pages, meanwhile, has made enormous strides with its Workers runtime and the @cloudflare/next-on-pages adapter. But “enormous strides” and “feature parity” are two different things.
Next.js Feature Support: The Honest Breakdown
This is where most comparisons go soft. Let me be direct about what works and what doesn’t.
On Vercel
- App Router: Full support. This is home turf.
- React Server Components: Full support, including streaming.
- ISR (Incremental Static Regeneration): Full support with on-demand revalidation.
- Server Actions: Full support.
- Middleware: Full support, runs on Vercel’s edge network.
- Image Optimization: Built-in, works perfectly.
- Edge Runtime: Full support.
- Node.js Runtime: Full support.
- Partial Prerendering (PPR): Supported — Vercel ships PPR infrastructure simultaneously with Next.js releases.
On Cloudflare Pages
- App Router: Supported via
@cloudflare/next-on-pages, but with caveats. - React Server Components: Supported, but only with the Edge Runtime. Node.js runtime is not available on Cloudflare Workers.
- ISR: Partial. You can approximate it with Cloudflare’s Cache API, but it’s not the same as Vercel’s ISR — you’re doing it yourself.
- Server Actions: Supported in recent versions of the adapter.
- Middleware: Supported.
- Image Optimization: Not natively supported — you need Cloudflare Images (separate product, separate cost) or a third-party service like Imgix.
- Edge Runtime: This is Cloudflare’s strong suit — everything runs on Workers.
- Node.js Runtime: Not available. If your API routes use Node.js built-ins like
fs,crypto(beyond the Web Crypto API), or native Node modules, you’re stuck. - Partial Prerendering: Not supported as of early 2026.
The Node.js limitation is the one that bites people most. I’ve seen developers migrate a Next.js app to Cloudflare Pages only to discover their authentication library uses Node’s crypto module under the hood. Suddenly half their routes don’t work. Always audit your dependencies before committing to Cloudflare Pages for a complex app.
Get the dev tool stack guide
A weekly breakdown of the tools worth your time — and the ones that aren’t. Join 500+ developers.
No spam. Unsubscribe anytime.
Performance: Edge vs Edge
Both platforms run at the edge. Both are fast. But they’re different kinds of fast.
Cloudflare’s network has 300+ PoPs (Points of Presence) globally. Vercel’s edge network is smaller — roughly 70+ regions — though they’ve expanded significantly. For a static or mostly-static Next.js site, Cloudflare Pages will serve cached responses faster to more places on Earth. Full stop. Their CDN is genuinely world-class.
For dynamic responses — server-rendered pages, API routes — it’s more nuanced. Vercel’s serverless functions run in AWS Lambda under the hood, with cold start times that have improved but still exist. Their Edge Functions are faster but limited. Cloudflare Workers have near-zero cold starts (they use V8 isolates, not containers), which is a real advantage for latency-sensitive routes.
In my testing on a content site with 80% static pages and some dynamic personalization: Cloudflare Pages delivered static content ~15-25ms faster at the 95th percentile for users in Southeast Asia and Latin America. For a SaaS app with complex server rendering, Vercel was more consistent because I wasn’t fighting runtime limitations.
Developer Experience
Vercel wins here, and it’s not particularly close for Next.js specifically.
The Vercel dashboard is genuinely excellent. Preview deployments work perfectly — every PR gets its own URL with full server-side functionality. The build logs are clear. The analytics are integrated. Environment variables are managed cleanly. When something breaks, the error messages are usually actionable.
Cloudflare Pages’ DX has improved a lot, but deploying a Next.js app still involves more configuration. You need to set up the @cloudflare/next-on-pages adapter, understand the compatibility flags, and accept that some things you’d take for granted on Vercel require workarounds. Preview deployments work, but testing server-side features locally against Cloudflare’s runtime requires wrangler, which adds friction.
If you’re coming from the Heroku migration world and you’re used to fighting your deployment platform, Cloudflare Pages won’t feel that bad. If you’ve been on Vercel for years, moving to Cloudflare Pages will feel like a step backward in DX — even if the end result is faster and cheaper.
Pricing: Where Things Get Real
This is where Cloudflare Pages makes its strongest argument.
Cloudflare Pages Pricing
- Free tier: Unlimited sites, unlimited static requests, 500 builds/month, 100k Workers requests/day. This is absurdly generous.
- Pro ($20/month): More build concurrency, 5M Workers requests included, priority support.
- Business ($200/month): Higher limits, SLA guarantees.
For a side project or a content site doing a few hundred thousand page views per month, Cloudflare Pages is essentially free. I’m running two marketing sites on it right now and paying $0.
Vercel Pricing
- Hobby (Free): 1 user, non-commercial use only, 100GB bandwidth, 100k serverless function invocations. The “non-commercial” restriction is real — Vercel enforces it.
- Pro ($20/month per user): Commercial use, 1TB bandwidth, 1M function invocations, preview deployments for teams.
- Enterprise (custom): SLAs, SSO, custom limits.
The Vercel bill can grow. Bandwidth overages are $0.15/GB. Function invocation overages add up. I know developers who’ve had $300+ surprise bills after a product launch drove unexpected traffic. Vercel has improved their billing alerts, but you need to set them up proactively.
For a serious production app with a team, you’re looking at $20/user/month minimum on Vercel. A 3-person team is $60/month before overages. That’s not unreasonable for what you get, but it’s meaningfully more than Cloudflare.
If cost is a major concern and you want full control, it’s also worth looking at VPS-based solutions. I covered this in the Best Cloud Hosting for Side Projects roundup — providers like DigitalOcean give you a $4-6/month droplet where you can self-host Next.js with full Node.js support, though you’re trading convenience for cost savings.
Head-to-Head Comparison Table
| Feature | Vercel | Cloudflare Pages |
|---|---|---|
| Next.js App Router | ✅ Full | ⚠️ Partial (Edge only) |
| Node.js Runtime | ✅ Yes | ❌ No |
| ISR | ✅ Native | ⚠️ Manual workaround |
| Image Optimization | ✅ Built-in | ❌ Requires separate service |
| Global CDN PoPs | ~70+ | 300+ |
| Cold Starts | Present (Lambda) | Near-zero (V8 isolates) |
| Free Tier | Limited (non-commercial) | Extremely generous |
| Paid Plan Start | $20/user/month | $20/month (flat) |
| DX for Next.js | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
| Partial Prerendering | ✅ Yes | ❌ Not yet |
| Analytics | Built-in (paid add-on) | Built-in (free) |
| Preview Deployments | ✅ Excellent | ✅ Good |
Use Vercel If…
- You’re using the Next.js App Router with React Server Components and you want everything to just work.
- Your app uses ISR heavily — e-commerce product pages, news sites, anything that needs stale-while-revalidate at scale.
- You have API routes that depend on Node.js built-ins or npm packages that don’t support the Edge runtime.
- You’re building a team product where preview deployments and collaboration features matter.
- You want to use Partial Prerendering or other cutting-edge Next.js features as soon as they ship.
- You’re a solo developer on a commercial project and the $20/month is worth not fighting your deployment platform.
Use Cloudflare Pages If…
- You’re building a static or mostly-static site — marketing site, documentation, blog — with minimal dynamic routes.
- Your Next.js app is edge-runtime compatible and you’ve verified all your dependencies work without Node.js.
- You’re cost-sensitive — side projects, early-stage startups, agencies deploying many client sites.
- You need maximum global performance for a static-heavy site and Cloudflare’s 300+ PoP network is a genuine advantage for your user base.
- You’re already deep in the Cloudflare ecosystem — using their DNS, R2, D1, Workers KV — and want everything in one place.
- You want free, built-in Web Analytics without paying for Vercel’s analytics add-on.
The Scenario Nobody Talks About: Hybrid Approaches
Here’s something worth considering: these aren’t always mutually exclusive. Some teams use Cloudflare’s DNS and CDN in front of Vercel deployments to get Cloudflare’s network security and DDoS protection while keeping Vercel’s Next.js compatibility. It adds complexity, but it’s a real pattern in production.
Alternatively, if your Next.js app has a clear split — say, a marketing site and a dashboard — you could deploy the marketing site on Cloudflare Pages (static, fast, free) and the dashboard on Vercel (complex, server-rendered, worth paying for). It’s more DevOps overhead, but the cost savings can be significant at scale.
For teams evaluating broader infrastructure decisions, I’d also recommend reading the DigitalOcean vs Hetzner vs Vultr comparison — sometimes the right answer for a high-traffic Next.js app is a dedicated VPS with proper caching, not a managed edge platform at all.
What’s Changed in 2026
A few things worth noting that are specific to where we are in 2026:
Cloudflare’s Next.js adapter has matured significantly. The @cloudflare/next-on-pages package is no longer the janky workaround it was in 2023. It’s actively maintained, supports Server Actions, and has good community support. But the fundamental Node.js limitation hasn’t changed — it’s architectural, not a bug they can fix.
Vercel introduced usage-based pricing changes that made their bills more predictable for most users, but the per-seat model still stings for growing teams. They’ve also added more granular caching controls and improved their Edge Middleware performance.
Next.js 15’s caching changes (where fetch requests are no longer cached by default) actually help Cloudflare Pages users somewhat — it reduces reliance on Vercel-specific ISR behavior and pushes more developers toward explicit caching patterns that work on any platform.
Final Recommendation
Stop hedging and pick one. Here’s my actual recommendation based on the most common scenarios:
Building a SaaS, dashboard, or any app with complex server-side logic? Use Vercel. The $20/month is worth it. The time you’ll spend debugging Cloudflare Workers compatibility issues will cost you more than the subscription. Vercel is the platform Next.js was designed for, and that matters more as the framework gets more sophisticated.
Building a marketing site, blog, or documentation site in Next.js? Use Cloudflare Pages. You’ll get better global performance, pay nothing, and the feature limitations won’t affect you. I’ve had zero regrets running content sites on Cloudflare Pages.
Early-stage startup, pre-revenue, watching every dollar? Start on Cloudflare Pages if your app is edge-compatible. Migrate to Vercel when your app complexity demands it or when you can afford the DX improvement. The migration isn’t painless, but it’s doable — much easier than the kind of platform migrations that really hurt.
The honest answer is that Vercel is the better Next.js platform in 2026. Cloudflare Pages is the better deal for a significant subset of use cases. Know which category you’re in before you deploy a single line of code.
Get the dev tool stack guide
A weekly breakdown of the tools worth your time — and the ones that aren’t. Join 500+ developers.
No spam. Unsubscribe anytime.