"It's easier than you think" that's on the landing page of Electron. I'm sure most of the developer community know what electron is. Roughly said, it's a chromium wrapper for a web app, that along with node can run like a native desktop app.

Electron promises the following:

If you can build a website, you can build a desktop app. Electron is a framework for creating native applications with web technologies like JavaScript, HTML, and CSS. It takes care of the hard parts so you can focus on the core of your application.


The user experience and performance of most electron apps is inexplicable bad.

My relationship with electron.

I like the technology, at least what it promises. For small dev teams, it's really not possible to constantly keep improving their product as well as being able to support a native experience across all operating systems. At Frappe itself my teammates have bootstrapped a really cool framework around Electron and VueJS, I like it, to me it's a really interesting project. But what is a technological feat, from a UX standpoint can turn out to be a really bad game to play.

It all started with my quest to find the perfect note taking app. I've tried almost every popular or semi-popular note taking apps; Evernote, OneNote, BearNotes, Dropbox Paper, Joplin, Google Keep, Agenda, Notes App on the Mac and finally Notion, the app I'm using currently. I could never settle on one, until I came across Dropbox Paper, an awesome markdown editor, easy sharing and collaboration, all I missed was a good content organisation and I started looking for other options and I stumbled upon Notion. It was great, a really powerful, customisable solution I could tailor for my needs. Especially for maintaining my blog pipeline (Reason why I look for good content organisation).


Make no mistake Notion is a great app. One I am quite happy with, except when it comes to their desktop experience. The Mac client for notion is a electron app and it is slow. I mean, really slow.

It always takes a minimum of ten seconds for Notion to launch.

HackerNews is always filled with discussions like this complaining about the high memory consumption of Electron App. VSCode uses around around one gigabyte of memory to edit a single medium sized file, that's after it's ridiculously long launch time. The Slack app is ridiculously slow. The Ghost desktop client is bad, to say the least.

Two Dimensions

My problem with electron apps has two parts, User Experience and Performance. First let's address the performance factor.

The Performance Dimension

Allow me to introduce you to Wirth's law, it is an adage on computer performance which states that software is getting slower more rapidly than hardware becomes faster. This was introduced by Niklaus Wirth in his 1995 paper, "A Plea for Lean Software". The fundamental issue with performance of electron apps is something engineers have been facing forever, but that's should not be an excuse for overuse of computing resources.

Point 4 in the Redis Manifesto reads the following "We believe in code efficiency. Computers get faster and faster, yet we believe that abusing computing capabilities is not wise: the amount of operations you can do for a given amount of energy remains anyway a significant parameter"

This probably sums up my sentiment when it comes to the performance aspect of the problem. The fact that editing a 6kb file requires 1 GB of RAM is ridiculous

By no means I intend to present a dissertation, this is by no means a strong case against electron apps, there are people who have done far better research on this.

The Experience Dimension

Having a desktop client is about reducing friction,  you can add capabilities like offline mode, access to local files and what not, but fundamentally it's about reducing friction for the user. Not having to take the futile effort of opening your browser, hitting the url followed by login every time I want to take meeting notes. But when it takes 20 seconds for the app to launch, unresponsive interactions, makes the entire experience miserable. The entire point of having desktop apps is just lost, more often than not, I find going to the notion web app from chrome lot faster, the app is much more responsive there, and it's the same with slack.

It's understandable for a team like Notion to resort to electron, not being a huge team, but what excuse do Slack or Microsoft or Dropbox have? BombSqaud is a multiplayer game, running across all platforms flawlessly, built by one developer, guess what, it's not an electron app. Sublime Text not backed by a giant like Microsoft, works flawlessly on all platforms. Telegram is not worth $5 billion but has managed to built apps that work amazingly for all platforms.

The philosophy of it.

Are the developers building these apps just evil? Actually not, most companies are aware of this and are working hard to fix the problems. But somewhere there is a philosophical dimension to it. Product teams are somehow more willing than ever to trade-off user experience for either shorter time to market or a better development experience. But we forget one thing, it's our job as developers to take all the efforts, endure all the pain so that the users don't have to, technology will take it's course, Electron will eventually become better, teams will make their apps faster, but if it's at the cost of user experience, we're headed the wrong way.

I for one, have decided to choose better experience. I've moved from VSCode to Sublime Text, I would be fine with just anything that is not a web browser masquerading as a text editor. As for my look for the right note taking app, I've decided to built it myself.