


Renderer Process: There could be one or more, each of which will host a chromium instance and be responsible for the web contents. It’s where it all starts, and it can create and manage multiple renderer processes Main Process: responsible for window management and all interactions with the OS. How does Electron work?Įlectron is built on top of 3 main components:Ĭhromium: responsible for the web contentĬustom APIs: to solve for common issues when dealing with the OSĮach of these components interacts on a different level on the Electron architecture layer, as shown in the architecture diagram.Įlectron works with two types of processes. What can we improve? In this article, we will explore the basics of Electron, and we will build a sample application to show some of the Electron ways. You are merely changing a browser tab for an independent application. Is this a terrible thing to do? Maybe not, but you are not taking advantage of the power of Electron to its fullest.

#Slack desktop app is unresponsive code
For many, porting a web application to an Electron means taking your existing code as-is and embedding it into an Electron container. Today, many popular applications run on top of Electron, such as VS Code, Slack, Skype, Discord, and more.īut why is it then that many people argue so poorly against it? The problem starts with the apps and the way people use Electron. There are many arguments on the internet against Electron, one of them being its performance and many times low-quality apps, but don’t blame the framework Electron is powerful and can be performant. Here is when Electron enters the picture to save the day.Įlectron allows you to build desktop applications using HTML, CSS, and JavaScript. Now you want to develop a desktop application, and you don’t want to learn a new programming language, or perhaps you want to re-use as much as you can from existing web projects. If you are like me, you love JavaScript and its ecosystem, and you have been building amazing web applications using frameworks like React or performant web servers with NodeJS.
