EXTENSION LAUNCH · 2026

Why We Built ImgMin for Chrome:
A Privacy-First Image Compressor

By ImgMin Team · May 15, 2026 · 7 min read

Before writing a single line of Chrome extension code, we did something most teams skip: we surveyed every image-compression extension in the Chrome Web Store. We installed the top 20 by review count, tried them on real photos, read the 1-star reviews, and looked at the install counts.

What we found was a market that's both underserved and misunderstood.

The State of Image-Compression Extensions in 2026

892
TinyPNG ext. installs
1,000
#1 install count
3.8★
Avg. top-tier rating

Yes — the official TinyPNG Chrome extension has fewer than 1,000 installs. The highest-ranked image compressor in the entire Chrome Web Store hovers around 1,000 installs with a 3.8-star rating.

That doesn't mean there's no demand. There is — the keyword "image compressor" gets over 90,000 monthly searches globally. So why are extensions so underused?

Two patterns explain it:

Pattern #1: Most "image compressor" extensions are web apps stuffed into a popup. You click the toolbar icon, get a drag-and-drop area, compress, download. That's literally just a worse version of the original website you came from.

Pattern #2: Most of them upload your images to a server. For TinyPNG and clones this isn't malicious — it's how their compression algorithm works. But it means your images leave your device, get held on someone else's storage, and you have to trust their retention policy.

We thought we could do better in both dimensions.

What an Image Extension Should Actually Do

The whole point of an extension — versus opening a web app in a new tab — is access to moments that a web app can't reach. Specifically:

None of these moments are well-served by "open a new tab and drag your file in." That's why we built ImgMin for Chrome with four distinct entry points, each tuned to a specific in-browser moment.

Four Ways to Compress (without ever uploading)

🖱️ Right-click any image → compressed overlay

Right-click any image on any webpage. Pick "Compress with ImgMin". A small overlay opens in the bottom-right corner of the page itself — not a new tab, not a popup. You see the original size, the compressed size, and a download button. Three quality presets. Done.

The overlay uses a sandboxed iframe with a closed shadow DOM, so the page you're on can't read what's inside it. The image data lives in memory only.

📦 Compress every image on the current page → ZIP

Right-click on a page background (not on an image). Pick "Compress all images on this page". A new tab opens showing every <img> on the source page as a thumbnail grid (up to 50, deduplicated). Select what you want, pick a quality preset, hit "Download ZIP".

The ZIP is built in your browser using a bundled JSZip library — there's no network round-trip and no third-party CDN. The whole thing works offline.

This is the feature web apps can't replicate: only an extension knows which images live on the page you're looking at right now.

📤 Auto-suggest compression on upload

Enable the Upload helper. Now any time you select a large image (default threshold: 2 MB) on any website with a file picker — Gmail, Twitter, Slack, your CMS — a small toast appears bottom-right: "sunset.jpg · 5.2 MB. Compress before sending? [Compress & swap] [Skip]".

If you click compress, the original file in the upload input gets replaced with the compressed version via the standard DataTransfer API, then the form's change event fires again. The site sees a smaller file and proceeds normally.

You can disable globally, set a per-domain skip list, or change the threshold in settings. This one is a quiet productivity multiplier — most users don't realize how much bandwidth they were burning on un-resized phone photos.

📱 HEIC support out of the box

iPhone photos in HEIC format have been a pain point for years, especially on Windows and Linux machines that can't open them natively. ImgMin bundles a WebAssembly libheif decoder (~1 MB, loaded lazily only when needed) and converts HEIC → JPG / WebP entirely in your browser.

You drag a .heic file into the popup, ImgMin decodes it, compresses it, and gives you a download in a format any device can open. No separate converter, no upload to a "free HEIC to JPG" site of dubious provenance.

Privacy: Hardcoded, Not Promised

Most "private" tools rely on you trusting their privacy policy. We took a different approach: design the system so privacy isn't a policy, it's a technical property.

CapabilityImgMinTinyPNG-style extensions
Image data leaves browserNeverYes (to server)
Network requests during compressZeroMultiple
Account requiredNoOften
Works offlineYesNo
Tracking cookiesNoneVaries
Open sourceMITClosed

The compression itself runs on the HTML5 Canvas API, which is built into your browser. HEIC decoding runs on a bundled WASM module, also local. The extension's only outbound request is the optional "Open ImgMin Web" link in the footer, which obviously you have to click yourself.

The whole source is at github.com/hunkwu/imgmin if you want to verify any of this yourself.

Built for the World

The web app at imgmin.pro is already available in 6 languages (English, 中文, 日本語, Français, Deutsch, Español). It would have been silly to ship the Chrome extension in English-only — Chrome's user base skews more international than the web at large, not less.

So the extension auto-detects your browser language via chrome.i18n.getUILanguage() and renders the entire UI — popup, in-page overlay, batch page, upload toast, settings, even the right-click menu titles — in your language. You can override the choice in settings if you want.

What's Coming

v1.3 ships with the four entry points above. Things we deliberately deferred to keep the first release tight:

FAQ

What makes ImgMin different from TinyPNG's Chrome extension?

ImgMin runs entirely in your browser using the Canvas API — no image data is ever sent to any server. TinyPNG's free service uploads your images to their compression servers, where they're held for 24 hours before deletion. For sensitive images (ID photos, medical scans, personal moments), this difference matters. ImgMin also adds page-wide batch, upload auto-suggest, and HEIC support that TinyPNG's extension doesn't offer.

Why does ImgMin need permission to access all sites?

Three reasons: (1) to read the image you right-click, (2) to enumerate <img> tags when you trigger page batch, (3) to listen for file selections if you've enabled Upload helper. The extension is passive — it only acts when you explicitly invoke a feature. It never reads, scrapes, or transmits other page content. Full disclosure at extension-privacy.html.

Does ImgMin work offline?

Yes. After install, the extension makes zero network requests during compression. The Canvas API and bundled libheif WASM decoder run locally. You can compress images in airplane mode, on a no-internet corporate network, or any offline scenario.

Why is the default mode "Smallest"?

Users install an image compressor because they want smaller files. Leading with maximum compression matches that intent. ImgMin's Smallest preset uses quality 0.70 — gives ~75% size reduction while keeping faces, text, and detail intact for the vast majority of photos. Best Quality is one click away if you need pristine.

Is ImgMin open source?

Yes — both the Chrome extension and the imgmin.pro web app live at github.com/hunkwu/imgmin. The code is auditable. You can verify the privacy claims yourself.

Compress Images in Your Browser — Free, Private, Multilingual

Install the Chrome extension for in-page right-click compress, or use the web app for batch processing up to 20 images with advanced presets.

Add ImgMin to Chrome → Try the Web App →

Published May 15, 2026. Install counts pulled from Chrome Web Store at time of writing. The extension is free and open source under MIT license.