@nap.codes vs TinyPNG
TinyPNG is the most-recommended online image compressor. It works. But every file goes to their Panda API, the free tier is capped at 20 images per hour, and you have to trust their retention policy. /squish/ compresses with MozJPEG entirely in your browser — no upload, no cap, no signup, and formats TinyPNG never added like WebP + AVIF.
Side-by-side
| Feature | @nap.codes | TinyPNG |
|---|---|---|
| Where compression happens | Your browser (MozJPEG WASM) | TinyPNG's Panda API server |
| Files uploaded to a server | No — never | Yes — every image |
| Signup required | No | For API access, yes |
| Free-tier rate limit | None | 20 images / hour (Web); 500/mo (API) |
| Batch mode | Unlimited, folder-aware | Free tier: 20 at a time |
| Output formats | JPG, PNG, WebP, AVIF | JPG, PNG, WebP |
| Target file-size mode | Yes — iterate to a size | No |
| Works offline | Yes (PWA cache) | No — needs server |
| Preserves folder structure | Yes (ZIP round-trip) | No |
| Enterprise SLA | No | Yes |
When to pick us
Pick /squish/ when the file is a screenshot, a product photo, a batch of blog images, or anything on a phone you'd rather not send to a foreign server. Also when the file is a WebP or AVIF — TinyPNG doesn't handle both. Also when you want a specific file-size ceiling (say, "keep this under 200 KB"); we iterate until we hit the number.
When to pick TinyPNG
Try the @nap.codes version
Open the compressor in a new tab. Drop your files, pick a target size, download.
→ Open /squish/