Skip to content

Instantly share code, notes, and snippets.

@erlend-sh
Last active July 14, 2023 13:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save erlend-sh/eb013bcd25c4d003123f858c58e7d622 to your computer and use it in GitHub Desktop.
Save erlend-sh/eb013bcd25c4d003123f858c58e7d622 to your computer and use it in GitHub Desktop.
Communal Bonfires (DRAFT)

Communal Bonfires

Online community platforms are assembly-kits for large, communal bonfires, designed to draw people towards the light and into the warm togetherness of community. I think the primary function of bonfire software is to create space for group-scale discourse.

campfire_by_nozomi_m_db62vkk-fullview 'Campfire' by nozomi-M

Riffing on thoughts about healthy information consumption, Tom Critchlow described his personal campfire thusly:

https://tomcritchlow.com/2018/10/10/of-gardens-and-wikis/

Campfires - mostly blogging for me, though I know some folks gather around private slack groups too. My blog functions as a digital campfire (or a series of campfires) that are slower burn but fade relatively quickly over the timeframe of years. Connection forming, thinking out loud and self referencing. This builds muscle, helps me articulate my thinking and is the connective tissue between ideas, people and more. While I’m not a daily blogger I’ve been blogging on and off for 10+ years.

Blogs however are only good bonfires insofar as a blog has a chatty audience. Even when they're talkative, blogs are a one-to-many medium, as opposed to the many-to-many connectivity you can easily imagine if you draw lines between five or more people gathered around a central flame.

Group chat is the epitome of this dynamic. Get five people with a shared interest into a chat room together and you've just started a community!

aside: Discord, the reigning king of group chat, was apparently even going to be named 'Bonfire' in its nascent stages. Gotta say I'm very happy to still have bonfire as a term belonging to the public commons.

Chat has its limits though. For information to be synthesized into knowledge, the rate of messaging needs to be slowed down to make room for less reactive, more deliberate, long-form expression.

Forums, with their boards and threaded messages, serve this function. The bonfire's contribution to the digital garden happens through threads, aka topics. Specifically, threads with hyperlinks, so they can point to one another. That’s the essence of it.

Notes [aka threads] are conversations across time Thought Legos (threads as cards)

Today the book is already (…) an outdated mediation between two different filing systems. For everything that matters is to be found in the card box of the researcher who wrote it, and the scholar studying it assimilates it into his own card index.

  • Walter Benjamin

Making a garden-minded community platform

Five years at Discourse taught me a lot about the interplay between 'chatrooms' and 'forums' as two different modes of conversation.

While chat is immediate and primarily synchronous, communication in Discourse is gradual and asynchronous. We've seen far too many community managers treat these two modes of communication as competitors. Quite on the contrary, chat and forum communities can complement one another beautifully

Group chat is great for..

  • Minimum-viable community building
  • Real-time or same-day resolutions
  • Urgent notifications
  • Socialising in the moment
  • Surface-area problem solving

Forum discussion is great for..

  • All-inclusive dialogue
    The asynchronous nature of a forum community effectively lowers the bar about as far down as it can go. You’ll get a much greater diversity of input if you solicit feedback from anyone who’s available some time in the next 24, 72 or 168 hours as opposed to right now.

  • Communities of scale
    Similar to what version control did for code and wikis did for encyclopaedias, forums have long since solved the “too many chefs” problem for discussion at scale. Hundreds or even thousands of people can discuss an equal amount of topics simultaneously on a forum because (1) discussions are broken up into logical topic blobs and (2) long-form input is strongly encouraged over rapid-fire back-and-forth debating.

  • Knowledge synthesis, storage & distribution
    The permanence and discoverability (web-readable links) of a forum topic makes it an excellent storage of knowledge.

  • Slow deliberation
    Rapid chatter should be reserved for matters of true urgency. The vast majority of communication can happen asynchronously, leaving ample space for deliberation and global participation. Ironically, slowing down our conversations enables us to reach good resolutions faster.

  • Civilized discussion
    If you hold someone’s comment for moderation in chat, that’s incredibly frustrating because the norm is live discussion. On a forum on the other hand the expectation is that you’ll get a reply within a few hours or even days after posting, so if your post gets flagged? No biggie, you can wait, and maybe even reflect a bit on what you've said in the meantime.

