DEV Community

AsyncMonk
AsyncMonk

Posted on

Why free tiers of image compressors look the way they do (and what that means for a solo dev)

I run two small web products on my own, and I have a habit of reading pricing pages the way other people read changelogs. Image compressors are a nice little case study, because the free tiers look wildly different from each other, and once you ask "who pays for the CPU" the differences stop looking arbitrary.

Five image-compression tools compared (from public product info)

Start with the upload-based services. TinyPNG gives you 500 images a month for free, capped at 5 MB each, and charges beyond that. compressor.io lets you go up to 10 MB per file but takes one file at a time. docsmall, which is big in the Chinese market, offers batch handling and PDF compression, keeps the free ceiling at 5 MB per file, and moves large files behind a membership. Three companies, three different shapes of "free", and all three limits are about the same thing: every file you send costs them server time and bandwidth. A monthly count, a per-file ceiling, or a one-at-a-time queue are three different ways of putting a lid on that cost.

Now look at the tools that run in your browser. Squoosh from Google has no quota, no file cap in the commercial sense, and no account, because the encoding happens on your laptop and Google's bill for your usage is roughly a static page load. ImgIng at imging.ai follows the same logic with WASM builds of the encoders, which is why it can offer batch processing with no monthly count, no watermark, and no login: the compute is yours, so there is nothing to meter. The limit that remains is physical, in that a weak machine or a mobile browser will slow down on a large batch of AVIFs.

So the industry pattern, at least as I read it, is that free tiers track the cost structure rather than the brand's generosity. Server-side tools meter something because they have to. Browser-side tools do not meter because there is nothing to meter. The interesting part is what each side does with that position.

Server-side tools lean into the thing a browser cannot do well, which is unattended automation. TinyPNG's API is the obvious example: if your app ingests user uploads at runtime, you want a service with an SLA and a maintained SDK, and 500 free images is plenty to prototype the integration before it costs anything. docsmall leans into document workflows with PDF support. compressor.io covers SVG, which most of the others skip. Each of them has a scenario where paying is reasonable, and that scenario is usually "no human is present".

Browser-side tools lean into the human-present workflow. Squoosh is the place to go for a single image where you want the full encoder lineup and a side-by-side viewer; that single-image experience is its strength and I am not going to pretend a batch tool replaces it. ImgIng takes the same local approach and widens it: drop a folder of mixed PNG, JPEG, WebP and animated GIFs, adjust quality and scale, and get the folder back, with files that would not shrink returned as-is instead of bloated. AVIF is produced with libavif on the client, the same encoder family Squoosh uses, so the ratio argument between the two is mostly a wash on one photo. The difference is scope, not quality.

Tool Runs What "free" means Where it fits
TinyPNG server 500/month, 5 MB each runtime pipelines via API
compressor.io server 10 MB per file, single SVG and one-off large files
docsmall server 5 MB per file, big files paid Chinese teams, PDFs
Squoosh browser no limits one image, careful tuning
ImgIng browser no limits, batch folders, animation, private files

What this means for a solo developer is a simple split. Pay for a server-side API where your users generate images and you are not around. Use a local tool for everything you touch by hand, because the marginal cost of that work is zero and the quota you would otherwise burn is better saved for the pipeline. I keep TinyPNG wired into one product's upload path and use ImgIng for every batch I process myself, and the monthly bill has stayed at the free tier for a year.

One caveat so the argument does not overreach: "runs locally" is a per-format statement, not a blanket one. Common formats are handled in the browser; check the tool's own notes for anything unusual before assuming a file never left your machine. That is true of every client-side tool, ImgIng included.

Top comments (0)