Open Indie

Writing about open & equitable product development

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

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

The official lemmy-ui works fine, but it has never been a top priority for the Lemmy project; understandably so, as they've been focused on pioneering an ActivityPub-enabled forum backend.

Thankfully the UI side is now receiving a ton of updates, but alternatives are still much needed:

  • lemmy-ui is styled like legacy Reddit, which isn't everyone's preference. (I personally have no need for the sidebar.)
  • Inferno is a rather niche framework that raises the bar-to-entry for some prospective contributors.
  • Alt-frontends make for a healthier app ecosystem.

I like to go on the occasional GitHub safari by searching within a trending area of interest. Today I simply looked up the most recently updated repositories containing the keyword 'lemmy' and I'm thrilled to report that if you're in the market for a new Lemmy frontend, you've got plenty of promising options in the making!

The following are my handpicked examples and not an exhaustive list. I'm only including frontends that are already usable or close to it. I'm sure there are others to be found on indie and self-hosted code hosts out there as well (I did have a look through Codeberg and sr.ht), but afaik there's no good search tool to discover those repos.

edit: this list is more comprehensive.

Svelte – Web

Slemmy

https://github.com/diamondburned/slemmy

sx-lemmy

https://github.com/sheodox/sx-lemmy

https://github.com/ando818/lemmy-ui-svelte (Mobile support via Capacitor)

React Native – Web/Mobile

https://github.com/aeharding/wefwef

https://github.com/gkasdorf/memmy

Flutter – iOS/Android

https://github.com/liftoff-app/liftoff

https://github.com/hjiangsu/thunder

Swift – iOS

https://github.com/mormaer/Mlem

Kotlin – Android

https://github.com/dessalines/jerboa

GTK – Linux

https://github.com/lemmygtk/lemoa

Sync – Android

Though my focus here is on open source apps, Sync for Lemmy deserves an honorable mention as the first major app to “pull an Ivory” by abandoning the enshittified Reddit platform and pivoting over to the open source Lemmy (perhaps also kbin et.al.) ecosystem. Bravo!

Opportunities for collaboration

There are two takeaways I'd like to highlight from these findings:

Developers, you've got friends out there! Divergence is a necessary component of innovation, but at some point the pendulum needs to swing back in favor of convergence and shared foundations.

“If you want to go fast, go alone. If you want to go far, go together.”

Projects that are built with the same framework are great candidates for collaborative efforts. Sure, you might have different UX preferences, but that's what theme systems are for. Start by looking at your commonalities rather than your differences and there's a good chance you'll find the pros of working together far outweigh the cons.

Sysadmins, consider officially adopting an alt-frontend, effectively as a mutually beneficial partnership.

  • Gives your instance a unique identity.
  • More agency over instance interface features.
  • Lends legitimacy to the alt-frontend(s) of your choice.
  • Directs developers who are aligned with your community towards that open source project.

Bonus side-quest: The join-lemmy site would greatly benefit from the equivalent of Mastodon's app directory.

As these fresh new frontends mature, we march ever closer to a new UI paradigm of multi-modal Juicy Clients, capable of rendering our multi-faceted fediverse in all of its splendor through one seamless interface.

p.s. If you're a client-side Rust developer, I've started discussing the prospect of a juicy client with Ebou, a Mastodon frontend made in Dioxus.


Discuss:https://writing.exchange/@erlend/110616473377954593 – Lemmy (link pending)

There’s an increasing obsession with “humanness” these days: https://worldcoin.org/blog/engineering/humanness-in-the-age-of-ai https://newsletter.mollywhite.net/p/worldcoin-a-solution-in-search-of (added 30. July)

While necessary in some contexts, it’s a limited solution to a contrived problem. There’s always gonna be a need for anonymity and permissionless identity on the web; it’s how disadvantaged minorities can put forth counter cultural ideas to be judged on their intellectual merit alone, decoupled from personal identifications at risk of discrimination and censorship.

As an alternative to proof-of-humanity, I’m toying around with proof-of-work in a practical sense of social networking, completely unrelated (but not in opposition) to blockchain.

