Three object stores with three different shapes — the dominant cloud default, a zero-egress S3-compatible challenger, and a Postgres-bundled file store that lives next to your auth and database.
Pick AWS S3 when you're already on AWS and the deep service ecosystem — IAM, Lambda triggers, lifecycle policies, replication, and analytics integrations — outweighs egress costs. Pick Cloudflare R2 when egress fees would dominate the bill, you serve a lot of public assets, or you're building on Workers and want object storage co-located with your edge compute. Pick Supabase Storage when you're already on Supabase and want files in the same project as your Postgres rows and auth — row-level-style access policies, signed URLs, and image transforms wired in without integrating a separate vendor.
How we evaluate →Get the next comparison in your inbox
Weekly digest — no spam, unsubscribe anytime.
| Attribute | Cloudflare R2 | Amazon S3 | Supabase Storage |
|---|---|---|---|
| Category | Storage | Storage | Storage |
| Pricing Model | freemium | freemium | freemium |
| Starting Price | Free | Free | Free / $25/mo |
| Free Tier | Yes | Yes | Yes |
| Open Source | No | No | Yes |
| Platforms | web, api, edge | web, api | — |
No data available.
See full review of Supabase Storage→