Major releases, Release announcements

Zulip 10.0: Organized chat for distributed teams

Tim Abbott 16 min read

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

Zulip is an open-source team chat application designed for seamless remote and hybrid work. With conversations organized by topic, Zulip is ideal for both live and asynchronous communication. Zulip’s 100% open-source software is available as a cloud service or a self-hosted solution, and is used by thousands of organizations around the world.

Zulip Server 10.0 is a major release, with over 5,200 new commits merged across the project since the 9.0 release in July 2024. Notable new features include flexible permissions management, a new “general chat” experience for messages without a topic, fine-grained font size and line spacing options, and much more! A total of 121 people contributed commits to Zulip since the 9.0 release, bringing the project to over 1,500 code contributors. Zulip is remarkable for its number of major contributors, with 94 people who’ve contributed 100+ commits.

Huge thanks to everyone who’s contributed to Zulip over the last several months, whether by writing code and documentation, reporting bugs, suggesting features, 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 news and updates for the project as a whole since the 9.0 release last July:

Apps

The Zulip mobile apps for Android and iOS reached a major milestone in December: the general beta release of the next-generation Zulip mobile app, built with Flutter. The Zulip core team has been using the new app almost exclusively for months, and it’s a major upgrade — much faster, a fresh new design, and full multi-account support. If you use Zulip on mobile, we hope you’ll try switching over (don’t worry, you can keep the non-beta app installed just in case) and let us know what you think.

Zulip Desktop 5.12.0 was released last week. New versions of the desktop app often contain important security or OS compatibility fixes from the upstream Chromium project. To keep your app secure, be sure to leave automatic updates enabled (on by default), or promptly upgrade after new security releases.

Zulip Terminal added support for collaborative to-do lists.

Learning about Zulip

  • In the course of working on Zulip, we’ve talked to hundreds of people about the team communication apps they use. We’ve distilled our understanding into a guide on choosing the best team chat app for your business. It’s the advice we’d give to a friend asking how to choose a SaaS team chat app.

  • A new case study describes how Zulip makes it easy for the Rush Stack community to provide support for mission-critical enterprise tools.

    “Of all the apps I tested, Zulip’s approach stood out as the best fit for how we work.”

    Rush Stack maintainer Pete Gonzalez

  • Zulip is in the top 5 highest-rated products for its category on review sites like Capterra, AlternativeTo, and SoftwareReviews. Thanks to our amazing user community for sharing your experience with Zulip!

  • You can listen to an hour-and-a-half interview with Zulip’s head of product on The Changelog podcast: “We talk about Zulip’s origins, how it’s open source, the way it’s led, no VC funding, what makes it different/better, how you can self-host it or use their cloud, moving to Zulip, contributing and being a part of the community…all the things.”

  • Check out the 2024 year in review blog post for some fun facts and highlights.

Mentorship

2024 was the ninth consecutive year that Zulip participated in Google Summer of Code, and our 17 GSoC 2024 participants built many of the features described in this post. We’re delighted that many have continued as major contributors since the end of the official program, and are looking forward to welcoming the next cohort of GSoC participants this summer.

“Seeing code authored by me get merged upstream and used by thousands of users is a feeling I find hard to articulate well — it is to be experienced firsthand.”

Kislay U. Verma, Google Summer of Code 2024 participant

Our blog post on how to make reviewing pull requests a better experience was featured on OpenSource.net.

Sponsorships

We proudly sponsor free Zulip Cloud Standard hosting for more than 1,500 open-source projects, non-profits, educational institutions, and academic research groups. All eligible organizations are encouraged to join this program, or sign up for the Community plan for self-hosted organizations.

Release highlights

This section gives an overview of the major features and improvements in Zulip Server 10.0.

Alongside these major changes, this release contains hundreds of refinements beyond what can be described here, including design improvements throughout the UI.

We believe that getting the little details right makes a big difference in a product that’s so central to people’s daily work. To make Zulip a joy to use, we relentlessly fine-tune the user experience, and consider it a priority to investigate and fix even minor bugs.

Flexible permissions management with roles and user groups

In this release, we’re rolling out a new, incredibly flexible system for permissions management. With it, you can:

  • Configure the permissions you want, granting them to any combination of roles (e.g., Moderators), groups, and individual users. For example:
  • Express your organization’s structure with groups, which now can include other groups, in addition to individual users. For example, the managers group could be made up of engineering-managers, design-managers, etc.
  • Decide how to manage each channel: centralized, self-managed, or anywhere in between.

Check out this walkthrough of how to start using the new functionality to make it easier to manage your organization, and see below for a detailed look at the new settings.

If you’re an engineer, you may be interested in the deep-dive into how we seamlessly transitioned thousands of organizations to a group-based permissions system in a performance-sensitive application.

New “general chat” experience for messages without a topic

Zulip’s topics help you keep conversations organized, but not everything has to be organized. You might:

  • Have a one-off request or social chatter you don’t plan to refer back to.
  • Have a low-traffic channel that doesn’t require another level of organization.
  • Feel uncertain about starting a topic as someone who’s new to Zulip.

