aliteq.

Vercel vs Netlify vs Cloudflare: Where to Host Your Next.js App Before It Makes Money

Vercel's free plan bans ads and payments. Netlify pauses every site you own when credits run out. Cloudflare doesn't charge for bandwidth, but its budget alert won't stop a bill. Free tiers, commercial rules, overage prices and spend guards, from each vendor's own pages.

Aliteq TeamUpdated Oct 311 min read
Hand-drawn editorial illustration of a small off-white house with a coral door held up by three violet and lavender hands against a near-black background, a blank coral price tag tied to one wrist
Share

I ran a hardware shop for five years. The rule I learned there applies to hosting too: the price tag matters less than what happens when something goes wrong. For a web host, "wrong" means three things. You broke the terms without knowing. Your traffic doubled. Or a bot found your site at 3 a.m.

So on 3 October 2026 I read the pricing, limits and terms pages for Vercel, Netlify and Cloudflare, and wrote down what each one does in those three moments. One disclosure first. This site, aliteq.com, is a Next.js app on Cloudflare Workers, deployed with the OpenNext adapter. We've never run Vercel or Netlify in production, so on those two I'm reporting their docs, not my experience. None of the three pays us.

If "hosting" or "deploy" are new words, read what hosting is and what it costs and what deploy actually means first. This piece assumes you have an app and need to pick a home.

The free plans, side by side

All three host a small app for $0. What differs is what you may do on the free plan and what happens at its edge. Vercel stops a feature for 30 days, Netlify pauses all your sites, and Cloudflare returns an error page until midnight UTC.

Scorecard comparing the free plans. Vercel Hobby: free, non-commercial personal use only, 100 GB transfer and 1 million CDN requests and 1 million function invocations a month; over the limit you usually wait 30 days; cheapest plan allowing ads or payments is Pro at $20 a month.
What each free plan allows and what happens at its limit. Read 3 October 2026. · aliteq research

Free plans compared

Price

Vercel Hobby
$0
Netlify Free
$0
Cloudflare Workers Free
$0

Commercial use

Vercel Hobby
Not allowed (Pro or Enterprise required)
Netlify Free
No restriction found in pricing or terms
Cloudflare Workers Free
No restriction found in terms

Bandwidth

Vercel Hobby
100 GB a month
Netlify Free
Credits: 20 per GB
Cloudflare Workers Free
Static: free and unlimited; no egress fees

Requests

Vercel Hobby
1M CDN requests, 1M function invocations a month
Netlify Free
Credits: 2 per 10,000
Cloudflare Workers Free
Static: unlimited; Worker: 100,000 a day

Server compute

Vercel Hobby
4 Active CPU hours, 360 GB-hours of memory
Netlify Free
Credits: 10 per GB-hour
Cloudflare Workers Free
10 ms of CPU per request

Deploys

Vercel Hobby
100 a day
Netlify Free
15 credits per production deploy
Cloudflare Workers Free
Pages: 500 builds a month

At the limit

Vercel Hobby
Usually wait 30 days for that feature
Netlify Free
All sites on the team pause
Cloudflare Workers Free
Error 1027 until midnight UTC

Netlify's 300 free credits look generous until you divide them. If you spent them on nothing else, they'd buy 15 GB of bandwidth, or 1.5 million requests, or 20 production deploys. A vibe coder who pushes a fix after every prompt can burn the month in a weekend. Deploy Previews and branch deploys are free, so preview first and promote to production less often.

The commercial-use trap on Vercel's free plan

Vercel's Hobby plan is for non-commercial personal use only, and ads count. Its fair use guidelines say so in plain words, with examples. If your app will make money for anyone, budget for Pro at $20 a month from the first day.

Here is the rule as Vercel writes it: "Hobby teams are restricted to non-commercial personal use only. All commercial usage of the platform requires either a Pro or Enterprise plan." The definition is broad. Commercial means any deployment used "for the purpose of financial gain of anyone involved in any part of the production of the project, including a paid employee or consultant writing the code."

Vercel lists these examples:

  • Any method of requesting or processing payment from visitors of the site
  • Advertising the sale of a product or service
  • Receiving payment to create, update, or host the site
  • "Affiliate linking is the primary purpose of the site"
  • "The inclusion of advertisements, including but not limited to online advertising platforms like Google AdSense"

