Shrink photo file sizes by converting them to WebP before uploading them to a website or sharing them.
Batch-reduce image sizes for a project using preset compression levels instead of manually tuning quality each time.
Study a real example of building a genuinely native desktop app in Zig without a WebView or browser-based UI.
| sonnylazuardi/compressor | al3rez/zehn | ata-sesli/zova | |
|---|---|---|---|
| Stars | 10 | 15 | 4 |
| Language | Zig | Zig | Zig |
| Setup difficulty | moderate | moderate | hard |
| Complexity | 3/5 | 2/5 | 4/5 |
| Audience | developer | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
Requires Zig 0.16, Bun 1.4+, Node.js, and the Native SDK CLI, must be built from a native shell, not WSL.
Compressor is a desktop app for shrinking image file sizes by converting them to the WebP format. What sets it apart from most desktop apps is how it is built: there is no WebView, no React, and no browser-based interface underneath. The whole app is written using a native UI toolkit and the Zig programming language, so it runs as a genuinely native window on macOS and Windows rather than a web page wrapped in a desktop shell. Using the app is simple. A person browses for an image through the platform's normal file dialog, or drags one onto the window, and the app converts it to WebP. A quality slider in settings controls the compression level, defaulting to 80 percent, with quick presets for light, medium, and heavy compression. Keyboard shortcuts are provided for opening settings, browsing for a file, and running the compression, and they follow each platform's own conventions. Under the hood, the actual image encoding is handled by Bun, a JavaScript runtime, which converts the image to WebP at the chosen quality. The rest of the app, including its window, UI, and application logic, is built with a tool called the Native SDK, which lets developers write native desktop apps declaratively instead of hand-coding platform-specific interface code. Building the project from source requires Zig version 0.16, Bun 1.4 or newer, Node.js, and the Native SDK's command line tool, and it must be run from a native shell on each platform: Terminal on macOS or PowerShell on Windows, not a Linux-style shell like WSL, since the Linux build path expects different graphics libraries that this project does not target. Prebuilt releases for macOS and Windows are published through GitHub Releases, built automatically by a continuous integration workflow whenever a new version is tagged.
Compressor is a fully native macOS and Windows desktop app, built with Zig and a Native SDK instead of a WebView or browser UI, that converts images to WebP with an adjustable quality slider.
Mainly Zig. The stack also includes Zig, Bun, Native SDK.
No license information found in the README.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Don't trust strangers blindly. Verify against the repo.