Zulip 1.7: Open-source team chat
We’re excited to announce the release of Zulip Server 1.7, containing hundreds of new features and bug fixes.
Zulip is the world’s most productive team chat software, an alternative to Slack, HipChat, and IRC. Zulip combines the immediacy of chat with the asynchronous efficiency of email, and is 100% free and open source software.
Zulip 1.7 is our largest release yet, with 3675 new commits since June’s 1.6. About 100 people contributed commits to this release, bringing the Zulip server project to 349 distinct code contributors. Throughout 2017, Zulip has remained the most active open-source development community of any team chat software, by a wide margin.
Huge thanks to everyone who’s contributed to Zulip over the last few months, whether by writing code and docs, reporting issues, testing changes, translating, posting feedback on chat.zulip.org, 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, but lots of exciting work has happened outside the server codebase, too. Key highlights:
- Both a cloud-hosted Zulip, and support for on-premise installs, are now commercially available at zulipchat.com from Kandra Labs, a company one of us (lead developer Tim Abbott) founded to support Zulip, and which now employs many of the core developers. Hosting is free for fellow open-source communities.
- The new Electron desktop app is out of beta and replaces our legacy desktop apps.
- The new mobile app is in beta, and available in the Play Store as well as iOS’s App Store. We recommend users of the legacy Android app switch to the new, React Native-based app.
Release highlights
Describing all the improvements in a Zulip release has been an impossible task for our last few releases, and this one is no different. Below are just a few highlights.
Web
-
We’ve completely redesigned our onboarding process to explain Zulip, and especially topics, to new users.
-
We’ve built a beautiful new emoji picker with categories, a showcase, and much better data. Note the clean, underscore-free display!
-
Chinese (Simplified) and Japanese join Spanish, German, and Czech in having the user interface fully translated, in addition to partial translations for many other languages. We also fixed many small issues where strings weren’t tagged for translation.
-
Many pages have been redesigned to be easier to use and visually cleaner, including the settings pages and the user documentation at /help, /integrations, and /apps.
-
The emails sent by Zulip are more consistent, readable, and visually interesting.
Mobile support
- Zulip Server 1.7 adds several new APIs that are critical for mobile app performance and that let the app track unread messages. If you’re using the mobile apps at all (iOS or Android), you will definitely want to upgrade to Zulip 1.7.
- The iOS and Android apps can receive push notifications (configurable, naturally) for events like PMs and @-mentions. While Zulip Server 1.6 has basic support for these, 1.7 brings a new, clearer format to notifications, and gives each user more options for finer-grained control.
Backend and scaling
- Zulip now runs exclusively on Python 3. This is the exciting culmination of an 18-month migration effort! Look for a specific blog post on this soon.
- We’ve removed support for an uncommon legacy deployment model where a Zulip server served multiple organizations (“realms”) on the same domain. Installs with multiple realms now require each realm to have its own subdomain.
- We’ve added an automatic “soft deactivation” process, which dramatically improves performance for organizations with a large number of inactive users, without any impact on those users’ experience if they later come back.
- Zulip’s performance at scale has improved significantly. Performance now scales primarily with number of active users (not total users). As an example, chat.zulip.org serves 400 monthly active users and about 3500 total users, on one VM with just 8GB of RAM and a CPU consistently over 90% idle.
More
See the detailed changelog for dozens more notable changes. If you administer a Zulip server, we encourage you to read at least the list of added features at the top, since there are a number of useful new settings introduced in this release that you may want to take advantage of.
Upgrading
We highly recommend upgrading, since Zulip has made major improvements in the last few months. In particular, Zulip 1.7 is required to get the most out of recent versions of our iOS and Android apps. Though we generally keep the mobile apps compatible with older server versions, we’ll likely make an exception soon to have them require Zulip 1.7.
You can upgrade as usual by following the upgrade instructions. There are a few special notes on this release, which you can find in the upgrade notes section for this release in the changelog. Please read those notes before upgrading, especially if you have a lot of users.
Community
Zulip’s last few months have been incredible. We had a huge success with our 18 summer interns (most of them Google Summer of Code students), who are responsible for many of the highlights discussed above.
As a final note, I’d like to take this opportunity to advertise a few opportunities to contribute back to Zulip:
- Join the chat.zulip.org developer community, where we deploy the latest experimental features and design improvements. We love feedback from the Zulip user community, and have a few streams especially for that purpose.
- Translating! We’d love to get a few more languages to 100%, and contributors to edit existing translations are also very welcome. See our translating guide for information on how to get involved.
- Follow us on Twitter or join our announcement mailing list!
Thanks again to the amazing global Zulip development community for making this possible! What follows is a summary of the code contributors to this release, sorted by number of commits.
-Tim Abbott, lead developer
commit 74081ff2d522afae796dbbae289d89da37f7fdc5
tabbott@zaset:~/zulip$ git log --pretty="%an" 1.6.0..upstream/master | sort | uniq -c | sort -nr
804 Tim Abbott
396 Steve Howell
264 Brock Whittaker
255 Vishnu Ks
191 Aditya Bansal
181 Harshit Bansal
179 Rishi Gupta
170 Greg Price
151 Umair Khan
106 Vaida Plankyte
104 rht
101 Cory Lynch
88 Eeshan Garg
79 Jack Zhang
66 Robert Hönig
62 neiljp (Neil Pilgrim)
49 Joshua Pan
47 Yago González
47 Cynthia Lin
39 derAnfaenger
27 James Rowan
21 Vaibhav Singhal
21 Abhijeet Kaur
16 Pweaver (Paul Weaver)
13 Tommy Ip
13 Rohitt Vashishtha
12 Sarah Stringer
10 Durga Akhil Mundroy
8 Alena Volkova
7 sinwar
7 Sampriti Panda
7 Max Schaefer
7 Elliott Jin
7 Tejas Kasetty
6 Shubham Dhama
6 Preston Hansen
6 digi0ps
5 Supermanu
5 Mehanig
5 David Coleman
5 Akash Nimare
4 Shane Kearns
3 vbNETonIce
3 Rafid Aslam
3 kunall17
3 Alexander Trost
2 Shubham Gupta
2 Rhea Parekh
2 Priscilla
2 Nick Sweeting
2 Marco Matarazzo
2 Kir Chou
2 hollywoodno
2 Garvit Dewan
2 Franziska von der Goltz
2 David Taylor
2 Darshan Chaudhary
2 Alexis La Porte
2 Aastha Gupta
1 zeneli
1 Zac Pullar-Strecker
1 Yusei Tahara
1 YJDave
1 wizsid11
1 Vishwesh Jainkuniya
1 Srimukh
1 Sawant Shah
1 Sadjad Fouladi
1 Nikhil Kumar Mishra
1 Nalin Bhardwaj
1 Mohd Ali Rizwi
1 Maarten Rijke
1 Kiran Shahdadpuri
1 Kenji Okimoto
1 julianasobreira
1 Juliana Bacelar
1 Jason Michalski
1 invinciblycool
1 Hobson Lane
1 Feorlen
1 EdOverflow
1 Darren Fix
1 Daria Phoebe Brashear
1 cursiv
1 Anupam-dagar
1 Anna Liao
1 Anirudh Jain
1 amanharitsh123
1 Ali Rizwi
1 Aditya Ramesh
1 Abdul Qabiz
1 Aaron Tse