| > 4. A few good, Open Source native ports already exist, and people are just unaware of them. Native GUI clients: - Ripcord: https://cancel.fm/ripcord/ - Wey: https://github.com/yue/wey ("written in Node.js with native UI powered by the Yue library") - Volt: https://volt-app.com IRC bridges (allow using Slack from native IRC clients): - wee-slack: https://github.com/wee-slack/wee-slack - irc-slack: https://github.com/insomniacslk/irc-slack - bitlbee: http://bitlbee.org (using libpurple) libpurple plugin (allows using Slack from Pidgin, Adium, bitlbee): - https://github.com/dylex/slack-libpurple - Adium (native macOS app) plugin based on it: https://github.com/victori/slack4adium CLI clients: - https://github.com/erroneousboat/slack-term - https://github.com/haskellcamargo/sclack - the emacs one you mentioned Most of these clients don't support 100% of Slack's features, aren't as pretty, and are generally not as 'polished' as the official client. But they're also mostly written by individuals in their spare time, as opposed to a team of full-time employees. So no, I don't think that native clients are 'actually a lot harder to build and maintain'. |
The best compromise right now is to aggressively build pretty, heavily themed prebaked designs. Think Material Design, Cupertino etc. so native UI is somewhat good looking too even though it may not be as "rich" as a React one with all the drag and drop animation and flashy trinkets. Feature wise of course there's only marginal improvement to old school Java Swing, but it's certainly easier on the eyes.