Elegant Facebook Messenger desktop app

DiscussionYou need to become a Contributor to join the discussion - Find out how.
Sindre Sorhus
@sindresorhus · Maker · macOS Developer · Open-Sourcerer
Caprine is an open-source and cross-platform Facebook Messenger app built with Electron. I mostly just made it for myself two years ago when I wanted a desktop version of the Messenger iOS app. Since then it's grown quite popular and it's no longer just me working on it. Caprine is based on messenger.com, but heavily modifies and skins it and adds additional features. For example, in the latest release, you can now prevent people from knowing when you've seen a message or are currently typing. Yay privacy! We're always happy to consider feature suggestions. Fun fact. Caprine means "relating to or resembling goats".
Sam Verschueren@samverschueren
Best facebook messenger client out there!
Christopher Skillicorn@skllcrn · Designer
Awesome work @sindresorhus! I'd love to hear more about your process and reasoning. Why did you chose to work with Electron and how does Caprine differ from other alternatives that for example run in a Mac app wrapper around Facebook's stand-alone Messenger?
Sindre Sorhus
@sindresorhus · Maker · macOS Developer · Open-Sourcerer
@skllcrn Caprine needed a browser engine to render the modified messenger.com website. I could have chosen to create a native macOS app with a webview, but I didn't have much Objective-C/Swift experience back then. I did however have plenty of Node.js and Electron experience. I also wanted the app to be cross-platform. So I chose Electron for mostly selfish reasons, but in hindsight it was a great choice. Electron gives you so much for free and makes it far easier for people to contribute to the project. Electron has enabled any developer to make desktop apps. That is a powerful thing. Diversity is important for innovation. The Messenger apps that use a Safari webview are held back in many ways. They only work on macOS and are stuck with the Safari engine of the user's system, so currently no voice/video call support, and many other issues. So much so that one of the early popular native macOS Messenger apps, Goofy, recently ditched all their Swift code and adopted Electron. It has become a trend to pick on Electron apps for being bloated, but they're missing just how much Electron does. Many of the apps we use today would not have been possible without Electron. It's also not as bad as they make it out to be. Caprine uses 86 MB of compressed ram, while iTunes uses 103 MB, and Notes uses 184 MB. No technology starts out perfect and in many ways Electron is still in its infancy, but it is progress towards a very interesting future. While a few spend their time complaining about Electron, others are writing useful apps with Electron and shipping it to millions of happy users not caring even a little bit what it's written in. Users care about the app solving their problem in a fast and reliable way, while being well maintained and frequently updated. All of which are not only achievable with Electron, but far more efficient. You'd be amazed just how many apps on Product Hunt are using Electron.
Hameem@qhameem · Software Engineer
Just installed it. Feels fast/responsive and looks like using less memory than my previous ones. Let's see how it behaves when a few hundred lines of messages have been exchanged.
But isn't Electron bloated?