Open Indie

opensource

A year ago in Feed Overload I wrote:

99% of all microblog (and chat) 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/Lemmy 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.

I explored some tangents along that trail in Follow Anyone and Sense-making on the fediverse. Today I’m continuing down this path, refocusing on the notion of content gardens, spurred on by two new developments.

First, a new type of links-curation app was announced: Introducing linkblocks, the Federated Bookmark Manager.

Then yesterday a developer I follow on the fediverse mused about a knowledge-sharing app in the same vein:

I'm thinking about working on a new platform for reading stuff on the web. To launch, I want a RSS reader (like miniflux; feedly) and a bookmark manager (like pinboard; pocket) with tight integration between the two and opt-in community features. I will eventually extend to stuff like annotation.

I’m particularly interested in the Pinboard-like experience. Prior to all of the all of my blog posts linked above, I wrote an experimental piece called Netizenship from first principles wherein I try to imagine a safe on-ramp to the internet for my 7yr old nephew.

I think I’ll rewrite it one day as I never felt like it fully arrived at its intended destination, but it presents a trio of magical applications that I still consider to be a great foundation for sense-making on the web:

  • 🪪 an ID card you can never lose, to safely make your self known on the web.
  • 👜 a bottomless Bag of Knowledge, for storing and synthesizing the wealth information you come across on your journey.
  • 🌐 a telepathic Study Group, to connect with other learners and exchange resources as part of a knowledge-gardening collective.

There’s more than one application catering to each of these archetypes. They’re not necessarily divided in three either, but personally I prefer that delineation.

For my purposes, Weird will cover the 🪪ID card and Omnivore already covers the 👜Bag of Knowledge. The missing piece is the 🌐Study Group, and that’s where Linkblocks comes in.

Social knowledge network

I think Linkblocks is still figuring out its identity and I don’t intend to direct it one way or the other, so what I’ll be talking about here is how I personally imagine and want a web application like Linkblocks to behave.

The social bookmarking app archetype has been around for decades, popularized by Delicious and carried as more of an indieweb phenomenon by the likes of Pinboard.

It bears a striking resemblance to Reddit, which is no accident. Reddit, like its forebearer Digg, was a subsequent iteration on the links-aggregator concept, but with one crucial difference: Rather than leaning into the timelessness of social bookmarking, the Reddits and Diggs of the world were social news websites, which are different beasts entirely.

Reddit is all about the *now*; viral trends of the day. Pinboard’s quiet indie success has been in the *timeless*, the evergreen nature of content without an expiration date. It’s not about *when* links are added, it’s all about how many people have the same link in common, and what tags-of-meaning they’ve applied to them. Commenting is also entirely optional in the links garden, instead endorsing a digital form of parallel play.

What all of these apps do have in common is the function of a links aggregator. It is therefore conceivable that what Linkblocks is doing could just as well be accomplished with the similarly Rust-based Lemmy for instance. In a world of more architecturally modular applications I think that would be quite possible, but as things are I think the DNA of Lemmy as a Reddit-like is too deeply embedded for the notion of timelessness to fully take root and thrive there to its fullest.

Newspapers and books are made of the same exact stuff – paper, ink and words – yet their distinct form factors make all the difference in how we treat them as either ephemeral or long-term stores of knowledge.

Reading vs sharing

Having talked about the different types of link aggregators, let's now draw a line between the two categories of read-it-later apps, also commonly known as bookmark managers.

As I see it, the difference lies between applications for reading and sharing. A secondary separator can be gleaned between private vs public.

  • Omnivore, Wallabag, Shiori, Linkwarden: Optimizes for the reading experience, practiced almost exclusively in private.
  • Pinboard, Linkblocks, Linkding: Primarily enables a sharing experience, practiced partially or fully in public.

For the latter bunch the app-makers themselves might disagree with me, but I think their capability for public sharing puts them in a distinctly different category than the former bunch. The combination of social-sharing and publicly readable content makes those applications more closely related to the links aggregators of the ‘social media’ variety. And yet, not quite that either.

Here’s a live example of Linkding as a public listing of links on someone’s personal webpage.

That app is a mature example of what Linkblocks might grow up to be, though given its ambitions as a federated bookmarks manager my hope is that linkblocks will more fully embrace the magic of sociality.

