ideastackbloguk-saasinfrastructurevercelcloudflareindie-hacker2026

Cloudflare Pages vs Vercel for a UK indie SaaS in 2026: the actual decision

Cloudflare Pages vs Vercel for a UK indie SaaS in 2026: the actual decision

Key Takeaways

  • For Next.js 16 with App Router and Cache Components, Vercel wins - the framework owner ships features Cloudflare adapters catch up to weeks later.
  • For static-first sites and high-bandwidth content-heavy products, Cloudflare Pages wins on cost (unlimited free bandwidth) and global edge density (300+ vs Vercel's regional).
  • UK latency is negligibly different - both have London PoPs and serve UK users in under 50ms.
  • DUA Act 2025 does not require UK-only hosting - both platforms are UK GDPR compliant; declare your processing locations in your privacy policy.
  • Migration in either direction is a 1-2 weekend job for a working UK indie SaaS - this is not a permanent decision, just a starting one.

You bought your .co.uk domain last week. You shipped a Next.js 16 build with Claude Code over the weekend. The next decision: where does it live.

Vercel. Cloudflare Pages. The internet has 47 comparison articles about both, none of which know you are UK-based, building with Next.js 16, and have GBP 0 of revenue today. This is the UK-grounded version.

Built for a UK indie hacker shipping a SaaS in 2026 with a Stripe GB account and a .co.uk (or .com) domain. Modern AI tooling assumed (Claude Code, Lovable, Cursor for the build; Resend for email; Supabase or Neon for the database). No legacy hosting (no shared cPanel, no Heroku, no DigitalOcean droplets unless you genuinely need them).

The actual decision in one paragraph

If your stack is Next.js 16 App Router with React Server Components and Cache Components, pick Vercel. The framework-platform alignment removes friction at every step - features ship on Vercel first, adapters catch up weeks later. If your stack is static-first (SvelteKit, Astro, Remix SSG) or content-heavy with high bandwidth, pick Cloudflare Pages. The free tier covers more usage and the 300+ edge network outperforms on global latency. For most UK indie SaaS shipping in 2026 (Next.js 16 dominates), the answer is Vercel.

The rest of this post is the evidence behind that.

Pricing in GBP for a UK indie SaaS

Both platforms publish in USD. Real GBP costs in April 2026 (FX ~ 1 GBP = 1.25 USD).

PlatformTierUSDGBP equivWhat you get
VercelHobbyFreeFreePersonal use only - bans commercial. Not for a paying SaaS.
VercelPro$20/user/mo~GBP 161 TB bandwidth, 1M function invocations, commercial use OK
Cloudflare PagesFreeFreeFreeUnlimited bandwidth, 500 builds, 100 sites, commercial use OK
Cloudflare PagesPro$20/mo~GBP 165,000 builds, 100 sites, more concurrent builds

Two important footnotes for UK buyers.

Vercel Hobby bans commercial use

Vercel's Hobby tier is for personal projects only - if you charge a single GBP, you are technically in breach. Most UK indie hackers running paying SaaS on Hobby get away with it for a while, but Vercel does enforce on visible commercial use. Plan to upgrade to Pro at GBP 16/mo from day one of revenue.

Cloudflare Pages free tier covers most UK indie SaaS

500 builds a month is roughly 16 deploys a day - more than any sensible indie ships. 100 sites means you can host all your projects free. Unlimited bandwidth means a Reddit hug of death does not blow your bill. For a UK indie SaaS with under 5,000 MAU and average traffic, Cloudflare Pages is genuinely free.

VAT on platform invoices

Vercel Inc. invoices you in USD from the US, with no GB VAT line item. UK VAT-registered businesses can claim under reverse-charge rules, but most under-the-threshold UK indie hackers cannot reclaim. Cloudflare invoices via Cloudflare UK Limited with a clean GB VAT line - cleaner for UK accounting.

If your accountant cares about clean UK invoicing, Cloudflare wins. If they do not, the difference is paperwork only.

UK latency: London is fast on both

Tested April 2026 from a London-based residential connection.

PlatformLondon PoPTTFBLighthouse mobile (UK)
VercelLHR (London)25-40ms95-99
Cloudflare PagesLHR (London)15-30ms95-99

Cloudflare is marginally faster on raw TTFB because it has more London PoPs. In practice, your database query dominates - a Supabase EU query is 30-80ms, which means TTFB difference is 5-15% of total response. Users do not notice.

For UK users, both platforms are functionally equivalent on latency. Pick on other axes.

[!info] When latency does matter If you are shipping to a global audience (US, EU, India, AU all in scope), Cloudflare's 300+ edges meaningfully outperform Vercel's regional approach. A US user hits a Cloudflare PoP in 20ms; a Vercel EU-region site is 100-150ms from the US. For UK-only audiences, this does not matter. For global, it does.

Next.js 16 compatibility

This is the biggest single deciding factor for most UK indie SaaS in 2026.

Vercel: native Next.js 16

Vercel ships Next.js. Every feature - Cache Components, RSC streaming, Server Actions, ISR, on-demand revalidation, Image Optimization, OG Image generation, Edge Functions, Middleware - works natively. New features in the framework appear on Vercel the day they ship.

For a Next.js 16 indie SaaS, Vercel is the path of least resistance. Zero config beyond vercel link.

Cloudflare Pages: adapter-based, with gaps

Cloudflare Pages runs Next.js via @cloudflare/next-on-pages. The adapter has matured significantly through 2025 and into 2026, but there are still edge cases.

What works on Cloudflare in April 2026:

  • App Router, Pages Router
  • Server Components and Server Actions
  • Middleware
  • API routes (as Workers)
  • Image Optimization (via @cloudflare/next-on-pages resizer)
  • ISR (with caveats - cache lifetimes need explicit config)

What still has gaps:

  • Cache Components (Next.js 16) - landed in adapter Q1 2026 but missing some invalidation patterns
  • use cache directive - works but cache key invalidation requires manual tag setup
  • OG Image with Edge Runtime - works, but cold start is sometimes slow on first hit
  • Some node.js-specific libraries - need nodejs_compat flag, and some still do not work

If you are shipping Next.js 16 with Cache Components today, Vercel removes a class of problems entirely. Cloudflare gets there eventually, but you will hit one or two surprises.

Other frameworks

For SvelteKit, Astro, Remix, Hono, or static sites, Cloudflare Pages is excellent and often outperforms Vercel on these workloads. Both platforms run them well; Cloudflare's bandwidth model is friendlier for content-heavy sites.

Data residency under DUA Act 2025

The DUA Act 2025 changed UK cookie law (covered in the cookie exemption deep-dive) but did not introduce blanket data residency requirements for SaaS infrastructure.

What UK GDPR requires:

  • A lawful basis for processing
  • Transparency about where data is processed
  • Adequacy or appropriate safeguards for international transfers

What that means in practice:

  • Vercel processes in your chosen region. Set iad1 for US, lhr1 for UK, fra1 for EU - Vercel honours that for function execution. Set the right region in vercel.json.
  • Cloudflare Pages runs across 300+ edges. Functions execute close to the user, which means a UK user hits London, a US user hits Dallas. For most SaaS, this is fine - data sovereignty is a function of where you store data (your database), not where the function runs.

Both platforms are UK GDPR compliant for ordinary SaaS. Set your privacy policy to declare:

Personal data is processed by [Vercel Inc. / Cloudflare, Inc.] in [the European Union / global edge network] under [adequate jurisdiction / standard contractual clauses].

Done. No residency drama.

[!warning] Where residency does matter Health data (under UK GDPR special category rules), data from UK children (under DUA Act child-data provisions), and sector-specific regulated data (financial services, defence) may have stricter residency requirements. If your SaaS handles any of these, get specific legal advice and prefer UK-only hosting (Cloudflare with lhr only, or a UK-region Vercel deployment with explicit region pinning).

Free-tier reality for a UK indie SaaS at 1,000 MAU

Concrete scenario: a UK indie SaaS doing 1,000 monthly active users, 5 page views per session, 10 API calls per session, average 50KB per page response.

Monthly traffic:

  • Page views: 1,000 x 5 = 5,000
  • API calls: 1,000 x 10 = 10,000
  • Bandwidth: 5,000 x 50KB + 10,000 x 5KB = 300MB
  • Function invocations: 10,000

Vercel Hobby: well under all limits, but bans commercial use - so not viable. Vercel Pro at GBP 16/mo: covers it 100x over. Realistic cost: GBP 16/mo flat.

Cloudflare Pages Free: well under all limits. Build minutes (500/mo) easily covers daily deploys. Realistic cost: GBP 0/mo.

For a paying UK indie SaaS at this scale, Cloudflare Pages is genuinely free. Vercel is GBP 16/mo.

At 10,000 MAU, the maths shifts:

  • Bandwidth: 3GB
  • Function invocations: 100,000

Both still within Pro/Free. Vercel: GBP 16/mo. Cloudflare: GBP 0/mo.

At 100,000 MAU (a successful UK SaaS):

  • Bandwidth: 30GB
  • Function invocations: 1,000,000

Vercel Pro includes 1M invocations and 1TB bandwidth - still GBP 16/mo. Cloudflare Pages Pro at GBP 16/mo with unlimited bandwidth. Both viable. Now the cost difference is zero.

The takeaway: for a small UK indie SaaS, Cloudflare is GBP 16/mo cheaper. For a successful one, the cost is identical. The decision is about features and ergonomics, not money.

When Cloudflare Pages wins

Pick Cloudflare when:

  • Static-first stack - Astro, SvelteKit static, Remix SSG, plain HTML/CSS/JS
  • Content-heavy SaaS - blog-driven, marketing-led, lots of bandwidth
  • Global audience beyond UK/EU - 300+ edge locations meaningfully outperform Vercel's regional approach for users in US, India, AU, LATAM
  • Cost-conscious early stage - free tier covers genuinely usable production traffic
  • Already in Cloudflare stack - using Workers, KV, R2, D1, or Durable Objects elsewhere

When Vercel wins

Pick Vercel when:

  • Next.js 16 with App Router and RSC - the framework owner
  • Cache Components, use cache directive, on-demand revalidation - first-class support
  • OG Image generation, Image Optimization - cleaner native API
  • Server Actions in production - no adapter weirdness
  • Marketing pages with PPR (Partial Prerendering) - Vercel-only territory in 2026
  • You value ship speed over cost - the time saved on adapter debugging is worth the GBP 16/mo

Migration: not a one-way door

If you pick wrong, migration is a 1-2 weekend job for a working UK indie SaaS.

Vercel to Cloudflare

npm install --save-dev @cloudflare/next-on-pages
# add to package.json scripts:
# "build:cf": "npx @cloudflare/next-on-pages"
# "deploy:cf": "wrangler pages deploy .vercel/output/static"

Then in Cloudflare dashboard:

  • Connect GitHub repo
  • Build command: npm run build:cf
  • Build output: .vercel/output/static
  • Set environment variables
  • Deploy

Most of the migration work is on Vercel-specific features that need rewriting:

  • Edge Config -> Cloudflare KV
  • Vercel Image Optimization -> Cloudflare Images or @cloudflare/next-on-pages built-in
  • ISR with on-demand revalidation -> Cloudflare KV-backed cache + manual purge

Cloudflare to Vercel

Easier. Delete the @cloudflare/next-on-pages config, push to GitHub, connect Vercel, set env vars, deploy. Vercel runs Next.js native - no adapter, no config beyond vercel.json.

The risks going Cloudflare to Vercel:

  • KV / R2 / D1 data needs migrating to Vercel-native equivalents (Vercel KV, Blob, Postgres) or a third party
  • Workers-only patterns (Durable Objects) do not have direct Vercel equivalents
  • If you used Workers for anything beyond Pages Functions, that piece needs separate consideration

For a typical Next.js 16 SaaS without deep Cloudflare ecosystem usage, both directions are clean. Plan a Sunday afternoon, test on a subdomain first.

Five UK indie SaaS failure modes

1. Running paid SaaS on Vercel Hobby

You are in breach of terms. Vercel will eventually notice and ask you to upgrade or take the site down. Pay the GBP 16/mo from day one.

2. Cloudflare Workers cold start surprises

Workers cold-start in milliseconds. Pages Functions cold-start in tens to hundreds of milliseconds depending on bundle size. If you are running heavy Node.js code on Pages Functions, you may see cold-start latency on first request after deploy. Mitigation: keep Pages Function bundles small, and prefer Edge Runtime for latency-sensitive routes.

3. Region misconfig on Vercel

Default Vercel region is iad1 (US East). For a UK SaaS, set lhr1 (London) or fra1 (Frankfurt) in vercel.json to keep functions close to UK users. Default region adds 80-150ms to every API call.

4. Build minutes exhaustion on Cloudflare free

500 builds a month is plenty unless your CI deploys on every commit including failing test runs. Configure CI to skip Cloudflare deploy on test-fail, or upgrade to Pro at GBP 16/mo.

5. Bandwidth blow-up on Vercel

Vercel Pro includes 1TB bandwidth. A viral hit (your blog post hits Hacker News) can easily eat 100GB in a day. Stay aware; 1TB is fine for most months but a spike can bring an unexpected invoice. Cloudflare's unlimited bandwidth removes this entire concern.

30-minute ship checklist

Vercel ship

  1. vercel link from your project root (1 min)
  2. vercel env pull .env.local to sync envs (1 min)
  3. Set region in vercel.json: {"regions": ["lhr1"]} (2 min)
  4. git push and Vercel auto-deploys (3 min build)
  5. Add custom domain in Vercel dashboard (2 min)
  6. Update DNS at your registrar (Cloudflare, Namecheap, Gandi) - CNAME www to Vercel target, A record root (5 min)
  7. Wait for DNS propagation and SSL (5-15 min)
  8. Smoke test: hit /, /api/health, a logged-in route (5 min)

Cloudflare Pages ship

  1. Push project to GitHub (1 min)
  2. Connect repo in Cloudflare Pages dashboard (3 min)
  3. Build command: npm run build:cf for Next.js, npm run build for static (1 min)
  4. Set environment variables in Pages dashboard (5 min)
  5. Configure compatibility flags: nodejs_compat if using Node libraries (2 min)
  6. First deploy (3-5 min build)
  7. Add custom domain - Cloudflare DNS makes this trivial if your DNS is already on Cloudflare (2 min)
  8. Smoke test: hit /, /api/health, a logged-in route (5 min)

Both deployable in under 30 minutes. The difference is Next.js 16 ergonomics under the hood.

What I run myself

For full transparency: most of the IdeaStack stack runs on Vercel because we ship Next.js 16 with Cache Components and PPR. The marketing site (this blog) is on Vercel for the same reason. If we were shipping a Hugo or Astro static site, it would be on Cloudflare Pages without hesitation.

The honest answer for most UK indie SaaS in 2026: pick Vercel for Next.js, pick Cloudflare for everything else, and migrate later if the maths or ergonomics shift. Neither is a wrong choice. Stop reading comparison articles, deploy something this afternoon.


[!info] CTA Ready to apply this hosting decision to a researched UK SaaS opportunity? Read the latest free report at ideastack.co/reports.

Frequently Asked Questions

TL;DR - which one should I pick?

If you are shipping Next.js 16 with App Router, RSC, and Cache Components, pick Vercel. The framework-platform alignment is worth the price difference at indie scale - you get features as they ship, not when an adapter catches up. If you are shipping a static or near-static site (SvelteKit, Astro, Remix in SSG mode, or Next.js Pages Router), Cloudflare Pages wins on cost and global edge performance. For a UK-only audience the latency difference is negligible (both have London PoPs). For a global audience, Cloudflare's 300+ edges meaningfully outperform Vercel's regional approach. Most UK indie SaaS in 2026 ship on Next.js 16 - so most go Vercel.

Does my UK SaaS need to host inside the UK for DUA Act 2025?

No - the DUA Act 2025 in itself does not impose data residency for SaaS infrastructure. UK GDPR allows data transfer to adequate jurisdictions including the EU and (with safeguards) the US. Vercel's EU region keeps your data in Frankfurt; Cloudflare Pages spreads across 300+ edges including London. Both are compliant with UK GDPR for ordinary SaaS. Where residency does matter: if you are processing health data, child data, or running into a sector regulator that requires UK-only hosting (rare for SaaS), then choose accordingly. For 99% of UK indie SaaS, either platform is fine on data residency. What does matter is your privacy policy clearly stating where data is processed - that is a UK GDPR transparency requirement, not a residency one.

What is the cheapest way to host a UK SaaS in 2026?

Cloudflare Pages free tier covers most UK indie SaaS up to mid-traffic levels: unlimited bandwidth, 500 builds a month, 100 sites. Vercel Hobby is free but bans commercial use - so for a paying SaaS you need Pro at $20/mo (about GBP 16). Realistic monthly cost ranges: GBP 0-16 for a small UK SaaS doing under 5,000 MAU on either platform. The cost lever is bandwidth - Cloudflare's unlimited free bandwidth means a viral hit does not blow your bill, where Vercel Pro includes 1 TB then meters. For a content-heavy site (blog-driven SaaS, marketing-led), Cloudflare's bandwidth model is the better fit. For a low-traffic-but-feature-rich SaaS (product-led, Next.js 16 RSC), Vercel's compute model is cleaner.

Are Vercel functions and Cloudflare Workers the same thing?

No. Vercel functions run as Node.js or Edge Functions across Vercel's regions - the Edge runtime is V8 isolates, the Node runtime is full Lambda containers in your chosen region. Cloudflare Workers run as V8 isolates across 300+ edge locations - faster cold starts (effectively zero), strict 50ms CPU limit per request, 1MB code size limit. Vercel's Edge Functions give you global low-cold-start similar to Workers, but most Vercel Functions are Node.js Lambdas in EU which adds 50-300ms cold start the first time. For a UK indie SaaS that mostly serves UK users via /api/ routes, the cold start difference is rarely the bottleneck - your database round trip dominates. The bigger compatibility question is which Node.js libraries you can run: Vercel Node runtime supports basically everything; Cloudflare Workers needs nodejs_compat flag and even then has gaps.

How hard is it to migrate from Vercel to Cloudflare or vice versa?

It is not a one-way door. A clean Next.js 16 project on Vercel can move to Cloudflare Pages with `@cloudflare/next-on-pages` - usually a half-day for an indie SaaS, with most of the time spent on environment variables and build settings. Going Cloudflare to Vercel is even easier - you delete the adapter and let Vercel run native. The big migration risks are: (1) Vercel-specific features like Edge Config, Image Optimization, OG Image, ISR with on-demand revalidation - some need rewriting on Cloudflare; (2) Cloudflare KV / R2 / D1 lock-in if you used them - migrating away means moving data; (3) Workers vs Edge Functions cold-start differences in production user latency. Plan a migration window of 1-2 weekends for a working UK indie SaaS. Test on a subdomain first.

Want data-backed business ideas every Thursday?

One validated UK business opportunity per week. Free.