I created a polished Medium-style version already. Here’s a DEV.to optimized version — more developer-focused, slightly more technical, cleaner formatting, and written in a style that performs well on DEV Community.
Compress massive images without uploading anything to a server
Every developer eventually runs into this problem.
You have:
- Huge product photos
- Design assets from Figma
- DSLR images
- Screenshots for documentation
- Client uploads that are absurdly large
And suddenly:
- Your CMS rejects uploads
- Your website becomes slow
- Your Git repository balloons in size
- Your email attachment limit explodes
So you search for an “online image compressor”.
Then comes the part nobody talks about:
You’re uploading potentially sensitive files to random third-party servers.
I didn’t love that idea.
So I built ImageSquash Pro — a completely client-side bulk image compressor that works directly inside the browser.
No uploads.
No backend.
No analytics.
No tracking.
Just drag, drop, compress, and download.
🔥 Why I Built It
A client once sent me around 20 RAW product images.
The folder size?
~1.2 GB
They needed optimized versions for the web immediately.
Most online tools failed because they:
- had file limits
- required payment for batch processing
- froze on large images
- destroyed image quality
- uploaded everything to their servers
So instead of fighting existing tools, I decided to build one optimized for:
- privacy
- speed
- large batch processing
- simplicity
That became ImageSquash Pro.
⚡ What Makes It Different
Most image compressors work like this:
Upload → Server Processing → Download
ImageSquash works like this:
Browser → Local Processing → Download
Everything happens directly on your machine using browser APIs.
That means:
✅ Your files never leave your computer
✅ No internet required after initial page load
✅ Compression happens locally on your CPU
✅ No waiting for uploads
✅ No privacy concerns
You can literally disconnect your WiFi and the app still works.
🖼️ Features
📦 Bulk Compression
Compress dozens of images at once.
No annoying “one file at a time” workflow.
🔒 Fully Private
No backend server.
No cloud processing.
No telemetry.
No analytics.
No hidden uploads.
🎛️ Adjustable Compression
Choose:
- WebP
- JPEG
- PNG
And customize:
- quality
- dimensions
- compression preset
📊 Compression Statistics
See:
- original size
- compressed size
- savings percentage
- total reduction
In real time.
📁 ZIP Export
Download the entire batch as a ZIP file.
One click.
⌨️ Keyboard Shortcuts
Ctrl + Enter → Compress All
Ctrl + D → Download ZIP
🛠️ Tech Stack
The project is intentionally simple.
No framework.
No build process.
No unnecessary dependencies.
Just browser APIs.
Built With
- HTML5 Canvas API
- FileReader API
- JSZip
- Vanilla JavaScript
🧠 Core Compression Logic
Here’s the simplified version:
const canvas = document.createElement("canvas");
canvas.width = targetWidth;
canvas.height = targetHeight;
const ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0, targetWidth, targetHeight);
canvas.toBlob(
(blob) => {
// compressed image blob
},
"image/webp",
0.35
);
The browser handles resizing and re-encoding completely locally.
No server involved.
📉 Real Compression Results
One test batch:
| Original | Compressed |
|---|---|
| 1.62 GB | 4.21 MB |
Single images around 80MB often compress down to roughly 200KB depending on settings.
Perfect for:
- websites
- portfolios
- blogs
- ecommerce
- documentation
- web apps
🔐 Why Privacy Matters
A surprising number of image tools upload files silently.
That’s risky when working with:
- client assets
- confidential documents
- medical files
- legal paperwork
- internal company screenshots
I wanted a tool where privacy wasn’t just a policy.
I wanted privacy enforced by architecture.
With ImageSquash:
The safest upload is the one that never happens.
🚀 Live Demo
https://tutorialsandroid.github.io/image-squash-pro/
💻 GitHub Repository
https://github.com/TutorialsAndroid/image-squash-pro
📌 Future Improvements
Things I’d love to add:
- AVIF support
- HEIC support
- Web Workers for background compression
- Drag-to-reorder batches
- GPU acceleration experiments
- Folder upload support
🤝 Open Source
Contributions are welcome.
If you have ideas, optimizations, or feature suggestions, feel free to open an issue or submit a PR.
Final Thoughts
I originally built this as a utility for myself.
But it became something much more useful:
A fast, lightweight, privacy-focused tool that solves a real problem without forcing users to trust a random server.
And honestly, I think more web apps should work this way.

Top comments (0)