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.
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.
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.
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.
The emails sent by Zulip are more consistent, readable, and visually interesting.
- 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.
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.
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.
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