Electron and NW.JS are two technologies aimed to allow developers to use web technologies to write traditional desktop software. In the past, GUI development for software applications typically required C#, Java or C++ libraries to get the job done. These days, millions of web developers are able to step into this same area of development by using Electron or NW.JS.
What are the differences?
In NW.js, the main entry point of an application can be an HTML web page. In that case, NW.js will open the given entry point in a browser window. In Electron, the entry point is always a script that gets fired, which then creates a browser window and loads HTML.
Both applications provide an API to write software applications but Electron provides a lower level API which works directly with NodeJS.
Which is more popular?
Electron is by far the more popular project. As of 2020, Electron has nearly 90,000 stars on GitHub which is where the code is hosted open source as well as the number one website for open source programmers. NW.JS has less than half the amount of stars.
Who is backing the projects?
Github / Microsoft are behind Electron, while NW.js is sponsored by Intel. Microsoft is worth over a trillion and a half dollars at the time of this article while Intel is worth 256 billion. Basically, both technologies are backed by industry leading tech companies.
What applications are using these technologies?
By far and away Electron has larger applications using it's technology. VS Code is the most popular text editor and IDE for programming in the open source community and it's created by Electron. Electron also powers the billion dollar Slack application as well as Spotify. Meanwhile, I could find no similar applications created using NW.JS which are on the same level of production.
When it comes to legacy support for older operating systems. NW.JS wins by supporting legacy systems going all the way back to Windows XP. If supporting ancient systems is your goal, NW.JS may be the best option for you. NW.JS also has other minor advantages such as supporting PDF files out of the box, using Chrome PDF native plugin. Electron has also added this feature but it's slightly more buggy at the moment. When it comes to auto-updating, crash reports Electron provides support for this built-in while NW.JS requires additional modifications.
NW.JS beats Electron when it comes to memory and application size.
- Memory - NWJS = 40MB / Electron = 45MB
- Disk - NWJS = 78MB / Electron = 118MB