squish: Compress and Convert Images in Your Browser

squish: Compress and Convert Images in Your Browser

Summary

Squish is a browser-based tool for compressing batches of images and converting between popular formats. It processes files locally with WebAssembly, making it useful for people who want quick optimization without uploading images to a server.

At a glance

Language
TypeScript
License
MIT
Stars
1.1k
Forks
114
Added to OSRepos
January 26, 2026
Last analyzed
October 3, 2026
View on GitHub

Topics

Click on any tag to explore related repositories

Use at your own risk

OSRepos shares public repositories for knowledge and discovery only. Any installation, execution, configuration, or use of code from these repositories is the user's own responsibility. Always review the repository, source code, dependencies, licenses, and security implications before running or installing anything. OSRepos is not responsible for issues, damages, or losses resulting from third-party repositories.

Overview

Squish is a browser-based image compression and conversion tool. It addresses the friction of optimizing images one at a time by letting users process a batch, adjust quality, preview results, and download the output from a single interface.

Compression runs in the browser using WebAssembly codecs, so the workflow does not require server uploads. It is a practical fit for designers, developers, and content creators who need to optimize files before publishing or sharing them.

Key Features

  • Compress images in batches with a queue for larger sets of files.
  • Convert between AVIF, JPEG, JPEG XL, PNG, and WebP.
  • Set compression quality for supported formats.
  • Preview images and review size reduction statistics.
  • Add images by dragging and dropping or selecting files.
  • Download individual results or use the batch download option.

Use Cases

  • A web developer can convert and shrink assets before adding them to a website.
  • A designer can compare previews and quality settings when preparing image exports.
  • A content creator can optimize a group of images before uploading them to a publishing platform.
  • A privacy-conscious user can compress local files without sending them to a remote service.

Project Facts

  • Language: TypeScript
  • License: MIT
  • Stars: 1.1k
  • Forks: 114
  • Topics: batch, batch-processing, image-compression, image-processing
  • Archived: No

Getting Started

Requires Node.js 18 or later and npm 7 or later.

git clone https://github.com/addyosmani/squish.git
cd squish && npm install && npm run dev

See the README for production build instructions and usage details. Try the hosted app at squish.addy.ie.

Alternatives

  • pic-smaller: Pic Smaller also compresses and converts image batches locally in a browser, with a similarly focused workflow rather than a distinct editing task.

Considerations

  • Processing is browser-based, so performance and supported formats can depend on the user’s browser and device.
  • Batch processing can use substantial device resources for large image sets.
  • The project requires a modern Node.js and npm environment for local development.

Comparisons

Source repository

Open the original repository on GitHub.

23 counted GitHub visits

View on GitHub

Related repositories

Similar repositories that may be relevant next.

OS
OSRepos

Analysis and discovery of open source repositories. Find interesting projects and follow their updates.

Monitor your website with YourWebsiteScore

OSRepos shares public repositories for knowledge and discovery only. Any installation, execution, configuration, or use of third-party repository code is at your own risk. Always review source code, dependencies, licenses, and security implications before running anything.

© 2025 OSRepos. Built with Nuxt 3 and lots of ❤️