Build desktop app with JavaScript

Electron is the most popular one, but there are a few more JavaScript frameworks for desktop apps. Differences between them sometimes are significant. Read this guide to compare them and choose the best technology for your next project.

Build desktop app with JavaScript

A while back, developing a desktop app using JavaScript was impossible. But now JavaScript developers can create desktop applications using their knowledge for web development.

In this article, I’ll walk you through the best JavaScript frameworks available for creating desktop applications

Build desktop app with JavaScript
ElectronJS

Electron is an open-source framework developed and maintained by GitHub. It allows cross-platform compatibility, which means you can create apps with Mac, Windows, and Linux. Electron uses Chromium and Node.js so you can create your app with HTML, CSS, and JS. it usually reuses the business logic, design, and general structure of a web app. Most of the popular desktop apps are built using Electron (Visual Studio Code, WhatsApp, Slack, etc)

2. NodeGUI

Build desktop app with JavaScript
NodeGui

NodeGui is an open-source framework for creating cross-platform native desktop applications with JavaScript and CSS. It lets you create truly native apps It provides a core set of platform-agnostic native widgets that map directly to the platform’s native UI building blocks. NodeGui widgets are built on top of Qt which is a mature desktop apps framework. There is a React-based version as well.

3. NW.js

Build desktop app with JavaScript
NW

NW.js is an open-source framework built by Intel’s Open Source Technology Center by combining the Chromium engine and Node.js framework. Because of that combination, it was previously known as Node-WebKit. It has complete support for Node.js APIs and all third party modules because of that you can call Node.js modules directly from the DOM and Web Workers. Also, it provides JavaScript Source Protection.

4. Meteor

Build desktop app with JavaScript
Meteor

Meteor is a full-stack JavaScript platform for developing modern web and mobile applications. Meteor includes a key set of technologies for building connected-client reactive applications, a build tool, and a curated set of packages from the Node.js and general JavaScript community. It has both frontend and backend modules, including APIs, build tools, Node.js packages.

5. Proton Native

Build desktop app with JavaScript
Proton Native

Proton Native does the same to the desktop that React Native did to mobile. Build cross-platform apps for the desktop, all while never leaving the React ecosystem. Popular React packages such as Redux still work. It lets you manage state and build UIs seamlessly while doing it cross-platform.

I hope you’ll find them useful! And, if you have your own recommendations, don’t hesitate to share them in the comments below. Thank you and stay safe!

To get started with Electron, check out the resources below. Learn how to wrap your web app with Electron, access all the APIs, and generate installers.

Spin up the Quick Start app to see Electron in action:

A minimal Electron app with helpful notations.

# Clone the Quick Start repository $ git clone https://github.com/electron/electron-quick-start # Go into the repository $ cd electron-quick-start # Install the dependencies and run $ npm install && npm start

Build desktop app with JavaScript

Build desktop app with JavaScript

Electron Fiddle lets you create and play with small Electron experiments. It greets you with a quick-start template after opening – change a few things, choose the version of Electron you want to run it with, and play around. Then, save your Fiddle either as a GitHub Gist or to a local folder. Once pushed to GitHub, anyone can quickly try your Fiddle out by just entering it in the address bar.

Download from GitHub See more info

Or dive deeper and read the documentation.

Need Help?

Ask questions in the Discord server. Follow @electronjs on Twitter for important announcements. Need to privately reach out? Email .