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".
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?
@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.
@csaba_kissi Hard disk space is cheap and Electron apps are not what's filling up your hard drive.
Native apps that are larger or almost the same size as Caprine: Dropbox, ScreenFlow, VLC, Pixelmator, Skype, 1Password, iTunes. Just to name a few.
@sindresorhus@csaba_kissi What's not cheap is integrated SSD space *cough* Macs *cough*. Comparing the size of a Facebook Messenger app to PixelMator and iTunes is pretty odd, I would think comparing it to a similar app would be a better comparison. "Messenger for Mac", another Facebook Messenger client, is not Electron based and weighs in at a whopping 3.4 MB. Compared to Caprine's 120 MB, that's a really big difference. However, Caprine seems to be a much better application, based on my initial look. 116 MB probably isn't going to be the nail in the coffin for a nearly full SSD/HHD but it is worth noting.
@john_cockerill@sindresorhus@csaba_kissi Does "Messenger for Mac" offer a full-fledged Messenger experience like Caprine though? Digging at apps and trying to arrive at the best.
@sindresorhus You're right. HDD space is. SSD and RAM isn't.
This isn't to say your app isn't worth it. The reviews seem great so far and I'm about to try it out myself. Package size is an issue with Electron though.
For all its goodness, Caprine has 2 flaws. I cannot zoom in pics/documents, and it does not update chats, when used for the first time. Caprine can be better.
257.0 appears to be Deprecated. Remove/Delete does not work. And Emojis don't load properly. Was a very good App, regardless.
No response when posting issues on GitHub for a long time now. That's a noticeable change.
Scratchpad
Scratchpad
Kap
Scratchpad
Invoice generator
Scratchpad
Pointless