All articles

comparisons

Free Image Hosting and Cloud Storage for Your App: 6 Options Compared

Cloudflare R2, Backblaze B2, Cloudinary, ImageKit, UploadThing and Uploadcare compared on free storage, bandwidth and the meters that quietly charge you. Checked in October 2026.

Rahul Parathy
4 min read
Free Image Hosting and Cloud Storage for Your App: 6 Options Comparedcomparisons

Users upload photos. Your blog needs images. Your app generates PDFs. At some point files need a home that is not your server's disk, and the free plans for file storage look generous until you read the line about how they count.

Some charge for storage, some for bandwidth, some for the number of requests, and some for the number of times you resize an image. Learn which meter your app trips first and the choice gets easy.

Plain storage: you handle the files

Cloudflare R2

Cloudflare R2 homepage

Each month you get 10 GB of storage, 1 million Class A operations (writes and lists) and 10 million Class B operations (reads), and egress is not charged on any storage class. Free does not mean the reads are free forever, though. The pricing page's own example, 100,000 files of 100 KB read 10 million times a day, comes to $104.40 a month. A Reddit post titled "R2 Pricing: Serving Files/Images is Not Free" makes the same point. For a normal app, the free amount goes a long way. See Cloudflare R2 or visit developers.cloudflare.com/r2.

Backblaze B2

Backblaze B2 homepage

The first 10 GB are always free, with egress free up to 3 times your average monthly storage, then $0.01 per GB. After 10 GB, storage costs $6.95 per TB per 30 days. There are no minimum file sizes and no minimum storage duration fees. A Hacker News commenter running B2 in production reported a weekly maintenance window and one case where an upload reported success but arrived as 0 bytes. Their advice: always verify uploads. See Backblaze B2 or visit backblaze.com.

Upload tools: they handle the whole flow

UploadThing

UploadThing homepage

The 2 GB App plan is $0 a month, with unlimited uploads and downloads, and the 2 GB is shared across all your apps. Private files and regions are on the $10 and $25 plans, and audit logs are kept for 7 days. A tidy choice for a Next.js project that needs an upload button this afternoon. See UploadThing or visit uploadthing.com.

Uploadcare

Uploadcare homepage

Free gives you 1,000 operations a month, 5 GB of traffic, 1 GB of storage and a 500 MB maximum file size, with an upload widget, API, CDN delivery and signed uploads. The page marks Free as personal use only, so a business app needs Pro at $66 a month on the yearly toggle ($79 monthly). See Uploadcare or visit uploadcare.com.

Image processing: resize and serve

Cloudinary

Cloudinary homepage

Free forever with 25 monthly credits, no card, 3 users and 1 account. A credit buys transformations, or 1 GB of managed storage, or video bandwidth, and they are interchangeable, which means one busy meter can use up the whole pot. Image and video transformations, adaptive streaming and CDN delivery are included. Price is the main complaint: G2 shows "Expensive" with 21 mentions. See Cloudinary or visit cloudinary.com.

ImageKit

ImageKit homepage

Forever free with 20 GB of bandwidth a month, a fixed 3 GB media library, 500 video units, 650 extension units and 2 users. Support is community only. Extra meters sit beside bandwidth, so read the units line before you add AI features. See ImageKit or visit imagekit.io.

Which one to use

  • Serving images on a blog or marketing site: ImageKit or Cloudinary, so you get resizing for free.
  • User uploads in a Next.js app: UploadThing.
  • Lots of files, few reads: Backblaze B2 or R2.
  • A business app on a free plan: skip Uploadcare, since Free is personal use only.

Before you launch, upload a 10 MB file from your phone on mobile data. Many upload flows work on office wifi and fail on a real connection.

Rahul Parathy

Runs SaaS Puppy, a directory of free tier tools for indie hackers.

More articles