Outside of making a personal connection, I don’t need to know the identifications of the person on the other end of the line in my online interactions so long as they’re doing good things that align with my values. If something of value can be created through our interaction, my anonymous co-conspirator can be three raccoons in a trench coat for all I care.

Faced with a new prospective collaborator, rather than looking for proof of humanity I look for proof of positive intent. In contexts of cheap oversight, like a 1:1 exchange or a document for which I alone can authorize external contributions, intent can be easily determined from the contribution that I'm being asked to receive.

For entry into larger communities and spaces of shared purpose, some form of gating is needed to keep out bad actors, without clogging the flow of good will. In a many-to-many context, reviewing individual contributions doesn't scale. Instead, general intent can be surmised from a record of positive-sum work.

Having a record of work, especially open source contributions, builds trust in an increasingly untrustworthy web.

"Green Wall" of contributions on GitHub

Computer programmers have had their record of work represented in flashy “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 recorded proof-of-work, especially for ones open source contributions, builds trust in an increasingly untrustworthy web. Every component of the emerging Community OS stack helps me document my work as an internet-native knowledge worker:

You don’t see a lot of spam commits on GitHub, because it’s a platform with very strong incentives for constructive, ‘real’ content. Once the incoming content is of legitimate value, whether or not it's being sent by a human or some other “untouchable” is largely irrelevant.

If I learned today that someone who contributed something to a project of mine turned out to be a violent criminal, I wouldn’t revoke that contribution. The bad actions of that person can’t cancel out their good actions, and vice versa. Rather, I'd be happy to have made space for an otherwise harmful individual to put some good into the world.

Similarly, it won't be such a bad thing that our World Wide Web gets overrun with autonomous bots so long as they’re doing good stuff. Point being, I care first and foremost about discerning good contributions from bad ones, not a prospective contributors' humanness.

I want to make a place where anyone who’s willing to share their work, however nascent, is welcome. Doesn’t matter if the the person behind a profile is one person, multiple persons or not technically a person at all; a proper profile weaving together the web of an online identity represents a body of work. That online record is the proof of that internet actor's existence, not some retina scan and a government issued passport.


Fediverse Discussion

A companion-piece for our Kickstarter's first update.

At Spicy Lobster studio there are very few things we consider ourselves against. If forced to imagine a sworn enemy, what comes to mind is loneliness. I touched on the subject last year in a longform message on our team chat: Musings on death and loneliness.

my mother never really left. Her body is gone, but her embodiment of kindness is forever in the hearts and minds of anyone lucky enough to have been a recipient of her love. As one of her children I received it in abundance.

This community I am co-creating with all of you fine people is deeply informed by the practice of kindness passed down to me by my mother, which she imparted through actions more so than words. Simple acts of kindness speak volumes. The ceaseless current of kindness connects us together, making us less alone.

What we are battling against is the unnecessary kind of loneliness. Quiet solitude can be nourishing, but the deafening void of separateness is a killer. The poet David Whyte describes this duality beautifully.

LONELINESS is the doorway to unspecified desire. In the bodily pain of aloneness is the first step to understanding how far we are from a real friendship, from a proper work or a long sought love. Loneliness can be a prison, a place from which we look out at a world we cannot inhabit; loneliness can be a bodily ache and a penance, but loneliness fully inhabited also becomes the voice that asks and calls for that great, unknown someone or something else we want to call our own.

Loneliness is the very state that births the courage to continue calling, and when fully lived can undergo its own beautiful reversal, becoming in its consummation, the far horizon that answers back.

In the grand scale of things, loneliness is a privilege. Human beings may have the ability to feel aloneness as no other creature can; with a power magnified by intelligence and imagination. Animals may feel alone in an instinctual way, moving naturally and affectionately toward others of their kind, but human beings may be the only beings that can articulate, imagine or call for a specific life they feel they might be missing.

Loneliness is the substrate and foundation of belonging, the gravitational field that draws us home and in the beautiful essence of its isolation, the hand reaching out for togetherness. To allow ourselves to feel fully alone is to allow ourselves to understand the particular nature of our solitary incarnation, to make aloneness a friend is to apprentice ourselves to the foundation from which we make our invitation to others.

