zulip/templates/zerver/for/open-source.md

224 lines
10 KiB
Markdown
Raw Normal View History

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,
facilitating inclusion, and making efficient use of everyones time.
If you havent read [why Zulip](/why-zulip), read that first. The
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
is a bad experience if youre rarely online at the same time as most
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
Slack. So either they dont participate in the Slack, or they do,
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.
------------------------------------------
Zulips topic-based threading model solves these problems:
* 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.
* Zulips topic-based theading helps include part-time contributors in
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
being continuously online. Using Zulips [keyboard
shortcuts](/help/keyboard-shortcuts), its extremely efficient to
inspect every potentially relevant thread and reply wherever ones
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
around the world that they love how responsive Zulips project leaders
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!
------------------------------------------
Below, weve collected a list of [Zulip features](/features) that are
particularly useful to open source communities.
2017-07-28 20:02:28 +02:00
### Free hosting at zulip.com.
2017-07-28 20:02:28 +02:00
Zulip sponsors free hosting for hundreds of open source projects,
supported by (and is identical to) zulip.coms 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 youre not
sure whether your organization qualifies, send us an email at
support@zulip.com.
2017-07-28 20:02:28 +02:00
### Moderation suite.
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.
### Open invitations.
2017-07-28 20:02:28 +02:00
Allow anyone to
[join without an invitation](/help/allow-anyone-to-join-without-an-invitation).
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.
### Authenticate with GitHub or GitLab.
2017-07-28 20:02:28 +02:00
Allow (or require) users to authenticate with their [GitHub or GitLab
account](/help/configure-authentication-methods), instead of with a
username and password.
[github-auth]: https://github.com/zulip/zulip/blob/7e9926233/zproject/prod_settings_template.py#L112
### Import from Slack, Mattermost, or Gitter.
Import your existing organization from [Slack](/help/import-from-slack),
[Mattermost](/help/import-from-mattermost), or
[Gitter](/help/import-from-gitter).
### Collaborate on code and formulas
2017-07-28 20:02:28 +02:00
[Markdown code blocks](/help/code-blocks)
with syntax highlighting make it easy to discuss code, paste an error
message, or explain a complicated point. Native LaTeX support provides
the same benefits when talking about math.
You can also instantly copy a code block to your clipboard or transfer
it to an [external code playground](/help/code-blocks#code-playgrounds) to
interactively run and debug the code.
2017-07-28 20:02:28 +02:00
If your community primarily uses a single programming language,
consider setting a [default code block language](/help/code-blocks#default-code-block-language).
### Permalink to conversations.
2017-07-28 20:02:28 +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. Zulips
topic-based threading helps keep conversations coherent and organized
so they are useful for posterity.
2017-07-28 20:02:28 +02: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
[custom linkification filter](/help/add-a-custom-linkifier) for
2017-07-28 20:02:28 +02:00
your organization.
### Hundreds of integrations.
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.
### Mirror IRC, Matrix, or Slack.
Two-way integrations with IRC, Matrix, and/or Slack using
[Matterbridge](https://github.com/42wim/matterbridge).
### Scales to 10,000s of members.
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.
### Full-text search of all public history.
Zulips [full-text search](/help/search-for-messages) supports
searching the organizations entire public history via the
`streams:public` search operator, allowing Zulip to provide all the
benefits of a searchable project forum.
### Public archive.
2017-07-28 20:02:28 +02:00
Allow search engines to index your chat, with a read-only view of your
public streams. Zulips topic-based threading keeps conversations coherent
and organized, enabling a meaningful archive indexed by search engines.
Currently implemented as an [out-of-tree
tool](https://github.com/zulip/zulip-archive), though a native feature
built into the Zulip server is coming soon.
### Logged-out public access (coming soon).
[Coming soon](https://github.com/zulip/zulip/issues/13172): Allow
users to read and search public stream history in Zulips UI without
first creating an account.
### Quality data export.
Our high quality [export](/help/export-your-organization) and
[import](https://zulip.readthedocs.io/en/latest/production/export-and-import.html)
tools ensure you can always move from [Zulip Cloud](https://zulip.com)
hosting to your own servers.
### Free and open source.
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.
So if theres something we could improve to make Zulip the obvious
choice either for you or your community, [contact
us](/help/contact-support) and we'll do what we can to help!