What can you actually run on Cloudflare without paying a cent — beyond a static website?
You already know Cloudflare as a CDN that serves static files. Here's the key insight: Cloudflare's edge network doesn't just cache files — it can run code. That code executes in 300+ data centers worldwide, milliseconds from your users. And it comes with Cloudflare's security stack for free.
All of these have a free tier. Let's look at what each one gives you and what you could build with it.
A Worker is a small JavaScript/TypeScript program that runs on Cloudflare's edge. It intercepts HTTP requests and can do anything: return dynamic HTML, act as an API, rewrite responses, authenticate users, proxy to other services.
| Free Limit | What It Means |
|---|---|
| 100,000 requests/day | ~3,300 requests/hour — enough for a personal API, a small SaaS tool, or a portfolio with dynamic features |
| 10ms CPU time per request | Enough for most operations (API calls, template rendering, auth checks). Not enough for heavy computation. |
| No duration charge | If your Worker waits on a network call (fetch to a DB, external API), that wait time is free. Only CPU cycles count. |
The 10ms CPU limit sounds tiny, but it only counts actual processing — not waiting. A Worker that fetches data from an API (200ms network wait) and formats the response (2ms CPU) only uses 2ms of your budget.
A globally distributed key-value store. Data is eventually consistent — reads are fast (served from edge), writes propagate globally within ~60 seconds.
| Free Limit | Good For |
|---|---|
| 100,000 reads/day | Configuration, feature flags, cached API responses |
| 1,000 writes/day | Infrequently-updated data |
| 1 GB storage | Plenty for config, user sessions, small datasets |
A serverless SQLite database. Full SQL support, runs at the edge. This is your relational data store.
| Free Limit | Good For |
|---|---|
| 5 million rows read/day | Most personal apps will never hit this |
| 100,000 rows written/day | Blog comments, user accounts, form submissions |
| 5 GB storage | Substantial — thousands of records easily |
S3-compatible object storage with zero egress fees. Store files, images, backups — and serve them without paying for bandwidth.
| Free Limit | Good For |
|---|---|
| 10 GB storage | Images, PDFs, file uploads |
| 1M Class A ops/month | Uploads, writes |
| 10M Class B ops/month | Downloads, reads |
| Zero egress | Serve files to users without bandwidth charges — ever |
Stateful, single-threaded objects with their own SQLite storage. Think of them as tiny servers that handle real-time coordination: chat rooms, game state, collaborative editing.
| Free Limit | Good For |
|---|---|
| 100,000 requests/day | WebSocket connections, real-time collaboration |
| 13,000 GB-seconds/day | ~3.6 hours of a 1GB-memory object running continuously |
| 5 GB SQLite storage | Per-object state that survives restarts |
Reliable message delivery between Workers. Producer → Queue → Consumer pattern.
| Free Limit | Good For |
|---|---|
| 10,000 operations/day | Background jobs, event processing |
Store and query vector embeddings for semantic search and AI applications.
| Free Limit | Good For |
|---|---|
| 30M queried dimensions/month | ~39,000 queries against 768-dimension vectors |
| 5M stored dimensions | ~6,500 vectors at 768 dimensions |
Everything proxied through Cloudflare automatically gets:
Unlike AWS Lambda or Vercel Functions, where you need to separately configure DDoS protection and SSL, Cloudflare Workers get these for free by virtue of running on Cloudflare's network. Your API is protected the moment you deploy it.
Here's what fits comfortably in the free tier:
| Project Type | Services Used | Why It Works |
|---|---|---|
| Dynamic API (REST or GraphQL) | Workers + D1 | 100K requests/day is plenty for personal/small projects |
| Full-stack web app | Workers + Static Assets + D1 | SSR or SPA with a real database |
| URL shortener | Workers + KV | Perfect KV use case — read-heavy, write-light |
| Image hosting | Workers + R2 | Zero egress means free image serving forever |
| Webhook processor | Workers + Queues + D1 | Receive webhooks, queue them, process async |
| Real-time chat app | Workers + Durable Objects | WebSocket coordination with persistent state |
| Cron jobs / scheduled tasks | Workers (Cron Triggers) | Run code on a schedule — no server needed |
| AI-powered search | Workers + Vectorize + Workers AI | Semantic search over your own content |
| Email handler | Workers (Email routing) | Programmatically handle incoming emails |
| Auth gateway / proxy | Workers | Add auth to any backend with a Worker in front |
Be honest about the limits:
AWS Lambda: 1M requests/month free, but you pay for API Gateway, need to configure VPC, no built-in DDoS protection.
Vercel: Generous compute, but 100GB bandwidth cap, and serverless functions run in a single region.
Workers: 100K/day (~3M/month), runs globally at 300+ locations, DDoS + SSL + WAF included, zero egress on R2, real SQL database with D1.
Trade-off: tighter CPU limits, smaller ecosystem.
You now have the map. The next lesson will get your hands dirty: we'll deploy your first Worker — a simple dynamic API — and see it running at the edge with full security protection, in under 5 minutes.
Cloudflare Workers Pricing — the official source for all free-tier limits. Bookmark this; limits change occasionally and this is always current.