To feel alone is to face the truth of our irremediable and unutterable singularity, but a singularity that can kiss, create a conversation, make a vow or forge a shared life. In the world, or community, this essential singularity joins with others through vision, intellect and ideas to make a society.

Loneliness is not a concept, it is the body constellating, attempting to become proximate and even join with other bodies, through physical touch, through conversation or the mediation of the intellect and the imagination. Loneliness is the place from which we pay real attention to voices other than our own; being alone allows us to find the healing power in the other. The shortest line in the briefest e-mail can heal, embolden, welcome home and enliven the most isolated identity.

Lonely human beings are lonely exactly because they are made to belong. Loneliness is the single malt taste of the very essentiality that makes conscious belonging possible. The doorway is closer than we think.

I am alone; therefore I belong.

‘LONELINESS’ from CONSOLATIONS: The Solace, Nourishment and Underlying Meaning of Everyday Words. © David Whyte & Many Rivers Press

Everyone craves human connection, now more than ever. We may be alone in our minds, but there is belonging to be found in being alone together. To survive we need to find the others and become proximate with them. For that we need a common meeting ground founded in mutual good-faith.

The world of Fish Folk is being created to provide such a place. A place where we hold off on connecting with our words and just play together like the primal apes (or pre-primate fish) that we are.

Non-verbal play is an arguably safer starting point for social connection than literate conversation, at least given our current communication tools which are designed for outrage rather than understanding.

Our literal reality, shaped by words, has grown so complex and contested that the meanings of words can be interpreted very differently by two or more people, to such an extent that physical neighbors can seem to live on different planets.

Too many words only sow confusion when their meanings become fragmented. We need our words, but they do us no good once they diverge too far from a common, universal interpretation.

To attain a shared vocabulary as human beings the conversation must be started anew, from the first-principles of playful interbeing. In time we’ll exchange words in ever greater quantities. But first, let’s just play together.

Perhaps all the literacy we need to begin with are these five magic words:

👋 Hi, 😊 wanna play a game?

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.

The notion of a 'Community OS' grew out of an expanded vision of Commune-chat. The use of the term “operating system” for what I'm describing will undoubtedly be contested, but if we can define operating systems for computer hardware, I truly don't see why we shouldn't also have equivalent operating systems for digital communications.

I will even go so far as to argue that part of the reason why our comms tooling has failed us so drastically in the 21st century is because we never looked at digital communications through the holistic lens of a modular yet interoperable whole.

Instead of hardware as the common denominator, the conceptual Community OS is standardized by modern-day web protocols:

Identity – Conduit of flows

Your identity (ID) inhabits the places and behaviors which the Bonfire, Stream and Garden (see below) symbolize, simultaneously experiencing and expressing itself through those outlets.

Examples: Google, Facebook, Apple, Microsoft, Email, Phone numbers

Bonfires – Discursive, omnidirectional flow

Examples: Chat (Discord, Slack), forum (Discourse, StackOverFlow, Reddit), Mailing lists.

Streams – Declarative, linear flow

Microblogging (Twitter, Tumblr, Mastodon), Television (TikTok, YouTube), Everything-app (Facebook, WeChat).

Gardens – Contemplative, bottom-up flow

Wikis (Wikipedia, Fandom), Networked notes (Notion, Roam), Blogs (WordPress, Medium, Substack)

Overlapping boundaries

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. But these multi-faceted applications still tend to be grounded in one particular core function.

Comms Analogues

As laid out in the stack post, I prefer to group the building blocks for online communications tooling into four distinct components:

  • Identity = Conduit of flows.
  • Bonfires = Discursive, omnidirectional flow.
  • Streams = Declarative, linear flow.
  • Garden = Contemplative, bottom-up flow.

digital-metaphors By Lise

To broaden our perspective, we can retrofit those four components for different time periods.