Duality of (A)synchronicity

Left unsaid in that article was my newfound conviction that synchronous vs asynchronous was a false duality as far as any community platform is concerned. Both modes are required for good conversation to arise and thrive.

As separate apps you can still mash the two discussion mediums together, but it has some flaws. You end up with:

  • Duplicate user directories
  • Competing forms of private messaging
  • “Where does this message belong?” uncertainty
  • Poorly integrated tools for content gardening

Most open source projects don't have a dedicated forum, but the ones that do almost certainly also have a group chat. My last stint at Discourse was an attempt to merge the two modes together, with the introduction of Discourse Chat.

I'm really proud of that MVP (which has since graduated into core), but the direction I wanted to go from there was understandably incompatible with the Discourse project's DNA as a traditional forum: I proposed we make chat the lead of our community experience. Community begins in the chat rooms, I thought. Discourse thought not, so we amicably parted ways.

Years later, my position remains unchanged. 'Group chat' and 'forum' ought to mean roughly the same thing. That's in fact the direction we seem to be headed in, since Discord, ruler of our community lands, now supports a variety of threads & boards features that fit neatly into the forum paradigm.

Mainstream forum software

Discord today is equal parts group chat and forum. I wish I could say "problem solved!", but there are some critical failures in Discord's makeup:

  • Discord is not web-readable and thus only minimally linkable. I doubt they ever will be, because it weakens their anti-competitive moats. In other words, they're not interested in participating in the great knowledge commons of the open internet.

  • Discord mixes different thread concepts (chat-channel threads vs forum-channel threads) instead of building a unified forum interface for threads as a progressive information artifact that can evolve from simple to complex in a lossless manner. (I can explain more of what I mean by that in an addendum.)

  • Discord's finances are dubious. They've taken a billion dollars in investment. Watch what happens when they try to 100x that. Enshittification ensues.

  • Discord is closed source. Communications software is critical infrastructure; its basic functions and inner workings should always be freely available to the public.

If Discord isn't the answer, what is?

The Contenders

Mattermost, Rocket.Chat, Discourse, Zulip, Linen; These are all great open source alternatives to Discord as a group messenger. But Discord is the superior community platform by being the one thing these other alternatives are not: A network.

As the ongoing mass-migrations from Twitter to Mastodon and Reddit to Lemmy/kbin have shown, internet users have become better iformed about the dangers of centralization and networking effects. When the incumbent platforms fully enshittified, users didn't flock to just any other app for an easy fix. Instead of continuing the vicious cycle of identity lock-in and data harvesting, we sought out the open networks.

Even the rising Twitter-killer Threads - under pressure from a savvier internet populace and impending EU regulations - openly acknowledge the value of network independence and ones right-to-exit.

https://writing.exchange/@fediversereport@mastodon.social/110661443598105962

ActivityPub is already the official protocol for social networking on the internet, albeit not widely known as such. If Meta follows through on their commitment to support ActivityPub, the protocol will be elevated from niche internet standard to mainstream internet default.

When Discord inevitably implodes, there's only one clear contender for migrants in search of an open messaging network:

