What Slack might learn from its Open Source alternative

What if you could use one Slack account across multiple teams? What if Slack had threaded messaging? What if Slack supported markdown, or languages other than English? Mattermost is a self-hosted, open source alternative to Slack that shows you how Slack might look, feel and work with features that Slack is missing.

Building beyond Slack: Mattermost supports full markdown in messages, offering powerful, easy-to-use formatting for developers.

It’s written in Golang and React and runs as a production-ready Linux binary with MySQL or PostgreSQL under an MIT license.

Here’s what you’ll find:

One account for multiple teams

Because Mattermost is self-hosted, we offer users the ability to use one account across multiple teams, rather than creating one account per team.

That means users can easily communicate across teams without having to constantly switch context.

Direct message sidebar lets you easily message users in your team and outside your team

It also means IT has a central place to manage all users.

At first, we had accounts the other way–one team per user account, which had many technical benefits–but we changed our model based on demand from users.

Threaded messaging

To keep track of complex discussions, users needed an easy way to comment on an earlier message.

Last year we added a “Reply” button that lets you add a comment on any previous message, and see all comments on a “threaded message” in the right-hand sidebar.


THREADED MESSAGES: The above screen clips shows the “Bugs” channel of a Mattermost team. The message from corey at the top of the channel saying “Let’s hold off for now” references a threaded message. The thread has 13 comments, which have been added over a number of days, and clicking the Reply icon brings up the thread in the right sidebar, where conversation can continue at any time.

This lets users move in and out of discussions within a channel, without losing context.

Once you try it, it’s hard to go back to any other system.

Searchable Hashtags

To help teams stay organized, Mattermost offers click-searching on #hashtags.

Similar to Twitter and Facebook, you can add #hashtags to quickly categorize messages. When you click on a hashtag Mattermost brings up a list of messages with the same tag (and you can filter results by sender, channel and add keywords)

It’s particularly useful when you want to sub-categorize a discussion. For example: In the “Bugs” channel, you might use #defect (an error in the code) and #improvement (an error in the design) to categorize different reports, so you can filter on them in future.

Example of click-searching on hashtag #improvement within a channel discussing bugs to see which issues are code defects versus proposed improvements

Markdown Formatting

Fast and easy formatting in Mattermost help users consume information more quickly.

When users can format a headline with just a couple of key strokes, channel content quickly self-organizes.

Markdown can be used to add headings, formatting, tables, and other features common for developers to use.

Example of quick headline formatting applied in markdown to bring emphasis to discussion topics in a channel.

Advanced markdown–with tables, inline images, even code formatting with syntax highlighting–works just as easily.

Mattermost supports full markdown in messages, offering powerful, easy-to-use formatting for developers. Messages from both users and integrations can render headings, images, emoji and full tables using markdown (in addition to supporting Slack’s proprietary formatting for webhooks).

You can even combine markdown headings with Emoji to change their sizing:


Users love Mattermost markdown for its power, simplicity and compatibility.

It’s a fantastic feature for any platform–and it’s an open standard that anyone can add.

Multi-language support

There are 7 billion people in the world, only 335 million are native English speakers. Software can’t be global until it’s at least international.

In addition to English Mattermost comes pre-packaged with Spanish, French, Japanese and Portuguese and many more languages are under development.

Private Cloud Deployment

Mattermost is built for private cloud deployment, from supporting mobile app push notifications from behind your firewall, to running as a single Linux binary with MySQL or Postgres on a host of popular platforms, dozens of open source self-hosted integrations, to fostering a vibrant community of containers and orchestration integrations from Docker and Kubernetes to Cloud Foundry and Puppet.

Over two years ago, Slack announced a self-hosted offering but reversed course in 2015.

Self-hosting provides some enormous advantages, such as privacy, added security, and resilience to outages and DDOS attempts that can bring down public cloud services.

Most importantly, it lets you control your own data.

ScreenClip [27]

Theme Matching

Mattermost can offer users a consistent aesthetic across your organization and your tools through deep personalization support.


Mattermost lets users refine fonts, text wrap and subtle colors across the user experience.

In Slack, you’re limited to 8 color settings in the sidebar, and users can’t influence the rest of the UI. With Mattermost you decide on 21 different color settings, plus 11 fonts, whether you want text rendered fixed width or full width and many other options–you can even select the color of scheme of syntax highlighting in code blocks and attached files.


Mattermost ships with “Windows 10 Dark Theme” as a preset option for Windows users who want to instantly match colors.



A GitLab theme option that modified background text color to light grey, a design that isn’t supported with Slack’s options.

Themes can easily be ported from one user to another by copying and pasting in “theme codes” from one Mattermost account to another.

You can join the discussion on sharing themes in the Mattermost forum to import themes contributed by the community, or contribute your own.

Friendly Channel Names

When IRC was designed in the 1980s, channels could only be named with numbers and English characters–no spaces, symbols or other languages were allowed. Slack followed this pattern thirty years later, but we decided it was time for a change.

To make Mattermost feel welcoming to a diverse user base we let users name their channels with as few restrictions as possible.

Mattermost offers non-English channel names, comment threads on any message and #hashtags to quickly label threads

Mattermost lets you use whatever letters, symbols, spaces and non-English characters you choose

Spaces, symbols, and characters from non-English languages work easily–and Mattermost automatically generates a sensible and editable URL name.

ScreenClip [24]

ScreenClip [25]

The user experience in Mattermost centers around channels, so we wanted them to be as friendly as we can be.

Syntax Highlighting

After its release, one of the earliest features added to Mattermost was syntax highlighting of code blocks.

Open your code block with three backticks and then specify your language (example: “`python), then close with three more backticks and your code renders:

Example of syntax highlighting for code shared in Mattermost message

Example of syntax highlighting for code shared in Mattermost message

You can even select the syntax highlighting theme colors you’d like to use to match the rest of your interface.

Select your syntax highlighting color scheme from the Account Settings menu

Select your syntax highlighting color scheme from the Account Settings menu

Open Source!

Of course, we had to include open source as an idea to improve. It’s an approach that’s provides enormous returns.

Huge thanks to the entire Mattermost community for making something people love. Your ideas and contributions echo on in the product, and we’d love for those ideas to spread.

Thoughts, feedback, questions? Please join us on the Mattermost forum to discuss.

Thanks to all for reading this far. To learn more about Mattermost and what we do, please visit us at https://mattermost.org.

(Editor’s noteThis post was written by Ian Tien, CEO and co-founder of Mattermost, Inc. If you have any feedback or questions about What Slack might learn from its Open Source alternative, please let us know.)


Ian Tien is CEO and co-founder of Mattermost, Inc., an open source platform for secure collaboration across the entire software development lifecycle. Hundreds of thousands of developers around the globe trust Mattermost to increase their productivity by bringing together team communication, task and project management, and workflow orchestration into a unified platform for agile software development.