status: rejected
timestamp: 2026-06-20
tags: [storage, cloudflare, r2, rejected]
Cloudflare R2
REJECTED — card-on-file on Workers Paid plan, replaced by B2 + GH Releases
Cloudflare R2
Status
REJECTED as of 2026-06-20. Replaced by the
Backblaze B2 + GitHub Releases
split documented in
decisions/architecture/object-storage-split.md.
Why rejected
Although R2’s free tier sign-up does not itself prompt for a card, adjacent Cloudflare Workers Paid features that we’d realistically want (higher CPU time, larger queue cliffs, R2 add-ons) pull in a billing method on the same account. The family’s no-card-on-file hard rule excludes the whole surface, not just the free-tier door.
Predecessor record
A prior entry at services/infra/compute/cloudflare-r2.md
documents R2 in the compute subdir as status: active. That file
is now stale and should be flipped to status: rejected in a
follow-up sweep, with a pointer to this entry. (Out of scope for the
batch that introduced this file — left as a documented inconsistency.)
Replacement
| Use case | New home |
|---|---|
Versioned binaries (.crx, .vsix, .zip, CLI bins) | GitHub Releases |
| Unversioned blobs (backups, raw originals, archives) | Backblaze B2 |
Cross-refs
- Object storage split decision
- Backblaze B2 — replacement (blobs)
- GitHub Releases — replacement (binaries)
- services/infra/compute/cloudflare-r2 — stale active entry, to be flipped
- No card-on-file rule