Considering what the read-centric applications already do well, linkblocks would be wise to focus its efforts on sharing:

With linkblocks, you can do three things: You can bookmark what you find on the web, you can structure your bookmarks, and you can exchange bookmarks with other people.

It’s only that last thing that I currently lack a good tool for. A narrow focus on the public exchange of links lends itself well to a series of other novel features, like collections:

Curated collections

I’d like the ability to create curated lists of roughly the same kind as what you’ll find on IMDB: https://www.imdb.com/list/ls055592025/

One way to do it would be to allow lists based on tag combinations, e.g.:

burnout + open-source

  1. https://mikemcquaid.com/open-source-maintainers-owe-you-nothing

  2. https://nolanlawson.com/2017/03/05/what-it-feels-like-to-be-an-open-source-maintainer/

  3. https://www.wired.com/story/open-source-coders-few-tired/

  4. https://writing.jan.io/2017/03/06/sustainable-open-source-the-maintainers-perspective-or-how-i-learned-to-stop-caring-and-love-open-source.html

  5. https://medium.com/@mikeal/time-to-leave-a68294ccb2af#.p8ss5xeqz

The key difference from having a bunch of articles with a certain tag is that a Collection can optionally have an order added, to say “read this before that”. That way you’ll have an additional data point that can be used to arrive at a global list of the top3/top5/etc. #burnout+#opensource articles.

I’ve started this feature discussion on the linkblocks repo.

Automated collections

I run two chat spaces for my Spicy Lobster and Commune projects. Both of these spaces have accumulated hundreds of links at this point.

We can imagine an automated collection of ‘Commune links’ by simply passing any link added in that chat onwards to Linkblocks, already tagged with whichever channel it was posted to. Additional tags and ordering can be added from there, for example by tagging some links as “essential” and others as “advanced”.


New paradigm

Social bookmarking is a novel use case for ActivityPub and I’m super excited about it. I heckin’ love links and lists. I wanna use them for everything.

Things like Bookwyrm are cool, but it’s not what I want. I just wanna link the thing. Books, films, podcasts, articles, songs.., they’re all just resource recommendations which can be encapsulated by links. Good Stuff, as Linkblock’s Rafael puts it.

I don’t wanna write reviews and rate with stars. I hardly even wanna do a search. I just wanna know who else in my network is interested in the same stuff, and have new stuff recommended to me that way. A local-first, relatively old-fashioned recommendation engine, subtly supercharged with online connectivity.

If you are running a new open source project that's ready to start its social media presence, I urge you to do it on Mastodon, the default entryway into the fediverse.

Joining the fediverse is a lot like installing your first Linux distro. Nothing is quite as easy as what you're used to; seemingly simple tweaks lead you down deep rabbit holes of community-curated knowledge spread across unofficial wikis and old-school bulletin boards.

But somehow it doesn't feel all that laborious. That's because you didn't install Linux to save time. You entered the world of Linux (or WordPress, Node, Python etc.) because you got the sense that something is happening over there. People who are as annoying as they are clever never seem to shut up about it. And with every obscure new hack you add to your toolbelt, there's a thrilling sense of mastery.

As with the Linux community, when you poke your head into the fediverse you will find the others; your fellow geeks and misfits. Sure, you'll also run into dogma and ignorance like anywhere else, but on the fediverse the cultural status quo isn't determined by a gated top-level management, it's an open ticket labeled 'help wanted'.

Permeating the whole experience is the deeply reassuring certainty that you are considerably more in control of your digital experience than you ever were before you took the leap.

The bird sings a different tune now

It used to be that you had to use Twitter because of its network power and consequent reach. Not so much anymore:

The majority of large open source projects today are still on Twitter/X, but that's because they've already got their audience there and the platform works very hard to keep them locked in.

That's ultimately what it all boils down to: The fediverse isn't a private prison exploiting its inmates for free labor, it's an open landscape of interconnected villages, wherein its inhabitants are free to come and go as they please. Your follows-list is yours to keep forever. You are in control, not that guy.

Shaky first steps