Asking for donations is fine; Vercel says it "does not" count. So a portfolio is Hobby. A client site you were paid to build is not, even if the client pays nothing to Vercel. Neither is a side project with one AdSense slot or a Stripe button. If you're adding payments, our guide to Stripe or Paddle in a Lovable app is the next step, and that step is also the point where Hobby stops fitting.

We searched Netlify's pricing page and Terms of Use, and Cloudflare's terms, for "commercial", "non-commercial" and "personal use" on 3 October 2026. Neither has a matching restriction on its free plan. That's an absence, not a promise, so read the terms yourself before you launch.

The entry paid plans are Cloudflare Workers Paid at $5 a month, Netlify Personal at $9, and Vercel Pro or Netlify Pro at $20. Past the included usage, bandwidth is where they split: about $0.13 to $0.20 a GB on Netlify, $0.15 on Vercel on demand, and $0 on Cloudflare.

Vercel Pro is a $20 monthly platform fee with one deploying seat and $20 of usage credit. Extra deploying seats are $20 each; viewer seats are free. Pro includes Vercel's Flat Rate CDN at its lowest tier: 1 million CDN requests and 1 TB of data transfer a month. Above that, the tiers are $20 a month (10 million requests, 50 TB), $100 (50 million) and $300 (150 million). A one-day spike doesn't move you up a tier; a month over capacity does, from the next cycle. On demand in the US, data transfer is $0.15 a GB and CDN requests are $2 per million. Functions add $0.60 per million invocations, CPU time from $0.128 an hour and memory from $0.0106 per GB-hour.

Netlify bills everything in credits. A production deploy is 15 credits, a GB of bandwidth 20, 10,000 web requests 2, and a GB-hour of compute 10. Personal is $9 for 1,000 credits a month and Pro starts at $20 for 3,000. Extra credits come through auto recharge: 500 for $5 on Personal, 1,500 for $10 on Pro. That makes a credit worth 1 cent on Personal and about 0.67 cents on Pro, which is how we turned credits into dollars below.

Cloudflare Workers Paid costs at least $5 a month per account. That includes 10 million requests and 30 million CPU milliseconds a month, then $0.30 per extra million requests and $0.02 per extra million CPU milliseconds. Requests for static files are free and unlimited, and Cloudflare's pricing page says there are "no additional charges for data transfer (egress) or throughput (bandwidth)". CPU time counts only while your code runs, not while it waits on a database.

Bar charts of overage prices past included usage. 100 GB of extra bandwidth: Netlify Personal $20.00 (2,000 credits at $5 per 500), Vercel Pro on demand $15.00 ($0.15 per GB, US), Netlify Pro $13.33 (2,000 credits at $10 per 1,500), Cloudflare $0.
Request and bandwidth fees only. Function compute is billed on top on every platform. · aliteq research

What overage costs, past included usage (USD)

Vercel Pro, on demand, US

100 GB extra bandwidth
$15.00
1M extra requests (request fee only)
$2.00 CDN, plus $0.60 if each runs a function

Netlify Personal (auto recharge)

100 GB extra bandwidth
$20.00 (2,000 credits)
1M extra requests (request fee only)
$2.00 (200 credits)

Netlify Pro (auto recharge)

100 GB extra bandwidth
$13.33 (2,000 credits)
1M extra requests (request fee only)
$1.33 (200 credits)

Cloudflare Workers Paid

100 GB extra bandwidth
$0
1M extra requests (request fee only)
$0 static; $0.30 past 10M Worker requests

Two cautions on that table. First, it leaves out compute, the cost of your server code actually running, and that's billed on all three. Vercel bills CPU time and memory separately, Netlify bills GB-hours, and Cloudflare bills CPU milliseconds. Second, Vercel's Flat Rate CDN covers your first terabyte, so most small Pro apps pay nothing extra for bandwidth until they pass it.

One worked month for a small app that makes money

Take an app with ads: 2 million requests, 200 GB of transfer and 30 production deploys a month. It comes to about $5 on Cloudflare, $34 to $40 on Vercel and $40 to $49 on Netlify, before function compute on the last two. The formula is plan fee plus usage beyond what's included.

  • Vercel Pro. $20 for the plan. Two million requests is past the included Flat Rate CDN tier, so from the next cycle you'd sit on the $20 tier: $40 a month. Staying on demand instead, $4 of requests plus $30 of transfer is $34 of usage. The $20 credit covers part of it, which leaves $14 on top of the fee, so $34. Function usage beyond the credit is extra either way.
  • Netlify. Requests are 400 credits, bandwidth 4,000 and deploys 450, so 4,850 credits before compute. On Pro, 3,000 are included and two recharges of 1,500 ($20) cover the rest: $40. On Personal, 1,000 are included and eight recharges of 500 ($40) cover the rest: $49.
  • Cloudflare Workers Paid. Two million requests is inside the 10 million included. If every request runs your code for 7 ms of CPU, the figure Cloudflare uses in its own examples, that's 14 million CPU milliseconds, inside the 30 million included. Bandwidth is free. Total: $5.