Comms protocols in pre-literate society

  • Voice: personal spoken-word expression
  • Conversation: communal discourse
  • Gossip: word-of-mouth broadcasting
  • Songs: transgenerational 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 protocols in proto-literal society

  • Private diary: personal ideation
  • Sending letters: interpersonal ideation
  • Distributing pamphlets: broadcasted knowledge
  • Sharing Books: synthesized knowledge

In the proto-literal era we adopt technological aids external to our own bodies, already closely resembling their future digital counterparts.

The Predicament

You'll notice that the vast majority of the real world examples of applications listed above (Google, Discord, Twitter..) are part of a closed platform offering, which is a problem:

Identity prison

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.

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 an open source equivalent to linktree, supercharged by OIDC-based identity.

Weird will aggregate your fragmented online persona into a single unified view. Establish your little slice of home on the internet without getting stuck in the content-production imperative of a custom website or a blog.

Then, 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 rauthy. 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: Communal Bonfires

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!

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

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 fedi-friends come into play, plugged into our stack with Kitsune.

Kitsune is protocol-centric, made explicitly to interoperate with Mastodon and other AP applications.

Superpowers:

Part 4: Noospheric Gardens

By now we've got:

  1. a home base.
  2. a shared place for nascent social activity to emerge and mix.
  3. 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’.

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.


The Great Untangling:

Elk client

The “juicy client” is not just rich in flavor and thick in texture; it is fluid. It adapts to the presentation needs of the data it receives.

Its fluidity is enabled by a helpful constraint: The loose confines of ActivityPub (plus extensions) provides a cohesive specification to scope & guide different UI implementations co-existing as part of the greater whole of an omni-interface.

If I'm peeking into an ActivityPub instance, show me its preferred UI form. ..on mastodon.social, show me the Mastodon UI. ..on calckey.social, show me the Calckey UI. ..on bookwyrm.social, show me the Bookwyrm UI. ..on mitra.social, show me the Mitra UI. ..on pixelfed.social, show me the Pixelfed UI. (..on bluesky.social, show me the Bluesky UI.)

This is a continuation of 'Sense-making in federated discourse' and 'Feed Overload'


Elk as an omniclient https://writing.exchange/@erlend/110286022480202952

Elk is currently furthest along on the track to becoming a juicy client. It's being developed by developers from the core team of Vue/Nuxt, which is a reasonably well-resourced crew. Additional capacity was unlocked recently since Nuxt was accepted into GitHub Accelerator! 🎉

It also comes with a desktop & mobile(soon) app distribution, based on Tauri. Being cross-platform makes it a strong unifier since both desktop and mobile UI enthusiasts can participate in the product shaping without splitting up into platform-native specializations.

Mitra and Pixelfed are already using Vue for their frontend. In my humble opinion, they'd be better off doing like Takahe and deferring to Elk as a default/recommended frontend. There's bound to be several other standalone Vue frontends for AP/Mastodon out there that likewise ought to consider this line of reasoning.

In any case, the custom UI features of these ActivityPub distributions can be re-implemented by someone in Elk as part of a juicy client strategy. I hope this product design & development strategy will appeal to enough Elk/Vue/JS/UI devs out there that we can turn this into an increasingly concerted effort.


Another promising alternative in this space is Gobo. It has been explicitly designed as a juicy client, or as they put it, a loyal client.

At the Initiative for Digital Public Infrastructure, we believe that a truly sustainable and resilient digital public sphere is possible and is actively being created. We envision a public sphere supported by these three legs:

  1. Consists of many different platforms with a wide variety of scales and purposes;
  2. Users can navigate with a loyal client that aggregates, cross-posts, and curates;
  3. Is all supported by cross-cutting services rooted in interoperable data.

It's made in Svelte, Cloudfront on the frontend. Python, Postgres, and Docker on the backend. A prototype is tentatively going public (and open source?) some time this May.

We believe Gobo needs to allow users to:

  1. Read and post to multiple social networks from one open source client.
  2. Pick and choose between algorithms for filtering and sorting the posts from all these networks.
  3. Design (and potentially share) different algorithms for filtering and sorting.
  4. Use third-party services to assist in filtering and sorting.
  5. Audit the performance of these different algorithms as well as the third party services.

