Zulip 5.0: Threaded open-source team chat

We’re excited to announce the release of Zulip Server 5.0, containing hundreds of new features and bug fixes!

Zulip is an open-source team collaboration tool with unique topic-based threading that is ideal for both live and asynchronous conversations. 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 5.0 is a major release, with over 7000 new commits merged across the project since last May’s 4.0. Notable new features include status emoji, marking topics as resolved, improved management of streams and permissions, and much more!

A total of 157 people contributed commits to Zulip since the 4.0 release, bringing the project to over a thousand code contributors. Zulip has by far the most active open-source development community of any team chat software, with 75 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.

“Zulip’s threading model makes it so much easier to manage my team.”
— Gaute Lund, co-founder and owner of iDrift AS [customer story]

Project highlights

Today marks a release of the Zulip server and web application. We’d like to share important news and updates for the project as a whole since last year’s 4.0 release:

  • Zulip for Education. We have seen more and more educators using Zulip as the communication hub for their classes. Zulip’s threading model makes it a great fit for posting lecture notes and announcements, answering students’ questions, and coordinating with teaching staff all in one place. In response to interest from educators, we have launched a dedicated Zulip for Education offering!

    “Zulip has the best user experience of all the chat apps I’ve tried. With the discussion organized by topic within each stream, Zulip is the only app that makes hundreds of conversations manageable.”
    — Tobias Lasser, lecturer at the Technical University of Munich Department of Informatics [customer story]

  • Customer stories. Stories from our customers are a huge source of inspiration for us. Over the last few months, we have published stories of how Zulip is being used for business (iDrift AS company), education (Technical University of Munich and University of California San Diego), research (Lean theorem prover community), and open source (Rust language community, Asciidoctor community).

    “Rust development would not be moving at the pace that it has been without Zulip.”
    — Rust Language team co-lead Josh Triplett [customer story]

  • Reviews. An excellent review of Zulip was published in The Register, and Zulip was covered in a VentureBeat article about open-source Slack alternatives.

    “Zulip is everything Slack is, but it's smarter and more powerful.”
    Zulip review in The Register

  • Apps. The Zulip client apps have been a major priority for the project.

    • The Zulip mobile apps for iOS and Android have made numerous improvements for a better user experience and a fuller set of Zulip features:
      • Better control over when messages get marked as read, including a new setting to never mark messages as read when you view them.
      • Complete rework of Android notifications to be more informative and easier to read (1, 2), along with a distinct Zulip sound.
      • New support for muted users, polls, and other Zulip features.
      • Hundreds of fixed bugs and other improvements.
    • The upcoming Zulip Terminal release adds auto-complete for message recipients and topic links, a handy shortcut for reacting to messages, automatic syntax highlighting for code blocks, and more!
  • Community and mentorship. Our community is fully committed to helping bring up the next generation of open-source contributors. 2021 was the 6th consecutive year that Zulip participated in Google Summer of Code. Our eighteen GSoC 2021 participants wrote over 1500 commits that have been merged into Zulip’s main branch, and we’re looking forward to welcoming the next cohort of GSoC and Outreachy participants this summer.

    “It has been the best summer I've ever had! I'm thankful to my mentors, my peers, Zulip, and Google for providing me an opportunity of getting involved in the community! You have helped and supported me to become a better software developer and a passionate open-source contributor.”
    — Sarthak Garg, Google Summer of Code 2021 participant

  • Sponsorships. We proudly sponsor free Zulip Cloud Standard hosting for 700 open-source projects, non-profits, education, and academic research groups. All eligible organizations are encouraged to join the program!

Learning about Zulip

We have been hard at work making it easier to learn about Zulip’s features and unique advantages. Whether you are on the market for a new chat tool, just getting started with Zulip, or an experienced user aiming to fine-tune your workflows, we’ve got you covered.

Release highlights

New messaging features

  • The resolve topic feature allows marking topics as ✔ completed. Resolving topics is a lightweight way to manage a variety of workflows, including support interactions, answering questions, and investigating issues.

  • The compose box was redesigned with a cleaner look and many improvements to the editing experience. New compose features include:

    • New formatting buttons for bold, italics and links.
    • A handy button for inserting global times into your message.
    • For longer messages, the compose box can be expanded to take up the full screen.
  • Users can now set a status emoji alongside their status message, making it easy for others to see what they are up to. Status emoji are shown in the sidebars, message feed, and compose box. Animated emoji animate only on hover.

Sharing Zulip conversations

  • Zulip makes it convenient to link to a conversation or a message in context from an issue tracker, forum, email or anywhere else. Permanent message links now redirect to the right place even when the message has been moved to a new stream or topic.
  • Many open communities want to minimize friction for viewing public conversations in their collaboration tools. With the beta release of the public access option, organizations can set Zulip streams to be viewable by anyone on the Internet without creating an account. Keep an eye out for an announcement of the public release in the coming weeks!
  • Timestamps in Zulip messages now offer a handy way to get a permanent link to a message in its conversation thread.

