opensourceprojects.dev

A broadsheet for software that doesn't ask for your email

Pic Smaller: batch image compression that never leaves the browser
GitHub RepoImpressions5

Project Description

View on GitHub

Compress Images in Batches Without Ever Uploading Them

You've got a folder full of screenshots that need to shrink before they can go into a pull request, or maybe a client just sent you twenty high-res photos that need to be web-ready by lunch. The usual move is to fire up some online compressor, but that means trusting a random server with your files. Pic Smaller takes a different approach: it's a free, open-source batch image compressor that runs entirely in your browser. Your images never leave your device, and you still get all the power of a dedicated compression tool.

What It Does

Pic Smaller is a web application that compresses images in batches using Web Workers, WebAssembly, Canvas, and browser codecs. The processing happens locally on your machine—there's no application server involved in the image pipeline. You can use the hosted version at picsmaller.com, or you can self-host it yourself.

The format support is solid. It compresses JPEG, PNG, WebP, GIF, SVG, and AVIF files in batches. It also handles HEIC and HEIF inputs, decoding them locally and letting you export them as JPEG, PNG, WebP, or AVIF. Beyond compression, you get format conversion, resizing, cropping, and control over encoder-specific quality options.

Adding files is flexible too. You can use the standard file picker, a folder picker, drag and drop, or even paste from your clipboard. Once your images are in, you can compare the original against the compressed version with an interactive split view. When you're satisfied, download individual results or grab the whole batch as a ZIP archive.

Why It's Cool

The privacy angle is the headline feature here, and it's genuinely worth caring about. When you use most online image tools, you're sending your files to someone else's server. With Pic Smaller, the processing is all local. That makes it a reasonable choice for sensitive documents, client work under NDA, or anything you just don't want floating around on the internet.

But there's more to like beyond the privacy story:

  • Batch-first design. This isn't a one-image-at-a-time tool. You can dump a whole folder into it and work through everything in one pass. For developers who regularly process assets, that's a real time-saver.
  • The split view comparison is practical. Before you commit to compression settings, you can see exactly what you're losing (or not losing) side by side. That's the kind of detail that makes a tool feel thoughtfully built.
  • Format flexibility. The ability to decode HEIC locally is a nice touch—Apple users will appreciate not needing a separate conversion step. And since you can export to multiple formats, you can use Pic Smaller as a lightweight converter as well as a compressor.
  • Self-hostable. If you don't want to rely on the hosted version, the Docker image gives you a private deployment option. The README includes a hardened Docker setup with a read-only filesystem, dropped capabilities, and a health check. That's the kind of attention to deployment details that suggests the maintainers actually care about production use.

How to Try It

The fastest way to try Pic Smaller is to just visit picsmaller.com and drop some images in. No signup, no install, no upload wait.

If you'd rather run it locally, you'll need Node.js 22 LTS or newer and npm 10 or newer. Clone the repo and get started:

git clone https://github.com/joye61/pic-smaller.git
cd pic-smaller
npm ci
npm run dev

There are also useful commands for testing and building:

npm test            # Run the test suite
npm run lint        # Run ESLint
npm run build       # Build the standalone Node.js server
npm run build:pages # Export the static Cloudflare Pages site to out/

For self-hosting, the README documents a Cloudflare Pages setup (production branch master, preview branch develop, build command npm run build:pages, output directory out) and a Docker alternative. The Docker image runs as an unprivileged user, handles signals through tini, and includes a health check—solid for private deployments behind a reverse proxy.

Final Thoughts

Pic Smaller is a well-executed answer to a common problem. It's not trying to reinvent image processing; it's taking a familiar workflow and making it private and batch-friendly. For developers who handle assets regularly and care about where their files end up, this is a genuinely useful tool. The fact that it's open source means you can inspect the code, contribute, or fork it for your own needs. Give it a shot with a folder of images you've been meaning to optimize—you might find it becomes a regular part of your workflow.

Follow @githubprojects for more developer tools and open source projects.

Back to Projects
Project ID: 500657a6-4ae5-48ac-bb28-cae79f4ea442Last updated: August 8, 2026 at 03:25 PM