Mastodon is easy and fun except when it isn’t. Just like joining any other open source community for the first time, there's a trial-by-fire to overcome at the beginning as you're implicitly challenged to choose your own adventure.

So why make the effort? Because the fediverse, like open source, is a movement. It runs on the same interoperable internet protocols that enable you to view this HTML document in a standards-based web browser.

Concerning reach, I could point to how networks of (invariably) 100 million users like Tumblr and Threads are committed to federating with the fedi-net (at least the instances that'll allow them to), but I will argue that the 10+ million people already on the fediverse are actually the exact group of nerdy open culture enthusiasts you wanna be reaching out to. As the common startup advice goes (which I can attest also holds true for community building), this is where you'll find the first 10-100 people who love your project.

Twitter might have 20x as many total users, but the number of open software techies on either network feels increasingly even and will keep shifting in favor of Mastodon & friends as the prison-platforms continue to enshittify.

Ride the mammut

The hardest part about entering the fediverse is (1) joining an instance and (2) finding people to follow.

In spite of what some might tell you, which instance you choose does matter. Crucially you do always have the ability to move, even though it's not pain-free. Like the whole ecosystem it's a work-in-progress, and will get easier.

As an open source practitioner I trust you know how to do your own research, but if the prospect of that arduous first step is preventing you from jumping on, just go ahead and join hachyderm.io right now.

Operated by the Nivenly foundation, Hachyderm checks all the boxes most OSS folks should care about:

  • Strong track record of uptime and robust infrastructure.
  • Well-funded org with high degree of transparency (i.e. unlikely to go poof).
  • Diverse leadership and community.
  • Tech-leaning but open to all.
  • Highly safety-minded, as most recently evidenced by their Federation Safety Enhancement Project.

As for who to follow, there are a number of things you could do, but I will simply suggest the following: Browse through the #opensource tag and follow 50-100 people therein which you find remotely interesting. That should be enough to get you started. And by favoriting/boosting these people's posts, they'll be made aware of your existence as well. That's the empty timeline problem taken care of.

There's no time like the present; hop on!

§ Article Discussion

The all too common firehose stream has never worked for me. It’s undoubtedly a big reason why I never got properly into Twitter.

I generally don’t go to noisy congregation spots like bars because I find them overwhelming. Too many people talking loudly at each other all at once gives me sensory overload.

(Back when I'd reluctantly go to these places to accommodate my friends' preferences for social arenas, I was well known for my irish exit)

Mastodon – the mainstream ActivityPub implementation – is the same way; algorithmic or chronological sorting makes no difference as long as everyone's speech is mashed together into one mega-aggregate stream of no structure.

I can handle an email inbox, a bulletin-board or an RSS reader, because these feeds usually serve up somewhere between 1-10 updates per day, instead of 100s.

During my few stints of trying to make Twitter work for me, I've encountered multiple people that I wanted to follow, but ultimately didn't because I could tell their feed was too noisy. 'Too noisy' usually meant one of two things: (1) too many posts per day, or (2) posting about a wide assortment of topics – I only wanna keep up with 20%.

That's a shame though, because if Twitter had accommodated better sorting controls, both from the writer's content-push (e.g. require hashtag categorization) and the reader's content-pull (follow a poster's hashtags), I'd follow a lot more people. Ditto for Mastodon et.al.

The existing microblog paradigm seems to work best for two types of people:

  • Information hoarders who can justify a large amount of time spent sifting through a massive feed because it translates into niche insights and competitive advantage.
  • One-to-many publishers who only use the microblog funnel for outgoing messaging, meaning they don't actually read their inbound feed at all.

For the ActivityPub protocol to become as widespread as email (protocol by specification) and chat (protocol by convention, for now), it needs to provide real utility to the average internet user.

Noisy dinner party

Mastodon is an incremental change, taking the microblog-app archetype from centralized to federated. It’s still the exact same UX paradigm, which is profoundly limited as a tool for sense-making. It’s gonna take a while for the techie community of 10 million to iterate and innovate further until we’ve arrived at the true paradigm shift of a brand new interface for the ActivityPub protocol that appeals to the majority of netizens.

