Which social platform?

Recently I’ve been lucky to have inspiring conversations with @Lukas_Domagala, @prnc, @ashima_panjwani, @skallinen, @kiramclean, @seancorfield, @ethanmiller, about our hopes for community building.

After a few weeks of thinking and recovering, we are about to start organizing a few study groups and dev groups. Exciting things are coming soon.

When organizing a new group or project, one important question is what social platform to use. There are a few wonderful social spaces where Clojurians collaborate: Clojureverse, Clojurians Zulip, Clojurians Slack, the r/Clojure subreddit, the Clojure mail group, various Discord servers, Twitter, Github, and more. Most of these exist thanks to the wise (and almost invisible) care of the moderators of those spaces, and this post is also an opportunity to thank them.

Let us discuss when and why we tend to use various platforms for communities and groups. This discussion may affect our approach towards some of the coming projects, such as the visual tools dev group and study group and a plan to organize a cross-language study group for probabilistic programming.

Below I’ll share my personal opinion. :leafy_green: Comments and other opinions would help so much. :carrot:

An opinion

Here are some of my currently preferred practices. They are written in a rather prescribed and opinionated fashion, hoping to provoke more views.

Initiating a broad discussion

We want to have a discussion of some questions at the scope of the whole Clojure community.

Write a Clojureverse post and share it on other platforms.

Clojureverse displays a post and its related discussion on a dedicated page, without too many distractions and confusions, and without requiring login (as opposed to Zulip, and also Reddit). It is indexed by search engines, thus supporting long-term visibility. Also, note that Clojureverse (unlike Reddit) will keep the post high on the feed as long as the conversation is active.

Other platforms (e.g., the r/Clojure subreddit) seem to be more popular and draw more responses, but we can simply announce the Clojureverse post there. The above feature of Clojureverse – a clear view on a dedicated page – will hopefully make it welcoming to people who are not used to it and come from other platforms.

Creating a task group

We want to start working on a project as a group.

Here, the project might be a library, a blog post, a talk, or a future event – anything a few of us may wish to collaborate on.

We want to have fluent conversations, that can sometimes be very lively, but may also take a slower pace, where each member can read and respond at their comfortable hours. We want to be able to return to a conversation after dropping it for a few days.

We want the process to document itself. We want people to be able to leave for a while and comfortably catch up when coming back. We want new people to join comfortably.

For most activities, use a dedicated stream at the Clojurians Zulip chat.
For discussions that deserve more visibility outside the group, use Github issues.

See the wonderful announcing post by @eval for the reasoning behind the choice of Zulip as a social platform for Clojurians.

Zulip is a chat platform that allows for both fast-pace and slow-pace experience. This is achieved through the two-level ergonomics of streams and topics.

A Zulip stream is a space whose activity gets the attention of only those who’ve chosen to see it (i.e., those who’ve subscribed to it).
Under any stream, discussion can be divided into topics, which are separate threads of conversation, each going at its own pace like an email thread.

Zulip is great for organizational memory. Every stream, topic, and message has a URL, that can be linked to from other places. With some basic care and thoughtful habits, the conversations can naturally emerge into a growing knowledge base. Browsing through the content feels like traveling through a nested data structure containing all that knowledge.

The Clojurians Zulip is not indexed by search engines, and streams with few subscribers are practically seen by very few people. This allows for a comfortable experience, where it feels just fine to be confused, speculate, and make mistakes. In our experience, this matters a lot.
(Where appropriate, a stream can be made private, so that it is completely invisible to people who are not subscribed. In some situations, this may give a safer feeling to the members of a group, knowing exactly who reads their messages.)


Github issues are also great for allowing linkable knowledge to emerge from conversations. They are different from Zulip streams in that they are indexed by search engines and do not require login to be visible. So, they can be used for more broadly public conversations alongside the ongoing Zulip conversations.

Slack channels are known to be widely used by many Clojure dev groups and user groups. Compared with Zulip streams, getting used to them seems to be often quicker. They offer less of the clear structure mentioned above, and I think they are less friendly to web-based knowledge browsing (i.e., browsing content through URLs using browser tabs). I believe that matters a lot. But for some domains, Slack might be preferable simply due to the fact that certain relevant people tend to be more available there.

Creating a Clojure-related study group

We are organizing a new study group for Clojurians.

Here, I mean something like the groups we have been organizing at Scicloj. Usually, it consists of a few dozens of people that maintain some relationship through chat and regular meetings. Usually, at a given period, there is just a small bunch of people who actually attend, but this small bunch gradually changes. Some group members can follow the activity offline, at their own pace.

We want to make it easy for people to follow along, join the group late, and come back after long breaks (sometimes a few months). We want the group to feel safe and comfortable for everybody.

For most activities, use a dedicated stream at the Clojurians Zulip chat.
For every group session, use a dedicated topic thread. Encourage not only participants but also other relevant members to follow that topic.
Record the video sessions but share the recording only in the stream.

See also the discussion of the task group scenario above.
In our experience, topic thread discussions and video recordings often allow a few friends to follow along even if they cannot attend the group sessions. These friends typically include the relevant library maintainers, who can be very helpful in their offline comments, and sometimes also enjoy the study group as a form of user testing.
The fact that recordings are not shared with too broad audiences seems to keep a bit of the safe feeling, that it is just fine to explore and make mistakes.