If this work inspires you, I wholeheartedly urge you to reach out to the projects above and lend them a hand! 🙌

You can find me as erlend#1111 on the Elk discord.

Discuss/share this article via writing.exchange

In Feed Overload I made a brief case for some content gardening tools I'm missing in my fediverse experience.

Evergreen content gardens

99% of all microblog content is ephemeral by design, meant for a specific moment in time. But the 1% that should endure past the 24hr cycle doesn't have good ways to do so in the current paradigm.

Reddit has a simple Top sorting mechanism for viewing highly rated content in the past Day / Week / Month / Year / All Time. This is a great way to surface evergreen knowledge artifacts in places like r/AMA and r/todayilearned. It's also a very helpful way to get oriented in a new space.

The same could be done for hashtags on the fediverse. Treating hashtags as not just timelines of the present moment but also containers of institutional knowledge could lead to all sorts of innovations in knowledge management on the fediverse.

This been on my mind again whilst trying to follow the vibrant discussion on #bluesky. That hashtag receives close to a hundred posts per day. I'm also following opensource, fediverse and a few others, which is already enough to make my home feed highly impractical as an all-in-one aggregate.

For any of these topics, I'm sorely missing some basic tools for sense-making, and I think we're all worse off in their absence. This UX gap is made especially clear in the fedi-wide discourse regarding Bluesky. Of the 100 daily posts on the topic, only 20% are adding something to the conversation. The remaining 80% is a mix of:

  • redundant repetition
  • invite requests
  • bad-faith attacks and misinformation

We lack tools to meaningfully move critical conversations forward. I'm seeing fedizens talking past each other, repeating questions that have already been answered multiple times, and making statements that are outdated or simply false.

I know Jack is a co-founder, and it deeply worries me too. But did you know he's only one of three co-founders, and thus doesn't have veto powers? And what do you know about Jay, the CEO? (a title frequently misattributed to Jack)

I know it's only a single instance which means they may have some major federation challenges to come. That doesn't mean the platform is doomed to a permanent state of centralization. Let's wait and see what happens!

Yeah it's a bummer that they didn't federate with ActivityPub from the start, but they have clearly stated their reasons, and people from both the AP and ATproto communities are starting to explore interop. At this point, talking about what can be done is far more generative than rehashing what has been done.

“It doesn't even have Feature X!” – It does now. Also, it's in beta.

Some simple sorting mechanisms could make this conversation considerably more focused and civilized.

When browsing #bluesky I wanna be able to filter for:

  • Most popular (boosted/liked) posts in the last day/week/month.
  • Posts by people I follow
  • Most shared links
  • Editor's picks

The last two ideas require some explanation.

I love hyperlinking. It is the epistemological glue of the web; links are how we trace the evolution of our shared knowledge. Posts linking out to longform articles are of the highest priority to me, so a dedicated sub-feed of posts with links would be 💯

We actually have something like this already in the Mastodon (iOS) app's News sidebar:

Mastodon news feed in iOS sidebar

Frankly I've no idea how this feature works, but I'd love to find out, so please enlighten me! I don't use the News tab, but what I do want is basically that same sidebar tab scoped down to a specific hashtag and the Links posted within it. Clicking a link should show all the posts that have shared it. With that I can follow the longform thought pieces of the zeitgeist along with their accompanying commentary.

Editor's picks

This one's even weirder, which makes me like it even more. It requires several moving pieces coming together, but there's inspiring potential here.

Imagine if you could subscribe to a client-side editorial service that highlights a few hand-picked posts for you every day/week. It'd probably be run out of a specific account or instance, but anyone could subscribe to it from their client.

The @activitypubblueskybridge@venera.social group for example is an entity I'd trust as a #bluesky and #fediverse Curator (which might be a better word for what we're trying to imagineer here). That account already works like this to an extent, but paired with dedicated client UX it could really shine.

In short: Design UIs that elevate the voices of experts in their respective fields.

