A self-hosted, browser-based image optimizer that compresses and converts images on your device without uploading them.
GoogleChromeLabs/squoosh
A browser-based image compressor that shrinks images across many formats entirely on your device, with no upload to a server.
Open-source alternative to:TinyPNG
- Stars
- 26,153
- Forks
- 2,208
- Open issues
- 262
- Last commit
- 16 days ago
What is it?
Squoosh is a web app for making images smaller. You open an image in the browser, choose a codec and its settings, and compare the original with the compressed output before saving the result. It supports a range of image formats and codecs.
Compression happens locally in the browser, so images are not sent to a server. The project uses Google Analytics to collect basic visitor data and before-and-after file sizes; installed PWA users also have their installation type and date recorded.
The codebase is written in TypeScript. Developers can clone the repository, install dependencies with npm, and run a build or local dev server to work on the app.
Key features
- 01Compresses images in the browser without uploading them to a server.
- 02Lets you compare the original and compressed image side by side.
- 03Supports multiple image formats and codecs.
- 04Can be installed as a Progressive Web App.
- 05Open source under the Apache-2.0 license.
Use cases
- Reducing image file sizes before publishing them on a website or blog.
- Compressing photos for email or messaging without sending them to a third-party service.
- Testing how different codecs and quality settings affect image size.
Quick start
- 1
Clone the repository
- 2
Install node packages
npm install - 3
Build the app
npm run build - 4
Start the development server
npm run dev
Things to know
- Google Analytics collects visitor data and image size values, despite local compression.
Topics
FAQ
- What is squoosh?
- A browser-based image compressor that shrinks images across many formats entirely on your device, with no upload to a server. Squoosh is a web app for making images smaller. You open an image in the browser, choose a codec and its settings, and compare the original with the compressed output before saving the result. It supports a range of image formats and codecs.
- Is squoosh free to use? What license does it have?
- squoosh is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
- Is squoosh still maintained?
- Actively maintained. The last commit to squoosh was on Oct 22, 2026.
- What can I use squoosh for?
- Reducing image file sizes before publishing them on a website or blog. Compressing photos for email or messaging without sending them to a third-party service. Testing how different codecs and quality settings affect image size.
- How do I install squoosh?
- Clone the repository Install node packages: npm install Build the app: npm run build Start the development server: npm run dev
- Where can I get squoosh?
- The source code and installation instructions are on GitHub: https://github.com/GoogleChromeLabs/squoosh
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A browser-based image compressor for JPG, PNG and WebP that works fully offline, so images never leave your device.
Multithreaded lossless PNG and APNG optimizer written in Rust, usable as a command-line tool or a Rust library.
A lossy PNG compressor with no quality slider that picks the smallest palette image still meeting a perceptual quality target, usable from the CLI or browser.
Desktop image compressor for Windows, macOS and Linux that shrinks JPG, PNG, WebP and TIFF files, optionally reducing resolution.
Privacy-first local image and GIF compression workbench for Web, Windows, macOS and Linux, with comparison, resizing, conversion and renaming.