Blog

How to launch a web app on Cloudflare for free

What Cloudflare's free plans include for Pages, Workers, D1, KV and R2, with the actual limits, and a simple path from an empty folder to a live app.

You can host a real web app on Cloudflare without a credit card for the hosting itself. The free plans cover static sites, server-side code, a SQL database, key-value storage and file storage. This guide lists the limits that matter and the order to build things in.

The numbers below come from Cloudflare’s documentation as of October 2026. Limits change, so check the linked pages before you rely on them.

What the free plans include

Product What it is Free limits
Pages Static sites and full-stack frameworks 500 builds per month, 20,000 files per site, 25 MiB per file, 100 custom domains per project
Workers Server-side code at the edge 100,000 requests per day, 10 ms of CPU time per invocation
D1 SQLite-based SQL database 5 million rows read per day, 100,000 rows written per day, 5 GB total storage
KV Key-value storage 100,000 reads, 1,000 writes, 1,000 deletes and 1,000 lists per day, 1 GB stored
R2 Object and file storage 10 GB-month storage, 1 million Class A and 10 million Class B operations per month, free egress

Daily limits reset at 00:00 UTC. When you go over a limit, operations of that type fail with an error until it resets. The paid Workers plan starts at a minimum of $5 per month if you outgrow the free tier.

A sensible build order

1. Start with a static site or a framework app. Create a project with Cloudflare’s starter tool:

npm create cloudflare@latest my-app

It lets you pick a framework such as Astro and sets up the config for you. Run it locally with npx wrangler dev and deploy it with npx wrangler deploy.

2. Add server code only where you need it. A Worker can handle forms, an API or a webhook. With 100,000 free requests per day, a small project is unlikely to notice the limit. Keep the work per request short, since the free plan allows 10 ms of CPU time per invocation.

3. Add a database when you need to query data. Create a D1 database, then bind it to your Worker in the Wrangler config:

npx wrangler d1 create my-db
{
  "d1_databases": [
    { "binding": "DB", "database_name": "my-db", "database_id": "<id from the create command>" }
  ]
}

Test against the local copy first. Our local D1 helper builds the commands and explains where the local data lives.

4. Use KV for read-heavy data and R2 for files. KV suits settings and cached lookups that you read often and write rarely, since free writes are limited to 1,000 per day. R2 holds uploads and media, and downloads from it cost nothing.

Mistakes that cost free-tier projects

  • Writing to KV on every request. The 1,000 daily writes run out quickly. Use D1 for data that changes often.
  • Running remote commands by accident. wrangler d1 execute without --local runs against your real database.
  • Ignoring the CPU limit. Heavy parsing or image work in a Worker can hit the 10 ms cap. Move it elsewhere or batch it.
  • Skipping local testing. Local development is free and does not use your quotas.

Beyond the first project

Once you have several Workers, Pages sites and databases on your machine, keeping track of ports, processes and bindings gets tedious. WorkerDock is a Mac app that shows all your local projects and what each one uses in one window. You can download it from the home page.

Directory

Apps and projects built on Cloudflare

Hand-picked open-source projects you can run in your own Cloudflare account.

Browse the directory
  • Email

    Box Ox

    Browser inbox, sending API, webhooks and agent access, all in your own Cloudflare account.

    • Functional Source License
    • Workers
    • R2
    • D1
  • Email

    EmailFlare

    A REST API, dashboard and scoped API keys for sending app email through Cloudflare.

    • MIT
    • Workers
    • Email Sending
  • Developer tools

    Appflare

    App manager for your Cloudflare account. Install open-source Workers apps from your browser.

    • Apache-2.0
    • Workers

Running more than one Worker?

WorkerDock finds your local Workers, Pages and Astro projects and shows each one's port, logs and bindings in one window.

v0.1.2 · macOS 14+ · Free