The free plans fit this app only partly. On Cloudflare Free, 2 million requests a month is about 66,700 a day, under the 100,000 cap. CPU is the limit that bites. Cloudflare's docs say heavier work like server-side rendering "typically use 10-20 ms", and the free plan allows 10 ms per request. Vercel Hobby is out because the app has ads. Netlify Free would pause after 300 credits, which this app spends in its first few days.

What stops a surprise bill on each platform

Only Netlify and Vercel can stop your bill automatically, and both do it by taking your site offline. Cloudflare's paid plan has budget alerts that only send an email. Pick the failure you'd rather have: a paused site or an open-ended bill.

Scorecard of spend guards. Free plans: Vercel Hobby stops the feature, usually for 30 days; Netlify Free has a hard limit of 300 credits and pauses every site; Cloudflare Free returns Error 1027 after 100,000 requests a day until midnight UTC.
What happens at the limit, by plan. Read 3 October 2026. · aliteq research

Vercel Pro has Spend Management. You set an on-demand budget, and Vercel sends alerts at 50%, 75% and 100%. It can call a webhook and, if you switch it on, pause the production deployment of every project. Vercel is blunt that "setting a spend amount does not stop usage on its own", so the pause switch is the part that caps spend. It checks every few minutes, so you can overshoot. Pausing doesn't stop AI Gateway or v0 usage billed to your team, and each project has to be resumed by hand. New customers get spend notifications at $200 a billing cycle by default.

Netlify caps by design. Auto recharge is off by default, so a paid plan behaves like a prepaid card. When the credits run out, "all of your web projects (sites/apps) are paused" and visitors see a "Site not available" page. Read that "all" carefully: one runaway project takes every site on the team down with it. Alerts arrive at 50%, 75%, 90% and 100%. Turning on auto recharge keeps sites up and removes the cap.

Cloudflare caps the free plan by request count: after 100,000 dynamic requests in a day, you get Error 1027 until midnight UTC. On Workers Paid, there's no dollar cap. Budget alerts email you when account-wide spend crosses a threshold, and Cloudflare's docs say they "do not pause or cap usage". The real guard is per request. You can set a CPU limit (cpu_ms) in your Wrangler config, so one runaway request can't burn minutes of CPU.

That last one is the guard we use. aliteq.com moved to Workers Paid on 27 September 2026. On the free plan, our analytics showed 20,662 "exceeded resources" errors in seven days, served to readers as 503 pages. That was the 10 ms CPU limit, not traffic. The upgrade took those errors to zero, and we set cpu_ms to 5,000 so a stuck render can't run up the bill. We also found that link prefetching was 47% of our Worker invocations and switched it off. On a usage-billed host, a framework feature can be your biggest customer.

Decide now whether the app will ever show an ad, take a payment or bill a client. If yes, Vercel means Pro from day one.

Estimate monthly GB of transfer and requests. Multiply by the overage table above, not by the free tier.

Turn on the guard before launch: Vercel's pause switch, Netlify's default no-recharge, or a Cloudflare cpu_ms limit plus a budget alert.

Keep one experiment off the team that hosts your real site, so a runaway project can't pause the one that matters.

Put API keys in the host's environment variables, never in the code you deploy.

That last step matters on every host. Our guide to env variables and secrets explains why a key in your frontend code is public, whichever platform serves it.

Running Next.js on each one

Next.js runs on all three, through three different routes. Vercel runs it natively, Netlify through the OpenNext adapter, and Cloudflare through vinext (in beta) or the OpenNext adapter. The further you get from Vercel, the more often a Next.js feature needs a workaround.

  • Vercel. Its docs describe Next.js as "maintained by Vercel", and the code lives in the MIT-licensed vercel/next.js repository on GitHub. Vercel calls deploying it there "zero-configuration", with no adapter to install.
  • Netlify. Its docs say it "supports all major Next.js features with zero configuration, via our open-source OpenNext adapter". It lists App Router, ISR, Server Actions and image optimization as fully supported. Middleware runs as Edge Functions, with a stated limitation for Node.js middleware.
  • Cloudflare. The Next.js guide now "recommends vinext as the default way to run Next.js applications on Cloudflare Workers". vinext is a Vite plugin that reimplements the Next.js API, and Cloudflare says it "is in beta". The OpenNext adapter stays documented for existing apps, which is what we use. Cloudflare Pages is now the route only for a static export.

