{"name":"Squish: Batch Browser-based Image Compression with WebAssembly","description":"Squish is an innovative, browser-based image compression tool that leverages WebAssembly for high-performance optimization directly in your browser. It supports a wide array of formats including AVIF, JPEG, JPEG XL, PNG, and WebP, offering features like batch processing, format conversion, and real-time previews through an intuitive drag-and-drop interface. This tool provides a private and efficient way to optimize images without server uploads.","github":"https://github.com/addyosmani/squish","url":"https://osrepos.com/repo/addyosmani-squish","source":"osrepos.com","sourceDescription":"This repository profile is provided by osrepos.com, an open source repository discovery platform.","repositoryProfile":"https://osrepos.com/repo/addyosmani-squish","generatedFor":"open source discovery and AI-assisted research","markdown":"https://osrepos.com/repo/addyosmani-squish.md","json":"https://osrepos.com/repo/addyosmani-squish.json","topics":["image-compression","batch-processing","web-tool","TypeScript","WebAssembly","image-optimization","frontend"],"keywords":["image-compression","batch-processing","web-tool","TypeScript","WebAssembly","image-optimization","frontend"],"stars":null,"summary":"Squish is an innovative, browser-based image compression tool that leverages WebAssembly for high-performance optimization directly in your browser. It supports a wide array of formats including AVIF, JPEG, JPEG XL, PNG, and WebP, offering features like batch processing, format conversion, and real-time previews through an intuitive drag-and-drop interface. This tool provides a private and efficient way to optimize images without server uploads.","content":"## Introduction\n\nSquish is an innovative, browser-based image compression tool designed for efficient and high-performance image optimization. Developed by Addy Osmani, it leverages WebAssembly to perform image processing directly within your browser, eliminating the need for server uploads and ensuring privacy. Squish supports a comprehensive range of modern image formats, including AVIF, JPEG, JPEG XL, PNG, and WebP, making it a versatile solution for web developers and content creators alike.\n\n## Installation\n\nTo get Squish up and running for development or local use, follow these steps.\n\n### Prerequisites\n\n*   Node.js 18 or later\n*   npm 7 or later\n\n### Steps\n\n1.  **Clone the repository:**\n    bash\n    git clone https://github.com/addyosmani/squish.git\n    cd squish\n    \n\n2.  **Install dependencies:**\n    bash\n    npm install\n    \n\n3.  **Start the development server:**\n    bash\n    npm run dev\n    \n\n4.  **Build for production:**\n    bash\n    npm run build\n    \n\n## Examples (Usage)\n\nUsing Squish is straightforward, thanks to its intuitive drag-and-drop interface.\n\n1.  **Drop or Select Images**: Drag and drop your images onto the designated upload area, or click to browse and select files from your system.\n2.  **Choose Output Format**: Select your desired output format from the available options: AVIF, JPEG, JPEG XL, PNG, or WebP.\n3.  **Adjust Quality**: Utilize the quality slider to fine-tune the balance between file size and image quality for each format.\n4.  **Download**: Download individual optimized images, or use the \"Download All\" button for convenient batch downloads.\n\n## Why Use Squish\n\nSquish stands out as a powerful image compression tool due to several key advantages:\n\n*   **Browser-Based & Private**: All processing happens client-side, meaning your images never leave your browser, ensuring privacy and security.\n*   **High Performance**: By utilizing WebAssembly, Squish achieves near-native speed for image processing, making optimization fast and efficient.\n*   **Batch Processing**: Optimize multiple images simultaneously, significantly saving time and effort.\n*   **Extensive Format Support**: Supports modern and widely used formats like AVIF, JPEG, JPEG XL, PNG, and WebP, along with format conversion capabilities.\n*   **Intuitive User Interface**: A drag-and-drop interface, real-time preview, and size reduction statistics provide a seamless user experience.\n\n## Links\n\n*   **GitHub Repository**: [https://github.com/addyosmani/squish](https://github.com/addyosmani/squish)","metrics":{"detailViews":3,"githubClicks":7},"dates":{"published":null,"modified":"2026-01-26T00:00:30.000Z"}}