diff --git a/templates/zerver/asciidoctor-case-study.html b/templates/zerver/asciidoctor-case-study.html new file mode 100644 index 0000000000..691bed5a62 --- /dev/null +++ b/templates/zerver/asciidoctor-case-study.html @@ -0,0 +1,36 @@ +{% extends "zerver/portico.html" %} +{% set entrypoint = "landing-page" %} + +{% block title %} +Case study: Asciidoctor open-source community +{% endblock %} + +{% block customhead %} + +{% endblock %} + +{% block portico_content %} + +{% include 'zerver/landing_nav.html' %} + +
+
+
+
+

Case study: Asciidoctor
open-source community

+
+
+ Learn more about using Zulip for
open + source projects and communities. +
+
+
+
+
+ {{ render_markdown_path('zerver/for/asciidoctor-case-study.md') }} +
+
+
+
+ +{% endblock %} diff --git a/templates/zerver/footer.html b/templates/zerver/footer.html index e96e9c07b0..10d1ab38bc 100644 --- a/templates/zerver/footer.html +++ b/templates/zerver/footer.html @@ -50,6 +50,9 @@
  • {{ _("Lean theorem prover community") }}
  • +
  • + {{ _("Asciidoctor open-source community") }} +
  • {{ _("Rust language community") }}
  • diff --git a/templates/zerver/for/asciidoctor-case-study.md b/templates/zerver/for/asciidoctor-case-study.md new file mode 100644 index 0000000000..fc34dbb251 --- /dev/null +++ b/templates/zerver/for/asciidoctor-case-study.md @@ -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)! diff --git a/templates/zerver/for/use-cases.md b/templates/zerver/for/use-cases.md index 8f0e97517d..b106585a35 100644 --- a/templates/zerver/for/use-cases.md +++ b/templates/zerver/for/use-cases.md @@ -13,4 +13,5 @@ * [Technical University of Munich](/case-studies/tum/) * [University of California San Diego](/case-studies/ucsd/) * [Lean theorem prover community](/case-studies/lean/) +* [Asciidoctor open-source community](/case-studies/asciidoctor/) * [Rust language community](/case-studies/rust/) diff --git a/templates/zerver/landing_nav.html b/templates/zerver/landing_nav.html index 0e4486ee8b..caa4a5e7db 100644 --- a/templates/zerver/landing_nav.html +++ b/templates/zerver/landing_nav.html @@ -80,6 +80,9 @@
  • Lean theorem prover community
  • +
  • + Asciidoctor open-source community +
  • Rust language community
  • diff --git a/zerver/tests/test_docs.py b/zerver/tests/test_docs.py index 3c997d279f..6233ffd658 100644 --- a/zerver/tests/test_docs.py +++ b/zerver/tests/test_docs.py @@ -165,6 +165,7 @@ class DocPageTest(ZulipTestCase): self._test("/case-studies/rust/", "Rust programming language") self._test("/case-studies/lean/", "Lean theorem prover") 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/business/", "Communication efficiency represents") self._test("/for/communities/", "Zulip for communities") diff --git a/zproject/urls.py b/zproject/urls.py index 617b3d8db7..311a0d3652 100644 --- a/zproject/urls.py +++ b/zproject/urls.py @@ -632,6 +632,11 @@ i18n_urls = [ 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/lean/", landing_view, {"template_name": "zerver/lean-case-study.html"}), + path( + "case-studies/asciidoctor/", + landing_view, + {"template_name": "zerver/asciidoctor-case-study.html"}, + ), path( "for/communities/", landing_view,