How about a native client? I think it's safe to assume that Slack has the resources for this.

The fact that nobody's gone out on their own and built a native client means at least one of four things is true:

1. Slack is too restrictive, and its API is too poorly supported for anyone to create a port. I find this unlikely, given that the API is extensively documented and that an Emacs port already exists, but maybe there are problems I'm not aware of.

2. Good native ports are actually a lot harder to build and maintain than typical HN posters claim.

3. For all everyone complains about Electron, maybe the current app is good enough for pretty much everyone, including the complainers, and those complaints are largely just hot air.

or 4. A few good, Open Source native ports already exist, and people are just unaware of them.

Regardless, the HN crowd is made up of developers who know how to develop things and use experimental software -- most people on here know how to extract a login tokin, and a lot of people on here are willing to put in a lot of effort to solve problems. If there isn't a native port already, there's very likely a good reason for that.

If there isn't a good reason for it, and it's just that somehow nobody on HN has thought to sit down and build a native app yet, then I'd welcome one, I suppose. But obviously I'm not annoyed enough by Slack to do it myself, and I suspect that most other people posting here fall into that category as well.

> 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'.