What is Zulip?
Who uses Zulip?
Why developers like Zulip?
Here are some stack decisions, common use cases and reviews by companies and developers who chose Zulip in their tech stack.
We use Zulip for group chat at the Recurse Center, both for our team (< 10 people) and for our alumni community (1,300+ people). We tried Slack, but Zulip is way better. Among the many reasons: It has a much better threading model and is open source.
I use Zulip because the threading setup is a powerful way to manage different types of conversation. My other chat tools either don't have threading, or use threading as an afterthought.
I use Zulip because it completely changes the way you think about real-time collaboration. It provides the sanity of asynchronous communication along with the immediacy of a real-time chat.
Zulip has easily the best threading model among all the chat applications and I prefer it over Slack, Mattermost, RocketChat, Hipchat, Discord etc. Each and every conversation is a seperate thread and has a topic. This model makes it extremely easier to catch up and participate in conversations. Once you get used to the threading model of Zulip its hard to tolerate threading model like Slack which is really inefficient and time wasting.
I use Zulip because I love how it lets me focus on my work, and doesn't need me to be constantly online to be able to participate in conversations that matter to me. Zulip's topics make it super easy to get an overview of all the conversations that happened while I was away, and pick and choose the conversations that I want to catch-up with. Slack 's threads seem like an after-thought and aren't effective for catching-up at all!
I also love the Zulip community, and the care and effort put in by the members to make it a friendly and welcoming community to new developers, and to make the contribution experience pleasant for all the contributors.
I use Zulip because of the threading model i.e. having topics inside a channel makes it easy to catch up to topics and keeps your organisation's chat well organised.
1.) Having topics inside a channels ensures that you can have multiple conversations in the same channel at the same time.
For e.g. Imagine a chat system with no topics and only channels. A real-time conversation about say an expensive migration is going in the
#backend channel. But you have a question about how the push notifications work in the project. In that case you will either hesitate to post your question (which would be the mostly likely outcome if you're a new member especially) or you would interrupt/disturb the ongoing conversation and both of the conversations would go on in parallel in the same stream in a convoluted and incoherent manner.
Having topics inside channels in Zulip in the above situation allows you to just create a new topic inside the
#backend channel and initiate your conversation there without worrying about the other conversations happening in the same channel at the same time.
2.) Having topics defined for each conversation makes you finding old conversations more convenient and faster. In a chat system with no topics inside channels, you would have to search the entire text content with the exact text that you typed say maybe 6 months ago which you may or may not remember exactly as is.
While just having a look at the topic list in Zulip chat in the above case would return you the conversation about the topic you were looking for without searching the entire text. This makes searching easier and faster. Please do note that a search across the entire text is also much faster in Zulip than its competitors like slack.
3.) Each conversation is linkable which is super convenient i.e. you can get a link to a conversation like https://chat.zulip.org/#narrow/stream/7-test-here/subject/My.20Test.20Topic/near/666741 and share it.
4.) The topic list for a channel in Zulip also acts as a summary of the conversations that happened in the channel. For a person who has been inactive in an organization for a long time, the topic list make its easier to catch up to your messages missed in the past.