zulip/docs/roadmap.md

15 KiB

Zulip 2016 Roadmap

Introduction

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 (mid-April, 2016), over 300 pull requests have been submitted to the various Zulip repositories (and over 250 have been merged!), the vast majority of which are submitted by Zulip's users around the world (as opposed to the small core team who review and merge 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 in 2016.

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, hold ourselves accountable for making Zulip improve rapidly, and celebrate members of the community who contribute to projects on the roadmap.

If you're someone interested in making a larger contribution to Zulip and looking for somewhere to start, this roadmap is the best place 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 occasionally update this roadmap by adding strikethrough for issues that have been resolved.

Without further ado, below is the Zulip 2016 roadmap.

Burning problems

The top problem for the Zulip project is the state of the mobile apps. The Android app has started seeing rapid progress thanks to a series of contributions by Lisa Neigut of Recurse Center, and we believe to be on a good path. The iOS app has fewer features than Android and has more bugs, but more importantly is in need of an experienced iOS developer who has time to drive the project.

Update: Neeraj Wahi is leading an effort on to write a new React Native iOS app for Zulip to replace the old iOS app.

Core User Experience

This category includes important improvements to the core user experience that will benefit all users.

Ease of setup and onboarding issues

This category focuses on issues users experience when installing a new Zulip server or setting up a new Zulip realm.

Internationalization

The core Zulip UI has been mostly translated into 5 languages; however, more work is required to make those translations actually displayed in the Zulip UI for the users who would benefit from them.

User Experience at scale

There are a few parts of the Zulip UI which could benefit from overhauls designed around making the user experience nice for large teams.

Administration and management

Currently, Zulip has a number of administration features that can be controlled only via the command line.

Scalability

Zulip should support 10000 users in a realm and also support smaller realms in more resource-constrained environments (probably a good initial goal is working well with only 2GB of RAM).

Performance

Performance is essential for a communication tool. While some things are already quite good (E.g. narrowing and message sending is speedy), this is an area where one can always improve. There are a few known performance opportunities:

Technology improvements

Zulip should be making use of the best Python/Django tools available.

Technical Debt

While the Zulip server has a great codebase compared to most projects of its size, it takes work to keep it that way.

Deployment and upgrade process

Security

Testing

Development environment

Documentation

Integrations

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.

Android app

The Zulip Android app is ahead of the iOS app in terms of feature set, so this section serves to document the goals for Zulip on mobile.

iOS app

Most of the projects listed under Android apply here as well, but it's worth highlighting some areas where iOS is substantially behind Android. The top priority here is recruiting a lead developer for the iOS app. Once we have that resolved, we'll expand our ambitions for the app with more specific improvements.

Desktop apps

The top goal for the desktop apps is to rebuild it in modern toolchain (probably Electron) so that it's easy for a wide range of developers to contribute to the apps.

  • Migrate platform from QT/webkit to Electron
  • Desktop app doesn't recover well from entering the wrong Zulip server
  • Support having multiple Zulip realms open simultaneously
  • Build an efficient process for testing and releasing new versions of the desktop apps

Community

These don't get GitHub issues since they're not technical projects, but they are important goals for the project.

  • Setup a Zulip server for the Zulip development community
  • Expand the number of core developers able to do code reviews
  • Expand the number of contributors regularly adding features to Zulip
  • Have a successful summer with Zulip's 3 GSOC students