Image compressor
Fast, private, batch image compressor website (WebAssembly)
Batch Image Compressor using WebAssembly (WASM). No ads, no trackers, no cookies, no signups. The project is written primarily in TypeScript, distributed under the MIT License license, first published in 2026. Key topics include: compress-images, image, image-compress, image-compression, image-compressor.
Image Compressor
<p align="center"> <img src="https://wsrv.nl/?url=raw.githubusercontent.com/Sethispr/image-compressor/main/assets/IMG_7503.jpeg" alt="image compressor web preview" height="500">https://img-compress.pages.dev
</p> Batch Image Compressor using WebAssembly (WASM). No ads, no trackers, no cookies, no signups.Image Compressor Info
This image compressor is a fast, privacy first image compressor app that uses WebAssembly (wasm) and modern codecs to give near native compression speeds directly in your browser. This beats other sites that uses old JS based compression. By using local client side processing, this image compressor bypasses traditional upload limits and data privacy concerns while providing a highly customizable toolkit (image resizing, color reduction, lossless options, batch file renaming and more).
Website design inspired by Gleam
Compression Queue
The compressor gives you unlimited image compression queue and supports processing 10+ images all at once (customizable too)
<p align="center"> <img src="https://wsrv.nl/?url=raw.githubusercontent.com/Sethispr/image-compressor/main/assets/IMG_7505.jpeg" alt="batch image compression queue preview" height="500"> </p>Image Comparison
Mobile friendly image comparison shows a side by side view of the original and compressed image to check quality changes.
<p align="center"> <img src="https://wsrv.nl/?url=raw.githubusercontent.com/Sethispr/image-compressor/main/assets/IMG_7517.jpeg" alt="image compressor quality comparison" height="635"> </p>Prerequisites
- Node.js 18 or later
- npm 7 or later
Development Setup
This project uses Vite + React and WebAssembly (wasm) provided by jSquash, their codecs are from the Squoosh app.
Follow these steps to get the project running locally:
- Clone the Repo
bashgit clone https://github.com/Sethispr/image-compressor.git
- Change Directory
bashcd image-compressor
- Install Dependencies
bashnpm install
- Run Development Server
bashnpm run dev
Once the server starts, click the local link shown in your terminal (usually http://localhost:5173) to view the site live.
More info on contributing is available over here
Self Hosting
You can host this application yourself using Docker. This method is so the app runs in a consistent environment using a ready Nginx server. If you want your project to be seen by everyone, you need to have a domain name that points to your local machine, and then proxy it to port of this machine, you can use something like Nginx.
Prerequisites
- Docker installed on your system.
Docker CLI
- Build the image:
Navigate to the project root and run:
bashdocker build -t image-compressor .
- Run the container:
bashdocker run -d -p 8080:80 image-compressor
The app will now be at http://localhost:8080.
Configuration Notes
- Port Mapping: You can change the port by modifying the first number in the port mapping (ex:
-p 3000:80will serve app on port 3000). - Routing: The included Nginx configuration handles Single Page Application (SPA) routing, so refreshing the page on sub routes will work correctly.
- Updates: To update your self hosted instance, pull the latest code from the repository and rebuild the image using the build command above.
If you find any issues during the setup process, please feel free to open an issue in the repository.
<p align="center"> <b>Support this project</b><br /> If you find this tool useful, please consider giving it a star! <br /><br /> <a href="https://github.com/Sethispr/image-compressor"> <img src="https://img.shields.io/github/stars/Sethispr/image-compressor?style=for-the-badge&color=gold&logo=github" alt="yield stars"/> </a> </p>
Contributors
Showing top 3 contributors by commit count.
