
NW.js
A runtime for building desktop apps with HTML, JavaScript, and Node.js modules.
- Stars
- 41.1k
- Forks
- 3.8k
- Licence
- MIT
- Language
- JavaScript
- Last update
- 14 days ago
- Type
- Framework
What it is
NW.js is a runtime that combines Chromium with Node.js so you can build native desktop apps using HTML, CSS, and JavaScript. Because Node.js modules can be called directly from the page, a web-style app can also use system-level features. It is used by developers who want to ship a desktop app without learning a separate native UI toolkit.
- Run a local HTML page as a desktop app using a package.json with a main entry
- Call Node.js APIs such as file system access from the page's JavaScript
- Package and distribute an app to Linux, macOS, and Windows users
Great for
- Web developers who want to turn an existing web app into a desktop app
- Teams that want one JavaScript codebase across Linux, macOS, and Windows
- Developers who want to call Node.js modules from browser-style UI code
Not ideal for
- Anyone who needs the smallest possible app size, since the README describes bundling a full browser runtime (reason inferred from the Chromium base; not quantified in the README)
- Projects that need only a mobile app (the README covers desktop platforms only)
How to get it
- 1
Download the app
Download a prebuilt NW.js binary for your platform from the release page linked in the README
git clone https://github.com/nwjs/nw.js - 2
Run it
- Create index.html with a Hello World page
- Create package.json with "main": "index.html"
- Run the nw executable from the folder containing package.json (e.g. /path/to/nw .)
- On macOS, run /path/to/nwjs.app/Contents/MacOS/nwjs . instead
- 3
Get the most out of it
- Read the official docs at docs.nwjs.io for APIs beyond the quick start
- Use the demos repository linked in the README (zcbenz/nw-sample-apps) to see working examples
- Verify downloaded binaries with SHASUMS256.txt and its GPG signature before use
- Check the wiki pages on running, packaging, and using Node modules
Downloads
Strengths
- Uses standard web technologies (HTML5, CSS3, JavaScript, WebGL) and full Node.js APIs
- Node and the browser engine share one thread and heap, so calls between them are direct
- Documented packaging and checksum-based binary verification
Trade-offs
- The README points to external wiki and docs for packaging and distribution details, so setup beyond the quick start requires reading more material
- Some download options are legacy builds with separate instructions, which adds choices for new users
- The README says the source spans multiple repositories, so the codebase is not all in one place
How it compares
| Project | Stars | Type | Level | Updated | Best for |
|---|---|---|---|---|---|
| nw.js (this) | 41.1k | Framework | beginner | 14 days ago | Web developers who want to turn an existing web app into a desktop app |
| electron | 124k | Framework | intermediate | 4 days ago | Web developers who want to ship a desktop app using skills they already have |
| Avalonia | 31.7k | Framework | intermediate | 4 days ago | C# developers who already know XAML or WPF |
| proton-native | 10.9k | Framework | intermediate | 3.8 years ago | React developers who want to build a desktop app without learning a new UI toolkit |
| maui | 23.3k | Framework | intermediate | 4 days ago | C# developers who want to target phones and desktops from one codebase |
| revel | 13.2k | Framework | intermediate | 3.0 years ago | Go developers who want a batteries-included web framework |
Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.