Major releases, Release announcements

Zulip 7.0: Threaded open-source team chat

Tim Abbott 15 min read

We’re excited to announce the release of Zulip Server 7.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 7.0 is a major release, with over 3800 new commits merged across the project since the 6.0 release last November. Notable new features include scheduled messages, unmuting topics in muted streams, many design improvements, and much more!

A total of 107 people contributed commits to Zulip since the 6.0 release, bringing the project to over 1200 code contributors. Zulip is remarkable for its number of major contributors, with 80 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 6.0 release last fall:

Customer stories

  • Our website now features the story of how the End Point Dev software consultancy uses Zulip to manage hundred of projects at once. End Point uses a variety of chat tools picked by their clients, from Slack and Teams, to Google Chat and Skype. Having experienced the whole gamut of options, Zulip is the clear winner for End Point’s internal communication.

    “Zulip removes much of the pain that makes people not want to use team chat apps. We love it.”
    — Jon Jensen, CTO of End Point Dev [customer story]

  • We also shared the story of how the startup Atolio built a transparent communication culture with Zulip.

    “In Slack, two thirds of communication is not in public just to avoid noise… Zulip lets us have conversations in public, not behind closed doors.”
    — Gareth Watts, co-founder and CTO of Atolio [customer story]

  • We have rewritten the page on our website that explains how Zulip’s unique topic-based threading model helps teams communicate more effectively, incorporating the experiences that so many of our users have generously shared with us.

  • Our year in review blog post highlights some stats from 2022, including the most popular emoji on Zulip Cloud. You can also learn about Zulip’s most underused features (and give them a try!).

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:

In addition to all our work on the existing apps, we’ve started a prototype of a next-generation Zulip mobile app in Flutter. We are hiring for that project; if the role sounds like it would be a good fit, we’d love to hear from you.

Zulip Terminal updates since the Zulip Server 6.0 release include better topic autocomplete, as well as many improvement to user documentation.

Reviews and interviews

Sharing your experience with Zulip on product comparison websites helps others decide whether Zulip is the right tool for them. If you would like to leave your feedback (good or bad) on G2, Software Advice, or other sites you use, we’d really appreciate it!

Mentorship

Our community is fully committed to helping bring up the next generation of open-source contributors. 2023 is the 8th consecutive year that Zulip is participating in Google Summer of Code, and even though the program has yet to officially begin, the 7.0 release includes numerous contributions by this year’s cohort. We can’t wait to see what our thirteen GSoC 2023 participants accomplish this summer!

“Today marks my 8-month milestone of contributing and being active in the community. Through this beautiful journey, I have learned a lot from experienced developers and the community, and I just love contributing to this community. I couldn’t have asked for a better organization ❤️.”
— Palash Baderia, Google Summer of Code 2023 participant

Sponsorships

We proudly sponsor free Zulip Cloud Standard hosting for about 1200 open-source projects, non-profits, educational institutions, and academic research groups. All eligible organizations are encouraged to join the program!

Release highlights

The major features and improvements described below are the tip of the iceberg of all the work that goes into a major Zulip release. We dedicate a lot of attention to the little things that help make Zulip a joy to use, such as fine-tuning common interactions, investigating and fixing hundreds of minor bugs, clarifying the UI and the API, etc. Even if you aren’t looking for new features, each major Zulip Server release offers a significantly better overall experience.

Redesign

The biggest news for this release is that Zulip is midway through a major visual redesign. The redesign is intended to give the app a clean, modern look, while preserving and enhancing Zulip’s highly efficient interaction design. Key changes in this release include:

  • New background colors help you focus on the messages you’re reading.

  • Fully colorized message header bars make it easier to tell which stream you’re viewing.

  • Messages with a personal mention are highlighted in a different color than group or wildcard mentions, and your name is bolded to stand out when you are mentioned.

  • The divider lines showing dates have been streamlined, so you can always see at a glance when all the messages on your screen were sent.

  • Banners in the compose box have been redesigned with a fresh look, and special formatting has been added for keyboard shortcuts noted in tooltips.

New and improved workflows

  • You can now schedule a message to be sent at a later time. For example, if you are working outside of your teammates’ regular business hours, you can schedule a message for tomorrow morning to avoid interrupting their evening.
  • Zulip has long offered the option to mute streams to avoid receiving notifications for messages you are not interested in. You can now unmute a topic within a stream you have muted. This makes it convenient to pay attention to discussions you care about in a stream you usually don’t watch closely.
  • We’ve streamlined how you change the recipients for a message you’re composing. You can now choose a stream from a convenient picker, and even switch between composing a stream message and a direct message without closing the compose box.
  • You can now configure whether Zulip will automatically mark messages as read when you view them. For example, with the configuration that automatically marks messages as read only in conversation views, you can skim All messages while leaving all your messages marked as unread, to later go through them one conversation at a time. For full control, you can set Zulip to only mark messages as read manually.

New keyboard shortcuts

Zulip is designed to be just as easy to navigate with its ergonomic keyboard shortcuts as it is with the mouse.

  • This release adds a new shortcut (z) that lets you zoom to a message in the context of its conversation. For example, you can use z to jump to the full context for a search result.
  • The s shortcut now takes you directly to the conversation the selected message was sent to. If you are already there, it navigates you to the view showing the entire stream. This removes the need to remember separate Shift + s and s shortcuts for these actions.
  • In addition to the existing + shortcut for reacting to a message with 👍, you can now use = to toggle the first emoji reaction on a message. For example, = will add your 👋 to the message below.

Improved tools for managing an organization

  • The permissions settings for moving messages have been redesigned for clarity and flexibility. You can now configure who can move messages, and for how long, independently from message editing permissions.
  • To make it easier to manage users, you can now open a user card by clicking on the user’s name in the settings and stream subscriber menus.
  • Compliance exports now have added flexibility. You can choose between JSON and CSV formats, and there are new options to filter by message recipient, and to specify whether attachments should be included in the export.
  • In addition to configuring who can add subscribers to a stream, you can now configure permissions for removing other users as well.

Better new-user experience

  • To better match terminology familiar from other apps, “private messages” have been renamed to “direct messages” across the Zulip app, including updated search filters.
  • The help center now includes documentation for how to complete many common tasks in the Zulip mobile apps. Many other instructions have also been updated for clarity and completeness.
  • To make getting started with Zulip as smooth as possible, we have rewritten the email that introduces users to streams and topics, and added an email linking to guides for each type of organization. Also, the contact information provided in emails now makes clear to users in self-hosted organizations that they’re reaching out to their Zulip server administrators, and not the Zulip team.

More user experience improvements

  • A new privacy option lets you configure who can see the email address you use to log into Zulip. Your personal configuration overrides the default set by organization administrators. For example, maintainers of an open-source project can now easily share their emails with each other, while keeping the emails of other community members private by default.
  • To make the experience of catching up on your messages more convenient, the left sidebar now shows more direct message conversations, and more topics in the selected stream.
  • To help avoid mistakes, there are now additional confirmation dialogs for actions deserving caution, including marking all messages as read, removing the last user from a private stream, and disabling all notifications for direct messages.

Integrations

  • We have added a native webhook integration for Rundeck.
  • The GitHub integration has been improved to clearly communicate relevant information across event types, for example by avoiding repeating the entire pull request description in certain events.
  • This release adds support for JWT authentication, enabling deep integrations with other applications that need to access the Zulip API on behalf of users.
  • Zulip’s SAML integration now supports application-initiated SAML Single Logout, in addition to the existing identity-provider-initiated SAML Single Logout.

Server

  • This release adds support for the upcoming Debian 12 release.
  • Zulip now supports PostgreSQL 15 as the database. This release also removes support for PostgreSQL 11 due to its approaching end-of-life.
  • For servers that use the S3 file storage configuration, files are now downloaded to the server, cached, and served to clients from there, instead of clients fetching them directly from S3 themselves. This increases bandwidth requirements for the Zulip server, but greatly reduces the bandwidth requirements for Zulip clients by allowing them to cache the files correctly.
  • Front-end JavaScript error reporting has been rewritten to use Sentry, which provides much better support for aggregating and filtering client-side exceptions than the previous custom system.
  • Administrators can add configurable hooks which are run when upgrading the Zulip server — for example, sending a Zulip message describing the newly-deployed commits.
  • This release upgrades many third-party dependencies, including to Django 4.2 LTS.

Internationalization

  • Our community translators have been hard at work keeping up with the product as it evolves. This release features a total of 27 languages with translations that cover the majority of non-error strings.
  • This release fixes several issues involving incorrect internationalization of dates and times, as well as an issue where some strings in email notifications were not translated correctly.

Upgrading

We highly recommend upgrading to Zulip Server 7.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

This release features many improvements in the design of the Zulip web app, and redesign efforts will continue to be a major priority in the coming months. Check out issues tagged with the “redesign” label to see where we’re headed, and join the conversations in the Zulip development community to offer feedback.

We are also working on features that will make communication even more efficient with Zulip, including making it possible to follow a topic of interest, and bringing the Inbox view that mobile-app users are familiar with to the Zulip web app.

Release schedule

This release is coming out about six months after the Zulip Server 6.0 release in November 2022, which we think is a better cadence compared to the eight-month gap between Zulip 5.0 and Zulip 6.0. We are targeting roughly the same six-month interval for the next major release, which is expected towards the end of the year.

Community

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

  • Feedback from our users is a key part of how we improve the product and prioritize what features to build. If you use Zulip, we would really appreciate a few minutes of your time to fill out this survey to share your ideas. You can also come by for a chat in the development community where we design Zulip.
  • We love working with users to share their stories — contact us at support@zulip.com if you are interested!
  • Review Zulip on product comparison websites, such as G2 or Software Advice. Sharing your experience with Zulip (good or bad) helps others decide whether Zulip is the right tool for them.
  • Support Zulip financially on GitHub Sponsors, Patreon, or Open Collective.
  • Take a look at more ways to help out. :)

Thanks again to the amazing global Zulip development community for making this possible!

—Tim Abbott, Zulip project leader

What follows is a summary of the commits contributed to Zulip during the 7.0 release cycle.

$ ./tools/total-contributions 6.0 7.0
483	Chris Bobbe
403	Greg Price
364	Alex Vandiver
343	Anders Kaseorg
292	Sahil Batra
232	Aman Agrawal
212	neiljp (Neil Pilgrim)
204	Lauryn Menard
171	Tim Abbott
87	Evy Kassirer
84	David Rosa
82	Alya Abbott
69	Karl Stolley
69	Mateusz Mandera
65	Hardik Dharmani
53	Joseph Ho
51	Daniil Fadeev
51	Satyam Bansal
48	Lalit Kumar Singh
48	Zixuan James Li
46	Prakhar Pratyush
45	N-Shar-ma
41	Palash Baderia
29	Josh Klar
24	Ujjawal Modi
18	Sayam Samal
14	m-e-l-u-h-a-n
14	Israel Galadima
13	Abhijeet Prasad Bodas
12	AcKindle3
12	Danny Su
12	SameepAher
11	Brijmohan Siyag
10	Lakshay Mittal
9	Akarsh Jain
9	Sahil Singh
8	Vishwesh Pillai
6	rht
5	Ganesh Pawar
4	Adarsh Tiwari
4	Hemant Umre
4	Joseph Hughes
4	Julia Bichler
4	Kartik Srivastava
4	Akash Dhiman
3	Josh Yap
3	Sebastian Noack
3	Progyan
2	Anna Larsson
2	Deekshith S Shetty
2	Duncan
2	Ishita Gupta
2	Manas Jayaswal
2	Ningxi Zhang
2	Pranav2612000
2	Rohitt Vashishtha
2	Steve Gattuso
2	Steve Howell
2	Yash RE
2	alik-balika
2	aparna-bhatt
2	nzai
2	Brandon Ngoran Ntam
2	AUX
2	i-ky
2	Sushmey
1	Alessandro Toppi
1	Clara Gallon
1	Dhruv Gupta
1	Elizabeth Funk
1	Haridarshan Choudhary
1	Ilikepizza2
1	Ishaan Singh
1	Josiah Kievit
1	Pranav Joglekar
1	Prashant Vithani
1	Praveen Kumar
1	Rebeca Carvalho
1	Rein Zustand (rht)
1	Riken Shah
1	Rixant Rokaha
1	Ruchir Harbhajanka
1	Tanmay Munjal
1	Toyam Cox
1	Tran Sang
1	Ujjwal Aggarwal
1	Yuri Sulyma
1	atharmohammad
1	khadeom
1	mustafa0x
1	oribe1115
1	petercabra
1	Eli Zevin
1	Sam Wight
1	fwcd
1	Adarsh PK
1	Lorenzo Milesi
1	Matt Keller
1	maltokyo
1	Aarav Arora
1	AmeliaTaihui
1	Kelp710
1	Rohitth
1	Subhasish-Behera
1	Wladimir Ramos
1	Pranas Ziaukas
1	Eric Wieser
Commit range 6.0..7.0 corresponds to 2022-11-17 to 2023-05-31
2610 commits from zulip/zulip: 6.0..7.0
515 commits from zulip/zulip-mobile: 2fd106158055..c979530d6804
370 commits from zulip/zulip-flutter: (start)..21cca5bbc580
246 commits from zulip/zulip-terminal: 3c7a66022a37..bef2a8fb7e12
64 commits from zulip/zulip-desktop: 544d23ec09c0..7fba8cfae92d
30 commits from zulip/github-actions-zulip: f8e411e710f5..b62d5a0e48a4
24 commits from zulip/docker-zulip: 65f33b502fec..72828ae07693
7 commits from zulip/python-zulip-api: 4a3d225a3863..5b2b0617a6c5
7 commits from zulip/zulip-archive: 86efe95a5901..be1c1661ba4a
2 commits from zulip/zulipbot: 18a0a5bfcef6..d0bee679bf3c
Excluded 16 commits authored by bots.
3859 total commits by 107 contributors between 6.0 and 7.0.