Matrix, "an open network for secure, decentralised communication". It's a foundational assembly-kit for networked chat applications. As a pretty big bonus it's also encrypted by default and thus signs everything, which facilitates socialized proof of work. (This stringent commitment to security however does come with some usability concessions that I'll address another time.)

The Matrix protocol is a major accomplishment. Still, having been made by people who care first and foremost about how messages are sent (securely, reliably, quickly etc.), there are gaps to be filled by people who care instead about how messages are written, displayed and organized as part of an ever-evolving knowledge mosaic.

Information into Knowledge

It bears repeating: Communications software is critical infrastructure. In the absence of communication, conflict resolution becomes either stagnant or outright violent.

Messages are transfers of thought. One mind's idea transmitted to another, through whichever medium of transport is best suited for the job. We share our inner thoughts with external peers to construct a shared reality. How we collectively view the world is downstream of our individual ability to convey our personal experiences.

Our collective power and agency in this world is only as strong as our freedom for individual expression; our capacity for pro-social change can be measured in how freely we may exchange messages with one another.

Evolutionary Communication Protocols

In pre-literate society, our communication protocols were hardly different from wolves, whales or magpies:

  • Thinking; inner voice
  • Conversing; communal discourse
  • Gossip & speeches; word-of-mouth broadcasting
  • Singing; educational storytelling

As we evolved into a proto-literal society, our ancient comms protocols were layered on top of technologies for stored language:

  • Thinking transcribed into a private diary: personal messaging
  • Conversing across time and space by sending letters: interpersonal messaging
  • Large-scale gossip by distribution of pamphlets/newspapers: broadcasted knowledge
  • Songs & folklore transcribed & elaborated into epics, shared as books: organized knowledge

Our capacity for thinking and knowledge accumulation has grown exponentially ever since, and this trend shows no signs of stopping in the digital age. With an overwhelming flood of information surging through our society's digital pipes, we need valves to regulate the flow.

Life of a digital message

Messages are living information artifacts. As content blobs they can morph through many different forms, from ephemeral musings to everlasting tomes of shared understandings.

Let's consider the lifecycle of a message as contained and transferred through digital mediums.

message-progression

At first there's just a thought. Let's say this one isn't even written down anywhere. It just exists as some vague idea in someone's head.

Once a message is expressed in a chat room it has taken on its initial form for the purpose of storage & transmission. After some back-and-forth the core of the message will become evident as a recurring topic of discussion.

A series of related messages can then be glued together to make a thread. By synthesizing multiple chatty idea fragments into a cohesive micro-thesis, the flow of discussion can be focused towards an end-goal. In the context of a thread, comments are written in response to the opening thesis, as opposed to in a chatty context where you're generally responding to any message immediately preceding yours.

With a draft thesis sufficiently scrutinized and supplemented, a final synthesis brings it all together into a carefully edited article; a fully grown knowledge artifact. And at every stage of our message exchange, each new bit of information feeds back into our collective minds to form new thoughts.

Not every message takes this exact path, but the above is a common example of how community software acts as a seeding ground for ideas to go from noisy information blobs to restful knowledge gardens. For current messaging software, and Matrix in particular, this is the gap that needs filling.

Outward notes, inward notes Unconscious R&D

Commune

Today we're pre-releasing Commune, our first foundational step towards a community platform built specifically for alignment with digital gardens. Cyber-ecological messaging anyone?!

It's an evolving piece of software serving as the primary bonfire component of the Community OS concept.

It currently exists as two different but complementary entities:

Commune app

Commune is an open source community-building application built on top of the Matrix protocol. The app consists of a server-backend and a client-frontend.

While in v0.x_pre-alpha it is essentially Linen (or Discourse Bot Kit), but for Matrix instead of Discord/Slack. Hook your existing Matrix instances up with Commune to give your channels web-public threading superpowers.

The app aims to eventually reach relative feature parity (not symmetry) with Discord as well as Reddit, by building on top of the Matrix and ActivityPub protocols. Commune is protocol-first software.

Easy self-hosting is a top priority, but can only happen downstream of improvements to Matrix (and to a lesser extent, ActivityPub) server software like Synapse and Conduit. Until Commune-app is more mature, the recommended way to use it is via Shplong.

Shpong dot com – powered by Commune

Our first flagship instance built with Commune is shpong.com

Screenshot 2023-07-12 at 20 22 48

It's a Reddit-like site that operates a network of sub-communities. We've gone through so many iterations with the Commune software, but our collaboration has been happening ever since @ChurchOfTheSubgenius revealed Hummingbard, the first iteration of what is now Shpong.

Screenshot 2023-07-12 at 21 17 57

A few real world calamities got in our way, but we're still in motion. Reinvigorated by the gross mismanagement of the world's leading community spaces and the inspiring response of the fediverse as a protocol-driven alternative to the broken status quo, we're officially throwing our hats in the ring.

Today's subtle announcement at the tail-end of a 2500 word essay is not our grand reveal of Commune. This one's addressed to our fellow comms nerds who can pick up on what we're putting out while the software remains half-baked. Let's talk!

Matrix: https://matrix.to/#/#commune:matrix.org Discord: https://discord.gg/BkEpMzzh38

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment