squish.
By @nap.codes
READY v2.3 · pngquant · clipboard · seo
FILES 0 queued
+
Drop images here
or click to browse — multiple files supported
JPG · PNG · WEBP · GIF · BMP · AVIF

100% client-side · no server · no uploads · MozJPEG + AVIF via jSquash · Built by @nap.codes

A free TinyPNG alternative for bulk compression

Squish compresses unlimited images to a target file size — entirely in your browser. No uploads, no signups, no per-month limits.

If you've been using TinyPNG, Compressor.io, or iLoveIMG and hitting their 20-file caps, 5 MB file limits, or paywalls, Squish gives you the same compression quality without any of those constraints. Your images are processed using the same industry-standard codecs (MozJPEG, libavif, oxipng) — but they never leave your device.

How Squish compares

Feature TinyPNG Squoosh Compressor.io Squish
Bulk compression 20 files / batch 1 file only 10 files free Unlimited
Target file size No No No Yes (per image)
Max file size 5 MB free No cap 10 MB free No cap
Processing Server-side Client-side Server-side Client-side
Images upload to a server? Yes No Yes No
JPEG / WebP / AVIF Yes Yes Yes Yes
ZIP download Yes No Yes Yes
Cost Free → paid API Free Free → Premium Free, always

Comparison data based on publicly published features as of 2026. TinyPNG, Squoosh, and Compressor.io are trademarks of their respective owners; this comparison is for informational purposes only.

Why target file size matters

Most compression tools let you pick a quality percentage (60%, 80%, etc.) and hope the output is small enough. That's backwards for the most common real-world need: "make this fit under 200 KB" — whether for a WordPress upload limit, a Shopify product image, an email attachment, an Indian government form, or a job application portal.

Squish solves this with a binary-search algorithm. You set a maximum file size (per image, in KB or MB), and Squish finds the highest possible quality that stays under that limit — automatically, for every image in your batch. One image might land at quality 78, another at 64, but both fit your target.

Built for these workflows

e
E-commerce
Shopify, WooCommerce, and Amazon Seller Central image limits. Compress 50 product photos to fit under 200 KB each in one batch.
w
WordPress sites
Upload-size limits, Core Web Vitals, PageSpeed scores. Bulk-compress blog images without a plugin and without giving images to a third party.
f
Forms & applications
Government portals, visa applications, university forms with strict per-file caps. Set the exact size limit and Squish fits the photo to it.

Frequently asked

Is Squish really free? What's the catch?

Yes, completely free with no usage caps, signups, or hidden tiers. There's no catch because there are no server costs — compression happens in your browser using WebAssembly. The only "cost" is the one-time download of the codec files (~400 KB) when you first compress an image.

How is this different from TinyPNG?

TinyPNG uploads your images to their servers in the Netherlands, compresses them there, and sends them back. They limit free users to 20 images per batch and 5 MB per file. Squish does everything locally in your browser using the same underlying compression libraries (MozJPEG, libavif, oxipng) — no uploads, no batch limits, no file size cap. The trade-off is that very large images (50 MP+) take a few seconds longer because they use your CPU instead of theirs.

Are my images really not uploaded anywhere?

Correct. Open your browser's Network tab while compressing — you'll see no image uploads. The only network requests are the initial page load and the one-time fetch of the WebAssembly codec files from a CDN. Your images stay on your device.

What's the maximum number of files I can compress at once?

There is no hard limit. People have used Squish on batches of 500+ images. The practical ceiling depends on your device's memory — if you're compressing 4K photos on a phone, expect to do it in batches of 50–100. On a desktop, a few hundred is comfortable.

What's the difference between MozJPEG, WebP, and AVIF?

MozJPEG is an optimized version of standard JPEG — same file extension, works everywhere, ~10–20% smaller than typical JPEGs at the same quality. WebP is Google's format, ~25–35% smaller than JPEG and supported by every modern browser. AVIF is the newest, often 40–50% smaller than JPEG but slower to encode and not yet supported by every old browser. For web use today, WebP is the sweet spot. For maximum savings, use AVIF. For maximum compatibility, use JPEG.

Will compression reduce my image quality?

Yes — that's what lossy compression does. But modern codecs (the ones Squish uses) are specifically tuned to remove data that the human eye can't perceive. At quality 75–85, most people can't tell a compressed image from the original. If you need perfect quality, use PNG output (lossless) or keep the quality slider at 95+.

Does Squish work offline?

Once the page and codec files are loaded, yes — you can disconnect from the internet and continue compressing. You can also save the page (Ctrl+S / Cmd+S) and run it from your local disk as a fully offline tool.

Can I use Squish for client work or commercially?

Yes. Squish is free to use for any purpose — personal projects, agency work, commercial sites, freelance deliverables. No attribution required.

TinyPNG®, TinyJPG®, and Tinify® are trademarks of Voormedia B.V. Squoosh is a project of Google Chrome Labs. Compressor.io is a trademark of its respective owner. Squish is an independent tool built by @nap.codes and is not affiliated with, endorsed by, or sponsored by any of these companies. Feature comparisons are based on publicly documented capabilities and are provided for informational purposes only.