Skip to content
Back to Stack Recommender

Cloudflare R2

Cloudflare R2 — CDN and edge compute platform for global content delivery.

CDNSimple

Stack Components

StorageR2
CDNCloudflare
EgressFree

Why

Caches content at edge PoPs for low latency and reduced origin load. CDNs serve 70%+ of all internet traffic (Cisco 2024).

Cloudflare's 330+ PoP network and Fastly's 80+ PoPs cut TTFB by 60-80%, and cache hit ratios above 90% reduce origin load dramatically.

When

Use for global web apps, static assets, and edge logic. Avoid for single-region internal tools.

How

1. Configure Cloudflare R2 distribution 2. Set cache rules and TTLs 3. Point DNS to Cloudflare R2 4. Monitor cache hit ratio

Example

// Cloudflare R2 config export default { cache: { ttl: 3600 }, origin: 'https://api.example.com', };

Common Problems

  • ⚠Cloudflare R2 cache key collisions — include variant headers in cache key
  • ⚠Stale cache after deploy — use {ne} purge API or versioned URLs
  • ⚠Configuration drift between environments — use infrastructure-as-code (Terraform/Pulumi) to keep dev/staging/prod identical

Best Practices

  • ✓Use Cloudflare R2 cache analytics to identify low hit-ratio paths
  • ✓Enable {ne} compression (Brotli/Gzip) for text responses
  • ✓Set up health checks and graceful shutdown — handle SIGTERM to drain in-flight requests before exit

FAQ

What is Cloudflare R2 and what projects is it for?

Cloudflare R2 — CDN and edge compute platform for global content delivery. It pairs layered technologies for end-to-end type safety and out-of-the-box deploys, fitting everything from MVPs to production SaaS.

How do I spin up a working demo with Cloudflare R2 in 10 minutes?

Two steps: (1) Configure Cloudflare R2 distribution; (2) Set cache rules and TTLs. Get the local dev server running, then wire one real data source to verify the end-to-end loop.

What is the most common pitfall with Cloudflare R2 and how do I avoid it?

The most common pitfall is: Cloudflare R2 cache key collisions — include variant headers in cache key. Avoid it by adding the matching checklist to your PR template and running type-check + lint + unit tests in CI — three gates before merge.

What are the best practices for Cloudflare R2?

Best practices for Cloudflare R2 include: Use Cloudflare R2 cache analytics to identify low hit-ratio paths; Enable {ne} compression (Brotli/Gzip) for text responses; Set up health checks and graceful shutdown — handle SIGTERM to drain in-flight requests before exit. The first one — "Use Cloudflare R2 cache analytics to identify low hit-ratio paths" — should be set up at project init to avoid costly rework later.

When should I NOT choose Cloudflare R2?

Pick something else in three cases: (1) the team has zero experience with the core framework and the deadline is tight (learning-curve risk); (2) it's a pure content/marketing site (Astro is lighter); (3) you need very high throughput (>10k RPS) or strict-consistency microservices (Go/Rust). Cloudflare R2 shines for mid-to-high complexity full-stack and API work — don't over-engineer simple static pages with it.