Creating a non-Clojure study group

We are organizing a study group that will not focus on Clojure and will possibly include friends who do not know what Clojure is.

One example is our idea of organizing a study group around the field of probabilistic programming. Different languages and libraries will be explored there, and people of different backgrounds will participate.

Possibly, platforms such as the Clojurians Slack and Clojurians Zulip would not make sense here.
A dedicated Discord server might be good.
More thought is needed.


Or enable Discussions on GitHub and use that feature, to keep things together with a project?

Overall, I agree with the suggested use of ClojureVerse / Zulip / GitHub as three tiers of communication with ClojureVerse for general long-form announcements and discussions, Zulip for near real-time ad hoc discussions around specific topics or events, and GitHub issues/discussions for more concrete project-specific discussions and task management.

I am on two Clojure Discords and a non-Clojure one and I don’t find them very good for structured interactions – and they seem to require a lot more active moderation and “care’n’feeding”. Both Slack and Zulip are far more suited to organic, self-service interaction, as well as offering easy ways to partition discussions (channels/threads and streams/topics respectively).


@seancorfield is right, github discussions make a lot of sense for issues that should stay visible.

I also like ClojureVerse also makes as the announcement platform. The comments trickle in a lot slower then on reddit, but this might also be a good thing because they are usually more meaningful. The only thing I miss is the threaded discussion you get on reddit, but it’s not really needed when the post count is that low.

The only thing I’m still not sure about is Zulip vs Slack. Zulip seems like a better platform with nicer features. It also feels like there are fewer active users and the discussions are slower. In a perfect world we could slowly move the community from slack into Zulip. It would be sad to miss out on participation in the discussion just because people didn’t see that it was going on. I’m mostly referring to “new people” who aren’t looking at everything anyway. We have to be careful not to lose the beginner’s perspective in any decisions we make.
Are there any numbers on how active both chats are?

1 Like

Thanks, yes, I think that is the main dilemma here (even though I wrote my opinion in a very decisive fashion).

Good idea to look into the numbers. I’ll try to see if it is easy to extract, building on @skallinen’s recent work extracting data from the Zulip API.

Clojurians Slack has just over 1,000 active users (for billing purposes).

Clojurians Zulip increased from 100 to 200 active users across 2020 but stayed pretty steady at 200 active users throughout 2021. That said, there was a brief spike of up to 400 active users in the last quarter of 2021 but it has already settled back down to 200 now.

Clojurians Slack message volume generally ranges between 600 and 1,200 messages a day with spikes of up to 2,000 these days (it was quite a bit higher back in 2019/2020 – with spikes up to 5,000).

Clojurians Zulip message volume seems to range between 200 to 1,000 messages a WEEK (so about 30 to 170 a day), if I’m reading the graphs correctly.

1 Like

Have anyone thinking in something simplier like IRC o NewsGroup?

https://rocket.chat/ is a good solution too.

Back in the day, IRC and Usenet were all there was. We used them because it was that or nothing. Today we have a lot of choices and many people – especially folks whose primary industry is not software – don’t want to use clunky, text-based systems like that. In addition, they are really pretty poor from an admin/moderation p.o.v. which is often a big concern for folks trying to manage working groups online (the Rust IRC channels on Mozilla’s servers were constantly getting spammed by drive-by hooligans and no one seemed to be able to prevent it).

I’ve been online for about 30 years and, despite fond memories of IRC and Usenet decades ago, I’m glad there are more friendly options available these days!

1 Like

well, I am very glad about that but for example many people have found that working in text mode is very comfortable and more productive. I don’t deny that there are people who are comfortable with graphical applications, but I am at least more comfortable with text mode. Besides, I have also been online since 1995 and my way of working as an IT expert is always to look for the most optimal and simplest solutions. For example, I don’t like Telegram because I don’t control the servers but I recognize that using it through Emacs is wonderful. I can’t say the same for Slack. IRC will always be better, simpler, easier to maintain and there are hundreds of clients of all kinds, graphical and text mode. In any case, I am not closed to more modern solutions although as I say not the most modern and beautiful is the best.

Yes, and I’m not surprised text-based “social media” works really well for you and I’m not surprised you like Emacs. But remember that the OP said:

And we already see an increasing number of people in the Clojure community who don’t use Emacs and don’t use IRC so we need to be welcoming to them. Emacs and IRC are great tools for IT experts but they’re not welcoming to others.


Many thanks for this conversation.

A small update, following a chat with @Lukas_Domagala: for the visual tools group, we will use both Slack and Zulip (and use Clojureverse for announcements).

As @Lukas_Domagala said, creating something friendly for beginners is important. A Slack channel could serve as a good user space for those who have a question and do not know where to go. For study sessions, dev groups and such, we could still use Zulip streams and enjoy the organizational memory.

(We can see such duality for example in the #data-science Slack channel that lives alongside the various Zulip streams on that topic. The Slack channel serves as a first entry point for many newcomers, who may later learn about relevant places at Zulip.)


This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.