A real Slack alternative — one month in

Alan Williamson

Alan Williamson

Oct 8, 2019

A real Slack alternative — one month in
Photo by Pankaj Patel on Unsplash

While email is still considered the number one communication tool in the business world, the second has to be real-time instant messaging. This channel has taken many forms over the years, from the old days of Internet Relay Chat (IRC), the chatroom has evolved into a rich media experience, integrating deeper into our working (and social lives).

One of the well known players in this space is Slack, a web based messaging system from the founder of the photo sharing property Flickr. Where Slack succeeded while others struggled, was to make it accessible to anyone, without software installs in a very feature rich beautiful looking web-based app.

Slack has amassed a huge user-base largely down to the fact it is free to use and it works. You only need to start paying for it when you need a little more flexibility and integration. The biggest feature that paying unlocks is unlimited searching of historical messages, as the free one is limited to the last 10,000 messages, which you run up to quicker than you may imagine.

The choice

We were coming to the stage where we were looking to upgrade our Slack package anyway (from free to premium) to unlock the features we were seeking — namely searching capability. Also wanting to segregate our customers and vendors from our main internal chat groups, and Slack in its free state, was not as flexible as we wanted.

For all the greatness of Slack, it is a SaaS offering at the end of the day, with all your data residing on a remote server. This was the impetus for us to start looking around for a more secure alternative to Slack when we looked at the type of sensitive data that was being shared. Our VP of Engineering Ryan Burch, who has a healthy skepticism of security and questions everything, wanted to see if we could bring some of that data closer to home.

A real Slack alternative — one month in
Photo by Lucas Sankey on Unsplash

With that criteria, before handing over money, we thought it was a good opportunity to look around to see what else was available, including any self-hosted versions (and when we say self-hosted, we mean something we can easily throw to our AWS account and not worry too much).

It is worth noting, that we were quietly surprised at the sheer choice this segment of the communication space has to offer; you could be forgiven for thinking that Slack and Microsoft Team’s were the only shows in town.

Slack has inspired many clones (including Discord — ‘slack’ for the discerning gamer) and one of the more feature comparable alternatives is the open source Mattermost. In all of our research it kept popping up as the recommended one. Taking the wisdom of the crowd, we pushed forward with a full evaluation to see if it would stack up and tick all the boxes we had.

The setup

Installation was straight forward, taking their Docker instance, running it up in our AWS and pointing it to an Aurora database. All messages and logs are stored in the database, while all files uploaded, are stored in an S3 bucket. Nothing terribly unusual there.

Once we got through our initial is this thing going to work long enough for our testing, we stood it up with a little more polish around it. This included putting it behind a load balancer with an HTTPS certificate.

We won’t go into too much detail here, as the Mattermost installation is very well documented, but suffice it to say, anyone with rudimentary AWS knowledge, will have no problems whatsoever. Given that it uses S3 and Aurora, you don’t have to worry about supporting infrastructure in the traditional sense had it been run up on its own hardware in a data center. The joy of the cloud.

The experience

Mattermost bills itself as a Slack alternative and from an end-users perspective it is very hard to tell the difference. You can even import Slack’s themes that makes it near on impossible to spot the clone. Available in a web-based, desktop and mobile version, Mattermost has catered to all clients, with installation a breeze for all. The clients talk directly to your Mattermost server, as part of the sign-in, it requires you to supply the URL of your server.

If you are familiar with the various clients for Slack, then you will be completely at home with the user experience here. Users won’t need retraining, as everything is in a familiar place, usual concepts heeded which includes many of the same shortcuts.

Copy and pasting into the chat room, including images/files and large globs of text, is as polished as what we have become to expect from Slack, with no noticeable difference. Well the only real difference is that the files are now stored on your S3 account, as opposed to some remote file space somewhere.

A real Slack alternative — one month in
Mattermost client

The mobile app comes with full notification support, and again, plays nicely on both iOS and Android. Capable of receiving and posting shared resources within the app with no issues.

It is worth talking a little about the administration side of things. On the whole, we felt there was a lot more granular control over channels and groups than what Slack offered — at least at the free level. Segregating our core members away from our external friends was much easier which was achieved at a team level. You can also invite external people into individual channels too, but the team split was a nice way of keeping it clean and simple.

There were a couple of wee things that we were disappointed in, but like with any open source project, we had at least an opportunity to address it ourselves instead of being forced to live with it. It centered around the deletion of messages and files. Mattermost merely marks it as deleted in the database but doesn’t actually remove it — a common practice in the modern day database. Also, if an uploaded file was removed from a channel, it wasn’t deleted from S3. We would prefer it was gone-gone.

Fortunately it wasn’t a huge effort to make these changes ourselves, so when a user deleted a message in their chat, it really was deleted. Which is another huge benefit for open source, you can verify that a piece of software is doing what it claims to and take the corrective action where need be if not.

The co$t

Technically the cost of the software is free, as it is open source, however hosting it within AWS comes with cost albeit small. The configuration that we ran up within AWS, Mattermost claims can comfortably support 1,000 users.

So to support 1,000 users in Slack, it would cost $6.67 x 1000 = $6,700 per month for their base premium plan. Our AWS bill, which includes the EC2 instances, the database, load balancing, S3 charges, and network bills, comes in and around the $50 per month (that is with fault tolerance — if we were really conservative we can get that down to just $36 per month. Heck most of the resources falls under the AWS free tier umbrella so you may be spending only a few dollars per month). It doesn’t require a huge amount of processing power to manage asynchronous communications since most of the time, it is sitting there doing nothing waiting for something to happen. Ideally suited for the cloud.

Significant price difference! Extreme granted, but if you already have an IT department who is well versed with AWS, then anything beyond 8 users, the economics speaks for itself.

The big value here is that we can invite people in and out of our installation without worrying about a fluctuating per-seat license bill. So for short term projects, you don’t have to worry about your bill spiking if you need to suddenly invite a group/team of people.

If a full SaaS model is the only way forward for you, Mattermost also provides a paid-for hosted per-user version, starting at only $3.25 per-month. Not as cheap as $50, but half the price of Slack.

The result

A real Slack alternative — one month in
Photo by Ruben Mishchuk on Unsplash

We’ve been running with Mattermost for just over a month now and we’ve already deleted the old Slack clients — the cyber version of burning the boats. There has been no complaints from our users. The clients keep being updated in the background, so we are not feeling we are missing out on any updates.

Messaging is one of those services that are not as mission critical as say email, so if the system was down, or suffered some data loss, it wouldn’t be the end of the world. That said, we’ve yet to see any downtime (thanks to our AWS architecture) and any data loss we could suffer, would only be our own fault, for not properly backing it up in the first place.

It is easy to be seduced into thinking that SaaS is the only way to provide services to your business and we’ve been fooled into thinking it is the cheaper option longer term.

For most things, that is indeed true especially if your user base is small, but with the advent of AWS (other cloud providers are available) taking a step back and meeting in the middle of this new ‘self-hosted’ compromise (don’t think hosting own email servers will become fashionable again, but hey you never know, given the current privacy concerns around emails), significant savings can be had, along with increased functionality and control.