Introduction
Nativefier is a command-line tool that creates desktop applications from any web URL using Electron. It generates a standalone executable for macOS, Windows, or Linux with a single command, providing a native-like experience for web apps that lack an official desktop client.
What Nativefier Does
- Wraps any URL into a standalone Electron desktop application
- Generates platform-specific binaries for macOS, Windows, and Linux
- Injects custom CSS and JavaScript into the wrapped page
- Supports system tray integration, badge counts, and keyboard shortcuts
- Handles internal and external link navigation rules
Architecture Overview
Nativefier is a Node.js CLI that orchestrates Electron Packager under the hood. When invoked, it downloads the target Electron runtime, creates a browser window pointed at the given URL, applies user-specified options (icon, name, user agent, injected scripts), and packages everything into a distributable app bundle or executable.
Self-Hosting & Configuration
- Install globally via npm:
npm install -g nativefier - Requires Node.js 12+ and a working internet connection during build
- Customize the app name, icon, and window dimensions via CLI flags
- Inject CSS with
--inject style.cssor JS with--inject script.js - Use
--single-instanceto prevent multiple windows of the same app
Key Features
- One-command conversion from URL to desktop app
- Custom user agent strings for mobile or desktop rendering
- Built-in ad-blocking via Electron's content filtering
- Flash and Widevine plugin support for DRM-protected sites
- Internal URL regex to control which links open inside the app vs. the default browser
Comparison with Similar Tools
- Pake — Rust-based alternative producing smaller binaries via system WebView instead of bundled Chromium
- Tauri — Full framework for building desktop apps with web frontends and a Rust backend
- Electron — The underlying runtime; Nativefier automates its packaging
- WebCatalog — GUI-based app that wraps websites into desktop apps without CLI
- Flotato — macOS-only web-app wrapper with a lightweight native shell
FAQ
Q: Is Nativefier still maintained? A: The project is in maintenance mode and the author recommends alternatives like Pake or Tauri for new projects. Existing builds continue to work.
Q: How large are the generated apps? A: Apps bundle a full Chromium runtime, so they typically range from 120 MB to 200 MB depending on the platform.
Q: Can I update the wrapped app without rebuilding? A: The app always loads the live URL, so web content updates automatically. To change Nativefier options or the Electron version, you need to rebuild.
Q: Does Nativefier work with sites that require login? A: Yes. Session cookies persist between launches, so you only need to log in once.