DEV Community

Cover image for Guide to NW.js versions
The Jared Wilcurt
The Jared Wilcurt

Posted on • Updated on

Guide to NW.js versions

This list is sorted by version number, not recommendation. The TLDR is, use the latest unless you have a good reason not to, then use one of the other versions detailed here.

Remember, any time you pick an NW.js version to use, make sure your globally installed version of Node matches what is built in to NW.js. You can easily switch Node versions with one of these tools:

TLDR Table of Contents

Version Should you use
OSX Support Only if you need to support older OSX
0.12.3 No. Too old, API out of date.
0.13.0 No. Newer versions offer all the same stuff
0.14.7 Only if you need to support legacy OS's, use newer version for newer OSs
0.23.0 No. Newer versions offer same performance gains
0.33.4 Only if you need to do Tray app development on Win 7
0.34.0 No. Introduces Tray app bug that is fixed in 0.48.0
0.39.2 Only if you need Node-GYP/NW-GYP
0.42.4 No. Newer versions offer all the same stuff
0.45.3 Only if you need to do your app development on Windows 7
0.51.2 Last version where source maps worked
0.57.0 No. Has a bug that prevents loading on Windows 7. Fixed in 0.57.1.
0.72.0 Only if your users are on Windows 7
0.82.0 If you need Transparent/frameless window
Latest Yes, use this, unless you need one of the above features

OSX Support

OSX Support isn't well documented, but here's what I've heard from the community

  • NW.js v0.14.7 and below works with 10.6+
  • NW.js v0.15.0 works with 10.9+
  • NW.js v0.29.0 works with 10.10+
  • NW.js v0.51.0 works with 10.11+
  • NW.js v0.64.1 works with 10.15 and no longer accurately updates the plist file

0.12.3 - 2015-08-01

Chromium: 41.0
Node: IO.js v1.2.0

This was the last version to use the original architecture. It is no longer recommended by anyone as its API is just different enough to not be worth it (would be harder to upgrade). However it does have a slightly different approach to handling the window and loading the page. If using "main": "index.html" the URL will actually be the file:// filepath, rather than a chromium-extension URL like on newer NW.js versions. It also has an optional toolbar built in and does not ship without devTools. The old wiki on GitHub acted as the source of documentation for this version. This version shipped with a then compatible Mac App Store version (MAS) and a "normal" which came with dev tools built in but only accessible by the optional toolbar or programmatically (not by keyboard shortcut unless you set that up yourself). This has the smallest footprint of file size/dist/memory/cpu of any NW.js version. It is possible to create an installable executable that is less than 20MB in size on Windows (though expands to ~65-70MB on install).

Should you use this: No, the API is too different from modern NW.js. It's based on a very old version of Chromium and IO.js (~Node v1), meaning you need to write your code in a pretty outdated manner. No security updates.

0.13.0 - 2016-03-23

Chromium: 49.0
Node: 5.9.0

This was the first stable release of the newer Architecture. It had a newer API that has remained almost completely unchanged since it's release. This also spawned the newer website and documentation site focused on 0.13+.

Should I use this: No, everything this version offers is better handled in newer versions.

0.14.7 - 2016-07-22

Chromium: 50.0
Node: 5.11.1

