2019-09-12 21:45:16 +02:00
|
|
|
|
The Zulip core developers have decades of combined experience leading
|
|
|
|
|
and growing open source communities. We use Zulip to fashion the
|
|
|
|
|
day-to-day experience of being a part of our project. No other chat
|
|
|
|
|
product comes close to Zulip in facilitating contributor engagement,
|
2020-03-18 00:09:39 +01:00
|
|
|
|
facilitating inclusion, and making efficient use of everyone’s time.
|
2019-09-12 21:45:16 +02:00
|
|
|
|
|
2020-03-18 00:09:39 +01:00
|
|
|
|
If you haven’t read [why Zulip](/why-zulip), read that first. The
|
2019-09-12 21:45:16 +02:00
|
|
|
|
challenges with the Slack/Discord/IRC model discussed there are even
|
|
|
|
|
more important for open source projects:
|
|
|
|
|
|
|
|
|
|
* Open source contributors are scattered all over the world and in
|
|
|
|
|
every time zone. Traditional open source communication tools like
|
|
|
|
|
email, forums, and issue trackers work well in this context, because
|
|
|
|
|
you can communicate effectively asynchronously. A Slack community
|
2020-03-18 00:09:39 +01:00
|
|
|
|
is a bad experience if you’re rarely online at the same time as most
|
2019-09-12 21:45:16 +02:00
|
|
|
|
other members, and a result, Slack represents a huge regression in
|
|
|
|
|
the global inclusivity of open source projects.
|
|
|
|
|
* Most contributors and potential contributors have other fulltime
|
|
|
|
|
obligations and can only spend a few hours a week on an open source
|
|
|
|
|
project. Because catching up on history in an active Slack
|
|
|
|
|
organization is a huge waste of time, these part-time community
|
|
|
|
|
members cannot efficiently use their time participating in an active
|
2020-03-18 00:09:39 +01:00
|
|
|
|
Slack. So either they don’t participate in the Slack, or they do,
|
2019-09-12 21:45:16 +02:00
|
|
|
|
and their other contributions to the project suffer.
|
|
|
|
|
* Maintainers are busy people and almost uniformly report that they
|
|
|
|
|
wish they had more time to do focus work on their project. Because
|
|
|
|
|
active participation in Slack fundamentally requires constant
|
|
|
|
|
interruptions, maintainers end up making unpleasant choices between
|
|
|
|
|
participating in the Slack community (limiting their ability to do
|
|
|
|
|
focus work) or ignoring the Slack community (leaving it effectively
|
|
|
|
|
without their input and potentially unmoderated).
|
|
|
|
|
* Writing to a busy Slack channel often means interrupting another existing
|
|
|
|
|
conversation. This makes it harder for newer and shyer members to jump into
|
|
|
|
|
the community. Often this disproportionately affects groups already
|
|
|
|
|
underrepresented in open source communities.
|
|
|
|
|
* The lack of organization in Slack message history (and its 10K
|
|
|
|
|
message history limit) mean that users asking for help cannot
|
|
|
|
|
effectively do self-service support. This results in the community
|
|
|
|
|
answering a lot of duplicate questions.
|
|
|
|
|
|
|
|
|
|
The overall effect is that Slack is a poor communication tool for
|
|
|
|
|
projects that want to have an inclusive, global, open source community
|
|
|
|
|
and effectively retain volunteer contributors.
|
|
|
|
|
|
|
|
|
|
------------------------------------------
|
|
|
|
|
|
2020-03-18 00:09:39 +01:00
|
|
|
|
Zulip’s topic-based threading model solves these problems:
|
2019-09-12 21:45:16 +02:00
|
|
|
|
|
|
|
|
|
* Contributors in any time zone can send messages and expect to get a
|
|
|
|
|
reply and have an effective (potentially asynchronous) conversation
|
|
|
|
|
with the rest of the community.
|
2020-03-18 00:09:39 +01:00
|
|
|
|
* Zulip’s topic-based theading helps include part-time contributors in
|
2019-09-12 21:45:16 +02:00
|
|
|
|
two major ways. First, they can easily browse what conversations
|
|
|
|
|
happened while they were away from the community, and prioritize
|
|
|
|
|
which conversations to read now, skip, or read later (e.g. on the
|
|
|
|
|
weekend). Second, Zulip makes it easy for them to have public
|
|
|
|
|
conversations with participation from maintainers and other
|
|
|
|
|
contributors (potentially split over hours, days, or weeks as
|
|
|
|
|
needed), allowing them to fully participate in the work of the
|
|
|
|
|
community.
|
|
|
|
|
* Maintainers can effectively participate in a Zulip community without
|
2020-03-18 00:09:39 +01:00
|
|
|
|
being continuously online. Using Zulip’s [keyboard
|
|
|
|
|
shortcuts](/help/keyboard-shortcuts), it’s extremely efficient to
|
|
|
|
|
inspect every potentially relevant thread and reply wherever one’s
|
2019-09-12 21:45:16 +02:00
|
|
|
|
feedback is useful, and replying hours after a question was asked is
|
|
|
|
|
still a good contributor experience. As a result, maintainers can
|
|
|
|
|
do multi-hour sessions of focus work while still being available to
|
|
|
|
|
their community.
|
|
|
|
|
* Every contributor has their own space to start a conversation (we
|
|
|
|
|
recommend new contributors start a topic with their name as the
|
|
|
|
|
topic). Asking a question never has to be an interruption of another
|
|
|
|
|
conversation.
|
|
|
|
|
|
|
|
|
|
You can see this in action in our own
|
|
|
|
|
[chat.zulip.org](https://chat.zulip.org) community, which sends
|
|
|
|
|
thousands of messages a week. We often get feedback from contributors
|
2020-03-18 00:09:39 +01:00
|
|
|
|
around the world that they love how responsive Zulip’s project leaders
|
2019-09-12 21:45:16 +02:00
|
|
|
|
are in public Zulip conversations. We are able to achieve this
|
|
|
|
|
despite the project leaders collectively spending only a few hours a
|
|
|
|
|
day managing the community and spending most of their time integrating
|
|
|
|
|
improvements into Zulip.
|
|
|
|
|
|
|
|
|
|
Many communities that migrated from Slack, IRC, or Gitter to Zulip
|
|
|
|
|
tell us that Zulip helped them manage and grow an inclusive, healthy
|
|
|
|
|
open source community in a similar way. We hope Zulip can help your
|
|
|
|
|
community succeed too!
|
|
|
|
|
|
|
|
|
|
------------------------------------------
|
|
|
|
|
|
2020-03-18 00:09:39 +01:00
|
|
|
|
Below, we’ve collected a list of [Zulip features](/features) that are
|
2019-09-12 21:45:16 +02:00
|
|
|
|
particularly useful to open source communities.
|
2017-07-28 20:02:28 +02:00
|
|
|
|
|
2020-06-08 23:04:39 +02:00
|
|
|
|
### Free hosting at zulip.com.
|
2017-07-28 20:02:28 +02:00
|
|
|
|
|
2021-01-22 19:01:19 +01:00
|
|
|
|
Zulip sponsors free hosting for hundreds of open source projects,
|
|
|
|
|
supported by (and is identical to) zulip.com’s commercial
|
|
|
|
|
offerings. This offer extends to any community involved in supporting
|
|
|
|
|
free and open source software: development projects, foundations,
|
|
|
|
|
meetups, hackathons, conference committees, and more. If you’re not
|
|
|
|
|
sure whether your organization qualifies, send us an email at
|
|
|
|
|
support@zulip.com.
|
2017-07-28 20:02:28 +02:00
|
|
|
|
|
2020-03-18 00:09:39 +01:00
|
|
|
|
### Moderation suite.
|
2019-09-12 21:45:16 +02:00
|
|
|
|
|
|
|
|
|
Moderation is a big part of making an open community work. Zulip was built
|
|
|
|
|
for open communities from the beginning and comes with
|
|
|
|
|
[moderation tools](/help/moderating-open-organizations) out of the box.
|
|
|
|
|
|
2020-03-18 00:09:39 +01:00
|
|
|
|
### Open invitations.
|
2017-07-28 20:02:28 +02:00
|
|
|
|
|
|
|
|
|
Allow anyone to
|
2019-02-27 07:14:13 +01:00
|
|
|
|
[join without an invitation](/help/allow-anyone-to-join-without-an-invitation).
|
2019-04-14 06:03:49 +02:00
|
|
|
|
You can also link to your Zulip with a [badge](/help/linking-to-zulip)
|
2017-07-28 20:02:28 +02:00
|
|
|
|
in your readme document.
|
|
|
|
|
|
2020-03-18 00:09:39 +01:00
|
|
|
|
### Authenticate with GitHub or GitLab.
|
2017-07-28 20:02:28 +02:00
|
|
|
|
|
2020-02-11 23:13:09 +01:00
|
|
|
|
Allow (or require) users to authenticate with their [GitHub or GitLab
|
|
|
|
|
account](/help/configure-authentication-methods), instead of with a
|
|
|
|
|
username and password.
|
2017-06-19 00:47:02 +02:00
|
|
|
|
[github-auth]: https://github.com/zulip/zulip/blob/7e9926233/zproject/prod_settings_template.py#L112
|
|
|
|
|
|
2020-03-18 00:09:39 +01:00
|
|
|
|
### Import from Slack, Mattermost, or Gitter.
|
2018-07-25 05:35:49 +02:00
|
|
|
|
|
2019-09-12 21:45:16 +02:00
|
|
|
|
Import your existing organization from [Slack](/help/import-from-slack),
|
|
|
|
|
[Mattermost](/help/import-from-mattermost), or
|
2018-07-25 05:35:49 +02:00
|
|
|
|
[Gitter](/help/import-from-gitter).
|
|
|
|
|
|
2020-03-18 00:09:39 +01:00
|
|
|
|
### Syntax highlighting.
|
2017-07-28 20:02:28 +02:00
|
|
|
|
|
|
|
|
|
[Full Markdown support](/help/format-your-message-using-markdown), including
|
|
|
|
|
syntax highlighting, makes it easy to discuss code, paste an error message,
|
|
|
|
|
or explain a complicated point. Full LaTeX support as well.
|
|
|
|
|
|
2020-03-31 15:21:27 +02:00
|
|
|
|
If your community primarily uses a single programming language,
|
|
|
|
|
consider setting a default language for syntax highlighting.
|
|
|
|
|
|
2020-03-18 00:09:39 +01:00
|
|
|
|
### Permalink to conversations.
|
2017-07-28 20:02:28 +02:00
|
|
|
|
|
2019-09-12 21:45:16 +02:00
|
|
|
|
Zulip makes it easy to get a [permanent link to a
|
|
|
|
|
conversation](/help/link-to-a-message-or-conversation), which you can
|
|
|
|
|
use in your issue tracker, forum, or anywhere else. Zulip’s
|
|
|
|
|
topic-based threading helps keep conversations coherent and organized
|
|
|
|
|
so they are useful for posterity.
|
2017-07-28 20:02:28 +02:00
|
|
|
|
|
2020-03-18 00:09:39 +01:00
|
|
|
|
### Link from chat to issues.
|
2017-07-28 20:02:28 +02:00
|
|
|
|
|
|
|
|
|
Efficiently refer to issues or code reviews with notation like `#1234` or
|
|
|
|
|
`T1234`. You can set up any regex as a
|
2021-03-13 18:15:14 +01:00
|
|
|
|
[custom linkification filter](/help/add-a-custom-linkifier) for
|
2017-07-28 20:02:28 +02:00
|
|
|
|
your organization.
|
2017-06-19 00:47:02 +02:00
|
|
|
|
|
2020-03-18 00:09:39 +01:00
|
|
|
|
### Hundreds of integrations.
|
2017-06-19 00:47:02 +02:00
|
|
|
|
|
2017-07-28 20:02:28 +02:00
|
|
|
|
Get events from GitHub, Travis CI, JIRA, and
|
|
|
|
|
[hundreds of other tools](/integrations) right in Zulip. Topics give each
|
|
|
|
|
issue its own place for discussion.
|
2017-06-19 00:47:02 +02:00
|
|
|
|
|
2020-11-20 08:22:15 +01:00
|
|
|
|
### Mirror IRC, Matrix, or Slack.
|
2018-07-25 05:34:10 +02:00
|
|
|
|
|
2020-11-20 08:22:15 +01:00
|
|
|
|
Two-way integrations with IRC, Matrix, and/or Slack using
|
|
|
|
|
[Matterbridge](https://github.com/42wim/matterbridge).
|
2018-07-25 05:34:10 +02:00
|
|
|
|
|
2020-03-18 00:09:39 +01:00
|
|
|
|
### Scales to 10,000s of members.
|
2017-06-19 00:47:02 +02:00
|
|
|
|
|
2019-09-12 21:45:16 +02:00
|
|
|
|
Zulip is designed to perform well in common use cases for open source
|
|
|
|
|
projects, with features like [soft
|
|
|
|
|
deactivation](https://zulip.readthedocs.io/en/latest/subsystems/sending-messages.html#soft-deactivation)
|
|
|
|
|
to make message delivery efficient even when sending to a stream with
|
|
|
|
|
10,000s of inactive subscribers.
|
2017-06-19 00:47:02 +02:00
|
|
|
|
|
2020-03-18 00:09:39 +01:00
|
|
|
|
### Full-text search of all public history.
|
2017-06-19 00:47:02 +02:00
|
|
|
|
|
2020-03-18 00:09:39 +01:00
|
|
|
|
Zulip’s [full-text search](/help/search-for-messages) supports
|
|
|
|
|
searching the organization’s entire public history via the
|
2019-09-12 21:45:16 +02:00
|
|
|
|
`streams:public` search operator, allowing Zulip to provide all the
|
|
|
|
|
benefits of a searchable project forum.
|
2017-06-19 00:47:02 +02:00
|
|
|
|
|
2020-03-18 00:09:39 +01:00
|
|
|
|
### Public archive.
|
2017-06-19 00:47:02 +02:00
|
|
|
|
|
2017-07-28 20:02:28 +02:00
|
|
|
|
Allow search engines to index your chat, with a read-only view of your
|
|
|
|
|
public streams. Zulip’s topic-based threading keeps conversations coherent
|
2019-09-12 19:18:30 +02:00
|
|
|
|
and organized, enabling a meaningful archive indexed by search engines.
|
|
|
|
|
|
|
|
|
|
Currently implemented as an [out-of-tree
|
2019-11-14 22:33:50 +01:00
|
|
|
|
tool](https://github.com/zulip/zulip-archive), though a native feature
|
2019-09-12 19:18:30 +02:00
|
|
|
|
built into the Zulip server is coming soon.
|
|
|
|
|
|
2020-03-18 00:09:39 +01:00
|
|
|
|
### Logged-out public access (coming soon).
|
2019-09-12 19:18:30 +02:00
|
|
|
|
|
2019-09-12 21:45:16 +02:00
|
|
|
|
[Coming soon](https://github.com/zulip/zulip/issues/13172): Allow
|
2020-03-18 00:09:39 +01:00
|
|
|
|
users to read and search public stream history in Zulip’s UI without
|
2019-09-12 21:45:16 +02:00
|
|
|
|
first creating an account.
|
2019-09-12 19:18:30 +02:00
|
|
|
|
|
2020-03-18 00:09:39 +01:00
|
|
|
|
### Quality data export.
|
2019-09-12 21:45:16 +02:00
|
|
|
|
|
|
|
|
|
Our high quality [export](/help/export-your-organization) and
|
|
|
|
|
[import](https://zulip.readthedocs.io/en/latest/production/export-and-import.html)
|
2020-06-08 23:04:39 +02:00
|
|
|
|
tools ensure you can always move from [Zulip Cloud](https://zulip.com)
|
|
|
|
|
hosting to your own servers.
|
2019-09-12 19:18:30 +02:00
|
|
|
|
|
2020-03-18 00:09:39 +01:00
|
|
|
|
### Free and open source.
|
2019-09-12 19:18:30 +02:00
|
|
|
|
|
2019-09-12 21:45:16 +02:00
|
|
|
|
Unlike many modern "open source" applications that are actually Open
|
|
|
|
|
Core, Zulip is 100% Free and Open Source software. All code,
|
|
|
|
|
including for the [server](https://github.com/zulip/zulip),
|
|
|
|
|
[desktop](https://github.com/zulip/zulip-desktop),
|
|
|
|
|
[mobile](https://github.com/zulip/zulip-mobile), and beta
|
|
|
|
|
[terminal](https://github.com/zulip/zulip-terminal) apps is available
|
|
|
|
|
under the Apache 2 license.
|
|
|
|
|
|
|
|
|
|
We love helping other open source communities and prioritize feature
|
|
|
|
|
requests from open source communities the same way we prioritize
|
|
|
|
|
feature requests from paying customers.
|
|
|
|
|
|
2020-03-18 00:09:39 +01:00
|
|
|
|
So if there’s something we could improve to make Zulip the obvious
|
2020-05-05 15:52:32 +02:00
|
|
|
|
choice either for you or your community, [contact
|
|
|
|
|
us](/help/contact-support) and we'll do what we can to help!
|