Skip to content

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)
Step-by-step guide: how to use NW.jsInstall, first run, examples, tips and FAQs

How to get it

  1. 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. 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. 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

ProjectStarsTypeLevelUpdatedBest for
nw.js (this)41.1kFrameworkbeginner14 days agoWeb developers who want to turn an existing web app into a desktop app
electron124kFrameworkintermediate4 days agoWeb developers who want to ship a desktop app using skills they already have
Avalonia31.7kFrameworkintermediate4 days agoC# developers who already know XAML or WPF
proton-native10.9kFrameworkintermediate3.8 years agoReact developers who want to build a desktop app without learning a new UI toolkit
maui23.3kFrameworkintermediate4 days agoC# developers who want to target phones and desktops from one codebase
revel13.2kFrameworkintermediate3.0 years agoGo 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.