This is the "Long Term Support" (LTS) version of NW.js. It supports Window XP+ and OSX 10.6+. And as far back as Ubuntu 10 (maybe 8, I don't quite remember). This is the officially recommended version for legacy OS's.

Officially Chromium 50 dropped support for XP, Vista, OS X 10.6, 10.7, and 10.8. Not sure why the LTS version uses Chromium 50 and not 49.

Should you use this: Only if you need need to support older OS's. It will have a much smaller file size compared to newer NW.js versions because Chromium and Node have just gotten much bigger since this release. So some may use this if they value smaller dist sizes as well. Though it is recommended that you only use this version for legacy OS's, and that you also build using newer NW.js versions for newer OS's so those users get all the security patches that come with the latest NW.js versions. Because this uses older Chromium/Node, it has fewer of the modern development/language features you may be used to.

0.23.0+ - 2017-06-06

Chromium: 59.0
Node: 8.0.0

If you use V8 snapshots to protect your source code, this is the first version of NW.js that did so without any performance loss. Prior versions would take a 30% performance hit.

Should you use it: All newer versions have the same performance gain. So you're better off using the latest version.

0.33.4 and below - 2018-09-25

0.48.0 and above - 2020-08-27

Chromium: 69.0 and below or 85.0 and above
Node: 10.11.0 and below or 14.8.0 and above

There was a bug introduced in NW.js 0.34.0-beta that was fixed in 0.48.0. This bug only occurs on tray apps. To avoid this bug use either NW.js 0.33.4 and below or 0.48.0 and above.

  • Github Issue for the bug: #6859).

Should you use this: No. Since this bug is no longer in the latest version, use the latest.

0.39.2 - 2019-06-27

Chromium: 75.0
Node: 12.4.0

Node.js uses Python to help build native bound code for some node modules via a tool called Node-GYP. NW.js created a similar tool based on Node-GYP to do the same thing, but for NW.js called NW-GYP. They were both built on Python 2. Over several years, Node-GYP transitioned to Python 3. This was a very difficult and long process that came after years of people requesting it. It took a lot of people to make this conversion.

  • 2019 - Node-gyp 5.x started adopting Python 3
  • 2020 - Node-gyp 6.x started to work with Python 3
  • 2020 - Node-gyp 7.x works with Python 3
  • 2021 - Node-gyp 8.x removes all Python 2 support, only supports Python 3
  • Source: Node-gyp changelog

Unfortunately, NW.js is a far far smaller project than Node.js, so getting community support to convert NW-GYP over, could be a long way off. Though fortunately it won't be as monumental of an effort as it was for Node-GYP, since NW-GYP is based on Node-GYP but with some tweaks. Perhaps you'll be the one to help update it to Python 3.

But for now, NW-GYP still requires Python 2. This means that newer versions of Node and node_modules that require native builds may not work with newer versions of NW.js.

Node-gyp 5 started Python 3 adoption on 2019-06-13, so the latest node/npm before that would be Node 12.4.0 (2019-06-04) and npm 6.9.0. The version of NW.js that ships with Node 12.4.0 is v0.39.2. Because Python 2 support wasn't dropped until much later, you may also be able to use later versions of NW.js that are compatible with Node-GYP 6 or 7 (maybe?). I haven't tested this, as I don't need Node-GYP/NW-GYP for my projects. Let me know if you have experimented with this and what you got to work.

New: There exists an alternative to Node-GYP for native builds that should be compatible with all NW.js versions. But I'll leave that exploration up to you. Feel free to post results in comments below. CMake.js

Should you use this: Only if you need NW-GYP/Node-GYP support. Make sure to set your global Node version to 12.4.0 too.

0.42.4 - 2019-11-13

Chromium: 78.0
Node: 13.1.0

This was the first version of NW.js to ship with the NW2 rewrite turned on by default. This rewrite allows for deeper access into the Chromium UI. This is an under-the-hood architectural changed that did not effect the API, but did allow for NW.js to fix some existing bugs and could unlock new features in the future.

Should you use this: Neh, just noting the historical importance, use latest version instead.

0.45.3 - 2020-04-19

Chromium: 81.0
Node: 13.13.0

Node.js 13 was the last version to officially support Windows 7. So if you are doing development on a Win7 PC, you may experience issues with newer versions of Node globally installed. So to ease development, you'll want to use Node 13 and a version of NW.js that also has Node 13 Built in. NW.js 0.45.3 was the last version to support Node 13.

Chromium will still support Windows 7 until 2022 though.

Should you use this: Only if you need to develop the app on a Windows 7 machine. If you are on a newer version of Windows or a non-windows machine, use a newer version of NW.js.

0.51.2 and below - 2021-02-21

0.62.1 and above - 2022-03-22

Chromium: 88.0 and below or 99.0 and above
Node: 15.8.0 and below or 17.7.2 and above

Due to an upstream bug in Chromium, 0.52.0-0.62.0 does not support source maps.

Should you use this: No, use the latest NW.js version instead, where sourcemaps work again.

0.57.0 - 2021-09-25

Chromium: 94.0
Node: 16.9.1

This version included an update to some dependencies. These dependencies dropped support for Windows 7. So NW.js stopped opening on that platform. This was fixed in the next release 0.57.1.

Should you use this: Nope, go with the latest, Win 7 support was restored.

0.72.0 - 2023-01-13

Chromium: 109.0
Node: 19.3.0

Chromium officially dropped support for Windows 7. NW.js 0.72.0 is the last version to support it. 0.73.0+ does not work on Windows 7.

Should you use this: Only if you need your app to run on Windows 7. Otherwise use latest.

0.82.0 - 2023-11-02

There is a bug in 0.83.0 that causes issues around transparency and frameless windows. Until it is resolved, you can use 0.82.0 if you need these features.

Latest Stable NW.js Release

Chromium: Latest
Node: Latest

You can see what the latest version is on the website or in this JSON file:

Sometimes there are beta or RC versions available if you want to test your app in them before the stable version is released. In general the minor bumps in the version number relate to a new version of chromium. So 0.53.x will all use Chromium 90, 0.54.x will all use 91, 0.55.x will all use 92, etc. Then the patch bumps 0.x.0, 0.x.1, 0.x.2, etc, will relate to Node updates or NW.js fixes.

Should you use this: Yes. The latest version should be your default choice. It has all the latest language and tooling features, along with all the latest bug fixes and Security patches. The only reason you should deviate from this version is if you need to support legacy OS's (0.14.7) or there is a bug present in the latest version that was not present in a past version.

Information on the latest builds can be found here:


nature photo

Oldest comments (1)

Collapse
 
xthdraft profile image
xthdraft

I have a 30,000 line app running in nw.js I use v27.5 for this reason:

There is a bug in chrome related to the way the caret moves in multicolumn mode. Details at stackoverflow.com/questions/549788...

The last version of nw.js not to be affected by this bug is 27.5. As soon as Chrome fixes this important bug I will switch to latest version of nw.js