Zulip has received a great deal of interest and attention since it was released as free and open source software by Dropbox. That attention has come with a lot of active development work from members of the Zulip community. From when Zulip was released as open source in late September 2015 through today (early November, 2016), more than 150 people have contributed over 1000 pull requests to the various Zulip repositories, the vast majority of which were submitted by Zulip’s users around the world (as opposed to the small core team that reviews and merges the pull requests).
In any project, there can be a lot of value in periodically putting together a roadmap detailing the major areas where the project is hoping to improve. This can be especially important in an open source project like Zulip, where development is distributed across many people around the world. This roadmap is intended to organize a list of the most important improvements that should be made to Zulip in the relatively near future. Our aim is to complete most of these improvements by February 2017 and then prepare a new roadmap then.
This document is not meant to constrain in any way what contributions to Zulip will be accepted; instead, it will be used by the Zulip core team to prioritize our efforts, measure progress on improving the Zulip product and hold ourselves accountable for making Zulip improve rapidly.
This roadmap is the best place for contributors to look for substantial projects that will definitely be of value to the community (if you’re looking for a starter project, see the guide to getting involved with Zulip).
We periodically update this roadmap by adding strikethrough to issues that have been resolved, but the linked GitHub issues are the most up-to-date source for that information.
Without further ado, below is the current Zulip roadmap.
There are 2 huge projects that Zulip is working on right now that are too big to have a coherent GitHub issue:
- We are working with a world-class designer on a major visual redesign of the Zulip webapp. This will dramatically improve the usability of the streams and settings UIs, and make the entire webapp feel like a modern web experience. We plan to make the first release containing this redesign Zulip 2.0, likely in early 2017.
- We are writing a new React Native iOS app for Zulip to replace the old iOS app. The new app is progressing rapidly, but is not yet feature complete. We expect it to be in the app store by the end of 2016.
Core User Experience¶
- Provide shorter UI/Keyboard sequence to edit the last message
- Better drafts management
Make clicking on desktop notifications renarrow properly
- Add pretty bubbles for recipients in the compose box
- Make right sidebar buddy list UI scale well to large teams
- Display stream descriptions more prominently
- Add support for managing uploaded files
The overall goal is to eliminate the few known issues where Zulip does not provide a seamless real-time sync experience.
This category focuses on issues users experience when installing a new Zulip server, setting up a new Zulip realm, or starting to use Zulip.
Production installation issues¶
Administration and management¶
Make list of allowed domains web-configurable Statistics display for realm and server administrators Keep track of which users added which realm emoji Add setting to enable any user to add new realm emoji Make realm filters web-configurable
- Improve administrative controls for managing streams
- Enhance the LDAP integration and make it web-configurable
- Add a SAML integration for Zulip
Scalability and performance¶
Scalability and performance are not currently major problems for Zulip; it already scales well to thousands of users and is significantly faster than proprietary alternatives. So, this is not a major focus area for the project.
- Add support for Zulip running purely on Python 3
- Automatic thumbnailing of uploaded images’ previews to save bandwidth
Upgrade Zulip to use Django 1.10. The patches needed to run Zulip were merged into mainline Django in Django 1.10, so this will mean we don’t need to use a fork of Django anymore.
- Upgrade and remove from codebase all unnecessarily vendored JS libraries
- Add support for changing users’ email addresses
Migrate from jslint to eslint
- Replace the slow closure-compiler based static asset toolchain
- Add support for building frontend features in something like React
While the Zulip server has a great codebase compared to most projects of its size, it takes work to keep it that way.
- Add support for 2-factor authentication on all platforms
- Add support for stronger security controls for uploaded files (The LOCAL_UPLOADS_DIR file uploads backend only supports world-readable uploads)
- Fix requirement to set a password when creating account via Google
- Add a retention policy feature that automatically deletes old messages
- Add UI for viewing and cancelling open Zulip invitations
Integrations and bots¶
Integrations are essential to Zulip. While we currently have a reasonably good framework for writing new webhook integrations for getting notifications into Zulip, it’d be great to streamline that process and make bots that receive messages just as easy to build.
Server/webapp support for mobile¶
To support a great mobile experiences, we need to make some improvements in the Zulip server.
- Finish releasing the Electron app to replace the old desktop app
- Support having multiple Zulip realms open simultaneously
These don’t get GitHub issues since they’re not technical projects, but they are important goals for the project.
- Expand the number of core developers able to do code reviews
- Have a successful season with Zulip’s Outreachy participants
Have a successful season with Google Code In.