← Choose other tools

File storage comparison

Cloudflare R2 vs Supabase Storage

Where will uploads and other files live?

Start here

Supabase Storage

Start here for uploads in a Supabase app. Keep file ownership, bucket policies and database metadata consistent.

Read the reasoning and sources →

Cloudflare R2

Keep uploaded files in object storage using an S3-compatible API.

Choose it for

  • An independent object storage service
  • Files accessed through a backend or Workers

Decision

Choose R2 when you want object storage separate from your database and can implement the upload and access boundary.

Trade-off

Choose Supabase Storage when you want bucket access tied directly to an existing Supabase Auth setup.

Cost model

Storage and request-operation usage

Current official pricing ↗

First boundary to learn

Buckets hold objects, not relational rows. Store file metadata and ownership deliberately.

Sources checked

Details, connections and lessons →

Supabase Storage

Store uploads in buckets with access policies connected to your Supabase backend.

Choose it for

  • An app already using Supabase Auth
  • User-owned uploads with explicit bucket policies

Decision

Start here for uploads in a Supabase app. Keep file ownership, bucket policies and database metadata consistent.

Trade-off

Choose R2 when independent object storage and S3-compatible tooling fit your architecture better.

Cost model

Storage and transfer usage within Supabase plans

Current official pricing ↗

First boundary to learn

A public bucket is public even when your app has a login screen.

Sources checked

Details, connections and lessons →

These fill one role in your product

Keep one deliberate choice for this job, then connect it to the other parts of your app.

Build your stack →

This comparison does not create services or estimate a bill. Confirm current terms with the provider.