Settings and permissions

  • Personal and organization settings have been reorganized to make it easier to find what you’re looking for. For example, personal privacy settings are now grouped under a new “Account & privacy” tab.
  • Zulip 5.0 offers increased permissions flexibility. The ability to manage aspects of the organization such as user groups and custom emoji can now be assigned to administrators, moderators, full members, or all members of the organization. Stream creation permissions are controlled separately for private, public, and web-public streams.

Stream management

  • The settings for each stream have been organized into separate tabs for general settings, personal settings, and stream subscribers for easier navigation.
  • With a complete redesign of the stream creation menu, it’s easier than ever to add users to the stream you are making. You can add users one at a time or as a group, copy the list of members from another stream, or add everyone in your organization with the click of a button.

User management

  • The addition of Streams and User groups tabs to the full user profile makes it convenient to review a user's subscriptions. Administrators can unsubscribe a user from streams directly from their profile, or click Manage this user to make other changes.
  • Organization administrators can now configure default personal preference settings for new users joining the organization. For example, you can change the default theme and emoji set, or turn on stream message notifications in a small organization, among many other options.
  • Zulip 5.0 adds support for invitations with configurable expiration, including links that never expire. Deactivating a user now automatically disables all the invitations they have sent.

User experience improvements

This release includes hundreds of other improvements to the Zulip UI, both large and small. A few highlights:

  • Images in messages are now displayed in a convenient grid layout, with up to 20 image previews per message.
  • The full-screen image viewer has been overhauled, with friendlier pan/zoom functionality and easier-to-understand labels.
  • Modals and tooltips have been redesigned to be easier to use, consistent, and visually clean.

Server

  • OpenID Connect joins SAML, LDAP, Google, GitHub, Azure Active Directory, and more as a supported Single Sign-On provider.
  • SAML authentication now supports syncing custom profile fields. Additionally, SAML authentication now supports automatic account creation and IdP-initiated logout.
  • SCIM joins LDAP as a supported protocol for synchronizing Zulip accounts with an external user database.
  • Ubuntu Bionic is no longer supported in this release, due to Ubuntu upstream no longer providing security support for important packages. See our OS upgrade documentation for how to correctly upgrade a Zulip server to a new version of the host operating system.
  • Zulip servers can now be installed on the ARM systems (including Mac M1 chips).

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 Portuguese (Portugal), Sinhala and Welsh, bringing the project to a total of 23 languages with translations that cover the majority of non-error strings.

Moving to Zulip

Upgrading

We highly recommend upgrading to Zulip Server 5.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 have a lot of exciting features coming down the pipeline, including:

  • A major web app UI redesign project, which began in January. Our goal is to give Zulip a clean, contemporary feel, while preserving all the thoughtful usability details that our users love. Drop by our development community to sneak a peek at where we’re headed, and offer feedback!
  • 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.
  • A more limited variant of our guest role, designed especially for organizations that would like to invite external customers to Zulip.
  • The “mark as unread” feature will make it easy to get back to Zulip messages that require a follow-up, both on web and on mobile.

Release schedule

Zulip 4.0 was released in May 2021. While we consistently backport important bug fixes, users of self-hosted installations running the 4.x series have thus been missing out on hundreds of other improvements made in the last 10 months.

There’s no technical reason for major Zulip server releases to be so infrequent. Zulip Cloud runs on the main Zulip branch, and is updated at least weekly without significant regressions. Zulip’s engineering discipline is such that we happily support self-hosted installations that upgrade to main (which they often do to get the latest features).

One of our focus areas for the coming weeks will thus be adjusting our release management practices in order 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 5.0 release cycle.

