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.

Project highlights

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:

Customer stories

“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]

Apps

The Zulip mobile apps for iOS and Android have made numerous improvements for a better user experience and a fuller set of Zulip features:

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!

Mentorship

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

Sponsorships

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!

Release highlights

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.

Improved navigation

recent-conversations

  • The left sidebar has been redesigned to make it easier to navigate your conversations.

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.

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.

move-messaegs

  • 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.

Integrations

Self-hosting

  • 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.

Internationalization

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.

Upgrading

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.

Product roadmap

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.

Release schedule

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.

Community

I’d like to take this opportunity to advertise a few opportunities to contribute to Zulip:

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.