Translations: 中文

Update: We made a huge mistake in forgetting to review Riot — the only Slack alternative based on an open protocol, and the only Slack alternative to support end-to-end encrypted group chats.

Slack is a popular team communications application for organizations that offers group chat and direct messaging for mobile, web, and desktop platforms. While Slack offers many benefits to customers, there are also downsides to using the platform, including high subscription fees and the risk of a massive leak of private data if Slack’s servers are ever breached (again).

Today there are a growing number of open-source Slack alternatives available for people who want to avoid the trap of walled gardens and have more control over the security of their data. As part of our own search for a self-hosted Slack alternative, we reviewed the options out there.

Here are five of our favorites:

Friends

Friends is unique among the Slack alternatives due to its use of peer-to-peer technology. Message authentication currently relies on GitHub but could be modified to use a decentralized alternative such as Blockchain Auth.

Technology

Pure JavaScript atop NodeJS

GitHub authentication

Bonjour (multicast DNS) for local chat

WebRTC connects peers, data is propagated using Hyperlog

Pros

Allows communication even if central server goes down

Works offline using Bonjour or LE Bluetooth

Cons

No e2e encrypted DMs

Centralized authentication via GitHub

Limited features; only supports group chat and direct text messaging + emojis

Empty testing suite, mitigated somewhat by having few features to test

Let’s Chat

Let’s Chat, built by the company Security Compass as a 10% time side-project, is one of the oldest and most popular open-source Slack alternatives with over 7,000 stars and 960 forks on GitHub. Features include group chat, direct messaging, and private channels, along with many standard Slack features such as emojis, image embedding, and code pasting. Let’s Chat also has a Sandstorm app, making it easier for non-technical users to host their own Let’s Chat server.

Technology

Backend is pure JavaScript atop NodeJS

MongoDB for data storage

Frontend appears to use Backbone

Pros

Hubot support

Large community on GitHub

Many of the same features as Slack

Ongoing development from Security Compass

Sandstorm support makes self-hosting easier for non-technical users

Cons

No e2e encrypted DMs

No native mobile apps

No threaded conversations

No testing suite

Mattermost

Mattermost offers group chat, direct messaging, and private chat rooms. Features include full markdown support, file uploads, archiving and search, and customizable themes, even allowing users to import their chat history and favorite themes from Slack. Mattermost offers several features that Slack doesn’t have, including search by hashtag, non-English channel names for multi-lingual teams, auto-highlighting of everything you write, and comment threads for easy-to-follow conversations.

Technology

Backend written in high-performance Go language

Frontend uses React

Support for both MySQL and PostgreSQL

Pros

Several features Slack does not have

Native Gitlab integration

Import user accounts, channel archives, and themes from Slack

Use the same webhooks as Slack to post messages from third-party applications

Has Docker containers ready to go

Has a testing suite with actual tests

Cons

No e2e encrypted DMs

No native mobile apps

No Sandstorm app

Rocket.Chat

Rocket.Chat is one of the most feature-rich open-source Slack alternatives, featuring group chat, direct messaging, private rooms, desktop notifications, media embedding, link previews, file uploading, voice/video chat, screensharing, and more. There are native applications for Windows, Mac, and Linux, as well as mobile applications for iOS and Android. Rocket.Chat also has a Sandstorm app so you can easily host your own chat server. Developers can use hubot to integrate with popular services like GitHub, Gitlab, Confluence, JIRA, and more. Upcoming features include OTR messaging, XMPP multi-user chat, Kerberos authentication, file sharing via p2p and scalable multi-cast, and much more.

Technology

Uses Meteor platform, including Blaze for frontend

Code is a mix of CoffeeScript and JavaScript

MongoDB (because of Meteor)

Pros

Tons of features

Sandstorm and Docker support

Native desktop and mobile apps created using Meteor

Supports voice/video chat and screensharing

Uses APIs, hubot, or webhooks to receive notifications from third-party services

Localizations for various languages

Cons

No e2e encrypted DMs

No threaded conversations

Virtually empty testing suite

Zulip

Zulip was originally an independent application before Dropbox acquired the company that built Zulip before the product even officially launched. The application now lives on as an open source project. Zulip features group and direct messaging, private groups, threaded conversations, in-line media previews, email and desktop notifications, and tons of integrations. In addition to working in the browser, Zulip also has native desktop and mobile applications for iOS, Android, Linux, Mac, and Windows so you can chat on almost any platform.

Technology

Server written in Python (Twisted + Django)

Frontend seems to be JavaScript + jQuery

PostgreSQL, Memcached, Redis, RabbitMQ

Pros

Real native desktop and mobile applications

Tons of integrations w/ unintrusive notifications

Threaded conversations

All the features Slack has and more

Extensive test suite

Cons

No e2e encrypted DMs

No Sandstorm app

Have you tried any of these apps or one we didn’t mention? Notice a mistake? Let us know by tweeting us or leaving a comment below.



Thanks to Greg Slepak for contributions to this blog post.

Donating = Loving!

You can empower our work by donating!