A native Slack client for macOS
Update: Taut has been put on hold, for a number of reasons:
- I left my job, and no longer have a Mac.
- I’m in the middle of a transatlantic relocation.
- The way Slack works is that free teams have a maximum number of apps, and on other teams, an administrator must approve every app; that means it can never be a drop-in replacement that just works.
As an alternative, I can recommend Ripcord. While not quite native, it’s much faster and more efficient. Thank you for the support and kind messages; sorry to let you down.
The official Slack client is built with Electron, which is a tradeoff they made in order to have a cross-platform client. Personally, I find it unacceptably slow and resource-intensive. Other than draining my battery, it has a number of usability issues as well.
I would have made different tradeoffs, but that’s neither here nor there. For myself, I simply wanted a native macOS client, so that’s what I’ve started working on.
What I have so far:
- Basic messaging.
- Encrypted access tokens1 stored in iCloud keychain.
- Sandboxing—which is absent from the official app.
- Fast, native UI, with proper context menus, etc.
- Memory and energy impact significantly lower than the official client.
It will be a while before it will be usable as a primary client, and it’ll probably never reach feature parity with the official client. Some features have no public API, and also I’m only one person.
What I really want to do is write a server that sits between my client and the Slack API, and translates messages into something that can be more efficiently deserialised in the client. That would let me embed preview images and whatever is required to display a message, and the client would not have to deal with WebSockets, HTTP, JSON, or any of that. But again, I’m only one person, so I’ll start simple.
I will make it available under a pay what you want model, because I don’t feel comfortable charing money for it considering the limitations Slack places on third-party apps. On some teams, Taut won’t be an option at all.
The Slack API Terms of Service had me wondering if they would let me make an alternative client at all, but I have corresponded with a Slack representative who approved the idea.
If it sounds interesting to you, check out taut.link. I’ll write more about it once I get a beta out.
- Slack access tokens never expire, which is scary, so I do what I can to keep them safe. ^