Zulip 6.0: Threaded open-source team chat
We’re excited to announce the release of Zulip Server 6.0, containing hundreds of new features and bug fixes!
Zulip is an open-source team chat application designed to help people collaborate to solve any challenge. With conversations organized by topic, Zulip is ideal for both live and asynchronous communication. Fortune 500 companies, leading open-source projects, and thousands of other organizations use Zulip every day. Zulip’s 100% open-source software is available as a managed cloud service or a self-hosted solution.
Zulip Server 6.0 is a major release, with over 3400 new commits merged across the project since the 5.0 release in March. Notable new features include marking messages as unread, read receipts, new ways to navigate conversations, and much more!
A total of 118 people contributed commits to Zulip since the 5.0 release, bringing the project to over 1150 code contributors. Zulip has by far the most active open-source development community of any team chat software, with 77 people who’ve contributed 100+ commits.
Huge thanks to everyone who’s contributed to Zulip over the last few months, whether by writing code and documentation, reporting issues, translating, supporting us financially, participating in discussions in the Zulip development community, or just suggesting ideas! We could not do this without the hundreds of people giving back to the Zulip community.
Today marks a release of the Zulip server and web application. We’d also like to share important news and updates for the project as a whole since the 5.0 release in the spring:
- We’re excited to announce that Zulip is now the official messaging platform for the Internet Engineering Task Force (IETF), the main organization defining technical standards for the Internet.
- This summer, Slack drastically changed its free plan, making it untenable for many organizations. We have been glad to be able to support many affected organizations by helping them import their Slack data into Zulip, and offering Zulip Cloud Standard sponsorships for open-source projects, research groups, and other negatively impacted communities.
- Our website now features the story of how the Recurse Center uses Zulip. Learn how the Recurse Center community helped Zulip become an open-source project, and how Zulip brings together a worldwide community with hundreds of active participants (with over 2.5 million Zulip messages sent since 2013!).
“The core of the Recurse Center is the community, and the core of our online community is Zulip… Switching to Zulip has turned out to be one of the best decisions we’ve made, and it’s impossible to imagine RC today without it. No other tool has a user experience that scales to a community of our size.”
— Nick Bergson-Shilcock, founder and CEO, Recurse Center [customer story]
The Zulip mobile apps for iOS and Android have made numerous improvements for a better user experience and a fuller set of Zulip features:
- Support for all the new features of Zulip Server 6.0: mark messages as unread, see read receipts, go invisible, and more.
- Support for custom profile fields and for creating web-public streams.
- Still-finer control over when messages are marked as read, with a new “Only in conversation views” option.
- More natural emoji search, and fast access to popular emoji. 🎉
- Lots of other improvements, including many fixed bugs.
Zulip Terminal features new since the Zulip Server 5.0 release include the ability to download and open attachments, showing the names of users who reacted to a message (also a new feature in other Zulip apps), and a keyboard shortcut that makes it easy to go to the conversation you’re composing to.
Learning about Zulip
- The Zulip history page now traces Zulip’s story from its first founding, to acquisition by Dropbox, release as open source, second founding as an independent mission-driven company, and how Zulip has developed into a thriving open-source project.
- Our new Values page describes the values that are behind everything we do as we work to build the world’s best team chat software, including building software that will always be there for our users, and always keeping Zulip 100% open-source.
- We have launched the Zulip communities directory. You can visit any of the communities that have opted in to be listed to learn more about them. If you are involved in an open Zulip community, we encourage you to advertise it and support the Zulip project by adding your community to the list!
Our community is fully committed to helping bring up the next generation of open-source contributors. 2022 was the 7th consecutive year that Zulip participated in Google Summer of Code. Our 15 GSoC 2022 participants contributed to many of the features described in this post, and we’re looking forward to welcoming the next cohorts of GSoC and Outreachy participants.
“The openness to constructive feedback, the super comprehensive developer documentation, coupled with the vibrant, helpful developer community, and the trust reposed in and the flexibility granted to contributors, makes for an incomparable experience.”
— Nehal Sharma, Google Summer of Code 2022 participant
We proudly sponsor free Zulip Cloud Standard hosting for about 1000 open-source projects, non-profits, educational institutions, and academic research groups. All eligible organizations are encouraged to join the program!
Powerful tools for users
- You can now mark messages as unread both on web and on mobile. This makes it easy to return to a conversation later if you don’t have time to read it carefully, or to follow up on action items. The “mark as unread” feature works everywhere in Zulip — for example, you can also use it to mark the results of your search as unread to review them at leisure.
- You can see read receipts for any message, no matter who sent it or where it was sent. With privacy in mind, Zulip lets you control whether your read receipts are shared, and administrators can choose whether to enable read receipts in their organization.
You can now see all your recent conversations in one place, including both stream messages and private messages. The “Recent conversations” view replaces “Recent topics”, which only included stream messages. Keyboard navigation was also improved.
The left sidebar has been redesigned to make it easier to navigate your conversations.
- You can now immediately see which private message conversations have new messages, and jump to those conversations with one click.
- Topics with unread @-mentions are indicated with an
- Streams in the left sidebar are organized into labeled “Pinned”, “Active” and “Inactive” sections, with muted streams sorted to the bottom of each section.
Zulip is unusual among chat apps in letting you compose a message to a different conversation than the one you’re looking at. This is especially handy when you want to reference information from another conversation, or cross-link related topics. For convenience, in addition to a keyboard shortcut, there is now a button for going to the conversation where you’re sending your message.
Better user cards and profiles
- Organizations can now select up to two custom profile fields to be featured on the user card. It’s a great way to make it easy to find key information, such as someone’s pronouns, team name or role, or GitHub username. There is also a new “Pronouns” custom profile field type, which provides some common pronouns, but also allows free-form text.
- You can now turn on “Invisible mode” to appear offline to others while using Zulip. This mode combines the best aspects of two previous features for communicating to others about your availability.
- User cards and profiles for users and bots have been redesigned with a cleaner look, and additional information and management functionality.
Public access option out of beta
With the public access option, organizations can set Zulip streams to be viewable by anyone on the Internet without creating an account. This option is now out of beta, with many enhancements, including:
- One-click logged-out access to public links, bypassing the login page. You are asked to log in only when you attempt an action that cannot be done anonymously, such as posting a message.
- Logged-out visitors can now choose between light and dark theme, and select their preferred language for the Zulip app.
User experience improvements
Here are a few more highlights from the hundreds of user experience improvements in this release:
It’s often helpful to see who reacted to a message, for example when waiting for a 👍 from a decision maker. Zulip now shows the names of users who reacted to a message when there are not too many to display, eliminating the need to mouse over emoji reactions.
Zulip now supports the latest emoji up to Unicode 14, including 🧵, 🏳️⚧️, and 🤯. Users who were still using the deprecated “Google blobs” emoji set, which is no longer being updated with new emoji, are automatically migrated to the modern “Google” emoji set. (It’s still possible to switch back to “Google blobs” if desired.)
The right sidebar now shows user status messages by default, with an alternative compact design available.
Message notification emails now explain more clearly why the notification was sent. It has always been possible to send a Zulip message by replying to a notification, and you can now reply several times to the same email, with no time limit.
Improved tools for managing an organization
The interface for moving messages to a different topic or stream has been completely redesigned to be easier to use. There is also additional flexibility and better defaults for when to send automated notices about moving messages. Plus, the message menu has been revamped to make it quick to find the action you are looking for.
The settings menu now displays basic details about the Zulip organization, including its name, URL, and the Zulip Cloud plan or self-hosted server version.
The usage statistics page for an organization now includes a summary of key statistics, such as the total number of users and messages.
When deactivating a user, administrators can now see which bots and open invitations will be automatically disabled, and can send a notification email to the user being deactivated.
The organization settings menu has been updated to make it easier to find the right panel, and all destructive actions (e.g., deactivating a user or bot) now have a confirmation dialog.
- When setting up an incoming webhook integration, you can now filter out the events you don’t want to receive, which is invaluable when the third-party service doesn’t support configuring which events to send to Zulip.
- We have added new Azure DevOps, RhodeCode, and Wekan integrations.
- Several integrations have been improved, including Grafana, Harbor, NewRelic, and the Slack compatible incoming webhook.
- We have added support for Ubuntu 22.04, and removed support for Debian 10 and PostgreSQL 10 due to their approaching end-of-life upstream. See our OS upgrade documentation and PostgreSQL upgrade documentation for instructions on how to correctly upgrade your Zulip server if needed.
- Footers for login pages, help center documentation, and other pages have been customized to provide the appropriate information and links for self-hosted servers.
Our community translators have been hard at work keeping up with the product as it evolves. This release features new or much more complete translations for Arabic, Mongolian, Serbian and Vietnamese, bringing the project to a total of 27 languages with translations that cover the majority of non-error strings.
We highly recommend upgrading to Zulip Server 6.0 to take advantage of the hundreds of improvements in this release. If you’re using Zulip Cloud, you already have the new version, as we constantly upgrade it with improvements as they become ready.
We work hard to ensure that upgrades are smooth; you can upgrade by following the straightforward upgrade instructions. The upgrade notes section of the changelog details changes you’ll want to understand before upgrading.
Many installations have already upgraded to release candidates, so we feel very confident in this release. But if you need help, best-effort support is available on chat.zulip.org. You can also purchase commercial support from the Zulip core team.
We’re hard at work on a major redesign of Zulip’s web and mobile apps. Our goal is to give Zulip a clean, contemporary feel, while preserving all the thoughtful usability details that our users love. Check out issues tagged with the “redesign” label in the web and mobile repositories to see where we’re headed, and join the conversations in the Zulip development community to offer feedback.
On the backend, work continues on changing how permissions work in Zulip to be built on fully custom, hierarchically-organized user groups. This will make Zulip’s permissions system flexible enough to implement just about any organizational policy.
This release is coming out just under eight months after the Zulip Server 5.0 release in March 2022. This is an improvement compared to the ten-month gap between Zulip 4.0 and Zulip 5.0. However, we plan to continue iterating on our release management practices to support more frequent major releases. This way, self-hosting users will be able to benefit from Zulip’s rapid pace of improvement without undue delay.
I’d like to take this opportunity to advertise a few opportunities to contribute to Zulip:
- We would really appreciate five minutes of your time to fill out this survey to let us know how the organizations you are involved in picked a chat app, and how we can make Zulip work better for you!
- Join the development community where we design Zulip. We love feedback! Many of our best features grew out of conversations with users who stopped by to chat.
- Join us for a paid outreach program through Google Summer of Code (now open to anyone new to open source, not just students!) or Outreachy.
- Tell us how your company or community uses Zulip! User stories help us prioritize our feature roadmap, and we love working with users to share their stories. Contact us at firstname.lastname@example.org.
- Support Zulip on GitHub Sponsors, Patreon, or Open Collective.
- Follow us on Twitter or join our low-traffic announcement mailing list.
- We’re hiring for full-time and part-time roles in engineering and marketing! See our jobs page for details and how to get in touch.
Thanks again to the amazing global Zulip development community for making this possible!
—Tim Abbott, Zulip founder and lead developer
What follows is a summary of the commits contributed to Zulip during the 6.0 release cycle.
$ ./tools/total-contributions 5.0 6.0 550 Chris Bobbe 443 Anders Kaseorg 315 Zixuan James Li 275 Greg Price 265 Alex Vandiver 229 Sahil Batra 177 Lauryn Menard 172 Tim Abbott 146 Aman Agrawal 108 Mateusz Mandera 80 Alya Abbott 59 David Rosa 59 neiljp (Neil Pilgrim) 55 Yogesh Sirsat 45 Hari Prashant Bhimaraju 37 evykassirer 34 srdeotarse 31 Ganesh Pawar 31 Steve Howell 18 Christopher Chong 17 Jai soni 17 N-Shar-ma 16 Adam Sah 16 Austin Riba 15 Kartik Srivastava 14 Julia Bichler 13 Matt Keller 13 Sayam Samal 13 m-e-l-u-h-a-n 11 Riken Shah 10 Raghav Luthra 9 Florian Pritz 9 rht 9 Rohitth 9 mounilKshah 8 Rafid Aslam (refeed) 7 Dinesh 7 Rixant Rokaha 7 Shlok Patel 7 Somesh Ranjan 6 Akarsh Jain 6 Rohitt Vashishtha 4 Robert Imschweiler 4 aparna-bhatt 4 Nitish Kumar 4 Timothy Pearson 4 Preet Mishra 3 Ashwat Kumar Singh 3 Eyuel Berga Woldemichael 3 Taiki 3 Yash RE 3 anurastogiji 3 khanhdq 3 Dale Short 3 Kevin Köllmann 2 Alex Tereschenko 2 Eric Smith 2 George A. Michel 2 Heidi Ahlberg 2 Het Patel 2 Imran 2 Khushiyant 2 Lani 2 Noble Mittal 2 Prakhar Pratyush 2 Siddharth Asthana 2 ritikBhandari 2 Wesley Aptekar-Cassels 2 Ezio-Sarthak 1 Advait J 1 Archisman Das 1 BIKI DAS 1 Barissa-Imran 1 Danish 1 Eeshan Garg 1 Gaurav Pandey 1 Hannah Salameh 1 Harshit Agarwar 1 Israel Ebonko 1 Ivan Toymentsev 1 Jason Hildebrand 1 Javier González 1 Joseph Ho 1 Nikhil Maske 1 Oliver Pham 1 PALASH BADERIA 1 Palash Raghuwanshi 1 Rebecca Södereng 1 Rishabh Maheshwari 1 Sdrummolo 1 Sean Heckathorne 1 Sharif Naas 1 Sofia B 1 Swapnil Gore 1 Tanya Singh 1 Varac 1 Varun Sharma 1 Vipul 1 aadiljaleel 1 luisaadanttas 1 nickgiann 1 om2137 1 patricklauer 1 rodwan-bakkar 1 sofbe 1 tjefferson401 1 Nolan Kaplan 1 Poussinou 1 Pratyaksh_Khurana 1 SilentCruzer 1 VishalSharma2000 1 anhhuynh 1 ankur.gupta6519 1 linsui 1 shrizza 1 Ben 1 Gergo Torcsvari 1 Sushmey Commit range 5.0..6.0 corresponds to 2022-03-29 to 2022-11-17 2465 commits from zulip/zulip: 5.0..6.0 823 commits from zulip/zulip-mobile: a3dcf787bee2..2fd106158055 118 commits from zulip/zulip-terminal: b1189d89f04b..3c7a66022a37 21 commits from zulip/zulipbot: e104f2a336b4..18a0a5bfcef6 17 commits from zulip/zulip-desktop: 27576c95e6e6..544d23ec09c0 16 commits from zulip/docker-zulip: 5ca15b51c783..65f33b502fec 12 commits from zulip/python-zulip-api: d26416a1e79f..4a3d225a3863 10 commits from zulip/zulip-archive: 7c772a65b1dd..86efe95a5901 7 commits from zulip/zulint: 80a613cca5ec..80aba3fd88fa Excluded 0 commits authored by bots. 3489 total commits by 118 contributors between 5.0 and 6.0.