# Pake — Turn Any Website into a Lightweight Desktop App > Pake wraps any web page into a native desktop application using Rust and system webviews, producing binaries under 5 MB compared to Electron's 100 MB+. It supports macOS, Windows, and Linux with built-in shortcuts, immersive windows, and drag-and-drop packaging. ## Install Save as a script file and run: # Pake — Turn Any Website into a Lightweight Desktop App ## Quick Use ```bash # Install via npm npm install -g pake-cli # Package any URL into a desktop app pake https://example.com --name MyApp ``` ## Introduction Pake is a tool that converts any web page into a small, fast desktop application using Rust and the system's built-in webview rather than bundling a full browser engine. It produces binaries that are a fraction of the size of Electron-based apps, making distribution and startup significantly faster. ## What Pake Does - Wraps any URL into a native desktop app for macOS, Windows, and Linux - Produces binaries under 5 MB by leveraging system webviews instead of Chromium - Provides a CLI and a no-code GUI for packaging - Supports custom icons, window sizes, and system tray integration - Enables keyboard shortcuts, user-agent overrides, and multi-window configurations ## Architecture Overview Pake is built on top of Tauri, using Rust for the native shell and WRY for cross-platform webview bindings. When you run the CLI, it generates a Tauri project with your specified URL, compiles it to a platform-specific binary, and bundles minimal native chrome around the webview. The result is a self-contained executable that renders the target site with native OS integration. ## Self-Hosting & Configuration - Install globally via npm: `npm install -g pake-cli` - Requires Rust toolchain for building from source - Configure window dimensions, transparency, and fullscreen via CLI flags - Customize the app icon with `--icon path/to/icon.png` - Set user-agent strings and inject custom JS/CSS for tweaked behavior ## Key Features - Produces apps 20x smaller than equivalent Electron wrappers - Zero JavaScript runtime overhead on the backend side - Built-in support for system tray, global shortcuts, and file drag-and-drop - GitHub Actions templates for automated cross-platform CI builds - Popular prebuilt apps available for Twitter, ChatGPT, YouTube Music, and more ## Comparison with Similar Tools - **Electron** — Full Chromium bundled; much larger binaries but richer Node.js API access - **Tauri** — Pake's foundation; Tauri is a full framework while Pake is a one-command wrapper - **Nativefier** — Archived Electron-based wrapper; Pake is the modern, lighter successor - **WebCatalog** — Proprietary site-to-app tool; Pake is fully open source - **Webapp Manager** — Linux-only; Pake supports macOS, Windows, and Linux ## FAQ **Q: Do I need to know Rust to use Pake?** A: No. The CLI handles all Rust compilation automatically. You only need the Rust toolchain installed. **Q: Can I inject custom JavaScript into the wrapped app?** A: Yes. Pake supports injecting custom JS and CSS files that run inside the webview on every page load. **Q: Does Pake support auto-updating the wrapped app?** A: Pake does not include a built-in updater. You would need to redistribute new binaries or integrate Tauri's updater plugin manually. **Q: How does Pake compare to a PWA?** A: PWAs rely on browser support and have limited OS integration. Pake apps behave like native executables with full system tray and shortcut support. ## Sources - https://github.com/tw93/Pake - https://github.com/tw93/Pake/blob/master/README.md --- Source: https://tokrepo.com/en/workflows/asset-75328e16 Author: Script Depot