Compress JPG under 100 KB.

"Under 100 KB" is a real requirement — school portals, government forms, some job applications, WhatsApp attachment limits on flaky data. Fixed-quality compression is a guessing game. Target-size mode iterates until it hits the number.

Time: 2 minutesTool: /squish/Uploads: None

The problem

Most compressors let you pick a JPG quality between 1 and 100 and hope for the best. But quality doesn't map linearly to file size — quality 60 on a 12 MP portrait might land at 340 KB, and on a screenshot might land at 84 KB. If you have a hard ceiling ("must be under 100 KB"), you can't set quality once and be done.

/squish/ ships a target-size mode: give it a number, it iterates. Behind the scenes, MozJPEG (WebAssembly) runs a bisection — try quality 70, measure, adjust up or down, repeat, until the output is at or just under your ceiling. Usually 3-5 encode passes.

Step-by-step

  1. Open /squish/ and drop the JPG onto the page. Multiple files work — target size will be applied to each independently.
  2. Switch mode to "Target file size." The Quality slider is replaced with a KB input.
  3. Type 100. Or 200, or 50, or whatever your requirement is. KB, not bytes.
  4. Click Compress. Watch the progress ring; each pass shows the current attempt size. On a modern laptop it's under a second per image.
  5. Verify with the preview. If the preview looks over-degraded, either the target is too aggressive for the source (a 24 MP photo compressed to 20 KB will always look bad) or you'd benefit from resizing first — see the tip below.
  6. Download. ZIP for multi-file, individual for single.
Tip. If a 24 MP camera JPG won't hit 100 KB without becoming a fuzzy mess, the real problem is dimensions, not encoding. Chain /resize//squish/ — resize to a reasonable pixel size (say, 2000px on the long edge for web use) first, then let target-size mode dial in the KB. That two-step is what the /pipeline/ preset "Blog hero image" does automatically.

What if it still can't hit the target?

Some sources cannot go below a certain size without becoming visually broken — a highly detailed photograph with a lot of high-frequency texture (grass, hair, foliage) resists compression more than a screenshot with flat regions. If /squish/ can't reach your ceiling, it'll stop at the closest achievable size and report the delta. Options:

Does file quality actually degrade?

Yes, but less than you'd expect for photos. MozJPEG's trellis quantization means quality 70 output from MozJPEG typically looks better than quality 80 output from a stock libjpeg encoder. That's why the target-size mode can reach smaller sizes than naive compressors while keeping the image usable.

Do it now

Open the tool in a new tab. Nothing uploads.

→ Open /squish/