Shipping

Image & Video Hosting

Store user uploads and product media, resize and compress them on the fly, and serve them fast from a CDN.

Ask your AI about this, with this page as the source:ChatGPT ↗Claude ↗Perplexity ↗

The real choice

Image pipeline, video streaming, or a raw CDN bundle. Image services resize, crop and convert through the URL. Video needs encoding and adaptive streaming, which is a separate job. A CDN bundle gives storage, delivery and basic optimization at low per-GB cost, with less done for you. Or process images yourself, with a library in your code or an image server you host.

Pick by situation

Tap the ones that are you — the tools that fit light up below.
  • Your users upload photos and you need thumbnails and modern formatsImageKitCloudinary
  • Your images already sit in S3 or another bucket you pay forImageKit
  • You need heavier edits through URLs — overlays, watermarks, smart cropsCloudinary
  • Video is the core of your product, like courses or user-uploaded clipsMux
  • Bandwidth is your biggest bill, or you want media on the CDN account you already useBunny.netCloudflare
  • You'd rather process images yourself than pay per transformationsharpimgproxy

The contenders

Grouped by the side of the choice they answer, not ranked. Open a row for when to use it, the trade-off and what makers say.

ToolBest for
Image pipeline2
CloudinaryserviceApps with lots of user-uploaded images and video that need crops, overlays and format conversion through URLs.47+16 open source$99Plus911.7k/wk−28% vs npm

Use it whenYou want one service to handle uploads, storage, transforms and delivery so you write no media code yourself.

Trade-offCredit-based pricing is hard to predict and climbs with transformations and bandwidth.

Used by BlenderHunt, Ostivities, VideoToFlip, 21st, Advanced-React and 42 more · in 16 open-source projects.

Cloudinary powers our image and video management with fast uploads, automatic optimization, and reliable delivery. It ensures every event image, banner, and asset on Ostivities loads beautifully and efficiently across all devices.
Ostivities, the makerSep 2026 ↗
ImageKitserviceAdding resizing and optimization in front of storage you already have, such as an S3 bucket.20+2 open source$14Lite38.1k/wk−48% vs npm

Use it whenYour files already live somewhere and you only need a transform and CDN layer.

Trade-offFewer advanced media features than Cloudinary.

Used by BACH, fileAI, Katalyst, Mida.so, NotionApps and 15 more · in 2 open-source projects.

Video streaming1
MuxapiApps where video is the product — uploads encoded and streamed adaptively with a player and playback analytics.23+12 open source—364.4k/wk−11% vs npm

Use it whenYou're about to let users upload video or sell video lessons and don't want to run encoding yourself.

Trade-offUsage-based by encoding, storage and delivery minutes; it's for video only, not images.

Used by Rally, Sukha, Supercut, Undiscord, Bland AI and 18 more · in 12 open-source projects.

Super reliable video playback with a clean React API, great performance, and less time wasted on video edge cases.
Undiscord, the makerSep 2026 ↗
CDN bundle2
Bunny.netplatformLow per-GB cost for storage, CDN delivery, image optimization and video streaming from one vendor.No evidence yet$10Optimizer + Standard CDN + Storage

Use it whenBandwidth is your main cost and you're fine wiring the pieces together.

Trade-offNo lasting free tier after the trial; tools are simpler than dedicated media platforms.

No maker's product we track shows it for this yet.

Cloudflareplatform · free tierImage resizing and video streaming from the same account that already runs your DNS and CDN, through Cloudflare Images and Stream.No evidence yet$2.50Paid (images in your own bucket)18.6M/wk3.1× vs npm

Use it whenYour site is already on Cloudflare and you want media on the same bill.

Trade-offFewer transformation options than a dedicated image service; Images and Stream are billed separately by images stored, transformations and minutes.

llms.txtMCP

No maker's product we track shows it for this yet.

Process it yourself2
sharplibrary · open sourceResizing, cropping and converting images to WebP or AVIF inside your own Node code, at upload or build time.240 open source—85.9M/wk+38% vs npm

Use it whenYou'd rather generate a few fixed sizes yourself than pay per transformation.

Trade-offRuns on your server's CPU and memory, which is tight on serverless; storage and CDN delivery are still yours to set up.

No maker's product we track shows it for this yet · in 240 open-source projects.

imgproxyapp · open sourceCloudinary-style resizing through URLs on a server you run, placed in front of your bucket and behind a CDN.1 open source—23.5k/wk+162% vs npm

Use it whenImage transformation bills are growing and you're comfortable running one more container.

Trade-offYou host and scale it and add the CDN yourself; some features, such as video thumbnails and object-aware cropping, are in the paid Pro edition.

No maker's product we track shows it for this yet · in 1 open-source project.

Cost: the cheapest plan that fits images stored 5k images, new image variants generated 10k transformations, images delivered 50 GB, from list prices. Try your own numbers →

Cost as you grow

Each contender's cheapest usable plan as usage rises.

$0$100$500$2,0005001k5k10k50k100k500k1M
CloudflareBunny.netImageKitCloudinaryx: images stored (originals, about 500 kb each) (image), other usage scaled with it · cheapest usable plan at each point, list prices · try your own numbers

Who switches to what

Public pull requests on GitHub since Oct 2024 whose title says "X to Y" — real code changes, by developers in general rather than makers only. Pick a flow to see its pull requests.

Vercel → Cloudflare242 PRs

Before you choose

How to approach it

Store originals once and generate sizes through URL transforms instead of saving five copies. Upload directly from the browser with signed URLs so large files never pass through your server. Video is a different problem from images — don't serve user-uploaded MP4s straight from storage.

Common mistakes
  • Sending uploads through your own server, which ties up memory and hits request size and timeout limits on serverless hosts.
  • Serving user-uploaded MP4s straight from storage, so viewers on slow connections wait for one huge file with no lower-quality fallback.
  • Letting the frontend request any image width it likes, which multiplies transformations and the bill; stick to a small fixed set of sizes.

Other options

Real choices most makers here won't need to weigh.

Decided alongside

What the 99 makers' products here chose for their other decisions.