$ ./tools/total-contributions 4.0 5.0
973	Chris Bobbe
837	Greg Price
768	Anders Kaseorg
498	Tim Abbott
456	Sahil Batra
435	Alex Vandiver
319	Steve Howell
288	Aman Agrawal
204	Mateusz Mandera
129	neiljp (Neil Pilgrim)
123	Abhijeet Prasad Bodas
120	Zixuan James Li
107	Eeshan Garg
95	Alya Abbott
95	Lauryn Menard
90	Wesley Aptekar-Cassels
89	Purushottam Tiwari (m-e-l-u-h-a-n)
88	Ganesh Pawar
88	Priyank Patel
80	Hari Prashant Bhimaraju
78	Yash RE
78	Zeeshan Equbal
76	Vishnu KS
76	Akash Dhiman
75	Akshat Dalton
71	Suyash Vardhan Mathur
56	Ezio-Sarthak
55	Aryan Shridhar
55	Rein Zustand (rht)
54	Riken Shah
50	Dinesh Ch
50	Sai Rohitth Chiluka
42	Gaurav Pandey
29	Austin Riba
29	Priyansh Garg
20	Jai soni
18	Priyam Seth
13	Yogesh Sirsat
12	Sayam Samal
10	AEsping
10	Adam Birds
10	Guillaume Grossetie
9	Ashwat Kumar Singh (NerdyLucifer)
9	Gilbert Bishop-White
8	BIKI DAS
8	N-Shar-ma
8	Palash Raghuwanshi
8	Shlok Patel
6	Hemanth V. Alluri
6	Julia Bichler
6	Puneeth Chaganti
5	Hashir Sarwar
5	Nikhil Maske
5	Rishabh Maheshwari (Rishabh-792)
5	Somesh Ranjan
5	Dishti-Oberai
4	AnushaNathRoy
4	Damian Parrino
4	Manan Rathi
4	Pradyumna Sinha
4	Rohitt Vashishtha
4	Sumanth V Rao
4	nooblag
4	strifel
3	Jonny Tran
3	Kevin Scott
3	My-Name-Is-Nabil
3	Parth
3	isakhagg
3	Alaa Abdelfattah
3	Nitish Kumar
3	Kaustubh Nair
3	mounilKshah
2	Adam Benesh (AdamVB)
2	Alex Dehnert
2	Andrew McAfee
2	Erik Tews
2	Johan Ehinger
2	Kartik Srivastava
2	Lorenzo Milesi
2	Mr.mad
2	RISHABH SIDANA
2	Shelly
2	anurastogiji
2	byshen-dev
2	ditsuke
2	Evy Kassirer
2	manavdesai27
2	seiwailai
2	Shaurya Jain
2	SilentCruzer
2	srdeotarse
1	Abhishek Reddypalle
1	Aini-Alem Robertson
1	Allen Cao
1	Ankur
1	AnshVM
1	Arch0125
1	Archit Hadge
1	Aryaman
1	Carlos Bederian
1	Christalee
1	Damián Parrino
1	Emilio López
1	EmmalineLake
1	Iam-VM
1	Joe Eli McIlvain
1	Jordan Rob Byamugisha
1	Junchen Liu
1	Kartik Soneji
1	Kerry Jackson
1	Ketan1502
1	Lefteris Kyriazanos
1	Matt Keller
1	Morgan Njaw
1	Nipunn Koorapati
1	Pankaj Patil
1	Philipp Seßner
1	Raghav Luthra
1	Rahul Gurung
1	Robert Imschweiler
1	S-Abhishek
1	SantamRC
1	Sean Yuan
1	Shantanu
1	Sharif Naas
1	Shubh Gupta
1	Siddharth Asthana
1	Simmo Saan
1	Soumyajyoti Dey
1	Swati Bhageria
1	alguimo
1	ericluoliu
1	iampranavdhar
1	kraktus
1	odunybrad
1	optimm
1	prashantpaidi
1	ryanreh99
1	shanukun
1	slefforge
1	tushar912
1	Divyanshu Agrawal
1	Jumeb
1	lennart
1	somena1
1	Gus Hahn-Powell
1	Jens Willmer
1	Maarten de Waard
1	LoopThrough-i-j
1	anehls93
1	Elijah Froment
1	Fredrik Ekre
1	Preet Mishra
1	kingjuno
1	Gabriel Scherer
Commit range 4.0..5.0 corresponds to 2021-05-13 to 2022-03-29
4411 commits from zulip/zulip: 4.0..5.0
1984 commits from zulip/zulip-mobile: 5fd977ae9830..a3dcf787bee2
407 commits from zulip/zulip-terminal: d0307feeb58a..b1189d89f04b
105 commits from zulip/zulip-desktop: 9f76fb295e4f..27576c95e6e6
81 commits from zulip/python-zulip-api: dda9e0a63851..d26416a1e79f
63 commits from zulip/zulipbot: a68d0db8731d..e104f2a336b4
26 commits from zulip/docker-zulip: 39c7a94be5f1..5ca15b51c783
25 commits from zulip/zulip-archive: 01f6144f81f4..7c772a65b1dd
16 commits from zulip/github-actions-zulip: 0ac0e68c644a..f8e411e710f5
2 commits from zulip/zulint: 6cc46d239067..80a613cca5ec
1 commits from zulip/zulip-zapier: 3affd9174d3d..0ce51159b47d
Excluded 18 commits authored by bots.
7103 total commits by 156 contributors between 4.0 and 5.0.

Note: This section was edited on 2022-11-16 to include 42 commits that were incorrectly not counted in the original version.