In other words, I believe the next paradigm shift in the fediverse is going to happen client-side even more so than server-side. Elk has a major opportunity to be a leader in this space, and I'm also beyond excited about the impending release of the backend-agnostic Gobo.


Low quality discourse makes us collectively sluggish and disorganized. Continuously improving the signal-to-noise ratio of our feeds is perfectly aligned with the creator-minded ethos of the fediverse. We're long past shitposting as our primary pastime around these parts: People I follow in this community are part of a rapidly growing network of shared purpose.

The purpose of our globally networked communications is to break down systems of oppression, such as surveillance-based social media. In reinventing that tired old game, only mechanics that function in service of our pro-social agenda should be carried over into the new. We've only just begun to imagine what the comms infrastructure of The Commons can look like when it's not downstream of an autocratic technocracy whose sole aim is to own your attention.

We can do a lot better than 'posts per month' as our metric of success. I'd like to see us optimize for an increasingly higher ratio of boosts/favorites per post, because that implies a culture of uplifting and listening, as opposed to incessant chatter. Going beyond that, how about we look for ways to measure 'collabs per month', 'mutual connections per month' or 'ideas per month'. Quality over quantity, dear fedizens.

Last week, the official Mastodon app rolled out a new change which presents mastodon.social as the default way to sign up for an account on the app.

This did not land well with many folks on the #fediverse.

From @Fedi.Tips, aka @FediThing:

https://mstdn.social/@feditips/110233282251253677

The official Mastodon app is doing something new which is potentially very dangerous to the existence of Mastodon and the Fediverse.

..continued with an issue on GitHub requesting this feature to be reverted.

From Aral Balkan:

https://mastodon.ar.al/@aral/110236405361940166

Dear @Gargron,

Please reevaluate your decision to incentivise centralisation on mastodon.social in the official app.

This is the sort of design a VC-funded startup would implement, not a non-profit acting in the interests of a healthy commons.

I’m sure you don’t want mastodon.social to become mini-Twitter and you don’t want to become mini-Musk.

That’s not how we win this.

More instances, not larger instances is the key.

Onboarding vs Resilience

I agree with the general sentiment here. Instance diversity is unequivocally a Good Thing. The friction comes from two opposing objectives:

Option 1: Improving the Mastodon/ActivityPub onboarding story

vs

Option 2: Improving the ActivityPub/Fediverse resilience story

(2) has clearly been the priority since Mastodon's founding in 2016, as (1) was always an obvious option and has never stopped being promoted by user experience advocates.

The UX impact of a no-questions-asked signup method cannot be understated. I've noted an abundance of anecdotes detailing fedizens failing to bring their peers on to the network due to the cognitive load of having to choose a server.

What's especially worrisome about this type of usability barrier is that every unsuccessful onboarding goes unrecorded, failing silently. We've surely lost hundreds of thousands of prospective newcomers to the multi-server signup paradigm, possibly millions.

Perhaps I'm being naive, but I believe the fediverse has grown resilient enough to handle a temporary centralization event within its richly decentralized ecosystem. WordPress started as completely centralized and has grown into a 600bn market with no single actor bigger than ~5% of the total pie.

Growing pains of this kind can be good problems to have, as they force the ecosystem to evolve to new levels of scale. You’re gonna run into bottlenecks with whichever growth strategy you go for, it’s just a matter of choosing whichever seems most tractable.

Weighing the options

Eugen laid out the tradeoffs pretty clearly in his very recent interview with The Verge:

Nilay Patel:

The Gmail comparison is really interesting here. I cannot believe I’m about to explain Gmail to the Decoder audience, but I’m going to do it just so I’ve said it out loud. Email is an open protocol that is run by standards organizations. Gmail runs on those protocols — SMTP, IMAP, and the rest — and so does Outlook or whatever. The reality for most people is that there’s a collapse between the protocol and the application on their phone. If you have Outlook, you are almost certainly not using the Gmail app. If you have Gmail, you are almost certainly not using the Outlook app. You’re going to the service and putting that app on your phone. The only real exception to this rule is the Apple Mail app on the iPhone. With everything else, there’s a collapse between the protocol and how it’s expressed to the user.