Running on Workers isn't free of friction, and we hit some of it ourselves. Our production build has to use webpack, because Turbopack chunks failed at runtime on Workers. Next.js middleware that needs Node.js doesn't run in our setup, so our redirects live in the config file instead. Each Worker gets 128 MB of memory on both plans, and we once blew it by loading full article bodies for a list page. If your app is a few pages and a form, you won't meet any of this. If it's a big App Router app with heavy middleware, Vercel removes a layer of problems for $20 a month.

Which one fits your app

Pick by what your app does, not by the logo. A free personal project fits anywhere. A money-making app with modest traffic is cheapest on Cloudflare, simplest on Vercel Pro, and predictable on Netlify if you can live with a pause at the limit.

Pick by situation

Personal project, no ads

Best fit
Any of the three
Why
All free; Vercel Hobby has the fewest moving parts for Next.js

First ad, sale or paid client

Best fit
Cloudflare Free or Netlify Free; Vercel Pro
Why
Vercel Hobby forbids it; the other two have no such clause

Lots of images or downloads

Best fit
Cloudflare
Why
No egress fees; static files free and unlimited

Heavy Next.js features, no time for adapters

Best fit
Vercel Pro
Why
Native Next.js; spend cap through the pause switch

Hard monthly ceiling, no surprises

Best fit
Netlify
Why
Credits stop at the limit unless you enable auto recharge

Server-rendered pages at real traffic

Best fit
Cloudflare Workers Paid
Why
$5 covers 10M requests; set cpu_ms and a budget alert

Whichever you choose, the host isn't your only bill. The database, auth and AI calls usually cost more than the hosting. Caching decides how often your server code runs at all, and our caching explainer shows why. If you've left the platforms behind and are on raw cloud, why your AWS bill is so high is the same exercise one level down. More developer guides live in the software hub.

Quick answers

Can I use Vercel's free plan for a commercial site?
No. Vercel's fair use guidelines restrict Hobby to non-commercial personal use and list ads (including Google AdSense), payments, paid client work and sites whose main purpose is affiliate links as commercial. Commercial use needs Pro, at $20 a month, or Enterprise. Asking for donations is allowed.
What happens when my Netlify credits run out?
All web projects on the team pause and show a "Site not available" page, and you can't publish new production deploys. On the free plan you wait for the next cycle or upgrade. On Personal or Pro you can buy credits or turn on auto recharge, which is off by default.
Does Cloudflare charge for bandwidth?
Not on Workers. Cloudflare's pricing page says there are no additional charges for data transfer or bandwidth, and requests for static files are free and unlimited. You pay for dynamic requests past 10 million a month ($0.30 per million) and CPU time past 30 million milliseconds ($0.02 per million).
Can I set a hard spending cap?
On Vercel Pro, yes, if you turn on the option that pauses production deployments at your budget; it checks every few minutes. On Netlify, leaving auto recharge off is the cap. On Cloudflare Workers Paid, no: budget alerts only email you, so set a per-request CPU limit too.
Is Cloudflare Pages still the way to host Next.js on Cloudflare?
Only for a static export. Cloudflare's Next.js guide recommends vinext, which is in beta, on Workers, and keeps the OpenNext adapter for existing apps. aliteq.com runs on Workers with OpenNext.
Which is cheapest for a small app with ads?
In our worked example of 2 million requests, 200 GB and 30 deploys a month, Cloudflare Workers Paid was $5, Vercel Pro $34 to $40 and Netlify $40 to $49, before function compute on Vercel and Netlify. Your mix of traffic and compute will move those numbers.

Found this useful? Share it

Share

Sources

What this guide was researched from. How we check facts and compute numbers: methodology.

Aliteq

Aliteq Team

Aliteq started in 2019 as a PC hardware shop and is now a US-based publication. We build the VRAM and cost calculators on this site, track live cloud-GPU prices, and write guides with AI-assisted drafting that we check against primary sources before publishing.

Work out the hardware

The Aliteq brief

The tech worth knowing — hardware, AI, gaming, deals. No spam, unsubscribe anytime.

Keep reading