Linux is great, but it doesn't feel great when your favourite apps only have releases for Windows and macOS. Notion is a big example of this, which will hopefully change soon, and another one is WhatsApp. This especially annoys me, since the WhatsApp client for Windows is built on Electron, making it trivial to port to Linux, but they choose not to for reasons that are beyond me.

So, on the venture for a decent WhatsApp Web wrapper for Linux, I found one with a good feature set, but the look and feel was unpolished and clunky, and it missed a lot of necessary features. So I forked it and made some changes, including but not limited to:

  • Improved design with custom window controls and a cleaner interface
  • Improved tray icon functionality with better notifications
  • Added support for whatsapp:// links to open in the app
  • Added offline page which retries connecting to WhatsApp every 10 seconds
  • Allow opening in background with the -b or --background flag

I also removed the multi-account support, since it's rare that people have multiple WhatsApp accounts, and I discovered it slowed the app down in comparison.

Getting the app to behave exactly how I like it took a lot of effort, essentially conducting user studies on myself, since I actively used it throughout the development process. There's a lot of hacks I'm not proud of, especially to get the window controls looking right, but the final product is something I'm really happy with.