Goodbye Matrix

Matrix (the new chat.sucs.org) was supposed to be a replacement for the occasionally used Slack team. The idea was to create something not to replace Milliways but work in conjunction with it, mainly to provide push-notifications and better real time messaging.

Foreword

The plan was always to create something that would work along side Milliways. The idea was initially criticised as an attempt to replace MW however in my opinion I don’t think this was the case. Milliways is a community chat system, that’s what it works well as. It doesn’t support push notifications or rich media but that’s fine as it’s the perfect system to have a chat with everyone. If anything, the new chat system would be a replacement to emails. We’re not trying to create a new community, rather bring the ability for instantaneous messaging and discussion to the society. Something that would be useful for admins when running events as well as for the community to get help with projects, etc.

What alternatives did we come up with?

First idea was to continue using Slack. This would have been an easy option as the system was already in place. However, there are disadvantages of Slack such as the freemium business model which may in the future have required us to pay for the service to support the number of users. Don’t get me wrong, Slack is a fantastic system with a beautiful interface which is one of it’s most attractive features.

The next idea was to use Discord. This is exactly what the Gaming Society use and with 200-ish active members, it suits them very well. We don’t have nearly that many members so if they can cope, then we definitely can. Looking back now, Discord was the obvious choice as it was free, has a nice API and most members probably already use it. We kinda skipped over Discord and didn’t give it much thought - that’s my fault.

Next we looked at self-hosted options. At SUCS we love the idea of open source so this was a big factor for us. We discussed solutions such as Mattermost and Rocket.chat but decided they weren’t the best option. We settled on Matrix which is an open source specification for federated communication.

Why Matrix?

Matrix seemed to have the best developer community. The nice thing was it wasn’t trying to be an entire platform in one, rather just a standard API that anyone can implement. We really liked this idea so set up our own instance using Riot.im as the front end. The system does work pretty well and has nice LDAP integration, pretty good looking interface and very stable. However from a sysadmin standpoint it was a bit of a nightmare. Due to it being a new technology there is very little documentation online other than the standard specification stuff - which doesn’t really help with troubleshooting. It was also a tad rough around the edges with a few little quirks such as the inability to set default channels and it’s per-user permission system.

I finally realised why Matrix was designed like this. It’s not trying to be a collaboration tool. They want to create a federalised chat platform that allows anyone to create their own chat room. Similar to a self hosted version of WhatsApp or Telegram. Once you add your server to the pool, anyone can start to create rooms on it as long as they’re authenticated. Don’t get me wrong this idea is fantastic but unfortunately that mixed with it’s pain in the arse administration makes it unsuitable for use in SUCS.

Going to the users or bringing them to you?

Another issue we discovered was trying to get people to use the system. People didn’t want to have to download another app or learn to use another platform which made them reluctant to switch. Instead, we’re going to try the opposite this time and go to where the users are and modify the platform so it suits us. Most people in the society already use Discord which means the community is already there, just waiting to be set up. So instead of users working around us - which lets be honest, isn’t going to happen - we’ll work around them. I’m currently building a Discord bot that connects to the SUCS LDAP server and grants the Discord user permissions based on which LDAP groups they belong to. Simple!

Feedback?

End of the day, @admin and @exec work for the members of the society. We’re trying different ways of growing the SUCS community and this is just one of them. If you have any suggestions just send an email over to [email protected].

TL;DR

Matrix is a bit too rough around the edges and a nightmare to administer. Instead we’re moving to Discord.

~vectre

El Presidente