mastodon.social is the one you run. You download the official Mastodon app, and it’s going to default you into it because defaults are important. I mean, literally, the number one criticism I hear from people is, “Well, you have to pick a server and it’ll never work,” because no one wants to pick a server. You’re going to solve that problem, but aren’t you now getting closer to that collapse between the open protocol and the user experience, where people download the Mastodon app and end up on the Mastodon server?

Eugen Rochko:

Well, for reference right now, mastodon.social isn’t actually the default in our app. It’s just one of the top ones that shows up. However, I think that possibly going forward, we might rework the onboarding user experience into presenting a default option as well as an advanced option, where all that stuff with choosing a server would basically be hidden away from the people who get intimidated by choice.

Yes, you are correct in that it gets us closer to the Gmail situation. But it’s kind of unavoidable with the constraints of the problem I’ve described, where the choice is too complicated. You need to convince people that this is better and that this is something they should invest some time into. Then they’ll realize both how it works and what they can do with it.

That is the idea. The idea is the funnel. They get started on mastodon.social, but afterwards they can move to an account on their own server that they create or on a different server provided by a different company or person. Historically, that has been the case. A lot of people who are currently running their own servers had their first account on mastodon.social. So it is working, and I imagine it will make mastodon.social somewhat disproportionately large in the future, but that’s just part of making it work, I think.

It's quite regrettable however that the Mastodon team didn't make more of an effort to restate their delicate position on this issue in a dedicated blog post and accompanying toot.

Escalations

In the absence of any official response from Eugen & co., we've arrived at a precarious impasse:

https://mstdn.social/@feditips/110260432218416976

I don't think people are realising the danger the Fediverse is in.

The only thing stopping corporations and VCs taking over this place is that the Fediverse is spread out on many different servers, which makes it very difficult to purchase.

If most of the Fediverse ends up on mastodon.social, which is now a strong possibility, there will be nothing to stop most of it being sold to Musk or Zuckerberg or whoever.

The bigger mastodon.social becomes, the more likely a buyout is to happen.

(...)

With all that in mind, here's a suggestion:

➡️ IF mastodon.social becomes more than 50% of the Fediverse, either by total users or monthly active users, the rest of us should defederate it.

Sticking with mastodon.social because “that's where the people are” is pointless. Centralised growth will simply cause the governance problems we've seen on Twitter and Facebook to be replicated on here.

Growth has to be decentralised in order to protect the independence of all Fedi servers.

I love everything else you've been doing as a community advocate @FediThing, but this latest line of thinking is not conducive to a healthy fediverse. In fact, it could very well be its downfall. Large scale separation is antithetical to the social fabric of the world wide web.

Can we take a breather here?

Consider for a second what a terrible business decision it would be for anyone to attempt another high profile social network buyout in this day and age. Add to that the massive risk of buying an AGPL codebase that cannot be relicensed but can be forked, and an un-locked-in userbase made up largely of people whose one commonality is that they heckin' love sticking it to the man.

Hostile VC takeovers are very far down the list of problems facing our nascent community of fedizens. Onboarding and retention on the other hand is easily in the top 3.

Mastodon ≠ Fediverse. I'm not interested in discussing what the Mastodon team should do with their app. That is ultimately their call to make, and it seems like they've made up their mind already.

So what should we do? Can we redirect all this energy in a manner that will be generative instead of divisive? I think so.

Nomadic Identity

This whole discussion would be a non-issue if Mastodon and other AP servers had more comprehensive support for:

  1. Account migrations (tenants can easily move all their essential data to a new instance)
  2. Account aliases (tenants may tie multiple separate accounts together)
  3. Account sovereignty (the user is the ultimate owner of their identity)

In a world where tenants can effortlessly move their account from one server to another, mastodon.social can innocently serve as a temporary staging ground for new entrants as they are encouraged to move elsewhere once they've found their footing.

Many thoughtful people have made this point, and I support it wholeheartedly. If I was the CEO of the fediverse (which will never be a thing), I'd make it my highest priority to see it through.

