If you are like me, you love JavaScript and its ecosystem, and you have been architectonics amazing web applications using frameworks like React or performant web servers with NodeJS . Now you want to advance a desktop application, and you don’t want to learn a new programming language, or conceivably you want to re-use as much as you can from absolute web projects. Here is when Electron enters the account to save the day.

Electron allows you to build desktop applications using HTML, CSS, and JavaScript. There are many arguments on the internet adjoin Electron, one of them being its achievement and many times low-quality apps, but don’t blame the framework; Electron is able and can be performant. Today, many accepted applications run on top of Electron, such as VS Code, Slack, Skype, Discord, and more.

But why is it then that many people argue so poorly adjoin it? The botheration starts with the apps and the way people use Electron. For many, porting a web appliance to an Electron means taking your absolute code as-is and embedding it into an Electron container. Is this a abhorrent thing to do? Maybe not, but you are not taking advantage of the power of Electron to its fullest. You are merely alteration a browser tab for an absolute application.

What can we improve? In this article, we will analyze the basics of Electron, and we will build a sample appliance to show some of the Electron ways.

How does Electron work?

Electron is built on top of 3 main components:

  • Chromium: amenable for the web content
  • NodeJS: for interacting with the OS
  • Custom APIs: to solve for common issues when ambidextrous with the OS

Each of these apparatus interacts on a altered level on the Electron architectonics layer, as shown in the architectonics diagram.