In these kinds of situations, you can now send messages to a special “general chat” topic simply by not entering a topic name. The “general chat” topic is labeled in italics, and the label is translated into each user’s language.

Organization administrators can configure whether topics are required in channel messages.

Fine-grained font size and line spacing options

You can now choose from a wide range of font size and line spacing options, to make the Zulip interface feel most comfortable for you. These options give you finer control than zooming in and out with your browser.

Improved user list

  • The user list now has a dedicated section that shows recent participants in the conversation you’re viewing.
  • There’s a new option to show avatars in the user list, which can be configured directly from a menu in the sidebar.
  • Availability indicators now have a more modern look, and there are a number of other design improvements.


Linking to Zulip from anywhere:

Linking within Zulip:

Improved experience for composing messages

  • You can now save snippets of message content that you can quickly insert into the compose box.
  • Newly added “New topic” and “New direct message” buttons in the left sidebar make it convenient to start a new conversation from wherever you are.
  • It’s now simpler to create a collaborative to-do list, using a new compose box widget.
  • A new “Forward message” option makes it easy to forward a message (or a selected part) to another conversation.

Improved reading experience

  • When you go to a new view, it now loads almost instantly in the vast majority of situations, due to improvements in how the web and desktop apps process and store messages.
  • You’ll now see a typing notification when someone is editing a message, not just when they are writing a new message.
  • You can now see long channel descriptions in full by hovering over the description in the navbar at the top of your view. This is especially handy for descriptions used to pin links to docs, key topics, etc.
  • Long topic names are now shown on two lines in the left sidebar.

Improved user onboarding

Powerful group management options

Convenient channel management

Integrations

  • A new Server to Server OAuth Zoom integration makes it convenient for self-hosted servers to set up calling under Zoom’s current App Marketplace policies.
  • The BigBlueButton calling integration now supports voice-only calls, in addition to video calling.
  • When sending Zulip messages from your email, you can now configure whether the sender will be the Email Gateway bot, you, or a bot you own.
  • We’ve added integrations with Airbyte and Onyx, and improved the GitHub, GitLab, GoCD, Linear, NewRelic and Slack integrations.
  • Git integrations (e.g., GitHub, GitLab, etc.) now let you configure which branches you’ll receive notifications from directly in the UI for generating the webhook URL. You can also decide whether to exclude notifications from private GitHub repositories.
  • Setup instructions for dozens of integrations have been updated and simplified.

AI integrations

This release includes a beta topic summarization feature, which self-hosted organizations can set up with a model of their choice. This feature is not yet available on Zulip Cloud.

Server

  • Zulip now supports uploading arbitrarily large files using the TUS chunked-upload protocol. To allow larger uploads on your server, update the MAX_FILE_UPLOAD_SIZE setting.
  • The presence synchronization protocol has been optimized to use dramatically less network and CPU resources in large organizations.
  • You can now configure whether users in your organization can edit custom profile fields for their own account. For example, you may want to restrict editing fields that you sync from an employee directory.
  • You can now sync user roles with the SCIM integration.
  • Personal Microsoft accounts are now supported in the Microsoft Entra ID (formerly AzureAD) authentication backend.
  • When installing a new Zulip server, you can now decide whether to automatically register it for the Mobile Push Notification Service. There’s also a new automated flow for transferring a domain’s registration to a new server, even if the secrets have been lost.

Upgrading

We highly recommend upgrading to Zulip Server 10.0 to take advantage of the hundreds of improvements in this release.

We work hard to make sure that the upgrade process Just Works. If you have any questions or problems with your upgrade process, best-effort community support is available in the Zulip development community. For professional support, upgrade to Zulip Business, or reach out to sales@zulip.com.

Zulip Cloud is always up to date with the latest Zulip improvements.

Product roadmap

We’re continuing to focus on improving the design of the Zulip web app, and shipping a next-generation mobile app for Android and iOS.

We use project boards to publicly track goals for major server and mobile releases. These boards are updated on an ongoing basis as priorities evolve, and many community improvements integrated into Zulip are never specifically tracked as release goals.

Release schedule

This release is coming out about eight months after the Zulip Server 9.0 release last July. That’s longer than we initially planned, as we delayed this release in order to complete a smooth transition to the new flexible permissions management with groups. We’re targeting a shorter interval for the next major release, which is expected in July 2025.

New mobile app

The new Flutter-based mobile app will roll out to all users when it’s ready to exit beta. We’re now implementing a few remaining critical features, and plan to do the rollout in the next few months.

Community

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

If you appreciate Zulip, please recommend it to someone you know, for work or any other collaborative endeavor. If they say that Zulip won’t work for them, let us know why! Your feedback is a vital part of how we design and prioritize improvements to Zulip.

— Tim Abbott, Zulip project leader

P.S. We’re hiring! If you know an awesome go-to-market leader with startup experience or an amazing designer, please send them our way.


Non-code contributions

Our community translators have been hard at work keeping up with the product as it evolves. This release features translations that cover the majority of non-error strings in 25 languages.

