This article is an expanded version of my NTC proposal. If you’ve already read that, or don’t want a comparison of the different chat apps, skip to “Technology is not work or progress” below.
What are chat apps, and why are they important?
Around 2013, a chat tool called Slack began its quiet march toward global dominance. The app allowed people to communicate via channels in a chat-room like interface. It was a simple idea, and while similar tools like IRC already existed, nothing was as slick as Slack. Users loved it. A few years later, Slack had taken over hundreds of the world’s largest firms and battled giants like Google and Microsoft as each introduced an inferior competitor several years too late.
Slack was a seismic shift in communication – a way for teams to break away from the mess of email into something better, easier, and faster. Slack made it easy to separate conversations into Channels to make it easy to catch up on topics you care about and ignore ones you don’t (until you are specifically called in). For those who grew up with Slack, or similar apps like Discord, these benefits might seem like obvious or unimpressive today. But at the time, making chatting with your co-workers easy was a revelation. Competitors at the time (like Skype for business) were hated by most users as they were ugly, unreliable, and user-hostile. Email was (and still is) clunky with large groups and long, complete threads of conversation. Slack removed a lot of this communication pain.
But shortly after Slack achieved dominance and people got used to the new model of communication, the flaws became more visible. Slack was – and still is – proprietary and cloud-based, meaning you can’t run your own copy of Slack – you need to pay Slack to use it, or use their Free plan (which can change at any time). Slack is also only available as a cloud product, meaning you need to trust Slack to handle your data appropriately. Slack also had a number of usability issues, and ignited debate on how it affected work/life balance of employees. The flaws couldn’t top it’s rise, however – the core product was still too compelling to ignore, especially as COVID-19 drove more business fully remote.
Nonprofits, communities, and others that use Slack’s free plan because they couldn’t afford the business-priced per-user costs are forced to deal with onerous limitations. Slack’s smashing success meant it didn’t need to worry about how to charge governments or businesses that require on-premise software or data storage – it had money pouring in from conventional businesses. Microsoft and Google spun up their own Slack alternatives for customers deeply committed to their ecosystem to use in an attempt to stop their customers from wandering out of their walled gardens.
Even still, there are many companies, communities, and organizations that aren’t having their needs met by Slack, Google, or Microsoft. Mattermost, Rocket Chat, Zulip, and others all targeted a different sector of the market to nibble away at the edges of Slack’s dominance, and all are at least partially open-source. They offer competing visions of the teams of the future, each focusing on a different aspect of communication or bit of organizational friction. In this article, we’ll dive in deep to analyze why Slack has served organizations like DSA chapters so well, and what the alternatives can offer us.
What are we looking for, anyway?
Before we dive too deep into tech details, let’s review what we want in the first place. Most DSA chapters have a similar set of desires and constraints.
What do we want in a chat tool?
Any DSA chapter probably wants a chat tool that:
- Is easy for leaders to set up
- Is simple for users to register for and use
- Is free
- Is reliable
- Has no maintenance requirements
Everyone wants those things, of course. And those are all technical items. What problem are we actually trying to solve with something like Slack? Why did DSA and other chapters adopt it in the first place? We aren’t an office, after all, why use a tool for offices?
I think there’s a few reasons we use a chat tool (and would love to know more – if you championed a chat tool project in any left or open-source project, please reach out!)
- Members do not check email often, or at all in some cases. How do we reach them?
- Email and forums are not commonly used for rapid back and forth discussion. How can he have in-depth discussion online?
- Email is not good for flexible discussion (where parties can opt-in or out at any time). How do we ensure everyone feels comfortable discussing a topic? Can they unplug when they need to?
- Forums require some technical knowledge to self-host, or cost money. They don’t support some modern features users now expect, like a mobile app. How do we ensure we’re providing a chat tool experience our users will love enough to use voluntarily?
There’s a very easy answer to these questions, if an imperfect one – Slack. It’s free, it has an app, it’s relatively easy to use, it’s designed for live conversation but you can catch up on past conversations easily, users can join and mute conversations when needed, and it couldn’t be simpler to set up and use. Why use anything else? Why try to move away from Slack?
Sovereignty, privacy, security – the three demons of free Slack
Slack’s free plan provides us with a very powerful communication tool, but comes with several drawbacks, the most critical being the 10,000 message limit. This means nobody can see the older messages in a any channel, eviscerating historical and institutional knowledge. During COVID-19 when a majority of discussion was happening on Slack, we therefore lost a much larger proportion of our messages. All of those conversations are gone forever. In any community without a stagnant membership (nearly all of them) this is a disaster.
In addition, Slack can change the free plan at any time, and the free plan lacks many security and management features we would benefit greatly from. For example, Single sign-on, or SSO, can make giving a new member access to multiple tech tools like chat, social media, forums, and more with one account and one password. Slack charges so much for this we can never use it.
For this and other reasons, we need to look into alternatives. If you’re a DSA member interested in the more organizational aspects, check out my proposal.
Without further ado, let us finally turn to look at the alternatives to Slack outside of Teams and Google Chat one by one. I’ve selected the four main competitors to Slack to take a more in-depth look at, and I’ve installed and set up each one to try them out.
Zulip has been tested by a few different folks in DSA and as far as I’m aware has been relatively well received. Zulip is fully open-source, and there are no features we need locked behind the Zulip Enterprise license unlike most other chat products.
- Zulip is pretty straightforward to install and maintain. It does require some CLI knowledge, but not a lot. We can develop a runbook with minimal effort.
- It has apps for all platforms with no meaningful limitations for self-hosted installations.
- The desktop and mobile apps can sign into multiple Zulip instances at the same time (just like Slack), which is important for us if we achieve wide utilization.
- Zulip makes it easy to create an account or use an IdP backend like Keycloak, which we’re building myDSA SSO with. SSO makes managing tech tools much easier for both admins and users, and the other tools on this list lock SSO behind paid enterprise plans. This is a big deal!
- Zulip’s conception of threading – called Topics, which reside in Streams – are designed to require less “always on” attention then Slack threads. Topics retain the agility of chat rooms with many people in them while also allowing conversations to happen over days or weeks more easily than Slack. Think of Slack subchannels being spun up on the fly. This is in the positive section because it works well, and it’s in the negative section because it does introduce an additional learning curve.
- Zulip has robust documentation regarding moderation and allows users to hide their email.
- Zulip has support for bots and generic webhooks.
- Zulip gets a steady stream of grant money from the NSF and has a growing base of paid customers, making them financially stable but not likely to make drastic changes as some VC backed startups might. It’s used by several large organizations and universities.
- Zulip has emoji reacts and you can add custom emoji via the admin panel.
Zulip is missing several features two other entries on this list have.
- Zulip does not have any type of federation
- Given DSA’s structure, federation would be extremely powerful for us. Multi-account support is an acceptable alternative.
- Zulip administrators can easily read all messages sent to the server, including DMs, as is the case with all other options here except Matrix.
- Zulip is not as popular as Slack — there are a limited number of third party integrations at this time. There’s no one-click way to start a Zoom call with users in the room, for example.
- Installation is easier than alternatives but still more complex than setting up a free Slack workspace. It also still requires basic command line knowledge to set up things like email or notifications.
- There is a learning curve to using Streams/Topics compared to Slack’s simpler Channels and Threads. Especially for less technical folks, this can be a huge barrier to adoption.
Rocket Chat is a more direct Slack competitor by a Brazilian startup. They took $27m in VC money (so far), and have used it to build a compelling open-source product. Unfortunately, they also built a compelling paid product called Rocket Chat Enterprise Edition.
Whereas Zulip is a simple alternative to Slack, Rocket Chat brings everything and the kitchen sink; there are dozens of additional features with varying degrees of quality.
- Most of Slack’s features and more in an open-source product — this list will be short, but this is the main draw of Rocket Chat. Threads, emoji, video calling, workflows, search, apps, all there.
- Advanced and easy to set up moderation controls
- Federation and end-to-end encrypted messaging included (but both are still in beta)
- Omnichannel features that could replace a helpdesk product and cut down on email volume while providing better service
- Code is available for mobile and desktop apps
- Basic single sign on is available for free
- Rocket Chat can be installed with one click from some VPS or managed hosting providers
There are a few significant drawbacks to Rocket Chat.
- While the code is available, there are no build instructions for the mobile or desktop apps. Rocket Chat does not want to make it easy for non-customers to build their own apps. This wouldn’t be huge a problem, except…
- There is a 10,000 push notification limit per server (sound familiar?). It also requires connecting Rocket Chat to their Cloud service, which may leak metadata to the company.
- This alone may be a deal-breaker for many, and to get around it we would need to build our own apps — not an easy task even with complete build instructions
- Syncing any attributes other than basic name and email with an IdP provider requires Pro or Enterprise
- Rocket Chat includes a ton of features but not all of them are well polished or behave as expected. Bugs and visual issues are much more common than Slack.
- Rocket Chat could cause significant problems by changing the terms of the free edition overnight, or closing its source entirely. While this would be a problem for any open source product with a cloud component, I believe this risk is much higher for Rocket Chat due to their current policy of requiring a cloud connection for local servers and their VC funding.
- Rocket Chat’s manual installation is lengthy
There’s one more main Slack competitor in the race, and this one was built as a professional open-source, self-hosted solution for the security-conscious enterprise.
Mattermost is used by a small number of DSA chapters already, and some major campaigns like Shahid Buttar’s have used it. It’s the most directly analogous alternative to Slack, in both how it’s designed to function and how mature it is. However, it has the same core problem as Slack, Rocket Chat, and other “hybrid” open-source projects — many important features are locked behind the paid tier that’s charged per-user and therefore too expensive, and the free version can be changed at any time. It also only recently gained threading support, something DSA chapters seem to make use of frequently.
Some chapters that aren’t fans of Zulip’s UX differences, Rocket Chat’s instability or limits, and are willing to deal with the drawbacks of Mattermost Community Edition to gain sovereignty over the data may find using it worthwhile.
- Mattermost is mature, well supported software used by several large enterprises.
- It’s open core model is maintained well by Mattermost and they do not seem to have a history of making breaking changes for free users.
- Mattermost includes a few nice project management tools, like playbooks and kanban boards, built-in
- Branding controls are provided in the free version
- No limit on history and includes search
- No limits on notifications
- Mature mobile and desktop apps
- The open core is well documented and maintained.
- While writing this guide, Mattermost appears to have increased their pricing to at least $10/mo/user as part of v6.0. There used to be a $3.25/mo/user plan for self-hosted installs that provided a lot of what we needed. Even if we could get lower pricing, DSA is struggling to break even financially and this added cost is almost certainly not where any additional money would go.
- It’s not impossible Mattermost would provide a discount to us but it would still be much more than Zulip costs
- Free version does not have features like SSO, advanced moderation, and channel controls – which are all very important for us. It also limits the number of playbooks you can make.
- Search has some limitations, like only being able to search content from one team at a time and not across teams, which tripped up one chapter that switched to Mattermost.
- Elasticsearch support is locked to the enterprise tier
There’s one last serious contender I want to cover – Matrix. While dissimilar to Slack and not viable for wide use now, it might be very soon. Let’s take a look at how Matrix stacks up.
Matrix is unlike the other two entries in this list. Matrix is a protocol, a specification of how chat apps can talk to each other in a secure way. Federation is a core concept of Matrix — the idea that it should be easy for Mike on Bob’s server to easily chat with Alice on Claire’s server. The company behind Matrix has an official client called Element which is Slack-esque. I’m going to use Matrix to refer to the combination of a Matrix homeserver and the assumption all users are using Element.
Matrix today is still a bit buggy and not ready for adoption by the non-techie, but it offers such a powerful core set of features (federation and privacy) along with truly open development it’s worth keeping an eye on. Some government agencies in the EU have begin work on using Matrix in their organizations, and the project as a whole is picking up steam – the future looks bright for Matrix.
Tech-forward groups willing to work on the bleeding edge with a need for federation may find that its strengths outweigh its faults.
- Matrix is fully open-source; they not only make all their code available but provide good documentation and interaction with the community. While it’s sold as an enterprise product to some places it’s not built as one from the ground up – which is good for us.
- Matrix rooms can be encrypted end-to-end by default, preventing anyone without access to that room (even the admin!) from easily reading the messages.
- Matrix is built on federation — any chapter could create channels to collaborate with anyone else. This could be a profoundly powerful tool for encouraging easy collaboration across DSA chapters, WGs, and other related organizations.
- Emoji reacts are included but not the ability to easily add custom emoji
- Matrix has support for Keycloak and other IdP services.
- No limits on notifications with the Matrix app
- A handful of integrations, including Jitsi
- There are no reply threads. Replies appear inline in the channel with a link to the message being replied to.
- This is probably a deal breaker for many chapters. Matrix is working on threaded messaging and it should be ready (at least to test) in 2022.
- Matrix is difficult to set up, although it can also be installed in one click with some providers.
- Matrix’s handling of keys can be confusing for users and can result in them permanently losing messages.
- Matrix’s moderation tools are lacking, although basic channel options are there
- Matrix does not allow the user to be signed into more than one home server at a time.
- Matrix apps are still rough around the edges in a variety of other ways; expect bugs.
- Matrix is private by default but defaults to using Vector’s identity and integration management servers. These are private but server owners need to check the fine print for all 3rd party connectivity services they add to the home server. Vector’s service includes a “find your friends” feature that can upload your address book to find contacts on Matrix. While useful for many, we want to steer people away from this.
I’m going to cover one more Slack alternative before closing that’s very popular, but in my opinion, a bad fit for DSA and organizations like it.
Discord is a popular Slack-like chat and social program that began as a popular option for gaming communities and has recently expanded in scope to include public communities of any kind. Paid plans are targeted at individual users to get perks for their favorite servers; there’s no enterprise option and the service lacks many enterprise features. I understand why some chapters or groups are adopting Discord, and while I think it’s fine for social or informal groups, I think it’s inappropriate for chapter or professional use.
- Discord is already very popular among more tech-savvy and younger users.
- Discord lets you easily join and manage many servers at once
- Discord has robust meeting, voice, and screen sharing features
- There are no message limits for main channels
- Discord is completely closed-source and cloud based, like Slack
- Because of the above, Discord can change or remove features at any time, potentially crippling any org using it. A major break isn’t very likely but it’s not unheard of for companies to make big changes to their free plans, as Rocket Chat did. Discord has taken millions in VC money and can sell out, go public, or otherwise completely change the monetization model at any time.
- Discord is not designed for professional or team communication and many features, like text formatting, are hard to find and use, though this is being improved.
- Discord threading is limited compared to Slack and Zulip, and has a limit of 100 members per thread. Threads disappear quickly depending on how much the server members pay.
- Discord can be overwhelming to new users and isn’t really designed for professional communication.
I included Discord on this list as I got more than one questiona bout it, but I just don’t think Discord is a good fit for our use case. We need professional tools built for work, and while Discord has some overlap with Slack-like tools, it’s built for fun and community.
Every Other Chat App I Could Find
- Signal is not designed for Slack-style conversations. It’s the best for small groups and one-on-ones, though! Especially for in-person actions and other discussions that require a high degree of security, it’s strongly recommended by security professionals.
- Wire is not free past 5 users. Pass.
- Twake is not mature enough by far, but looks interesting and is worth keeping an eye on. Pass.
- Session has many of the same features and problems as Signal with none of the user base. Pass.
- Telegram has the same issue as Discord or Signal where it’s not really designed to be a Slack replacement and doesn’t fit that role well. If you need something more useful and easier for people in your life to use that’s not Whatsapp or Facebook though, Telegram can be useful in that case — it’s better than Facebook products. Signal is still more secure for private chats, though, as Telegram isn’t E2EE by default and their E2EE implementation received skepticism from some in the cryptography and security community. I use telegram for chit-chat with friends and family and think this is the best use case for it. Pass for work use, though.
- Google Chat is a poor copy of Slack with fewer features and worse everything except integration with Google services. It will likely be dead in a few years anyway. Pass with prejudice.
- Microsoft Teams is now free, but it’s from Microsoft, and has all the issues Slack has while being uglier and harder to use. Pass.
- Twist — closed-source and still too expensive, even with the 50% non-profit discount. Pass.
- Whatsapp — It’s Facebook. Pass.
Technology is not work or progress
One reasonable question to ask, after seeing these four good options, is: why can’t we simply let each DSA chapter choose what they want to use? There’s a few reasons I think this would be a poor use of resources, but before I list them, here’s a brief personal anecdote I think is illustrative.
I worked for several years transitioning large enterprises from Microsoft Office to Google Workspace. Techie employees usually didn’t have a problem with the switch, if they did it was almost always something totally out of their control (you migrated my data wrong, I want feature X but all Google has is Y) and was either fixable or not really a problem. Non-techie employees felt like their entire world was being turned upside-down. Many people were so intimidated by the new tools they feared they would lose their jobs because their productivity would drop so low (to my knowledge, nobody ever did). One woman, an executive assistant for a C-level executive at a finance company you know the name of, looked at me, asked how old I was, and said, “I have been using Microsoft Outlook longer than you have been alive”.
In Outlook, emails live in one folder. Some people make tons of nested folders to organize their email. Gmail works differently – emails are simply in your account, and you assign them labels (“Inbox”,”Trash”,”Expense Reports”) to decide where they appear. If you assign a message ten labels, it will appear in ten places. The people who had a successful transition learned how to adapt their work – meaning what they actually did as a job – to the new tool, rather than trying to adapt their workflow – how they used the old tool – to the new tool.
My point here is that if you want someone to succeed with a new technology, you need to train them on it. You need to not just teach them how to use it, but help them adapt their workflows to the software. Outlook and Gmail have fundamentally different conceptions of how email is organized. Trying to replicate a large nested folder structure from Outlook in Gmail is a recipe for disaster, if not outright impossible. But thinking up a new way to use search and labeling for your email to make your new workflow better using the new functionality is the best-case scenario.
No matter what new chat tool the NTC chooses (if they choose any at all – my proposal is still just that, a proposal) the most critical aspect is not the specific app used. The critical difference we can make as a socialist org is not just to say “We decided X is bet, use that!”. We can create training materials, installation and maintenance runbooks for chapters, run live trainings, answer advanced questions, build integrations to services only we use (like Action Network) and more. The goal is connectivity, and a chat project that fails to get off the ground or attract users is a failed project, no matter how good the app is. DSA is not a business – we do not have the capability to force any chapter to do anything, and we have limited labor power. Our efforts are best spent working on one great solution, rather than half-assing several of them.
Imagine a new member to a DSA chapter getting an email with their SSO credentials. They’re linked to Zulip and automatically placed into two channels, a welcome channel with an interactive guide to teach them the tool and a channel for an issue they care about. They browse through a pinned post with links to ongoing conversations, some many months old, and jump in to ask questions or just browse at their leisure. They notice a post in the channel for next month’s meeting, and they click a single button to trigger a bot to RSVP them. Later, they’re given a warm welcome in the #introductions channel and their Rose Buddy starts a quick Jitsi call in the chat to catch them up on recent activities, help get them involved, and answer any questions. The member’s first formal introduction in the chapter makes them feel connected to others, cared for, and confident.
Does this sound like a better onboarding experience that what DSA has today? Does this sound better than what many major organizations have today? I think so.
What do we do with all of this information? I think the DSA and any large organization needs to move away from Slack – the message limit, administration, and security drawbacks are significant enough to warrant a migration. But to what? I think Zulip is the best option, and it’s not close. Only two options on this list – Zulip and Matrix – are truly free and open source. Changing licensing terms and free plans for Mattermost and especially Rocket Chat present a huge risk to any chapter using them (Imagine your push notifications or SSO sync just stopping overnight). Matrix is still too new and too threadbare (pun intended) for us to use, promising though it seems.
That leaves Zulip for now – it’s truly free, the organization has total control over the data, it can be secured to the organization’s specifications, and it’s easy enough to install and maintain that the organization can teach almost anyone how to do it.
With every piece – the technology, the documentation, the processes, the people making our communications work – we can build a communication infrastructure that lets us do more, more easily. At the end of the day, it’s all about the work. 🌹
- IdP — Identity Platform, a way of easily and centrally controlling identity
- Keycloak — The NTC’s preferred IdP
- 2FA — Two-factor authentication, a critical tool to ensure account security where you use two methods to login, like a password and a code from an app
- CLI — command-line, a method of communication with servers and applications that’s wholly text based rather than a graphical user interface (as many are used to)
- VC — Venture capital is private equity financing given to potential high growth companies. Venture capital demands growth above all else. Use with caution.
- Open-source — Software that is “open-source” means that anyone can see all of the code that makes the program. For example, Google Chrome is open-source. Uo use it though, you must “compile” it first — compilation translates the human-readable code into inscrutable machine code that you can run on your computer
- “open-core” or “fair code licensed” — these describe cases where the product is open source but there are some additional features that are not, or the company that develops the software has rules about what you can do with it that disqualify it from being technically open-source.
- VPS — Virtual Private Server; dozens of companies offer this, it’s a common way to get a computer in the cloud in a few seconds.
- End-to-end Encryption (E2EE) — a way of securing messages that makes them much more difficult, if not impossible, for people not involved in the conversation to read it. It’s great to have, but hard to develop. Signal has this.
- 12/30/21 – Updated formatting/visuals. Tweaked the Matrix section to change threading from “not coming soon” to coming in 2022 based on a recent announcement. Also changed the 3rd party integrations section. Added a section on why consolidation on one tool is ideal.
- 1/4/2022 – fix typos