Let's get this out of the way - if you think you're happy with just using Jabber then you've either not tried anything else or are not paying attention to your users. Although Jabber (either with macOS Server or other) + Messages.app could be considered “better than nothing”, it is actually worse:
- Cannot use server accounts in mobile app
- Cannot share files with a chat room
- No easy way to browse chat rooms
- No support for private rooms
- No way to link to chat messages
- No reliable way to search the messages
- Cross-platform Jabber clients suck
Most of those can be blamed on poor clients, but some I believe are shortcomings of the XMPP protocol itself. By far the biggest of those for us were the first two. I would love to still love Messages.app, but it's simply not good enough. So it was time to try…
We did a trial run of Slack and everyone liked it. When we decided to roll it out for the whole company, I realised I would have to bind it to our Active Directory server. This meant A) syncing our AD to one of the supported identity providers and B) paying Slack $12.50 per user, per month (plus whatever the identity provider charged) for the privilege.
With roughly 60 active users and growing rapidly, that would have totaled at around $9000/year; several times more than what we currently pay for our entire email/calendar platform (Kerio Connect). In fact that's almost our entire Office 2016 licenses annually. For one service. That's simply not a good deal, no matter how you slice it.
Our current Mattermost license costs us $1200/year and that includes AD single-sign on, push notifications for mobile clients and tech support, which I think is more than reasonable.
There's a pretty good comparison table between Slack Plus and Mattermost here.
I'm a big proponent of on-premises installations. And not only because it's fun. Moving services to the cloud because “then it's someone else's problem” is myopic - when it breaks, it's still your problem, except you're helpless. Cost may have been the reason to explain this change to management, but from a sysadmin perspective, running this service and being able to freely integrate it with any local system was the main motivation.
I think the current generation of admins moving everything offsite is doing a huge disservice to the admins of tomorrow, but that's a rant for another blog post…
Configuration is nice and easy through the web-based System Console or by editing the config.json file, although I would also like to see an option to push settings to the clients. There's also a CLI, but I haven't really looked into it. Being an Electron app, you will not be able to manage Mattermost's preferences with your usual tools (defaults, profiles) and Mattermost should really update their documentation to cover enterprise administration.
Initial testing (with version 3.4) went smoothly, but when we moved into production and started on-boarding everyone the Mattermost server would suddenly start crashing. I still don't know exactly what caused it, but I'm happy to report that's the only time it's done that. I have not had the Mattermost server crash since.
Just as with Slack, there are three ways to access the platform - desktop app (Mac/Win/Linux), mobile app (iOS, Android) and through a browser.
The desktop app is not that great and you really do feel like you're just using a web page with a dedicated browser. I've run into several UI bugs, the shortcuts don't make much sense (Alt+Shift+Down arrow to switch to the next unread message, Cmd-S to search, etc). The prefs are about as basic as you can get:
That's mainly because most of the settings are actually under Account Settings:
When you get a notification, you can just click on it on the iOS app and that'll take you to the messages, whereas there's no easy way to jump to a new message on the desktop. And I've yet to figure out how to keep my phone from firing notifications if I'm chatting on my laptop. The whole UI feels like it was designed as a web page, which oddly, also lets you do stupid stuff like this:
Another shortcoming of the apps - permalinks to posts always open in the web browser because the links use a https:// scheme and the apps don't define their own. This is super annoying because users aren't typically logged into the service through the browser. There's also no way to “jump” to a URL inside the app.
That being said, our whole company is using it and I haven't heard many complaints from users. Perhaps the biggest negative surprise we've found thus far was that, unlike with Messages.app, where you could just select multiple users to chat with them at once, in Mattermost, the only way to chat with multiple people is through a named chat room.
On the upside, the desktop client has been really stable - I don't think I've had the client crash once over the 4 months that I've used it.
I started with version 3.4 and have since updated the server twice. Both updates went without a hitch, again thanks mainly to the great documentation. The desktop apps have only been updated once and they have so far been forward-compatible with the server (a 3.5 client can connect to a 3.6.2 server). Compared to the frequency of Slack updates, the lack of updates for the desktop apps is a bit worrying, but the company assures us updates are on their way.
I've only had to contact customer support once so far and the experience was a bit odd. First they didn't seem to know who I was (even though I ordered the license from the same email address) and then they asked me for my customer number (which was never mentioned anywhere). All communication is done via email and there is no customer support portal to log onto (which can also be a good thing). The followup email acknowledged my existence, but seemed to have completely forgotten the initial question. Eventually I did get an answer, but the process felt like they were just setting up their customer support operation and hadn't installed their CRM/ticketing system yet.
Mattermost is far from perfect, but it works well enough and solves a real problem. All in all I'm happy with the decision and can only see things getting better. Although Slack's client apps feel much more polished, Mattermost has proven to be stable and taking the whole system from zero to production took less time than figuring out how to securely sync our AD domain to one the cloud providers supported by Slack. The open source community around the project seems vibrant I'm looking forward to further developments and hopefully contributing to the project myself.
I also like their business model and really hope that it works out. If you're looking for a modern on-premise chat solution, definitely check it out. Their name may be silly, but the product is not. ;-)
Pros (in order of importance):
- Does what it says on the tin. On-prem modern chat platform with most of the features you'd expect.
- Good admin documentation
- Easy to integrate with other local systems
- Reasonable pricing
- Apps need polish
- No way to chat with multiple users without creating a chat room