Team communication is very important. Without good communication, a project will always fail to meet its full potential. Every day we are seeing more instances of remote work and teams spread across large geographical areas. Traditional email just doesn’t meet the needs posed by most modern software development teams.
That is why, in recent years, new chat-based platforms have become a popular solution for team-based communication.
Mattermost is an open source solution that seeks to provide an alternative to other Software as a Service (SaaS) platforms.
I stumbled upon this software when looking for a Slack alternative . My intention was to set up a Slack-like communication platform for a no-budget project I have been working on with a few colleagues.
After some Googling around, I decided I would try Mattermost out to see if it would be a good fit for our project.
Every day we are seeing more instances of remote work and teams spread across large geographical areas.
As software developers, knowing our options for good communication is important.
There are times when a lesser-known product may actually fit our needs better than the more well known tools out there.About Mattermost
Mattermost is both the name of the company and the software solution it offers. They provide a Slack-like chat software that is designed for team communication. It offers a free and open source version, as well as two enterprise editions with advanced features.
This review will focus on the open source version that I tested, though I will also go over the difference in features between the open source and enterprise editions.
There are two enterprise versions: E10 and E20. At the writing of this article, E10 is currently priced at $20 per user per year. Pricing for the E20 edition is not provided on the site. The interface was written using React and the backend was written in Go.
Here we'll break down both versions and their features, so that programmer and developer teams of varying size and different projects can find the solution that best fits their needs.Important Note
Whileopen source is not always the correct solution, there are times when it has advantages over its proprietary cousins. Choosing the right product is important to the success of any project, and one should always weigh the pros and cons of choosing an open source alternative before implementing.
The important thing to remember is that a free product that doesn’t solve your problem isn’t a solution.Installation
The server I was setting this up on is actually a small Ubuntu-based (Mint, to be exact) desktop I use as a test server/home theater PC. It runs a 64-bit Intel dual core processor with about four gigabytes of RAM.
Before I began the installation process, I assumed I would be dealing with a php based program that would be extracted to my Apache web directory and installed through a web browser.
I was surprised to find that it is, in fact, an executable that runs on a specified port. I liked this design because it allowed Apache to serve my current projects without cluttering up my PHP configuration.
The Mattermost company has provided a very helpful guide to installation that makes the process relatively simple for those with moderate command line experience. They also have a docker image that can be deployed.
The instructions start by having the user install postgres database software, then create a database within it for the Mattermost information. After doing this and configuring postgresql to listen on your Internet Protocol (IP) address, it's time to download and configure the Mattermost software itself.
This involves editing the config file to give Mattermost access to the database you set up initially. You can also change the port that it will be working from, which is useful if your network administrator has blocked certain ports for security reasons.
Once you have Mattermost up and running, there are several different ways to use it. You can access it through the browser by entering your server address and the port number into the URL bar, which will bring you to the web interface. I also downloaded and tested the linux desktop and Android phone clients.
The Linux desktop client is basically the web interface opened in an application window on your desktop. It didn’t appear to offer any additional features and lacked usefulness. However, the Android app scaled the site to the appropriate mobile design and allowed me to receive push notifications about messages.
Mac and windows desktop clients are also available, though I did not test them. I did note that their design is clean and simple to use. Multiple teams can be created and each team has multiple rooms to chat in.
Rooms can be created or renamed at will by those with the appropriate permission. Finding the appropriate menus and options was very simple and straightforward.
Any user with any experience with chat programs will find that Mattermost does not deviate much from the standard chat interface.
There are 21 color themes that can be applied to the interface by each user, and it even allows you to set your syntax highlighting rules for code snippets. It also allows you to upload custom emojis (since that's what your team has been waiting for in a chat program for all these years).Features
Mattermost allows for group chats and one-on-one messaging. You can also send files through the chat bar. The size limit can be set by the system administrator. Once an individual sends a file into a chat room, it can be downloaded by any of the members of that team at any time in the future.
It also has a feature called threaded chatting that gives users the ability to comment directly on a chat statement made by another user. If you reply to a comment made earlier, it will insert an alert at the bottom with a link that opens up a side window that shows all replies to that comment.
This feature is helpful when you want to respond to something that was said earlier in the conversation without explaining which statement you are referring to.
It provides the ability to flag chat statements or comments as inappropriate for the administrator to review.
Though I did not take the time to set it up, Mattermost can be configured to send emails as well, which can be used for email notifications and password recovery.
It supports multiple languages and has an experimental video chat feature that I did not have an opportunity to test.Greater Security and Control
One of my favorite features about Mattermost is that it is self-hosted. This means that if the internet goes down but your local network is still running, it can still be used by those in the office.
This feature also places greater control and responsibility for security with the local administrator. Rather than being dependent upon a third party's network security, you can rely on your own instead.
Mattermost can also be configured to send out push notifications to your mobile users if you have access to a push service. If you do not, you can use their service, but it does not provide any encryption, so it is not recommended for anything beyond demonstration.Speaking of encryption, the open source edition of Mattermost does allow encryption, provided you