--- blogpost: true date: 2026-06-29 author: Richard Darst category: --- # Zulipchat guide Zulip is a chat platform (open-source and self-hostable). I think it is very good, but often confusing to newcomers. This post explains how I see it and how I think others can manage all the information. I can't recommend Zulipchat enough if you want a proper online community. I'm not paid to say this. ## The fundamental contradiction of chats I think it's important to start with why I believe people have a problem with Zulipchat. It's because it works. People use it to talk, and it leads to thriving chat communities. This leads to too much information. It doesn't lead to a large number of one-to-one or group direct messages, but functioning communities. On the other hand, it has good tools to filter things and let you focus on what you want. It takes some getting used to, but it's possible. So, don't be afraid. You are joining a community which has decided to be a community, and that community is probably here to help you with that. The cost is that you need to manage your time, so read on. ## Zulip basics The main concepts are: - **Channels** (formerly known as "streams") are the basic organization, like in other chat systems. - **Topics** are like email subjects of threads within a channel, which have no similar concept in other chat systems. This is what lets someone get a summary of what is going on and manage the flow. - **Messages** are as expected, but all messages have both a channel and topic. (These days you can actually send a message without a topic and it appears as "*general chat*", but I would recommend avoiding this as possible. - Your view can be narrowed to certain channels, topics, or other search terms. There are a wide variety of places to click to do this. Click around and see how it works - it will save you lots of time. This has two major implications. First, you have to think a little bit before you start to type. This slows you down by a few seconds, but it's not so hard and worth it to think "what am I talking about here? Is there an existing thread to join?" Second, once you have things sorted, you can much more easily filter and find what's important to you. You can see more of past conversations. If you see a new interesting message, you can click on it and see all the past history. You can get notified for specific conversations and hide others. As a newcomer, you won't know what all has happened before, so thus may start duplicate topics. That's OK! In all the organizations I am part of, there are some people who act as "curators" and organize topics, combining or splitting them. They may combine, split, or move yours. This isn't bad. Just chat and let others deal with that. ## Notification levels There are three levels of following/notifications: - **Following** where you get notifications (sound/pop-up/email/etc.) - **Default** - **Muted** where you don't even see the messages by default, but if you get @-mentioned then you do. You can then click on the message and see the whole topic. In your personal settings, there are a variety of settings to make yourself auto-follow anything you interact with (send messages to) or get mentioned in. Also, *every one of these can operate per-channel or per-topic*. Thus, you have lots of flexibility. (Of course this leads to the paradox of choice, where more options decrease happiness). ## Zulip conventions My organizations tend to: - Not @-mention people as much as in other places (it can be done when you need to, but if you know someone actually follows the chat, they can usually find the relevant topics). People set the auto-follow depending on their needs. - Not reply and quote the message you reply to, unless it's not very recent in the topic or you want to emphasize it. People can always click the topic and see history, no matter when they see it. - Have fewer channels and rely more on setting topics. - Rely less on private messages. - Do make a search for any past topics and re-post to them if it's relevant. - Do rearrange messages after they are sent, as topics diverge and converge. - Make new topics frequently, but also split/join topics often when they drift. - "Curators" who have been around a while often move/organize topics that other people start, with a low threshold (this doesn't mean something went wrong, and it may connect you to older info). But anyone is welcome to do this. ## Strategy: if you follow selectively If you are like most people and can't follow everything, that's OK. When you check chat: - Check your "**Inbox**" view. This shows everything new and unread (and you can limit it to where you have been mentioned/where you are following). - Alternatively, check the "**Recent topics**" view. This will show you every topic that has been active, sorted by most recent. You can read the topics and see if there's anything interesting. When you click on a topic, you can scroll back to all the old history, not just the unread messages. - *If you want*, you can scroll the "Combined feed" that shows everything if you want. This has all the messages mixed together, which will be hard to follow, but you might see something that catches your eye. Click the topic name and you will narrow to that topic and see the whole thing. - Then, and I can't emphasize this enough, mark everything as read. It's in the past, you won't catch up. If something is still relevant, it will re-appear in the recent topics and you can still see all the history. A variant of this is to go click on each channel separately on the sidebar, which makes its recent topics appear. You can then either browse the channel in chronological order or click on the relevant topics to narrow to them. You can select "Inbox" or "Recent topics" as your default view. Even if you try to follow everything, when you come back from a vacation or similar, do this and "mark all as read". ## Strategy: if you follow everything Some people want to try to follow everything. In this case, set **combined feed** as your default view and you will see every message in chronological order (with all the topics interleaved). This lets you quickly follow new things, but can easily become overwhelming. When you see something that is interesting, you click on its topic and see the history of that topic. You might want to disable the auto-follow settings (in your personal settings). Since you follow everything on your own time, you don't need to In reality, I often combine these strategies. I'm one of the topic curators, so I tend to follow everything. Still, if I'm away from a few days it's too much, so I click through each channel separately to catch up by-topic before going back to the combined feed. ## Strategies to follow what's important to you - For your most important channels, you can pin the to the top. - "Follow" certain topics so that you get notified. I do this for topics such as "lunch" ("where are we eating today?") - If you don't look often, change your personal settings to automatically follow any topic you get @-mentioned in or interact in. Un-follow them if/when your input is no longer needed. - Set up alert words (personal settings) which tag certain words as @-mentions. ## Strategies to ignore what is not important to you - You can be in a channel but have it muted, so you don't see it by default, but you can be mentioned within in. If there's a work-related private channel, this is probably a better strategy than not being in it. This also means it's easy to occasionally click on it to see what's going on, while not taking up mental space on a daily basis. - Mute specific high-volume topics that are not relevant to you. I do this for some high-volume automated alerts. - Change the "followed messages count" to only include followed topics, DMs, and mentions" - so that indicator isn't always taking your mental focus. ## Emoji reactions The organizations I am in often use Emoji reactions. This works like other places, but there are some conventions I try to use (note these are something I think, not an official policy or anything): For expressing agreement/disagreement: - ๐Ÿ”ผ (`:upvote:`): Reacting to a concrete suggestion, it means "in no uncertain terms I approve of you taking that action". I use this, and the following four, since "no one is answering, what should I do?" is a big problem with decisions via chat. - โซ (`:double_up:`): I agree with you and am willing to do work to help make it possible. - โ†•๏ธ (`:up_down:`): I'm neutral - ๐Ÿ”ฝ (`downvote:`): I don't support this action - โฌ (`:double_down:`): I don't support this action and am willing to do work for some other sort of solution. - ๐Ÿ‘ (`:+1:`): General "I agree with the sentiment" message, but perhaps less specific than the upvote arrows. - โœ”๏ธ (`:check_mark:`) and similar: I have done whatever was in this message. - ๐Ÿงพ (`:receipt:`): I've read the message and acknowledge receipt but no other comment yet. - Anything else means some general sentiment, usually positive, but no specific meaning to me. For the voting things, it's something I once read was used in some other open source project, but I can't find any trace of it. The system was based on a {-2, -1, 0, +1, +2} to be able to express not just "good idea" but "who has time/willingness to do something". A human needs to do the final interpretation of the results. Maybe I should write about this elsewhere. ## Summary When you use Zulip chat, you get a ton of information, but you have ways to filter it if you need. I think this also gives good possibilities for passively following along, which is also helps with onboarding and learning things.