I could have built a better Slack: a story about excellence
Salesforce announced this week that they’re looking to buy the work chat app Slack, and although I’m sure this will mint a lot of new millionaires and probably help Slack avoid the pressures they’ve been facing as a public company, I’m still not convinced that a golden age of great new Slack features is ahead of us.
Slack is one of those tools where either you and everyone you know uses it, or you’ve never heard of it in your life. If you do use Slack, you are likely working at a relatively modern tech company. If not, you are part of… the rest of the world.
In its early days I loved Slack. It managed to out-Hipchat Hipchat (and in fact eventually Atlassian threw in the towel and shut down Hipchat, basically letting Slack acquire it). It was whimsical, rolled out features at rapid pace, and they were incredible at taking feedback (you can literally just type
/feedback I wish Slack did <this thing> from any chat window and the feedback will go straight to a Slack support person and you will get a response from a human).
But over the years, it’s become emblematic of all the things I hate about most modern software companies. But instead of one of my patented rants, my complaining will take the form of telling a story from an alternate universe where I had more money than sense and built my own Slack competitor.
I call this app Ruckus. It’s adorable and whimsical and the name is more synonymous with chat than “Slack”. I’d have to get into some sort of trademark fight with the networking equipment company baked Ruckus but it’d be worth it.
Ruckus is built on Apple platforms exclusively (at least at first), and its desktop app is written as a pure native Mac app. It might seem a bit strange that the first “feature” of my hypothetical app is not really a feature at all, but just its technology stack, but being a native Mac app informs its design, both in terms of how the app looks, but more importantly, how nicely it works and what it’s capable of doing. The very best apps on my Mac are made specifically for the Mac and for the Mac only, built by people who love the Mac. There are also iPhone and iPad apps, also made by people who love each of those platforms. You can sense the love when you’re using the apps.
It works like you expect a Mac app to work. It follows all of the conventions of a Mac app. You double-click a channel in the sidebar and boom, a separate window will open with just that channel on it, because that’s how Mac apps are meant to behave. If someone sends a PDF file in a chat (or just about any file type your Mac can open), you can select it and hit the space bar to invoke Quick Look. Threads can be viewed in popover menus that can easily be dragged out into their own windows. Drag and drop works perfectly, and you can copy and paste things easily into the app and it just works (again, it’s amazing that I’m selling something this basic as a feature, but Slack doesn’t do this well, and it doesn’t do it well because it’s not a real Mac app).
When you want to share something from the app you use the system share menu because the OS put share menus in for a reason and you don’t need to reinvent the wheel.
The app is snappy because it’s an app, not a single-site Chrome browser pretending to be an app on your computer, and the difference is easy to see. Not only is the app just plain fast objectively, but it feels fast to do anything on it because using the app is like using any standard Mac app, and everything just fits in beautifully.
Ruckus integrates nicely with other apps on your system. It can connect with your to-do list app whether it be OmniFocus or Things, allowing tasks to contain links back to the specific channel/chat item that prompted you to add the task, giving you useful context. The app is fully scriptable and has a CLI available so that you can build workflows with other apps like Alfred or whatever else you might see the need to automate.
Being native apps for their platforms makes Ruckus’s apps truly great; they’re full of the little details that fill you with delight.
You can use Ruckus as an internal company or group chat app, and that’s cool, but Ruckus as a service works the way the internet works. Anyone can set up a Ruckus server, and you have an account on that server. Your Ruckus account basically just looks like an email address (@[email protected]) and you can communicate with any other account(s) on any other Ruckus server(s). Do you need to communicate with a handful of people at another company? No problem, you can just invite those people to the channels you care about, and you can directly DM with one another. No stupid guest accounts or single-channel guest accounts; you’re just users who can talk to one another (just like how email works). Unlike email, when you’re signed into a Ruckus server, the other users on the same server are easy to discover and communicate with.
Your Ruckus server can be configured anywhere between free-for-all and tightly locked down, so it’s suitable for a buttoned-down business that needs explicit control over who is talking in which channels, and it’s equally suitable for informal communities.
And of course, although Ruckus’s open nature makes it easy to use the same Ruckus account to participate in more than one community, you can still use Ruckus with many accounts. Maybe you have some obscure interests you prefer to keep under a more anonymous persona. Maybe you prefer to just have a separate account for each community you’re part of. It’s entirely up to you.
Ruckus servers primarily are meant to work as relays, passing messages along to individual members in group chats, channels, and 1–1 direct messages. Group chats and 1–1 direct messages are end-to-end encrypted; only members of a conversation are able to know the contents of messages that are in it. If a group conversation later adds a member, only then does that member exchange keys with the others, so members of the groups can rest assured that the new member doesn’t get to see prior messages. Similarly, when a member leaves the group, everyone else rotates keys, ensuring that the former member of the group no longer can see messages in that room even if they want to.
Chat history is searchable, but you are only searching history that is present for your own account on your own machine (if you have more than one computer or device, this history can be synced via iCloud or similar, and that can also be encrypted so that if someone accesses your iCloud backup, they can’t see your history).
Channels can be either public or private, but their encryption and storage characteristics are a bit more relaxed so that members can always search the full history of a channel.
A handful of businesses might be a little more formal and require that even 1–1 conversations are retained in a manner accessible by the company, and Ruckus supports that. In these instances, all DMs and group chats will have a special extra member, a bot whose purpose is to record the conversation. It’s important to Ruckus that if this kind of data is recorded, we’re transparent about it.
Ruckus starts off as a text-based communication service because initially, we want to master that before we take on new talents. But at some point we do master it, and eventually we dive into video and audio calls, as well as screen-sharing capabilities.
In truth, while the core Ruckus team is working on mastering the core experience, there is a secret team working on real-time video and audio communication to build something that is truly rock-solid to integrate into Ruckus. And indeed, when you use Ruckus to have a video chat, there’s just something uncanny about how much better it feels to use. The interface feels faster. Things are low-latency and high quality, and even when the connection isn’t perfect Ruckus makes the best of it. Tools for screen sharing are lightweight and frictionless to use, and it’s almost nicer to conduct a remote presentation with screen sharing just because the tools are so incredibly nice.
And although things are tightly integrated, the video/audio/screen share app is its own separate thing. We don’t want Ruckus being too bloated; we want it focused on the chat part, and we want the multimedia app to focus just on that.
Ruckus doesn’t aim to be a platform just for the sake of becoming a platform behemoth, but it places heavy value on extensibility. Lots of extra features can be added to Ruckus in the form of platform applications and workflows. You can have polls, bots that help you with anything from on boarding to incident management to telling jokes, things that add custom UI to chat, to full-blown chat ops support.
Ruckus took the road less traveled by. We don’t pursue growth at all costs. We started off on Apple platforms and are staying that way for the foreseeable future, even though there are a lot of people with deep pockets that would love to see a Windows or web version of Ruckus. But even so, we don’t go for it; our hearts aren’t in it.
Ruckus has two main components: an app, and a server. Ruckus works like the open web where anyone can run a Ruckus server (and you are free to run one; Ruckus is 100% open-source), but most of our customers opt for our managed cloud version; it’s simplest that way, you get features first, and the cost is good at just a couple bucks per user per month. Businesses that want to really value privacy may choose to run their own Ruckus servers on premises, but might contract with Ruckus (the business) for support contracts.
Communities and other nonprofits can run their own Ruckus servers for just the cost of their infrastructure. Though they aren’t paying customers, they are valuable as users, not because we earn money directly from their eyeballs, but because Ruckus is a tool that people with good taste choose, and we are confident that when people get to know Ruckus from their communities, they’ll want to bring it to the workplace, where they are more likely to pay.
Alas, it’s time to come back to the reality, where work chat apps are web apps written by companies who want their chat app to be more of a platform not because it should be, but because they figure that’s a good way to achieve market dominance.
It’s really easy to look at all of these massive software companies producing inferior products and be filled with despair (I say right after filing my sixth or seventh bug report with trillion dollar company Apple about the new Messages app for Big Sur). And in some aspects the despair is apt (after all, if I want to iMessage with people I only have one choice, and that’s to use Apple’s app).
But thought exercises like Ruckus are a lot of fun and they fill me with hope and optimism, because a product like Ruckus absolutely could be built, and it could be built by a much smaller team than however many employees Slack has.
There are a handful of products in my life where I can tell that the people who made those products were obsessed with excellence in the details, even if the product is something that might not get you that excited. I want to live in a world where everything I use was made by people like that.