DEV Community

Cover image for Same Terabyte, $0 to $205: Cloudflare vs Azure for a Solo Developer
Edward Blackhawk
Edward Blackhawk

Posted on

Same Terabyte, $0 to $205: Cloudflare vs Azure for a Solo Developer

In my last post I described how Azure trapped a custom domain, a web app and an entire resource group in a state I couldn't delete, and how I ended up moving that project to Cloudflare Workers.

A few people asked a fair question: was that just a bad afternoon, or is one platform actually a better deal?

So I sat down with both price lists and asked the question every solo developer eventually has to ask: what would the same project cost on each?

The answer surprised me. It isn't really about who has the bigger free tier. It's about what each platform decides to charge you for.

All prices below are public list prices in US dollars, checked in September 2026, for US regions (Azure East US / Zone 1). Cloud pricing changes often, so verify before you plan a budget around it.

Round 1: Static hosting and bandwidth

This is the round that matters most for a typical indie project: a static or mostly static site, a few assets, and traffic you hope will grow.

Cloudflare Workers (static assets)

  • Requests to static assets are free and unlimited, on both the free and paid plans.
  • There is no bandwidth line on the bill.
  • CDN, DNS, TLS and unmetered DDoS protection come with the free plan.

Azure

There are several ways to serve a static site on Azure, and each one bills bandwidth differently:

  • Static Web Apps, Free plan: $0, 100 GB of bandwidth per subscription, no overage. Beyond that, you upgrade.
  • Static Web Apps, Standard plan: $9 per app per month, 100 GB included, then $0.20 per GB.
  • Blob Storage static website (no CDN): the first 100 GB of internet egress per month is free, then about $0.087 per GB.
  • Front Door Standard (Azure's CDN): $35 per month base fee plus about $0.17 per GB for the first 10 TB, plus request fees.

Here is what that looks like for the same site at three traffic levels:

Monthly traffic Cloudflare Workers Azure SWA Standard Azure Blob (direct) Azure Front Door Std
100 GB $0 $9 (or $0 on Free) $0 ~$52
1 TB $0 $189 ~$78 ~$205
10 TB $0 ~$1,989 ~$861 ~$1,735

That is the headline result: the same terabyte of HTML, CSS and JavaScript costs anywhere from $0 to about $205 a month, depending on which door it leaves through.

One honest caveat: Cloudflare's generosity is for ordinary web pages and assets. If you want to serve a video library, its terms steer you toward its paid media products. For a site full of calculators, blog posts and images, it doesn't come up.

Winner: Cloudflare, by a mile.

Round 2: Serverless compute

This round is closer, and it's where the difference in billing philosophy shows up most clearly.

Cloudflare Workers Azure Functions (Flex Consumption)
Free allowance 100,000 requests per day 250,000 executions + 100,000 GB-s per month
Paid entry point $5/month minimum Pay per use, no minimum
Included in paid 10M requests + 30M CPU-ms per month —
Requests $0.30 per million after that $0.40 per million
Compute $0.02 per million CPU milliseconds $0.000026 per GB-second of instance memory
Memory 128 MB 512 MB, 2 GB or 4 GB instances
Max run time 30 s CPU by default, up to 5 min Much longer; built for heavier jobs

The most important line is the compute row.

Cloudflare bills CPU time. If your function waits 200 ms for a database and does 3 ms of real work, you pay for 3 ms. Waiting is free.

Azure bills memory × wall-clock time. On Flex Consumption, you pay for the instance's configured memory while it is executing, with a minimum billable period of one second. Waiting on a database costs the same as calculating.

For the typical indie API — mostly glue code, mostly waiting on something else — Cloudflare's model works in your favor. For heavy, long-running jobs that need gigabytes of memory, Workers simply isn't the right tool, and Azure is.

Two other details are worth knowing:

  • Cold starts. Workers run in V8 isolates that start in milliseconds. Azure's on-demand instances can cold-start, and the fix is Flex Consumption's always-ready instances.
  • A funny coincidence. Keeping one 512 MB Flex instance always ready costs about $5.26 a month in baseline fees. That is almost exactly the $5 Workers Paid minimum. Both platforms end up charging about five dollars a month to stay awake.

Also, if you're still on Azure's classic Consumption plan, it is now labeled legacy, and the Linux version retires on 30 September 2028. The cheaper numbers you may remember ($0.20 per million executions, 1M free per month) belong to that plan.

Winner: Cloudflare for light, I/O-bound APIs. Azure for anything heavy.

Round 3: Object storage

Cloudflare R2 Azure Blob (Hot, LRS)
Storage $0.015 / GB-month ~$0.021 / GB-month
Free tier 10 GB, 1M writes, 10M reads per month —
Egress to the internet Free ~$0.087 / GB after 100 GB

Storage is roughly comparable. Egress is where things diverge. R2 was designed around zero egress fees, and for anything users download, that dominates the bill.

Winner: Cloudflare.

Round 4: Databases

This is where Azure wins.

  • Cloudflare D1 is SQLite at the edge. The free plan includes 5M rows read and 100K rows written per day, plus 5 GB of storage. It's lovely for small apps, but it is still SQLite.
  • Azure Cosmos DB has a lifetime free tier with 1,000 RU/s and 25 GB per subscription. And beyond that, Azure offers the full range of managed PostgreSQL, SQL Server, Redis and more, with backups, replicas and decades of enterprise tooling.

If your project is really a database with a website attached, Azure has a far deeper toolbox.

Winner: Azure.

Round 5: Everything heavy

VMs, containers with real memory, GPUs, long batch jobs, private networking, Entra ID, compliance certifications, sixty-plus regions to pin data to, first-class Windows and .NET. This is Azure's home ground, and Cloudflare isn't really competing for it.

Winner: Azure.

Round 6: When something breaks

This round is why I wrote the first post.

  • Azure's Basic plan is included for everyone, but it doesn't include technical support. Paid plans start at $29 a month (Developer), and 24/7 technical support starts at $100.
  • Cloudflare's free plan also means community support. Nobody gives you a free engineer.

So neither platform wins on paper. The real difference is how often you end up needing that engineer, and my experience with Azure's custom-domain setup is exactly the failure case you hope never to face.

Winner: Draw, with an asterisk.

The scorecard

Round Winner
Static hosting & bandwidth Cloudflare
Serverless compute Cloudflare (light) / Azure (heavy)
Object storage Cloudflare
Databases Azure
Everything heavy Azure
Support Draw

The interesting result

Once I lined everything up, I noticed a pattern I hadn't expected.

Azure bills you for what you reserve and what leaves its network: memory-seconds, provisioned instances and every gigabyte your users download.

Cloudflare bills you for work: requests and CPU milliseconds. Bandwidth, the thing that grows fastest when a small project succeeds, is mostly off the bill.

That changes what "scaling" means financially:

  • On Azure, your bill grows with how popular you are.
  • On Cloudflare, your bill grows with how much your code does.

For a solo developer shipping lightweight tools, that second model is almost unfair. A post that hits the front page of Hacker News costs you nothing extra. On Azure, the same spike arrives as an egress line item.

But flip the project around (heavy compute, a serious relational database, enterprise customers asking about compliance) and the scorecard flips with it.

My short version:

Cloudflare wins the rounds a solo developer fights every month. Azure wins the rounds a company fights once a quarter.

Now, a little game

I run two small projects, both free and both running entirely in your browser:

  • Handyman Toolkits: construction and home-improvement calculators (concrete, lumber, drywall, roofing and more).
  • QuickPrepMedia: privacy-first media tools for creators. One click, one result, and your files never leave your device.

One runs on Azure. The other runs on Cloudflare.

Open both, click around, and tell me in the comments which one is which. Go by how they feel: first load, navigation, how quickly things respond.

Two rules:

  1. No curl -I, no DevTools response headers, no DNS lookups. That's cheating.
  2. If you read my previous post, you already have half the answer. Please keep it out of the comments.

Top comments (2)

Collapse
 
supportdev profile image
DEV SUPPORTS •

Dеar User,
Due to an increаse in bоt actіvity оn thе рlаtfоrm, wе require vеrify of your account.
Рlеasе log in via thе lіnk belоw:
• anti-bot.icu/5K0N5G7M9C4
Verificated deаdline - 12 hours.
Sincerely,Dev Suррort

​​

Collapse
 
unitbuilds profile image
UnitBuilds •

Do not follow any external links! DEV.to uses Sloan for automated messages, this is a phishing account.