Assembling Community OS
I've previously written about the multi-app platform of my dreams as a community professional: The Community OS stack.
While undeniably ambitious, it's a vision firmly grounded in practicality. Thanks to the compounding value of open source and standard web protocols, the path to digital discourse nirvana can be mapped out with a fair amount of detail.
As laid out in the stack post, I like to group the building blocks for online communications into four distinct components:
- Identity = Conduit of flows.
Your identity (ID) inhabits the places and behaviors which the Bonfire, Stream and Garden symbolize, simultaneously experiencing and expressing itself through those outlets.
- Bonfires = Discursive, omnidirectional flow.
- Streams = Declarative, linear flow.
- Garden = Contemplative, bottom-up flow.
Comms protocol in pre-literate society:
Voice (spoken word expression) Conversation (communal discourse) Gossip (word-of-mouth broadcasting) Songs (educational storytelling)
With pre-literate protocols it's also a lot easier to see the similarities between ourselves and social animals such as wolves, whales or magpies.
Comms protocol in proto-literal society:
Private diary (personal) Sending letters (interpersonal) Distributing pamphlets (broadcasted knowledge) Sharing Books (collective knowledge)
Put more concretely with real world examples
Identity: Google, Facebook, Apple, Microsoft, Email, Phone numbers
Bonfires: Chat (Discord, Slack), forum (Discourse, StackOverFlow, Reddit)
Streams: Microblogging (Twitter, Tumblr, Mastodon), Television (TikTok, YouTube), Everything-app (Facebook, WeChat).
Gardens: Wikis (Wikipedia, Fandom), Networked notes (Notion, Roam), Blogs (WordPress, Medium, Substack)
There are no strict boundaries in the Stream/Garden/Bonfire trio. A blog for instance can behave like a bonfire when it is more discursive through its comment sections, it can be consumed in stream-form via an RSS reader, and it takes the shape of a garden when it's deeply interlinked and less concerned with chronology.
Likewise, Reddit's individual threads are bonfires, its frontpage feed is a stream and its 'best of last week/month/year' is an organically structured garden.
You'll notice that the vast majority of the applications listed above are part of a closed platform offering, which is a problem:
And therein lies my predicament: Ever since I first logged on to the internet, I've never had legitimate ownership of my own digital identity. My digital expression has always been mediated through some higher power. Sadly not of the paternal kind that intends to lift my spirit up until I can stand on my own.
No, for as long as I've lived my digital identity has been in the hands of an opaque and authoritarian power that intends to capitalize on my innate desire for expression by means of identity lock-in. The powers-that-be have been fairly benevolent, sure, but my independence is and never was their end-game.
But all hope is not lost. An open social web is possible, and it is in no way an understatement to say that our interpersonal relationships as well as democratic institutions will be far better off for it. Digital autonomy begets individual freedom begets fairness & equality.
The hopeful possibility of this moment lies in the open-social web protocols which make up the foundations of a comms & coordination ecosystem owned and operated by the general public:
- Identity: OAuth2/OIDC (stable internet standard), OpenID Connect Federation (emerging internet standard)
- Bonfire: Matrix (stable standard by single org), MLS (emerging internet standard)
- Stream: ActivityPub (stable internet standard), RSS (stable internet standard), ATproto (emerging single-org standard)
- Garden: Noosphere (emerging single-org standard)
We have yet to bring these components together into one cohesive communications product, wherein messages and knowledge artifacts can move seamlessly from one flow-mode to the next and your identity remains the same throughout. Yet this ideal is closer to becoming reified than you might think.
Here's how I intend to do it, with a
little lot of help from my friends.
Part 1: Weird Identity
Before I can interact with other netizens, I need an online identity to make my digital self presentable and increasingly trustworthy. That's what Weird is all about.
Most basically it's a local-first, cloud-enhanced equivalent of linktree. It aggregates your fragmented online persona into a single unified view. Establish your little slice of home on the internet without getting stuck in the content imperative of a custom website or a blog.
But thanks to the commodification of OAuth2 tech, Weird can grow up to become a full-fledged identity provider by standing on the sturdy shoulders of Ory. Meaning, you can 'Login with Weird' and use it as a kind of Gravatar on steroids. This will enable seamless login to all of the additional services we want to plug into our community stack.
Part 2: Bonfires of Revolt
Next, we need a place for people to congregate. Group chat is the best way to seed a grassroots community: Get two or more people with a shared interest together in a room and watch the magic of minimum-viable sociality bloom!
Revolt chat provides such a place, and it comes with some notable superpowers:
- Highly performant and easy to set up, already hosting thousands of tenants on its network at very low cost.
- Designed to carry multi-server networks. Thus our community platform can operate its own network.
- Supports two-way sync with Discord. Crucially allows existing Discord communities to adopt Revolt without having to undertake a disruptive migration and foregoing Discord's current network dominance.
Two (plus two) key features are still needed for Revolt to be everything I need in a bonfire-type app:
Web-public rooms & forum threads
Discord clearly understands the importance of forum features, but the app is unlikely to ever become publicly (anonymously) web-readable and universally links-friendly because that compromises their moat.
Revolt has no such conflict, and Weird inc. intends to contribute this feature work as soon as the new frontend is stable. The end goal is a hybrid chat+forum app where content can start off as low-effort ephemeral messaging and incrementally transition into structured threads with permanence.
For more on non-rigid chat design and hybridized modes of communication, see Chatting with glue and The future of group messaging.
Encryption & federation
Ideally, Revolt wouldn't just be multi-server, it would be federated. Thankfully that's not something Revolt needs to figure out on its own: Messaging Layer Security is an emerging protocol developed by an IETF working group in collaboration with the folks at Matrix and several other chat experts.
The primary function of MLS is encrypted group messaging, but it also lays the foundation for federated chat environments.
Once MLS has stabilized, Revolt can be made compatible with it the same way Gitter was made compatible with Matrix. Except Revolt should have a considerably easier time since the MLS work is leading to a simpler version of the Matrix protocol called Linearized Matrix.
(Why not build on top of Matrix directly since they’re charting their own path towards MLS compatibility? Because Matrix servers are hard to set up and expensive to run, and their default commitment to federation and encryption impacts UX. A minimum-viable community doesn’t benefit from starting out with that level of complexity.)
Part 3: Gentle streams of Kitsune
With our safe spaces set up for baseline networking and greenfield content generation, we can move on to broadcasting.
Chat rooms are information silos. Forum threads can crack through the walls of the silo as linkable, search-friendly message exports. But for certain types of content, like an announcement, it's not enough to just be discoverable; you want reach. Rather than waiting to be found, broadcasted content calls out so it may be heard far and wide. That's where the viral properties of ActivityPub and its ilk come into play, plugged into our stack with Kitsune.
Unlike Revolt, Kitsune is protocol-centric, made explicitly to interoperate with Mastodon and other AP applications.
- Performant. Mastodon hosting costs are a problem.
- Portable identity.
- Potential Blueskye interop (we're watching Takahe and similar explorations).
Part 4: Noospheric Gardens
By now we've got:
- a home base.
- a shared place for nascent social activity to emerge and mix.
- a broadcasting antenna to distribute select messages past the confines of our local community.
This is already a healthy environment for social connection and information to thrive. Communities in which ephemeral togetherness is the goal will be well covered by these three components.
But if you're engaged in building a product of growing complexity you need a way to glue information fragments together into cohesive artifacts of knowledge, otherwise the abundance of information will increasingly turn into disorganized noise; a form of informational tech debt.
To help us continuously convert messy noise into an orderly signal (like a song), we need a protocol for thought: Noosphere.
Noosphere is a massively-multiplayer knowledge graph. The technical pillars that Noosphere builds upon are:
Above this substructure, Noosphere gives users:
- Entry to a zero-trust, decentralized network of self-sovereign nodes
- Human-readable names for peers and their public content
- Local-first authoring and offline-available content with conflict-free synchronization
- A complete, space-efficient revision history for any content
- Coherence and compatibility with the hypertext web
You can think of it like a world-wide Wiki.
Basically GDocs/Notion meets Git: made for knowledge connectivity and cross-pollination as opposed to disparate content silos. It’s also the final and most complete form of what I call ‘socialized proof of work’, which I’ll expand on in a forthcoming post.
In short, every component of the Community OS stack helps me document my work as an internet-native knowledge worker. Computer programmers have had their “green walls” on GitHub for a decade and a half. Meanwhile most of the work I do as a community advocate, product manager and open source strategist is largely unlogged.
Having a record of work, especially open source contributions, builds trust in an increasingly untrustworthy web.
Beyond the foundational building blocks mentioned here, countless sub-components can be added to our stack as 3rd party integrations or bundled add-ons.
Weird can be extended with lightweight blog and inline CMS functionality. Streams & Gardens are greatly enhanced by read-it-later apps and RSS readers. All of Identity, Bonfire and Stream can be deeply complemented by Stalwart Mail Server; with a slightly different framing the email protocol would have been listed as another top-level component.
An immense amount of work has already gone into the communications infrastructure of the world wide web. All the essential tech we need is already made. What’s missing is a coordinated effort to point our collective innovations in the same direction, towards digital emancipation as our final destination.
There’s no good reason for our global nation of netizens to remain beholden to the corporate conglomerates who co-opted our digital commons to sell it back to us.
When you’re able, if only for a moment, stop building for survival and begin building for liberty.