5 apps you wouldn't think are built with Electron

“If you can build a website, you can build a desktop app.” - this is one of the very first things you are going to read when you open the official Electron website. Sounds like yet another jingle in the “Start speaking Chinese in just 2 weeks” style? Well, even if it does, that’s not really too far from the truth.

Electron is a framework which enables you to build native desktop apps using the common stuff: JavaScript (the most widely used programming language according to the latest StackOverflow survey), HTML and CSS.

In this short article I’d like to take a look at a few popular tools which are built with Electron - I bet many of us don’t even realise some apps we use every day rely on Electron - and try to understand the business and technology reasons driving a particular brand while deciding to go for Electron.

Slack

In the first place let’s take a look at Slack - one of the most popular and powerful collaboration tools which, earlier this year, hit 8 million active daily users with 3 million paid ones (not bad, huh?).  At startups Slack is a must-have thing and I think it (or any other tool of that kind if you know an equally good one) would dramatically foster collaboration also in most of the ‘old fashioned’ / conservative workplaces (especially various public administration offices). I’ve been a regular, daily Slack user for over two years now and I remember the intense and unanimous staff lobbying for migrating to Slack (the previous app used to fail just way to often and was much less powerful).

Slack is undoubtedly a cool thing and those who use it will probably agree that it’s also pretty stable and offers a coherent user experience across web, desktop and mobile. Why Electron, though? As one of the Slack developers explains on their engineering blog:

"Given the rise of progressive web apps (PWAs) and browsers-as-OSes, it’s worth taking some time to think through what capabilities your app can’t possibly have as a standard web app. For Slack, this includes fine-grained control over native notifications, screensharing and video calls, spellchecking and language detection, native app and context menus, and access to exciting new APIs like the Touch Bar and My People."


Skype

Surprised? I must admit I was. I’m not a regular Skype users any more (I especially like the new, quietly released Hangouts Meet). Nevertheless, as we know old habits die hard, so I have Skype both on my Mac and phone and use it approximately 1-2 times a week as some clients are not very keen to try anything else. Also, I must say Skype is generally pretty reliable and usually provides a decent call quality.



WordPress

It’s virtually impossible you haven’t heard about WordPress, but you might be unaware that the most popular CMS offers users a desktop app, which is basically a panel allowing you to control all your WordPress sites. As the Automatic (the guys behind WP and some more widely known web stuff) admit, the decision to use Electron was purely pragmatism-driven:

"At the end of 2015 we rebuilt much of WordPress.com in the form of Calypso, an open-source modern JavaScript app using React. We started looking at Electron and with some changes to Calypso were able to get it running locally. It was a compelling experience and we thought there was a lot of value in developing it further. We had several teams working on Calypso. To make a full multi-platform GUI client that matched this using traditional desktop technologies would have taken more work. By using Electron, a small team of 2-4 of us were able to leverage the other team’s efforts and build the Desktop app in a couple of months."


Ghost

Another popular CMS, or as Ghost founders call it - a professional publishing platform, whose desktop app is built with Electron. It is, by the way, an interesting alternative to WP, so if by any chance you ever look for a blog tool, it may be worth to have a look how Ghost compares itself against the (still) more popular competitor.

What made them choose Electron? Well, as Felix Rieseberg, desktop engineer at Slack (yes, this Slack) and maintainer of Ghost Desktop says, the motivation was no different than in most other cases:

"Ghost uses JavaScript and Node.js on both the backend and frontend, so being able to utilize the same technology and skillset enables our team to move faster, build more, and ultimately deliver a better experience. In addition, being able to share more than 95% of code between the macOS, Windows, and Linux version of the app allows us to focus on building a great core user experience, without having to maintain one code base for each platform."


Signal

That’s correct - Signal also decided to develop a desktop version of their popular messaging app using Electron. Signal is an interesting (especially for privacy cautious users) alternative to the biggest players on the market - Messenger and WhatsApp which, as you know, both belong to Mr Zuckerberg’s digital empire. Signal’s open source encryption protocol (Open Whisper System) is, ironically, also used by… Messenger and WhatsApp. The difference is, as you may expect, that Signal is an open source project supported by donations and grants, while the other two...well, let’s drop it here. If you’re interested to learn some details, there’s an interesting piece of reading in a Wired article.



Summary

The list does not obviously end here, a more complete one can be found on the official Electron site. Interestingly, as you will see, 3 categories dominate: productivity, developer tools and utilities. Naturally, like any other technology Electron has some harsh critics, but I still think the fact that Slack or Microsoft decided to use it developing their flagship products is a good enough proof Electron is a viable alternative to anyone who shivers at the thought of ending up with a few codebases with very different programming languages.