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
- Allows communication even if central server goes down
- Works offline using Bonjour or LE Bluetooth
- 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
- 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
- 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
- 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
- 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)
- 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
- 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
- Real native desktop and mobile applications
- Tons of integrations w/ unintrusive notifications
- Threaded conversations
- All the features Slack has and more
- Extensive test suite
- No e2e encrypted DMs
- No Sandstorm app
Thanks to Greg Slepak for contributions to this blog post.
Donating = Loving!
You can empower our work by donating!