A common complaint regarding team chat apps like Slack, Discord, and Microsoft Teams is that your communication lives on someone else’s server. For those whom security is at the forefront of their list of needs, swapping to a team chat that isn’t entirely under personal control can be a challenge. That’s where the open-source community shines. With self-hosted Matrix with Riot, you can get all the polish of a premium team chat app while keeping all the benefits of open source.
What is Matrix?
In everyday terms, Matrix is the backend of a team chat app built on React. We also have to note that Matrix is not a simple messaging system, either. It runs on what’s commonly referred to as a federation of servers, decentralizing the conversation data and users. This is a big benefit to self-hosted Matrix with Riot over other third-party hosted team chat apps.
Matrix is really a decentralised conversation store rather than a messaging protocol. When you send a message in Matrix, it is replicated over all the servers whose users are participating in a given conversation – similarly to how commits are replicated between Git repositories. There is no single point of control or failure in a Matrix conversation which spans multiple servers: the act of communication with someone elsewhere in Matrix shares ownership of the conversation equally with them. Even if your server goes offline, the conversation can continue uninterrupted elsewhere until it returns.
In a nutshell, your data is secure, you have complete control over your stuff, and you don’t have to worry about losing communications between your team members even when there are service interruptions.
What is Riot?
Here’s what the website says: “Riot is a glossy Matrix client built on top of matrix-react-sdk with an emphasis on performance and usability.” Riot is the client that your team will use to access your Matrix installation. Riot isn’t the only client you can use to access a Matrix server. It’s just the biggest and (if you ask us) the most polished.
Depending on how you work your installation, what your team needs, and various other considerations, you can use a web-based Riot client to access your Matrix server, or you can use a downloadable client to connect. Riot is available on MacOS, Windows, and various Linux distributions, so most folks using this for any kind of business have access to it.
You can check out some of the other options over at the Matrix homepage.
Setting Up Self-Hosted Matrix with Riot
While Matrix is open-source, and you do have access to the full codebase, you will likely want to take the self-hosted WordPress approach to it. That is, get a server that you control and install Matrix on it. You can do it via the codebase and GitHub repos, or you can use a service like Modular.im for managed hosting. That’s what we’re going to discuss today because it’s run by the dev team of Matrix itself, and it can show off what Riot can do.
The setup is relatively simple. Especially if you’re going for the free trial of the Small plan. When you create your admin account, you’re prompted to choose a server size, hostname, host and configurations. These are painless and simple. Even if you’ve never put together a server before, you’ve got this.
Remember the Small plan is the only one with the free trial. Choosing a hostname is just the URL that your server can be found at, such as companyname.riot.im. (For host configuration, it will be companyname.modular.im)
Step 3 has a couple of the more important decisions. Do you want your Matrix server federated, and do you want to allow guest users?
We feel that one of the biggest benefits to Matrix is the federation capabilities, which lets you connect with other teams, businesses, and servers also running the software. This means that if you’re on the Content Team and have a server, and your Dev Team has a server, you can communicate with one another, but remain entirely separate. While it sounds similar to Channels, it’s not. It keeps your data decentralized, adding an additional layer of security. Or if a partner company needs to speak with someone, they can do this directly, without worry or barrier.
After that, you’re just doing normal customization to the server, such as logos, home page content and so on.
The Riot Client
Even as the admin of the server, you will need to create an account when you start. The account you created before was for hosting, but you still need one for the server itself. If you reserved an email for a user, you can create it here.
If, for some reason, you have to reset a password for an account, Matrix has your back. Doing so will not only reset access to the account, but also encryption keys across all devices. If you have any encrypted chats, you will need to back up your key to get them. This is not a punishment. It’s a security feature that can truly help tighten up protection against data breaches.
This can be done in your user settings under Security and Privacy. It’s a simple process that your whole team should at least be familiar with.
Once you’re logged in, the dashboard is pretty standard. Whether you use the web interface or the downloadable client, you’re going to get pretty much the same experience.
If you have experience with another team chat app, Riot will feel like home. To the left side of the screen, you have a list of rooms (channels in Slack or Discord) that you’re a member of, as well as lists of private messages and group conversations that you have. To the right is a list of members of the room itself. Obviously, this changes based on room.
Going into your user settings gives you control over most of the features you’ll regularly access within the client. Voice and video calls are huge parts of what make team chat apps so useful, and Riot has that built right in. Plus, they’re Peer-to-Peer and don’t go through a third-party server. Unless you want them to.
Because security and control are big parts of Matrix (and Riot), you can even allow the official Matrix servers help with call assist if the P2P connection fails. But you don’t have to enable that. This option is available even to self-hosted installations, which we find incredibly useful.
Riot is a slick and polished team chat client. It is intuitive and performs well. Secure audio and video calls are easy to use. Admins can check out details and dev tools on a room-b-room basis. And being federated makes working securely across many teams or companies a lot less of a hassle than other team chat apps. You don’t have to invite people and make separate accounts. You just have to know them and their server. Overall, Matrix is stable, secure, and supported. We feel like for companies who want solid control of their communication, using self-hosted Matrix with Riot is a solid choice all the way around.
What are your experiences with Matrix and Riot?
Article featured image by Yuliya Chsherbakova / shutterstock.com