To get involved with the deeply complicated but ever more important subject of data portability on the fediverse, here are some good places to start:

This thing will never work if at the slightest sign of conflict the first solution we reach for is putting up walls between one another.

I'm going to bed. Please be nice. 💜

Perusing through the newfangled Substack Notes recently, I saw this post by Nadia:

Microblog communities

I was saddened to see such a simplistic take by a writer I greatly admire. As the author of outstanding literature on open source including 'Roads and Bridges: The Unseen Labor Behind Our Digital Infrastructure' and 'Working in Public: The Making and Maintenance of Open Source Software', I expected more nuance from Nadia.

Mastodon = I saw someone describe this as “the types of people in the US who always threaten to move to Canada” and I’m not sure I could describe it more perfectly

While clearly said in jest, it's also a personal justification for Notes as the place to be (for people who self-identify as writers). The joke was funnier and perhaps marginally more true a year ago, but today it's just a bad-faith smear, attempting to paint Mastodon and the fediverse as a community of inconsequential armchair activists.

In actuality the fediverse folk stayed true to their word and are now happily residing in the digital equivalent of Canada, free from the oppression and vitriol of the place they used to call home. Right now it just feels like a fun vacation, but as the digital borders close down ever more at the behest of technocratic dictators the Canada of the internet will look increasingly like the safe-haven Canada represents in The Handmaid's Tale.

The fediverse is the home of modern internet counterculture. It's where people come to talk about the great entanglement of hypercapitalism, surveillance states, monopolization, unionization, mutualism and open source. It's where we go to talk about how to get ourselves out of this monumental mess we're in; no shortcuts or temporary workarounds allowed this time.

Who's living in Canada?

Mapping a federated network of instances – a pluriverse – is no easy task, but new tools like FediDB are looking promising. To get us started I'll just provide a small sampling from the vantage point of my own feed, which is buzzing with rebellious thinkers at the top of their game.

Techy-verse

Need a remedy for the incessant hype machine that's telling you everything is gonna be okay as long as you defer to the tech bros? Media literacy and critical thinking to the rescue!

AI-verse

Speaking of hype, the eminent voices of reason in AI have largely moved over to our side of town as well:

Webby-verse

Folks fighting for a more open and just internet.

Press-verse

The truly independent fourth estate, building their own distribution network free from enshittified platform interference.

Author-verse

Writers of the people ✊

Econ-verse

Economists with an anti-establishment bent? Yes please!

Okay, I might be a major Robert Reich fanboy who hasn't bothered to branch out yet as far as the fediverse goes. Feel free to make recommendations! I'm especially interested in the intersection of economics and ecology.

Blind-verse (bonus!)

Unknown to me until a few days ago, it's really cool to hear that the fediverse is already more accessible than Twitter ever was.

Fediverse for blind users


These people aren't making empty threats. They're actively partaking in a grand rebuilding of the social and technical underpinnings of our formerly open web. With your help Nadia, we could get there a little bit sooner.

I just wanna keep track of people I care for and find interesting. The type of feed(s) available for subscription (blog, micro-blog, chat, forum) is a secondary concern.

The ‘universal feed reader’ application of my dreams works as follows:

(1) Insert a website, e.g. https://pluralistic.net

(2) Ask me which of the following feeds (scraped from the site; optionally assisted by standardized meta-data) I’d like to subscribe to: – https://craphound.com/podcast/https://pluralistic.net/plura-list (mailing list) – https://pluralistic.net/feed/ (rss) – https://twitter.com/doctorowhttps://mamot.fr/@pluralistic (activitypub) – https://doctorow.medium.com/https://mostlysignssomeportents.tumblr.com/

(3) Give me a daily/weekly/monthly digest of this person’s posts, based on my frequency preference.

I've not seen a lot of examples of this kind of interface in practice. A few that come to mind are Google Inbox and LindyLearn. Neither perfectly match what I'm describing, but they both play with the concept of information bundling, rather than linear, chronological streams.

Further reading: