Zulip 7.0: Threaded open-source team chat
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.
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:
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!).
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 Zulip Server 7.0 features, notably unmuting topics in a muted stream.
- More and better options for attaching files and images: attaching multiple images at once, attaching arbitrary files on iOS (already supported on Android), and combining text with attachments.
- Quote and reply, more results in search, better troubleshooting for missing notifications… and lots of other improvements, including many fixed bugs.
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
- Zulip now has over 100 reviews on Capterra! Our 4.8 star rating beats out reviews for other team chat apps like Slack and Microsoft Teams, and has earned Zulip “Best value” badges for Internal Communications and Collaboration software.
- If you are curious to learn about Zulip’s history, our goals for the product and how we approach its design, Zulip’s engineering philosophy, and more, check out this long-form interview with Tim, Zulip’s founder and project leader.
- Zulip has garnered a number of video reviews in the last few months, with reviewers describing the product as a privacy friendly open-source alternative, and asynchronous, open-source chat that’s better than Slack.
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!
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
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!
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.
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
zto jump to the full context for a search result.
sshortcut 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
sshortcuts 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.
- 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.
- 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.
- 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.
- 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.
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.
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.
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.
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 email@example.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.