Quick answer
Cloudflare R2 - Cloudflare R2 wins for most builders because its free tier is larger and more forgiving on object operations, while still keeping egress free, which matters once you start serving files instead of just storing them.
How the free tiers compare
R2 and Tigris are both usage-based object stores with free egress, but the free tiers are shaped differently. R2 gives you more headroom on the kinds of workloads that chew through requests: 10 GB-month of Standard storage, 1 million Class A operations, and 10 million Class B operations. Tigris is lighter on storage and write/list volume at 5 GB, 10,000 PUT/COPY/POST/LIST requests, and 100,000 GET/SELECT/other requests, but it also keeps region-to-region transfer free and adds more storage tiers, including Archive and Archive Instant Retrieval. After the free tier, both stay metered rather than moving to a flat plan, so costs mainly diverge by storage class and by how request-heavy your app is. R2 is simpler if you want a broad, forgiving starter bucket. Tigris is more flexible if you expect to lean into colder storage tiers or want its broader feature set.
Cloudflare R2 vs Tigris free tier, side by side
| Cloudflare R2FTV 38 | TigrisFTV 36 | |
|---|---|---|
| Free standard storageR2 includes twice the free storage capacity. | 10 GB-month | 5 GB/month |
| Free Class A operationsR2’s free write/list headroom is much larger. | 1 million/month | 10,000 PUT, COPY, POST, and LIST requests/month |
| Free Class B operationsR2 is far more forgiving for read-heavy usage. | 10 million/month | 100,000 GET, SELECT, and other requests/month |
| EgressBoth avoid the classic surprise bandwidth bill. | Free to the Internet | Zero egress fees for data transfer out, regional transfer, and region-to-region transfer |
| Infrequent Access storageBoth offer lower-cost colder storage with retrieval fees. | $0.01/GB-month | $0.01/GB/month |
| Minimum storage durationTigris adds longer retention for Archive tiers. | 30 days | 30 days for Infrequent Access, 90 days for Archive tiers |
After you outgrow the free tier
Both products use usage-based pricing after the free tier, so your bill scales with stored gigabytes and request volume rather than seat count. R2 starts at $0.015/GB-month for Standard storage, with Class A and Class B requests priced separately, and its Infrequent Access tier adds retrieval fees. Tigris starts slightly higher on standard storage at $0.02/GB-month, but its request pricing is much cheaper per 1,000 operations. That means R2 tends to be cheaper for storage-heavy, lower-request workloads, while Tigris can win when request counts are high or when you want Archive tiers.
Cost at real usage
| Usage | Cloudflare R2 | Tigris |
|---|---|---|
| 100 GB stored, 1 million Class A requests, 10 million Class B requests/moR2 uses $0.015/GB-month plus request charges; Tigris uses $0.02/GB-month plus per-1,000 request charges. | ~$4.95/mo | ~$7.00/mo |
| 1 TB stored, 100,000 Class A requests, 1 million Class B requests/moStorage dominates here, so R2’s cheaper per-GB rate matters more. | ~$20.25/mo | ~$23.00/mo |
| 10 GB stored, 10 million Class B requests/moR2 is still cheaper on request pricing for this workload. | ~$3.75/mo | ~$5.10/mo |
Estimates, not quotes. Usage-based rates change - verify with the vendor's pricing page before committing.
When to pick each one
Pick Cloudflare R2 when…
- You want the larger free tier for request-heavy object storage and do not want to hit request limits early.
- You are serving user uploads, media, or build artifacts and expect meaningful download traffic, since egress stays free.
- You want a simple free starting point with one main storage class and fewer tier choices to think about.
- You are building on Cloudflare already and want R2 alongside Workers integration.
Pick Tigris when…
- You only need a small starter bucket and want the option to move data into Archive or Archive Instant Retrieval later.
- You care about a broader storage feature set, including buckets, object events, IAM policies, custom domains, and presigned URLs.
- You want zero egress plus free regional and region-to-region transfer.
- You are building AI or tooling workflows around S3-compatible SDKs like boto3, aws-cli, rclone, or PyTorch.
Bottom line
For the most common builder use case, Cloudflare R2 is the safer default. Its free tier is larger, especially on requests, and it stays simple if you just need object storage with free egress. Tigris makes more sense when you want a broader storage feature set, more cold-storage options, or you expect to benefit from its cheaper request pricing at scale. If you are starting small and unsure how fast your app will grow, R2 gives you more room before you pay.
Read the full listings: Cloudflare R2 and Tigris. Scores use the FTV methodology at /ftv. Browse more head-to-heads on /compare, or see the top-ranked free tiers on /top.