In the blogging paradigm, I could (and did) feasibly follow 500 different blogs. Writing blog posts take time, so if each blogger put out a new post every three weeks that'd be about 20-25 new posts per day. Among those publications there'd still be an abundance of content that didn't always pique my interest, or just a skim-read would suffice to keep up. On average I'd read around 2-5 full articles per day.

The experience was remarkably similar to that of reading a newspaper:

  • Finite number of pages
  • Long-form by default, with mixed-media dispersed throughout
  • Only 5-10% of the paper's content is read in full.

Microblogging on the other hand is like a noisy dinner party that never stops. Its discursive content is non-linear, unstructured and extremely abundant. Following 500 microbloggers who are posting on average several times per day renders my feed completely untenable without the help of a sorting mechanism.

Twitter solves this problem with opaque algorithms. Mastodon opts for chronological sorting, which is earnestly transparent, but punishes curiosity; the more people I follow, the more overwhelming my inbound feed becomes.

Knowledge cultivation vs dissemination

The fediverse of microbloggers' primary objective isn't knowledge cultivation, but rather social bonding and sentiment aggregation.

What's new/trending? What are the most commonly held beliefs? Who shares the same opinions? Which opinions are controversial?

While enduring long-form mediums like blogs and forums excel at creating and refining knowledge, ephemeral short-form mediums like chat and microblogs can more effectively disseminate and reinforce established knowledge.

No strict lines can nor should be drawn between these different modes of communication however. It's not uncommon for a new piece of knowledge to go through the following stages of life, from soft to solid to distributed:

  1. New but unstructured knowledge is synthesized over the course of a chat conversation

  2. The key knowledge artifact is refined in the form of a blog post

  3. The new knowledge is disseminated through microblogs and links aggregators. 🌱🌻💨

With some work, we can make these stages far more seamless, and I believe step 3 in this particular example is currently the least developed.

Slow Feeds

For the likes of me (generally shy & quiet; loud & proud if asked to speak) to functionally participate in the digital conversation of the federated party, three key features are missing in today's microblogging & feed-aggregation clients:

  • Follow hashtags
  • Bundling content
  • Content gardening

Follow hashtags, not people

First and foremost, I'm interested in following topics, not specific people. I'm deeply curious about certain people's feed exactly because they write frequently about a topic that interests me.

If a person who's writing regularly about open source decided to start a farm and consequently began posting mostly about agriculture, I'd be far less interested in their feed as a whole. However, if that same person was still writing occasionally about open source, now with an added ecology-informed perspective, I'd be more excited than ever to keep up with that particular segment of their writings!

It can seem like we have a chicken and egg problem in the widespread adoption of hashtags to properly categorize content on the fediverse, but clients can in fact lead the way quite effectively. As long as there are popular clients that lean heavily into hashtags as a primary means of discovering and displaying content, posters are incentivized to utilize hashtags more (which can even be backfilled by edits), knowing there are clients that prioritize tagged content.

This would be further facilitated by solving the problem of federated search, so that my inbound feed for open source content wouldn't be limited to just the #opensource tag but would also include a variety of related search terms.

I can easily follow 500 people if I'm only following updates pertaining to my specific interests.

Side note: While it might be a controversial opinion, I'm not a fan of inline hashtags as a default way of tagging content. It's just a noisier version of the post-script tagging system we had for blogs. Meta-data should be kept out of the content body unless it's explicitly meant as an outgoing link to a specific feed-aggregate.

Bundles over timelines

Oh how I miss the good old days of digests, when information was expected to be consumed on a daily or even weekly basis, rather than hourly.

While I still want better hashtag-following, I wouldn't need it nearly as much if I could just tell my client to give me a daily/weekly/monthly digest of a person’s posts, based on my frequency preference. Smart clients could even suggest new frequency preferences based on my engagement (or lack thereof) with certain feeds.

I've not seen a lot of examples of this kind of interface in practice. Aside from the mailing list example above, a few others 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, strictly chronological streams.

Evergreen content gardens

99% of all microblog (and chat) 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/Lemmy 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.


The vast majority of development effort in the ActivityPub-client space is currently going into various derivatives of the classic microblog paradigm popularized by Twitter. My intention for this post is to gently nudge developers' attention towards a new paradigm that aims to bridge the gap between gossip and sense-making. If you're working on this, let me know!