1. Compare
  2. Supabase Storage vs Cloudflare R2 vs UploadThing for user uploads

Supabase Storage vs Cloudflare R2 vs UploadThing for user uploads

Profile photos, PDFs, product images: sooner or later your users will upload things, and those files need a home that isn't your database. Supabase Storage sits right next to your Supabase data, Cloudflare R2 is raw storage with free downloads, and UploadThing is the friendliest drop-in for JavaScript apps. Downloads (egress) are where storage bills usually creep up on you.

Priced from vendor pages
Prices checked
21 Oct 2026
Exchange rate
1 USD = £0.7489
Sources
4
How we check

The answer

For a small app, all three cost £0.00. At 50 GB, R2 is about £0.45 a month, UploadThing £7.49 and Supabase £18.72 (that's Supabase Pro, which you may already be paying for). At 500 GB stored and downloaded, R2 is £5.50, UploadThing £33.70 and Supabase £41.95. R2 wins on price because downloads are free; the other two win on how little you have to build yourself.

What does it cost to store the files your users upload?

Supabase Storage

Free (1 GB storage, 5 GB egress) or Pro $25/mo (100 GB storage, 250 GB egress)

  • If you already use Supabase, files live next to your data and use the same sign-in and security rules. Nothing new to set up.

Free has 1 GB of storage, a 50 MB file size limit, and its 5 GB of egress is shared with your database traffic. On Pro, extra downloads cost $0.09 per GB, or $0.03 when served from the cache.

1 GB stored, 5 GB downloaded a month Free50 GB stored, 200 GB downloaded a month £18.72500 GB stored, 500 GB downloaded a month £41.95

Cloudflare R2

10 GB free each month, then $0.015 per GB-month; downloads are free

  • The cheapest place to keep lots of files, and downloads never cost anything, so a popular file can't turn into a surprise bill.

It's storage only: you build the upload flow, permissions and image resizing yourself. Uploads and other writes cost $4.50 per million after the first million each month.

1 GB stored, 5 GB downloaded a month Free50 GB stored, 200 GB downloaded a month £0.45500 GB stored, 500 GB downloaded a month £5.50

UploadThing

Free (2 GB), $10/mo (100 GB) or $25/mo usage-based (250 GB, then $0.08 per GB)

  • Built for JavaScript and Next.js apps: add its upload button and it handles the fiddly parts, with unlimited uploads and downloads on the free plan.

The free plan's 2 GB is shared across all your apps. The page doesn't spell out bandwidth limits on paid plans, so check before planning anything download-heavy.

1 GB stored, 5 GB downloaded a month Free50 GB stored, 200 GB downloaded a month £7.49500 GB stored, 500 GB downloaded a month £33.70
1 GB stored, 5 GB downloaded a monthFree
1 GB stored, 5 GB downloaded a monthFree
1 GB stored, 5 GB downloaded a monthFree
50 GB stored, 200 GB downloaded a month£18.72
50 GB stored, 200 GB downloaded a month£0.45
50 GB stored, 200 GB downloaded a month£7.49
500 GB stored, 500 GB downloaded a month£41.95
500 GB stored, 500 GB downloaded a month£5.50
500 GB stored, 500 GB downloaded a month£33.70

Monthly cost in pounds, from each vendor's pricing page. Lowest figures compared storage and downloads only.

How we worked it out

  • Supabase: 1 GB stored and 5 GB downloaded fit the Free plan. At 50 GB you need Pro: $25 × 0.7489 = £18.72 (18.7225), with 100 GB of storage and 250 GB of egress included.
  • Supabase at 500 GB: Pro $25 + 400 GB × $0.0213 = $8.52, + 250 GB of extra egress × $0.09 = $22.50. Total $56.02 × 0.7489 = £41.95 (41.9534). We assumed uncached egress; cached egress is $0.03 per GB.
  • R2: the first 10 GB a month are free. 50 GB: 40 GB × $0.015 = $0.60 × 0.7489 = £0.45 (0.4493). 500 GB: 490 GB × $0.015 = $7.35 × 0.7489 = £5.50 (5.5044). Downloads are free. We assumed uploads and reads stay inside the free 1 million writes and 10 million reads a month.
  • UploadThing: 50 GB fits the 100 GB plan, $10 × 0.7489 = £7.49 (7.489). 500 GB: $25 + 250 GB × $0.08 = $45 × 0.7489 = £33.70 (33.7005).
  • Excludes VAT, image transformations, and any database plan you'd be paying for anyway.

Sources