We would like to thank the following folks for their non-code contributions. Please fill out this form if you’d like your name to be added, and keep an eye out for future announcements to get listed next time.

  • Andrea Soc (Italian translation; feature suggestions including saved snippets, always showing a filter box in the user list, resolved topics, sorting recent conversations by message count)
  • Arusekk (Polish translation)
  • Breno Peres
  • Flammie A Pirinen
  • Ghazi Triki (Upgrade process debugging)
  • Lev Shereshevsky (Russian translation)
  • Pavel Fric (Finnish translation)
  • soappp (Japanese translation)
  • Yidan Wang (Chinese Simplified translation)

Code contributions

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

$ ./tools/total-contributions 10.0
438	Greg Price
422	Evy Kassirer
363	Anders Kaseorg
310	Karl Stolley
295	Sahil Batra
292	Aman Agrawal
245	Alex Vandiver
242	Shubham Padia
240	Zixuan James Li
230	Prakhar Pratyush
216	Tim Abbott
209	Chris Bobbe
208	Lauryn Menard
174	Alya Abbott
131	Sayam Samal
103	Niloth P
88	Rajesh Malviya
81	Mateusz Mandera
64	Maneesh Shukla
63	Apoorva Pendse
55	PieterCK
49	Sanchit Sharma
45	Steve Howell
44	Kunal Sharma
41	Pratik Chanda
37	Kumar Aniket
34	Varun Singh
32	Khader M Khudair
31	Sayed Mahmood Sayedi
29	Harsh Meena
28	Kislay Verma
27	Aman Vishwakarma
25	Saubhagya Patel
24	afeefuddin
19	Rohan Gudimetla
18	Aditya Kumar Kasaudhan
16	Joseph Ho
14	Bedo Khaled
14	Kenneth Rodrigues
14	Sourabh Patel
11	Harsh Bansal
11	Ujjawal Modi
10	Sujal Shah
10	lakshya1goel
9	Aditya Chaudhary
9	Adnan Shabbir Husain
9	Vishesh Singh
9	Sashank Ravipati
7	Emil Grehn
6	Tanmay Kumar
6	ubaidrmn
6	Hanson
6	Mikael Schirén
5	ahmedgulabkhan
5	Gaurav-Kushwaha-1225
3	Anushrut pandit
3	Jaimin Godhani
3	Kartikay Sambher
3	Ritwik Patnaik
3	kash2104
3	Tomlin7
2	Abhay Upadhyay
2	Gunnar Samuelsson
2	ImDooMLorD
2	Jitendra Kumar
2	Klara Brrettby
2	Vivek Tripathi
2	Vlad Korobov
2	qnhn22
2	K Akhil
2	Rishi Chirchi
2	Shivansh Sharma
2	chimnayajith
2	Guspan Tanadi
2	neiljp (Neil Pilgrim)
1	AJ Kerrigan
1	Aarya Patil
1	Abel Abate
1	Alex Dehnert
1	Aravind
1	Benjamin Masters
1	David Flanagan
1	Giovanni Silva
1	Ikko Eltociear Ashimine
1	Inge
1	Jenna Jaehnig
1	Johan Nilsson
1	Kartikay Nusture
1	Lalit Kumar Singh
1	Nehal Sharma
1	Niamh
1	Nicklas Steen
1	Pierre Carru
1	Quan Nguyen
1	Rahul Rajesh Kumar
1	Simon Michalke
1	Yaswanth Kosuru
1	aniebietafia
1	arthurzengg
1	bao-qian
1	codewithnick
1	crab
1	debghs
1	dinesh-gaire
1	lumpleme
1	minhphung152
1	oscar
1	shivam_sharma
1	swayam0322
1	LongCatIsLooong
1	Sam Rawlins
1	Victor Sanni
1	Yash Kumar
1	Alessandro Ogier
1	Florent Lévigne
1	Igor Loskutov
1	Isaac van Bakel
1	sev
1	mpagler
1	Chris
1	Gabriel Scherer
Commit range 9.0..main corresponds to 2024-07-25 to 2025-03-20
4019 commits from zulip/zulip: 9.0..main
1040 commits from zulip/zulip-flutter: c17dd0efd192..2117fe176aa7
49 commits from zulip/docker-zulip: ef3a379351cf..619cf223537b
33 commits from zulip/zulip-mobile: 2217c858e207..4d9d46d7f852
33 commits from zulip/zulip-desktop: 92260b0f97b5..15902e51f6ce
20 commits from zulip/python-zulip-api: e9d8ef3b272c..8c273311de70
23 commits from zulip/zulip-terminal: 743db7d8d0ef..23a773c387ed
3 commits from zulip/zulip-js: db9b0e4f7535..cee33876ce49
1 commits from zulip/zulint: a070f3a349bc..9be0a32bf75a
1 commits from zulip/zulip-archive: 5ff607209cbd..663518053b8f
Excluded 1 commit authored by bots.
5221 total commits by 121 contributors between 9.0 and main.