When Backdrop CMS needed to upgrade our real-time chat platform, we had to balance ease of use with our preference for open source. Those criteria led us to Zulip, an open source chat and collaboration platform with many features we were looking for.
In this article, I'll explain our selection process and how we've implemented and adapted this tool across our organization. Maybe it's the right tool for your organization as well.
How our community outgrew our initial chat solution
Backdrop CMS is a fork of the Drupal project targeting small- to medium-sized businesses, non-profits, educational institutions, and companies or organizations who need a comprehensive website for a reasonable price.
For the first five or so years of the project, we used Gitter as our real-time chat platform. Gitter served us well during this time and had the following advantages:
- It's open source.
- It's easy to use.
- You can use a GitLab or GitHub account to log in.
- It is transparent and viewable without an account.
The Backdrop CMS project is now a little over seven years old. As users became more familiar with advanced chat tools like Slack, Gitter seemed increasingly frustrating for some of our most regular participants. Gitter did not provide channels or threads for organizing conversations, and the mobile app was very glitchy. We began to look for alternatives.
As the Backdrop CMS community began to research options, we struggled with our preference to use open source tools against a competing desire to reduce barriers to entry, especially for nontechnical users. Slack's familiarity gave it some appeal: it was a very popular platform, and most of us were already using it for other projects or jobs. These factors made the barriers to entry quite low. However, our tight budget and Slack's restrictions on free accounts were serious strikes against it.
Why we chose Zulip
We looked closely at several open source alternatives to Slack and pretty quickly settled on Zulip as our leading contender. We didn't have the budget for a paid hosting plan and were reluctant to take on the overhead of maintaining our own Zulip server. Still, the availability of free hosting for open source projects pushed us further in this direction. A current look at the Zulip website suggests that sponsorships may be available upon request for "worthy organizations" beyond other open source projects.
The most innovative feature in Zulip is the ability to create topics (or tags) within a stream—the Zulip equivalent of a channel. This makes it possible to view incoming messages in a single chronological stream, as we were used to in Gitter. However, users can also tag each message with a topic and filter them in order to view all the individual messages belonging to one topic independently.
For some of us, these topics were a powerful feature. Others found them confusing and difficult to use. While putting your message into a specific topic is optional, some new users felt pressure to use topics. The interface for finding or selecting topics does take some time to get used to.
In the early days of using Zulip, these topics were very informal. Now we find that they are becoming increasingly important as an organizational tool. Still, they remain the most significant frustration for new and even some experienced users.
Both iPhone and Android apps are available, and both seem to be working quite reliably for our community members.
How we've evolved with Zulip
As time goes on, we're seeing more and more of our support conversations move from our public online forum to the Zulip chat channel, which worries us, because information in the chat channel is far less accessible and public for those who are not using Zulip. This problem might be a side effect of how successful Zulip has become for real-time conversations.
To provide some context for the size and level of activity in our Zulip community, we have just over 240 accounts. On a recent Friday, over 13 different people posted a total of 75 messages. Some days are busier than this, and some are slower, but days like this feel pretty typical of late. Depending upon the time of the day, support questions in Zulip usually get some level of response within an hour or, on a slow day, 5 to 6 hours.
Until now, we've tried to keep most of the conversation in a single stream, with a few exceptions. The growth or success of any online community can be hampered by creating too many channels too early, none of which have sufficient activity. We now have a German language stream, an "off-topic" stream (our version of the water cooler), and specialty streams for events and infrastructure. We also have private streams for our leadership and one for security issues. We may be reaching a point where additional streams would be useful.
We know that not everyone in our community likes Zulip, but complaints are few. Of course, we don't know what we don't know—some people might have tried Zulip, grown frustrated, and never come back to tell us about it. On the whole, those of us most active in the community are happy with Zulip and would recommend it to other open source projects.