Compress PDF files entirely in your browser. No uploads. No servers. 100% private.
A web-based PDF compression tool powered by Ghostscript compiled to WebAssembly. Your files never leave your device.
- 100% Client-Side - All compression happens locally in your browser using WebAssembly
- Complete Privacy - Zero network transfer of file data; your documents stay on your device
- Open Source - Fully verifiable; inspect the code and network traffic yourself
- Multiple Compression Levels - Choose between quality-focused, balanced, or size-focused compression
- No Installation Required - Works in any modern browser with WebAssembly support
shrinkpdf uses Ghostscript 10.07.0 compiled to WebAssembly, running entirely in a Web Worker (see louisprp/ps-wasm for more details). The WASM binary handles all PDF processing locally without any server communication.
- Node.js 18+
- pnpm
# Clone the repository
git clone https://github.com/louisprp/shrinkpdf.git
cd shrinkpdf
# Install dependencies
pnpm install
# Start development server
pnpm devpnpm buildThe built files will be in the dist directory, ready to deploy to any static hosting service.
- React + TypeScript - UI framework
- Tailwind CSS - Styling
- shadcn/ui - UI components
- Web Workers - Background processing
- Vite - Build tooling
You can verify that your files never leave your device:
- Open your browser's Developer Tools (F12)
- Navigate to the Network tab
- Upload and compress a PDF
- Observe that no file data is transmitted
This project is inspired by shrinkpdf.sh by Alfred Klomp - a shell script that provides common arguments for PDF compression with Ghostscript. This website brings that same functionality to the browser, no local Ghostscript installation required.
This project is licensed under the GNU Affero General Public License v3.0.
Contributions are welcome! Feel free to open issues or submit pull requests.