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 an open source, self-hosted Slack-alternative that shows you how Slack might look, feel and work with features that Slack is missing.

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.

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.

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.

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.

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

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.

Theme Matching

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

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.

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.

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

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:

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

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.

Subscribe to our monthly mailing list to keep up to date: