mirror of
https://github.com/zulip/zulip.git
synced 2025-10-24 08:33:43 +00:00
portico: Add Asciidoctor case study.
This commit is contained in:
36
templates/zerver/asciidoctor-case-study.html
Normal file
36
templates/zerver/asciidoctor-case-study.html
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
{% extends "zerver/portico.html" %}
|
||||||
|
{% set entrypoint = "landing-page" %}
|
||||||
|
|
||||||
|
{% block title %}
|
||||||
|
<title>Case study: Asciidoctor open-source community</title>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block customhead %}
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block portico_content %}
|
||||||
|
|
||||||
|
{% include 'zerver/landing_nav.html' %}
|
||||||
|
|
||||||
|
<div class="portico-landing why-page solutions-page case-study-page">
|
||||||
|
<div class="hero bg-pycon">
|
||||||
|
<div class="bg-dimmer"></div>
|
||||||
|
<div class="content">
|
||||||
|
<h1 class="center">Case study: Asciidoctor <br /> open-source community</h1>
|
||||||
|
</div>
|
||||||
|
<div class="hero-text">
|
||||||
|
Learn more about using Zulip for<br /> <a href="/for/open-source">open
|
||||||
|
source projects</a> and <a href="/for/communities">communities</a>.
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="main">
|
||||||
|
<div class="padded-content">
|
||||||
|
<div class="inner-content markdown">
|
||||||
|
{{ render_markdown_path('zerver/for/asciidoctor-case-study.md') }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% endblock %}
|
||||||
@@ -50,6 +50,9 @@
|
|||||||
<li>
|
<li>
|
||||||
<a href="/case-studies/lean/">{{ _("Lean theorem prover community") }}</a>
|
<a href="/case-studies/lean/">{{ _("Lean theorem prover community") }}</a>
|
||||||
</li>
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="/case-studies/asciidoctor/">{{ _("Asciidoctor open-source community") }}</a>
|
||||||
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="/case-studies/rust/">{{ _("Rust language community") }}</a>
|
<a href="/case-studies/rust/">{{ _("Rust language community") }}</a>
|
||||||
</li>
|
</li>
|
||||||
|
|||||||
199
templates/zerver/for/asciidoctor-case-study.md
Normal file
199
templates/zerver/for/asciidoctor-case-study.md
Normal file
@@ -0,0 +1,199 @@
|
|||||||
|
## Asciidoctor: An active open-source community building software to share knowledge
|
||||||
|
|
||||||
|
Started in 2012, the [Asciidoctor](https://asciidoctor.org) community develops
|
||||||
|
an [open-source](https://github.com/asciidoctor) text processor for parsing
|
||||||
|
AsciiDoc content, enriching it, and converting it to formats such as HTML 5,
|
||||||
|
DocBook, PDF, and many others.
|
||||||
|
|
||||||
|
For years, the project struggled to find a way to bring the community together
|
||||||
|
in one place. Thanks to recommendations from leaders at other open-source
|
||||||
|
communities, the Asciidoctor project leads decided to give Zulip a try to see if
|
||||||
|
it could solve those challenges. “Moving to Zulip transformed our dialogue,
|
||||||
|
making it organized, inclusive, and thoughtful in a way it never was before,”
|
||||||
|
says project lead [Dan Allen](https://github.com/mojavelinux). “We finally had a
|
||||||
|
home base. Zulip has been a game changer for our community.”
|
||||||
|
|
||||||
|
|
||||||
|
> “Zulip has been a game changer for our community.”
|
||||||
|
>
|
||||||
|
> — Project lead Dan Allen
|
||||||
|
|
||||||
|
|
||||||
|
## A decade-long search for a communication platform to bring the community together
|
||||||
|
|
||||||
|
“In the early days, we started out only communicating using the GitHub issue
|
||||||
|
tracker,” Dan Allen recalls, “but we could see that it wasn’t going to scale. It
|
||||||
|
doesn’t provide a channel for general dialogue.” The project tried IRC, but it
|
||||||
|
was unapproachable for newcomers and lacked modern chat and moderation features.
|
||||||
|
Asciidoctor set up a discussion list, but that wasn’t a good fit either.
|
||||||
|
Contacting hundreds of people over email to ask a simple question always felt
|
||||||
|
inappropriate, and the lack of real-time interaction ended up making
|
||||||
|
conversations take longer.
|
||||||
|
|
||||||
|
Looking for a web-based chat solution, Asciidoctor tapped into Gitter in 2014.
|
||||||
|
“Gitter certainly looks modern and approachable. However, we quickly learned
|
||||||
|
that the single, running thread of the channel was both chaotic and stressful,”
|
||||||
|
Dan says. And the platform had mostly stagnated.
|
||||||
|
|
||||||
|
Many users in the community pleaded for threads, but Gitter’s threading feature
|
||||||
|
(finally added in 2020), only made the situation more problematic for the
|
||||||
|
community. “Threads buried the replies. You had to either navigate to threads
|
||||||
|
using notifications, or scroll back multiple pages to find the little ‘see
|
||||||
|
replies’ link and rediscover the thread. It was just so tedious,” Dan recalls.
|
||||||
|
|
||||||
|
|
||||||
|
> “The conversations in Gitter were becoming more about Gitter and its
|
||||||
|
> limitations and less about the project itself.”
|
||||||
|
>
|
||||||
|
> — Project lead Dan Allen
|
||||||
|
|
||||||
|
While Gitter allows users to create new rooms, what the project really needed
|
||||||
|
was a single community space with “socially distanced” conversations going on.
|
||||||
|
They needed a new model. And that’s exactly what they found in Zulip.
|
||||||
|
|
||||||
|
|
||||||
|
## Asciidoctor moves to Zulip: “All the anxiety and stress was gone”
|
||||||
|
|
||||||
|
With the community continuing to grow, Dan and fellow maintainers decided it was
|
||||||
|
time to seek out a better solution. Drawing on advice from leaders of other
|
||||||
|
open-source communities, the project decided to give Zulip a try in early 2021.
|
||||||
|
|
||||||
|
[Zulip’s streams and topics model](/why-zulip/) immediately clicked. “Streams
|
||||||
|
partition the community without making it feel divided. When someone has a
|
||||||
|
question, they can find the most relevant stream and either make a new topic or
|
||||||
|
contribute to an existing one.” This paradigm was a game-changer. “Literally the
|
||||||
|
day we moved to Zulip, all the anxiety and stress of keeping up with the
|
||||||
|
discourse was gone,” Dan says.
|
||||||
|
|
||||||
|
With Zulip, Dan has developed a comfortable workflow for catching up on
|
||||||
|
conversations after being away. “When I start my day, I open up the [Recent
|
||||||
|
topics](/help/recent-topics) page and work through the topics that have activity
|
||||||
|
on-by-one,” Dan describes. More casual community participants can [skim the
|
||||||
|
topic list](/help/reading-strategies) to find interesting discussions, and mark
|
||||||
|
topics they don’t care about as read with a single click.
|
||||||
|
|
||||||
|
|
||||||
|
## Powerful moderation tools help keep conversations on track
|
||||||
|
|
||||||
|
Zulip’s topic model helps discussions stay focused. “Zulip starts the
|
||||||
|
conversation out on the right foot by giving it its own space as a topic,” Dan
|
||||||
|
explains. “As a result, conversations don’t have to be branched from an
|
||||||
|
arbitrary spot, and the discussion is much more likely to stay focused and
|
||||||
|
succinct.”
|
||||||
|
|
||||||
|
> “Zulip starts the conversation out on the right foot by giving it its own
|
||||||
|
> space as a topic.”
|
||||||
|
>
|
||||||
|
> — Project lead Dan Allen
|
||||||
|
|
||||||
|
If a topic starts in the wrong place or veers off course, Zulip’s [moderation
|
||||||
|
tools](/help/moderating-open-organizations) make it easy to fix. Community
|
||||||
|
moderators can keep the dialogue organized by reclassifying topics and posts
|
||||||
|
without disrupting the ongoing conversation. “If someone accidentally posts to
|
||||||
|
the wrong stream or topic, Zulip allows me to [move those messages
|
||||||
|
around](/help/move-content-to-another-stream) so they land in the right spot,”
|
||||||
|
Dan says. “Moving messages also sends a subtle hint to the person posting about
|
||||||
|
where to post the next time. And I can use [topic
|
||||||
|
references](/help/link-to-a-message-or-conversation#link-to-a-stream-or-topic-within-zulip)
|
||||||
|
to link to the new topic location, or to a related topic. That’s incredibly
|
||||||
|
powerful,” Dan says.
|
||||||
|
|
||||||
|
The ability to [mark topics as resolved](/help/resolve-a-topic) helps moderators
|
||||||
|
see at a glance which topics require their attention. “Many topics reach a
|
||||||
|
logical conclusion when the initial question has been answered, and the initial
|
||||||
|
poster will typically express that they’re satisfied. At that point, one of us
|
||||||
|
marks the topic as resolved,” Dan explains. “When I’m looking for topics that
|
||||||
|
need my attention, I can focus on the ones that aren’t yet resolved and try to
|
||||||
|
help get them to that state.” Later on, community members can use resolved
|
||||||
|
topics [as a reference source](#zulip-makes-information-easy-to-find).
|
||||||
|
|
||||||
|
|
||||||
|
## Zulip enables organized, inclusive and thoughtful discussion
|
||||||
|
|
||||||
|
After a successful launch of the Asciidoctor community on Zulip, Asciidoctor’s
|
||||||
|
sibling project [Antora](https://antora.org) adopted it as well. For both
|
||||||
|
projects, using Zulip has been night and day compared to other platforms. “I can
|
||||||
|
manage hundreds of participants across two communities extremely efficiently,
|
||||||
|
and I don’t feel stressed,” says Dan. “I used it for my company chat as well.
|
||||||
|
Zulip is calm and organized. I can immediately see what people are asking
|
||||||
|
and jump to respond when I need to.”
|
||||||
|
|
||||||
|
> “I can manage hundreds of participants across two communities extremely
|
||||||
|
> efficiently.”
|
||||||
|
>
|
||||||
|
> — Project lead Dan Allen
|
||||||
|
|
||||||
|
The sense of space created by Zulip’s topic model has made the community more
|
||||||
|
inclusive. “Using Zulip gives space to a much broader range of voices.
|
||||||
|
We’re seeing people participating who never participated before,” Dan says.
|
||||||
|
“People who are less extroverted, who don’t speak English natively, or just
|
||||||
|
can’t type as quickly now all have a chance to be part of the dialogue. Zulip
|
||||||
|
offers a more manageable pace.”
|
||||||
|
|
||||||
|
> “We’re seeing people participating who never participated before.”
|
||||||
|
>
|
||||||
|
> — Project lead Dan Allen
|
||||||
|
|
||||||
|
Even the tone of conversation has shifted, becoming more respectful and
|
||||||
|
thoughtful. “People are more relaxed. They can think and take their time to
|
||||||
|
reply. Topics give people space. People don’t feel like they are trying to talk
|
||||||
|
over someone else. That means you can have more constructive dialogue because
|
||||||
|
the volume level is lower,” says Dan. At the same time, Zulip enables
|
||||||
|
lightweight interactions. “Often times, I participate just [using
|
||||||
|
emoji](/help/emoji-reactions). I must use the 👍 and 🎉 reactions dozens of
|
||||||
|
times a day,” Dan says.
|
||||||
|
|
||||||
|
Streams have also helped the community get to know one another better. “When we
|
||||||
|
created the instance, we set up a #social stream. We seeded it with the topic
|
||||||
|
‘introduce yourself’, and new members took full advantage of it,” Dan says. The
|
||||||
|
social stream has brought a more personal touch to the community. “In real life,
|
||||||
|
no one just walks in and starts asking questions out of the blue,” Dan points
|
||||||
|
out. “In the social stream, we’ve talked about non-technical topics like TV
|
||||||
|
series, screen setups, and holiday wishes just to get to know the people behind
|
||||||
|
the screen name and enrich each other’s lives in other ways. What we learned?
|
||||||
|
Everyone enjoys a lot of British TV. ;)”
|
||||||
|
|
||||||
|
|
||||||
|
## Zulip makes information easy to find
|
||||||
|
|
||||||
|
As a community grows, its conversation history becomes a trove of reference
|
||||||
|
information. However, this history provides value only if the information is
|
||||||
|
findable. “Once a conversation went out of view in Gitter, it was essentially
|
||||||
|
lost,” Dan says. “The search was global across the whole Gitter instance, and it
|
||||||
|
only returned excerpts with no sense of context. It was often faster to just
|
||||||
|
scroll through the history in an attempt to try to find where the conversation
|
||||||
|
happened than it was to search.”
|
||||||
|
|
||||||
|
In contrast, Zulip offers a [faceted search](/help/search-for-messages) that
|
||||||
|
lets you find past discussions with pinpoint accuracy. “You can narrow the
|
||||||
|
search to a stream or topic (with autocomplete!),” Dan points out. The results
|
||||||
|
are presented with topic headings, making it easier to see whether the message
|
||||||
|
is relevant. “You can click the topic to see the message in context,” Dan says.
|
||||||
|
“It’s not only a great way to search, but it’s a great way to catch up on
|
||||||
|
messages too. You can also search for all messages you sent, which turns out to
|
||||||
|
be a great navigation tool and a memory saver!”
|
||||||
|
|
||||||
|
|
||||||
|
## “Zulip is the heart of our community”
|
||||||
|
|
||||||
|
Dan is passionate about supporting Zulip’s development. “If we don’t sponsor the
|
||||||
|
open source projects we love, we’ll have no one else to blame if we live in a
|
||||||
|
world of proprietary software,” Dan says. “We truly feel heard by Zulip
|
||||||
|
developers when we provide feedback. We also love that Zulip is [truly open
|
||||||
|
source](https://blog.zulip.com/2021/04/28/why-zulip-is-on-github-sponsors/), not
|
||||||
|
open core like some alternatives. And we very much appreciate Zulip supporting
|
||||||
|
open source by hosting our Zulip instances.”
|
||||||
|
|
||||||
|
“Zulip is the heart of our community, and nearly everyone who participates
|
||||||
|
absolutely loves it,” Dan says. “It really does provide [everything we
|
||||||
|
need](/features) to manage the discourse, including topic-based threads,
|
||||||
|
mentions, faceted search, moderation controls, polls, and emoji.” Speaking on
|
||||||
|
behalf of the Asciidoctor and Antora projects, Dan wholeheartedly recommends
|
||||||
|
that other communities give it a try. “Many communities have been strained to
|
||||||
|
the limits during the pandemic,” says Dan. “Zulip brings health back to these
|
||||||
|
communities.”
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Check out our guide on using Zulip for [open source](/for/open-source), and
|
||||||
|
learn how Zulip [helps communities scale](/for/communities)!
|
||||||
@@ -13,4 +13,5 @@
|
|||||||
* [Technical University of Munich](/case-studies/tum/)
|
* [Technical University of Munich](/case-studies/tum/)
|
||||||
* [University of California San Diego](/case-studies/ucsd/)
|
* [University of California San Diego](/case-studies/ucsd/)
|
||||||
* [Lean theorem prover community](/case-studies/lean/)
|
* [Lean theorem prover community](/case-studies/lean/)
|
||||||
|
* [Asciidoctor open-source community](/case-studies/asciidoctor/)
|
||||||
* [Rust language community](/case-studies/rust/)
|
* [Rust language community](/case-studies/rust/)
|
||||||
|
|||||||
@@ -80,6 +80,9 @@
|
|||||||
<li>
|
<li>
|
||||||
<a href="/case-studies/lean/">Lean theorem prover community</a>
|
<a href="/case-studies/lean/">Lean theorem prover community</a>
|
||||||
</li>
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="/case-studies/asciidoctor/">Asciidoctor open-source community</a>
|
||||||
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="/case-studies/rust/">Rust language community</a>
|
<a href="/case-studies/rust/">Rust language community</a>
|
||||||
</li>
|
</li>
|
||||||
|
|||||||
@@ -165,6 +165,7 @@ class DocPageTest(ZulipTestCase):
|
|||||||
self._test("/case-studies/rust/", "Rust programming language")
|
self._test("/case-studies/rust/", "Rust programming language")
|
||||||
self._test("/case-studies/lean/", "Lean theorem prover")
|
self._test("/case-studies/lean/", "Lean theorem prover")
|
||||||
self._test("/case-studies/idrift/", "Case study: iDrift AS")
|
self._test("/case-studies/idrift/", "Case study: iDrift AS")
|
||||||
|
self._test("/case-studies/asciidoctor/", "Case study: Asciidoctor")
|
||||||
self._test("/for/research/", "for research")
|
self._test("/for/research/", "for research")
|
||||||
self._test("/for/business/", "Communication efficiency represents")
|
self._test("/for/business/", "Communication efficiency represents")
|
||||||
self._test("/for/communities/", "Zulip for communities")
|
self._test("/for/communities/", "Zulip for communities")
|
||||||
|
|||||||
@@ -632,6 +632,11 @@ i18n_urls = [
|
|||||||
path("case-studies/ucsd/", landing_view, {"template_name": "zerver/ucsd-case-study.html"}),
|
path("case-studies/ucsd/", landing_view, {"template_name": "zerver/ucsd-case-study.html"}),
|
||||||
path("case-studies/rust/", landing_view, {"template_name": "zerver/rust-case-study.html"}),
|
path("case-studies/rust/", landing_view, {"template_name": "zerver/rust-case-study.html"}),
|
||||||
path("case-studies/lean/", landing_view, {"template_name": "zerver/lean-case-study.html"}),
|
path("case-studies/lean/", landing_view, {"template_name": "zerver/lean-case-study.html"}),
|
||||||
|
path(
|
||||||
|
"case-studies/asciidoctor/",
|
||||||
|
landing_view,
|
||||||
|
{"template_name": "zerver/asciidoctor-case-study.html"},
|
||||||
|
),
|
||||||
path(
|
path(
|
||||||
"for/communities/",
|
"for/communities/",
|
||||||
landing_view,
|
landing_view,
|
||||||
|
|||||||
Reference in New Issue
Block a user