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

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

letschat

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

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

rocketchat

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-screenshot-preview

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!

46 thoughts on “Five Open-Source Slack Alternatives

  1. Reply

    Stijn Sanders

    Ctrl+F, “irc” > “0 of 0” !? strange.

    1. Reply

      Greg Slepak

      We did not mention IRC because we are not aware of a FOSS client for it that can be considered a Slack alternative from a usability perspective.

    2. Reply

      Eric Martindale

      IRC is a protocol, not an open-source product.

      1. Reply

        TeMPOraL

        Still, I’m surprised. Those solutions are little better than Slack – they’re fragmenting communications space. What we need for an Slack alternative is a decent IRC client because hell, that’s what Slack would be if you replaced their propertiary protocol with de-facto standard one.

        1. Reply

          Greg Slepak

          We’re planning a followup post that focuses on Slack alternatives that use standardized protocols. Still, none use IRC.

    3. Reply

      Nam Pham

      Is you come from topic “Don’t use Slack for FOSS” 😀

    4. Reply

      Nemo

      Indeed. The first question to answer when mentioning chat systems is how they compare to IRC. What’s the point?

      1. Reply

        exa

        How long will it take for the non tech of your team to use IRC?
        Can you see inline images, smileys, videos, page previews and have easy integrations on IRC ? (IrcCloud does some but it’s closed source and paid)

      2. Reply

        Curt Sampson

        And the first answer for all of these would be, “new users get access to all the archives of all the conversations.” No IRC client that I know of does that.

        You could of course do this with an IRC server that logged all your conversations and then made those logs available in some way, and with a client that closely integrated with this you’d have seamless access to all the history in every channel. Add global search and some code to limit channel access, and…well, then you have Slack or a Slack-like system.

        1. Reply

          Federico

          Most channels on freenode (and some other networks) have a logbot and a graphical interface for the logs, see e.g. http://irclogs.ubuntu.com/

          As for limiting access, what do you mean? Invite-only channels and custom accesslist are a very common IRC feature.

          1. Curt Sampson

            Most channels on freenode (and some other networks) have a logbot and a graphical interface for the logs….

            So I’m not clear on whether you’re saying. Is it,
            a) I should set up my internal company channels on Freenode, or
            b) if I set up my own IRC server, these logbots and graphical interfaces will magically appear, or
            c) I have to search around for extra components and do extra work to get the same thing I can get from simply installing a Slack clone.

            That was a bit sarcastic, sorry. I’m pretty sure we both agree on c).

  2. Reply

    Francis Kim

    Setting up Rocket.Chat was amazingly fast. Git clone then 1 command did the trick, thanks to Meteor I suppose. I would like to see them drop CoffeeScript and move to ES6 though.

    1. Reply

      Nemo

      The less tech savvy people in my teams never had issues connecting to IRC, it’s a matter of minutes before they understand how. Getting addicted to IRC is another matter, some people like it and some don’t.

      Smilies, previews and easy integrations are easy with IRC standard practices. Videos are unproductive so I never saw a channel which felt a need for them, can you clarify what you mean?

    2. Reply

      Federico

      I still have no idea what Slack offers compared to IRC, because it wasn’t included in the article, so I cannot tell whether you have some additional reasons to use Slack or IRC. If you could list your requirements, then I would be able to answer on whether IRC is suitable. As for “simply installing a Slack clone”, it seems hardly easier than using IRC and running a command in a shell.

      1. Reply

        Curt Sampson

        I still have no idea what Slack offers compared to IRC…

        Perhaps you’re not in the best position to be suggesting IRC as an alternative, then.

        This article is aimed at people who already know what Slack is and what they need from it.

        1. Reply

          Martin

          Slack is already set up. All these alternatives are also easyer to set up. Just poinr to web adress and shit just works. In irc you have to configure for it to work and it is not convinient. In big company people work outside company also. So it is just easyer to point address in some web address than set up irc client for every worker in company, Costs are less than paying to IT Tech to set up all clients for less tech savy.

  3. Reply

    Jack

    Hi John Light, this post is awesome, thanks.

    Could I translate it to Chinese that many chinese people can get it?

    1. Reply

      John Light Post author

      Please do! Be sure to share a link with us when you publish it. Thanks!

      1. Reply

        Jack

        Hi, I finished it. 🙂
        http://www.oschina.net/question/2012764_2141029

        1. Reply

          Greg Slepak

          Thank you! We’ve updated the post with a link to your translation! Great job! 🙂

  4. Reply

    Vegard Løkken

    Slack offers IRC-support through a gateway. It would be nice to know if any of the alternatives do the same.

    1. Reply

      oz

      Mattermost: “Matterbridge by 42wim is an open source IRC bridge for Mattermost and it’s been adopted by the Mattermost core team. Today, you can now join #matterbridge on irc.freenode.net to join a room connected to an IRC channel in the core team’s Mattermost site (of course, you can also talk to the core team directly on Mattermost as well on the nightly builds server).

      Outgoing webhooks to support Matterbridge will be available in Mattermost v1.2 which ships November 16th (Mattermost now ships on the 16th each month).”

  5. Reply

    Lukemt

    How about SpaceTalk? Did you try that too?

    1. Reply

      Greg Slepak

      No we didn’t know about it, thanks for letting us know! We might include it in a followup.

  6. Reply

    HerveM

    I think you miss one thing here, how tools can be integrated to existing env. Like authentication backend ? MySQL / LDAP / API ?
    Mattermost ‘CE’ is heavy attached to GitlabCE and will use same “subscriptions and licensing” think from Gitlab, advanced LDAP is only usable with “a commercial version” and so.. Non-Profit can’t work with this. My 2cent.

  7. Reply

    Ken Kantzer

    Not a single one of these alternatives (or Slack, for that matter) is end-to-end (e2e) encrypted. That’s huge.

    Check out Balboa: it’s semi-open source (you can read the source maps, crypto is on github), but it IS fully end-to-end encrypted: DMs, group-chat, file-sharing.

    The security/crypto-minded can check out our security page: https://www.balboa.io/security.html

    Just something to consider 🙂

    1. Reply

      Greg Slepak

      Ken, Balboa is not open source, so it doesn’t belong on this list. Its security also appears to suffer from the same problems described here.

      1. Reply

        Ken Kantzer

        Yeah, never suggested you should add it to this list, just thought I’d mention it since all the ones you listed had the same con (i.e. no e2e DMs). 🙂

        To the points you bring up in your github post:

        1) Unsigned code is indeed a legit concern for web-apps. To address this, we have a FireFox add-on that detects unsigned changes to the Javascript, similar to how Mylar works. We’ve open-sourced it: https://github.com/pkcsecurity/balboa-firefox-plugin.

        2) Verifying public keys is also important, as you point out! Balboa allows you to check public-key fingerprints in-app. Also, public-keys are TOFU’ed so that this only has to be done once.

        Looks like you guys have a great thing going at okturtles. keep up the good work!!! 🙂

    2. Reply

      Joe Johnson

      I don’t understand “security” companies that promote end-to-end chat and then are located in the United States. Makes no sense and no rational person would used them based on that.

      THREEMA is a similar company to Balboa but I trust them because they are based in Swiss. Huge difference.

  8. Reply

    Oddvar

    Matrix (matrix.org) is an open standard for decentralised persistent communication over IP.

    Matrix consists of simple HTTP APIs and we also provide open source reference implementations for securely distributing and persisting JSON over an open federation of servers.

    Matrix can be used for decentralised group chat, WebRTC signaling, Internet of Things data transfer, and anywhere you need a common data fabric to link together fragmented silos of communication – our aim is to link together as many ecosystems as possible so that users of one system can talk to users on other systems!

    And we already have a slack-bridge!

    1. Reply

      Greg Slepak

      Yeah Matrix is fantastic! We have a draft of a post in the works to cover it and in general discuss the importance of open protocols as far as decentralization is concerned. Our apologies that it’s been taking a while (too much stuff going on!).

      Thank you for your comment Oddvar!

  9. Pingback: 8 non-code ways to contribute to open source | D4mations.com

  10. Reply

    Hans Bakker

    You might have a look at: https://ring.cx
    p2p, encrypted and can be enbedded…..

    1. Reply

      Greg Slepak

      Thanks, it’s our list. These secure messangers are popping up faster than we can evaluate them.

  11. Pingback: Chat is the new TODO – Thought Flow

  12. Reply

    Armel Laminsi

    Thx for this great article.

    Just a question : with any or some of the option above, can i publish a custom app on stores with the name of my organization (or my client’s one) ?

    I want user to donwload ACME app on stores instead of Zulip/Rocketchat/etc. ones. Is this possible ?

    Why kind of competence should i look for a customization of any of these open source packages ?

  13. Reply

    Connor

    ClearChat is the most secure Slack alternative on the market right now: https://clearchat.com/compare

    Created by Jonathan Warren the founder of BitMessage – https://bitmessage.org

  14. Reply

    a

    Mattermost now provides native iOS and Android native apps:
    https://play.google.com/store/apps/details?id=com.mattermost.mattermost
    https://itunes.apple.com/us/app/id984966508

  15. Reply

    David G. Butterworth

    It does not look like clearchat is opensource. The security elements appear to be, but the messaging system does not.

  16. Reply

    Dan

    Hi Greg, great post and comments. Was the followup post you mentioned ever completed?

    1. Reply

      Greg Slepak

      Hey Dan, thanks for the kind words! The followup post kept getting pushed back by higher priority items so I finally decided that perhaps it would just be best for Matthew (of Matrix) that write a guest post. He liked that idea, but I suspect the same thing has happened on his end, things just getting pushed back by higher priority items.

      OTOH, they’ve been doing fantastic work!

      https://matrix.org/blog/2016/11/21/matrixs-olm-end-to-end-encryption-security-assessment-released-and-implemented-cross-platform-on-riot-at-last/
      https://riot.im

  17. Reply

    Dan

    Your right, RIOT is unbelievable. Do you know anyone there who I can get on the phone with?

    1. Reply

      Oddvar

      Get in touch at https://medium.com/@RiotChat or https://twitter.com/RiotChat !

  18. Reply

    Noah

    Correction, Zulip does NOT have real, native desktop apps. Fro their page: “The Zulip desktop app is a native app wrapping the Zulip web application”.

  19. Pingback: 不用写代码,你也能为开源作出贡献 – 王际桥的博客

  20. Pingback: Turtle Status Letter #2 — Group Income + DPKI + More! » okTurtles Blog

Leave a Reply

Your email address will not be published. Required fields are marked *