It’s time to Riot(.im)

Why we abandoned Slack, and why you probably should too

If you’ve ever been interested in a blockchain project and joined their Slack group to learn more, I’m willing to guess that you eventually started receiving unsolicited direct messages. These messages likely began coming a few weeks before an anticipated presale or ICO and included an ethereum address to send your ether to if you wanted to participate in the sale. In retrospect, it’s easy to identify these unsolicited sale instructions as scams meant to steal ether from excited community members. Unfortunately though, in the moment they’re often extremely well executed and convincing.

These phishing attacks on community Slack groups have become so severe (likely composing a large percentage of the hundreds of millions stolen in crypto-related phishing attacks) that many prominent projects have left for greener pastures. Back in August, Aragon and others organized a mass migration from Slack to Rocket.Chat, which included some of the largest and most active communities in the crypo-sphere.

Looking to learn from the lessons of projects that have come before us, we have spent the last few weeks planning our own migration from Slack. Although the ability to prevent phishing attacks as we approach our token presale may have been the most immediate and obvious reason for such a move, it wasn’t our only consideration. We looked for 4 key things as we weighed different Slack alternatives:

  1. Commitment to open-source: We’re strong believers in the value and benefits of open-source projects, something that is hopefully evidenced by the fact that our entire codebase is open-source. In addition to this, we knew that choosing an open-source project would allow us to make small tweaks and changes to our chat experience as necessary and contribute to its improvement.
  2. A powerful permissions system: Since we knew that we wanted our chat platform to be open to anyone who wanted to join, the ability to finely tune permissions and implement sophisticated spam filters was critical. The simple reason that Slack groups are so vulnerable to phishing (and other) attacks is because Slack assumes that the group is closed to the public and therefore makes the assumption that once someone is in a group they can be trusted.
  3. Self-hosting and end-to-end encryption: None of us ever loved the idea that we were relying on Slack’s servers to handle and host all of our chat information, and we really didn’t love the idea that nothing was encrypted. This one is simple, more security is better than less security.
  4. Great web, desktop, and mobile apps: One of the best things about Slack is the feel and experience of using their apps. The UI is clean and the apps actually work. While we really wanted the other three items on this list, we didn’t want them to come at the expense of the actual chat experience.

So after looking around at various options, including Rocket.Chat, Zulip, and Mattermost, we decided on a chat app called Riot. Given that I had never even heard of it, I was very surprised to learn that, far more than any other chat platform, Riot satisfied all of our requirements.

  • All Riot apps (web/desktop/mobile), along with the back end, Matrix, are released under the Apache 2.0 open-source license.
  • Within our chat community, Riot allows us both to create complex spam filters (an ability unique to Riot) and to control who can send direct messages .
  • We can run our own Matrix servers for our chat community and Riot/Matrix have supported end-to-end encryption for more than a year.
  • Riot runs beautifully across the web, desktop, and mobile, both Android and iOS. All the apps work great and are easy to use! (The lack of quality mobile apps was one of the biggest reasons we decided not to follow a lot of other projects to Rocket.Chat.)
  • (Bonus 1) Riot’s voice and video calling functionality actually works well, a pleasant surprise after struggling unsuccessfully many times to place calls through Slack.
  • (Bonus 2) Because Matrix is a decentralized messaging protocol and provides a JavaScript SDK, we can potentially incorporate its messaging functionality into our blockchain client.

Since Riot satisfied all of our requirements (and even had a few bonus features), we decided to try it out. For the last few weeks we’ve been communicating internally as a team on Riot and have been happy with the experience. There are still a few missing features, like threads and support for mathematical notation, but we think it’s more than ready for us and our community to officially migrate!

So without further ado, here’s how you can join our Riot chat:

  1. Download the mobile (Android or iOS) or desktop app or go to for the web client;
  2. Begin registering a new account, when creating your account, scroll down and select the “Custom server” button. On the mobile apps, this is indicated by “Use custom server options”;
  3. Enter as the Home Server, you should leave the identity server URL as it is;
  4. Once you’ve entered all your information, click the Register button.

We have a lot of exciting things coming up, including our ICO presale. So if you want to make sure you’re the first to know about things or want stay up to date on how Topl is developing, join us on Riot!

Like what you read? Give Christopher Georgen a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.