File storage

UploadThing vs Cloudflare R2 vs Supabase

UploadThing, Cloudflare R2, Supabase side by side: price, free tier, who each one fits and when to skip it.
Item
What it doesFile uploads for TypeScript apps, with the upload button, server route and storage handled for you.S3-compatible object storage from Cloudflare with no download fees.Postgres database with login, file storage, edge functions and realtime in one project.
Best forA Next.js SaaS where users upload avatars or documents and you want it working in an afternoon.An app that serves lots of images, videos or PDFs, where per-GB download fees on S3 would eat the margin of a low-priced plan.A solo founder who wants login, database and uploads in one place, with a region close to their users so the app feels fast.
Skip it ifYou store backups or large archives, since you pay for fixed storage tiers instead of exactly what you use.You want an upload button and image resizing out of the box, since R2 is raw storage you wire up yourself.You plan to leave a free project idle while you validate, since free projects get paused after a week without activity.
SetupA little code. An afternoon for a Next.js app.Needs a developer. Half a day to a day to wire uploads and downloads into the app.Needs a developer. Login and a first table in an afternoon; access rules and email setup take another day or two.
PriceFree; $10/month for 100 GB$0.015 per GB/month, no egress feesFree, then Pro from $25/month plus usage
What it costs in practiceA SaaS with 1,000 users storing about 30 MB each (30 GB): it doesn't fit the free 2 GB, so it's the $10/month plan with 100 GB, downloads included. Past 250 GB, the $25 usage plan charges $0.08 per extra GB. Estimate.A SaaS with 200 GB of files and 2 TB of downloads a month: (200 − 10 free) × $0.015 ≈ $2.85 of storage, reads and writes within the free quota, and $0 for downloads. About $3/month. Estimate.A SaaS with 2,000 monthly active users and a 3 GB database outgrows the free 500 MB, so it goes to Pro: $25/month, which already covers one Micro server, 100k users, 8 GB of disk and 250 GB of egress. Add $10 for a custom domain on login and you're at about $35/month (estimate, in dollars).
Free plan2 GB of storage shared across all apps, unlimited uploads and downloads.10 GB stored, 1 million writes and 10 million reads per month.2 projects, 50k monthly users, 500 MB database and 1 GB of files; paused after a week idle.
Free tier2 GB10 GB/month50k MAU, 500 MB DB, 1 GB files
Price per GB stored$10/mo for 100 GB; $0.08/GB over 250 GB$0.015/GB/month$0.0213/GB over 100 GB (Pro)
Downloads (egress)No download feesFree5 GB free; Pro 250 GB, then $0.09/GB
Open sourceNo: noNo: noYes: yes
Before you build
  • Choosing a region and private files are only on paid plans. Free apps store everything in US West (Seattle).
  • Changing the region later only affects new uploads. Existing files stay where they were, and moving them means contacting support.
  • Default size limits are small: 4 MB for images and PDFs, 16 MB for video, one file per upload. Set your own limits in the file route or users will hit errors.
  • The free 2 GB is shared across all your apps, not per app.
  • You must add an R2 subscription through Cloudflare's checkout before using it, even if you stay in the free quota.
  • The free r2.dev public link is rate-limited and meant for development only. In production you need your own domain on Cloudflare.
  • You can't pick a country. Location hints like Western Europe are best effort only; for a guarantee you need a jurisdiction, and the options are the EU, the US and FedRAMP.
  • The cheaper Infrequent Access class charges $0.01 per GB to read, bills at least 30 days per file and has no free quota.
  • Free projects are paused after one week without activity, and you get only 2 free projects across all your organizations.
  • The built-in email only reaches members of your Supabase team, at about 2 emails an hour. Real users get no confirmation or reset email until you plug in your own SMTP.
  • Phone login doesn't send SMS by itself: you open an account with Twilio, MessageBird or Vonage and pay them per message.
  • The free plan has no automatic backups; Pro keeps 7 days, and point-in-time restore is an add-on of about $100/month.
  • The Pro fee is per organization, but each project runs its own server: every extra project adds compute (Micro is $10/month) on top.
Price checked

Checked on Oct 28, 2026 · official pricing

Checked on Oct 28, 2026 · official pricing

Checked on Oct 28, 2026 · official pricing

Prices are read from each official pricing page on the date shown and can change. Always confirm before signing up.

Faundr

Picked your tools? Build it with AI, safely.

Faundr keeps your project’s memory, blocks what can’t be undone and tells you if it’s safe to launch, inside Claude Code and Codex.