Writing about open & equitable product development

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

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


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..

Forum discussion is great for..

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:

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:

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 informed 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 acknowledges the value of network independence and ones right-to-exit.

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:

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

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.


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


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 Shpong.

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 2000 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