Open Indie

Writing about open & equitable product development

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!

I'm an uncle of two nieces and one nephew. They will all be citizens on the world-wide-web soon enough.

The boy is starting school this August. He will be getting his hands on a browser and logging on to the internet before long.

His parents (both conscientious teachers) will do their best to keep him restricted to the Kids version of the internet, but this regulation gets harder and harder as both the boy and his local-area social network grow bigger and bigger.

I know the internet well, and frankly I'm somewhat terrified of the thought that this sweet kid is soon gonna occupy this space. It's a wild, dangerous place. Full of wonders, to be sure, but it's becoming increasingly harder to steer away from the bad and only enjoy the good.

The thought of him and his cousins entering this place terrifies me a little bit. On the other hand, I'm thrilled about the prospect of getting virtual visits from them in my native environment.

I'll do my best to make my little patch of the internet frontier a pleasant place for them to hang out in. Between me and their parents we can clear out a nicely hazard-free path, so their walk over to my little net-hut is safe.

But eventually they're gonna want to venture beyond the safe paths. They'll walk ever deeper into the dark forest and its undergrowth, where neither their parents nor their uncle can fully protect them.

*An alternative metaphor has them delving ever deeper into the upside-down world of The Abyss.

The bottom line is: Us elder netizens got to equip these kids with the tools they need to take care of themselves, because where they're going we cannot go all the way with them.

Some of these tools will take material shape. Others are immaterial, like the ability to synthesize knowledge into 'common sense' and 'best practice'. I will attempt to hand down a good bit of both.

The timing for handing down these tools and pieces of knowledge is determined by context and coincidence, as the process of netizenship is profoundly personal. As a rule of thumb, netizenship should start as a read-only, single-player experience. Write-access and two-way communication needs to be introduced gradually, for the safety of the newcomers as well as the existing residents of the web.

For the tools and practices introduced below, assume gaps of several years between the milestone lessons to be learned.

Essential Tools for Internet Explorers

In my home country of Norway, we're mountain people. If you find us on a map you'll see our land is literally made up of one continuous mountain chain.

Over the centuries our shared cultural knowledge of safe mountaineering has eventually become encoded as nation-wide rules for every responsible hiker to abide by. First made official in the 1950s, the rules were updated as recently as 2016 in response to increased tourism and modern equipment tempting risk-takers to venture beyond their capabilities.

They go as follows:

  1. Plan your trip and inform others about the route you have selected.
  2. Adapt the planned routes according to ability and conditions.
  3. Pay attention to the weather and the avalanche warnings.
  4. Be prepared for bad weather and frost, even on short trips.
  5. Bring the necessary equipment so you can help yourself and others.
  6. Choose safe routes. Recognize avalanche terrain and unsafe ice.
  7. Use a map and a compass. Always know where you are.
  8. Don’t be ashamed to turn around.
  9. Conserve your energy and seek shelter if necessary.

Similar rules exist among veteran netizens for how to traverse the web safely and responsibly, but we have yet to codify them properly. I'm looking forward to taking part in that effort, but to start with I will simply introduce three tools and accompanying practices that I believe to be absolutely essential for practical internet participation.

It's assumed that you've already learned the basics of web browsers, web links and web sites, so let's dive in to the ever-expanding World Wide Web of internet stuff!

You will begin (or restart) your experience of the internet by reading. The most visible parts of the internet are made up of web pages. Much like books, web pages are primarily made up of words, so reading is fundamental for traversing the web world.

Once you've found some sites with cool stuff to read and play with, you will probably want to come back for more. Some of those things you'll find will even be living things, still evolving, changing over time.

Time for your first internet lesson:

Knowledge storage

On the internet, most things can't be picked up and taken away from there. In the physical world you can pick up a shiny stone and put it in your pocket; the internet won't let you do that. Usually you can only remove something that you yourself put on there.

But you can still take lots of internet things with you on your journey. Many things you'll find on the web carry within them one of the most magical capabilities of the web world: They can be copied! ✨

You can get copies of all sorts of things on the internet, like games, songs, books.., even the recipe for chocolate cake. But web pages – articles made of text – are the easiest to copy and store, because they take up very little space. Think of how you can easily keep notes of 10 different cake recipes in your back pocket, but even one whole cake would never fit back there!

When we make copies of web pages, we are storing knowledge. To take useful things with you on your journey through the web, you need a Bag of Knowledge 👜; a magical storage-space for web artifacts.

bag-of-knowledge By Lise

There are many internet tools (web apps) that act as a Bag of Knowledge, but few do it in a way that puts you in control. In future lessons you'll learn how to recognize trustworthy apps, but for now I've carefully selected the best tools available. In this case, that tool is Omnivore.

In order to acquire your magic bag, you will need to do something important: Create a new user account. When you create a new user account on Omnivore, you attach that new piece of your digital identity to your Bag of Knowledge, effectively proclaiming your ownership of that bag by sticking your name-tag to it.

Which brings us to your second lesson:

Web identity

Most likely you have already done this a handful of times with games and applications that asked for at least two things, often three:

  1. a user-name
  2. a password
  3. an email

Each such account is a representation of your web identity 🪪. Not only does your bag now exist on the internet, but so do you. The moment you've signed up for such a user account, you're no longer a nameless observer.

When you look at the internet, the internet looks back at you.

These accounts that you sign up for will form an increasingly detailed representation of your digital self. Some identities are kept private for your eyes only, while others are meant to be shared publicly to connect with others.

It is absolutely critical that the core of your digital identity belongs wholly to you alone. Every time you entrust an outside party with authority over your digital ID, you compromise your digital autonomy and inherent right to self-determination as a netizen.

When you signed up for Omnivore, you did indeed entrust someone other than yourself with a piece of your ID. But fear not! Omnivore is an open, user-aligned application; it doesn't try to own your identity, it merely wants to interoperate with it. Once we have set you up with your core web-ID, your account on Omnivore will henceforth act as one of many extensions to your core identity.

Your core web-ID will act as your internet-wide keeper of the three aforementioned building blocks foundational to ones web identity:

  1. a user-name (extends to personal web domains)
  2. a password (extends to password-less authentication)
  3. an email (extends to inter-personal networking)

The right tool for this job is Weird.

None of this needs to be fully understandable at this point however, which is why Omnivore lets you delegate identity-authority to it until you're ready to assume full responsibility of your digital ID at a later point in your netizenship journey.

With your provisional identity set up on Omnivore, the real fun can begin. Having an identity on the internet makes us discoverable by the others, on our own terms. Sharing the contents of your bag with other people is the best way to discover cool new stuff. Better yet, it's a great way to meet new friends!

Time for the third and last lesson of this introductory chapter:

Shared knowledge

I have my own bag of knowledge, and I keep most of it open for everyone to access freely 🌐. This is a great way for me to learn about new things and meet new people, because anyone who looks into my bag is invited to tell me about other things they think I might enjoy, based on what they found in my bag.

As an example, here's a list of three children's books I enjoy:

This list acts as an invitation on many levels:

  • Read these books! (to your children)
  • Comment on the books (perhaps an old book contains outdated morals)
  • Suggest other books I might enjoy.
  • Point me to your own list of books.

That's a lot of potential engagement enabled by a mere list! Such is the power of the internet, as it adds connectivity glue to knowledge artifacts. Collective sharing of this fashion lays the foundation for a social network built on genuine shared interests and common purpose, rather than anti-social games of status and domination.

You're now equipped with the most essential tools needed for sense-making in the web world:

  • 👜 a Bag of Knowledge, for storing information.
  • 🪪 a (provisional) Digital Identity, to make your self known on the web.
  • 🌐 the combination of the two, to connect with other netizens on the world wide web.
  • 🧠 and the know-how to collect and share information as part of a collective.

Next up, we'll learn how to follow information that moves.

I plan to write the Commune version of what I already wrote for a former employer: https://blog.meilisearch.com/meilisearch-open-business-plan-v0-1/ https://blog.meilisearch.com/meilisearch-values-v0-1-tech-is-political/

This article explains my basic investor/builder thesis: https://spicylobster.itch.io/jumpy/devlog/337996/everlasting-games

It’s the Open Product Recipe: – WordPress vs Movable Type – Discourse vs VBulletin – Mattermost vs Slack – Strapi vs Contentful – etc.

In the short term, the open approach is a Good Enough differentiator. Meaning, a niche of people (like myself) strongly prefer to pay for the open version of a product, provided it fulfills baseline UX requirements.

In the long term openness is an objectively better way to build, especially with regards to app-platforms like Linux and WordPress. It results in a superior, competitively viable product.

So this is what we’re doing for the cohort of Commune-apps as well. Starting with Weird and Commune Preview as the smallest atomic units upon which a much larger product and company can be built.

The Commune company ethos will be the same as its gamedev counterpart Spicy Lobster: https://spicylobster.itch.io/jumpy/devlog/356201/spicy-lobster-open-gamedev-company

Co-ownership & equity

Everyone I work with is a potential co-owner of whichever project we’re doing together. I’ve no interest in being the majority owner of anything I build, since I’m not much of a solo-builder.

In fact, I don’t really think it’s good for a medium-sized company or product to have any owner with more than ~10% ownership, assuming it’s big enough to have 20+ people involved.

So even if let’s say me and one other founding dev built this company + product just the two of us together as 50/50 partners (which is already not the case, as we’ve presently got several collaborators involved 🙌 ), the long-term intent would be to bring our total ownership % down to 5-10% over the next several years.

I also don’t think someone who’s not actively working in a company should get to sit on their share for very long until it starts automatically being sold off. I’m no fan of rent-seeking dynamics.

Investment

I’ve looked around at a lot investors to find some that align with my values, and I’ve found one clear favorite: https://calmfund.com

In short, they focus on taking a revenue split rather than hoping for some big exit. Also, they actually require that a company is earning around $1000/month before they invest, meaning they intentionally have limited leverage.

There are other great options out there like https://oss.capital (quite like YC specialized in open source & cloud) and https://mozilla.vc, but Calm provides the best possible starting point with a very gentle on-ramp.

Calm is Plan A, I.e. spending the next year trying to simply make a small and steady profit. What’s really cool about them is that they also don’t do the all-or-nothing pitch. Instead they invite founders to simply get in touch with them and keep an open line going.

So as soon as we’re making $100/month, we're pitching to them.

Fellowship

There are other people and projects out there doing work that overlaps with our vision. We hope to explore all such possible alignments. I wanna help facilitate the proliferation of 'open companies'.

You wanna study companies that understand ecosystem-building? Talk to the companies that are making money in large part thanks to an open source product. The ones that do it well have a deep understanding of the circular value creation that strengthens an ecosystem and all actors within it.

Some examples from the tech ecosystem I inhabit include:

Lots more are listed here: https://indieopensource.com/ https://www.coss.community/cossc/global-vc-funding-into-coss-24b-raised-from-jan-2020-to-august-2022-3pc6

A new, better type of company needs to become the default, mainstream way for companies to be built. This company looks a lot like the companies listed above, combined with B-corp like standards, applied more strictly the bigger a company gets.


The Great Untangling:

The Great Untangling: Postamble – An incomplete map of the Commune and Weird-aligned web of makers.

There are already many awesome projects out there that feel like kindred spirits of what Commune or Weird intends to be. Some of them I'm actively using. Others don't quite fit the bill, usually because they're not open or accessible enough for my particular needs.

Here's a WIP list of values-aligned projects that deserve your attention 👀 and love ❤️

Bonus for thorough readers: Making space, a poem.


The Great Untangling:

The Great Untangling: Part 3 – Materializing the web from first principles.

Right now I use GitHub as my go-to profile page: github.com/erlend-sh

It works quite well, since practically all of my ongoing projects, professional and otherwise, are taking place on GitHub. However it still leaves a lot to be desired.

I have this funky erlend.sh domain that I’m not using. I wanna transcribe most of my GitHub personal page onto there, so I finally have my ultimate calling-card and place to call home on the interwebs. Essentially an open source alternative to https://linktr.ee.

Table of Contents

Websites as the atomic matter of the internet

I consider the personal website to be the smallest possible building block of web identity. Once you wanna go past the observer (READ) level to the contributor (WRITE) level as a netizen, you’re gonna need a material web-persona to make yourself known. Unfortunately we never made personal websites easy enough to build, so the likes of Facebook became mainstream persona providers.

Any competitive persona platform eventually needs to support the OIDC (OAuth) stack, as evidenced by both Matrix and Mastodon’s adoption of the standard. I want to eventually sign into stuff with Weird, but the platform doesn’t need to start there. Our proof-of-concept can be super simple, because Linktree and its ilk have already proven there’s a demand for that type of onepager app for anyone who want to get their ‘own’ web identity started in the simplest way possible.

The type of website builder we don’t have yet is the type that the average Facebook user could use, while quietly also respecting your sovereign rights as a netizen, by providing the option of self-hosting.

How I see self-service hosting actually working is that >90% of “self-hosters” aren’t relying on their own local server as the primary host. They’re actually deferring to a hosted service (Weird Inc.) as the default provider of their website. Their own self-hosting setup is merely a redundancy backup.

This is how I personally wanna ‘self-host’ anyway. I very much want a paid service involved, but I want the service to teach me how to be self-sufficient in case of unexpected interruptions.

I’ve been on the internet for two whole decades now, and I still haven’t put up my virtual entrance door & name sign. I’ve done that on Twitter, Discord, GitHub & Google, but not yet on erlend.sh, the space that’s most genuinely mine (for as long as the fine people of Saint Helena (.sh) deem me worthy) on the World Wide Web. All the options are still too clunky.

The linksapp lets you drop anchor, so you can begin to assemble your own space, even if not on your own custom domain quite yet. There’s something very grounding about a website that simply lists all your other primary identities on the web; a central meta-identity immediately takes shape as soon as those first couple of account links are inserted.

The meta-identity of my Twitter, Discord, GitHub & Google identities combined is a pretty accurate reflection of my complete digital identity. As such, the linktree format/spec is introducing web2-natives to the merits of personal websites, hearkening back to the heydays of web1!

Making Weird

With the help of several developers I've been producing various prototypes to do exactly this.

First we made linksapp-fresh:

Then weird-rs (Axum + Sycamore):

..which then transitioned into a local-first Tauri app.

Update – April 2024: Following the renewed focus of Weird netizens, our definitive MVP for Weird is now being developed with Svelte (eventually Leptos), on top of Rauthy.

Through various milestones of increasing feature complexity, weird-app will evolve as: 1. a personalized calling card 2. an identity aggregator 3. an identity connector: Network of Shared Purpose

Beginning as something tiny and static, it will grow incrementally into something expansive and dynamic. Greatly inspired by The OG Social Network: Other People’s Websites.

Calling Card

The goal of our initial MVP is to have a tiny website generator that can be run cheaply as a managed service for the easiest possible onboarding, with self-hosting as an option for our fellow geeks.

We'll expand on this minimal core by weaving existing services into that core identity, much like omg.lol. Our preliminary thoughts on commercialization paints a clearer picture of where this is headed.

Web identity aggregator

As it matures, Weird-app is meant to give netizens back ownership of the data they’ve created and stored on other platforms. As such, Weird will be an increasingly capable aggregator of disparate web identities and their respective content silos — siloed no more!

We’re gonna start off dev-centric and gradually work our way through all user types from there. Any identity-serving platform with an open API is ultimately up for grabs; POSSE provides some prior art here.

Initial prototyping has commenced in uda-api and node-uda.

1: Single-source

Enter GitHub/GitLab profile, get personal web page.

2: Curated content

Handpick what source-content to use from source platform.

3: Feeds

Add blog feeds (multiple) & twitter/mastodon. A new tab will be added. See linksapp-fresh.

4: Multi-source

Add itch.io, stackoverflow, deviantart. Refine source-curation to facilitate easy combination of multiple sources.

5: Advanced feeds

Add getpocket/raindrop and pocketcasts/listennotes for ‘what I’m reading / listening to’ feeds.

6: ALL THE SOURCES

By this point we will have some sense of the best practice for adding additional sources, probably arriving at some sort of standardized plug-in system & docs to facilitate self-serve. First and foremost for devs, but also with an eye towards regular users.

Update – April 15. 2023 This skeleton-vision has been further sketched out in much more colorful detail by Jon Bell in 'Hey Creators, Please Make Firehoses!'

Network of Shared Purpose

I’ve done so many projects over the years, and for each and every one of them there’s always someone out there with the interest and capability to help me solve some problem, usually because they've already been solving that problem for their own project. But it’s unnecessarily difficult to find these people, and for people to find me.

I wanna make it much simpler for people on the internet to go ‘I’m interested in working on x/y/z’ and be connected with other people who share that interest, especially among open source practitioners.

There would be a simple directory & search based on people’s public profiles. In the context of my Fish Folk project for instance, I wanna know about people who are into ‘open source’, ‘gamedev’ and ‘rust’. I’ve searched manually in this way on GitHub many times, and connected with dozens of collaborators that way.

I’ll for example see that someone already worked on a 2D pixel platformer game in Rust already, so I just get in touch and say

hey, seems like we might have a shared interest! Wanna talk?’.

There’s a rather incredible amount of people out there working on the same kind of stuff without ever getting in touch with the others. The Network of Shared Purpose is effectively a global jobs board, but for mutual collaborations rather than work-for-hire.

Prototyping

The easiest way to prototype this might be with GitHub issues/discussion. I could list my collab projects there.

On my Weird linkspage, I want a ‘Collab’ tab. Clicking it will reveal a list of the 1, 3, 10 (max) topics/projects I’m open to collaborate on.

Mine would look something like: – Spicy LobsterFish FolkShotcallerCommunityOSWeirdCommuneTeachers-app

It might be split in two: (1) need help and (2) offering help.

My ‘offering help’ section is the topics-based one. It goes something like:

  • Open game production (talk to me if you’re trying to make and sell an open source game)
  • Open comms software production (ttmi you’re making open source communications software)
  • Open source strategy (ttmi you’re trying to create a sustainable open source product)

Special interests:

  • Open source
  • Coops
  • Openness philosophy
  • Indie gamedev
  • Rust
  • Godot
  • Community

GitHub profiles support topics already, so I’ve added the above to my profile repo.

753FD139-DC02-47BE-8664-F9B5DB9356C4

Next up we just gotta build more glue layers so that anyone already on GitHub can easily participate in this proto-network for people of common interests.

If this all seems a little half-baked, that's because it is. I'm doing a release early; release often with my thoughts. This series of documents is the v0.1 release of the Network of Shared Purpose. I'm putting my signal out there in hopes of connecting with the others sooner rather than later, so we may pool our efforts together.

This is all a continuation of the same stuff I'm doing as a game developer and studio founder. The way in which I approach open game development directly informs how I approach open community development, and vice versa.

Web pages materialize the internet

The size of the internet can be measured in the atomic mass of the websites it's made up of. We collectively materialize the internet with every additional web page we create.

The internet is a lot of things however, and for many people it’s not thought of as a material place they go to, it’s just the connective layer (wires and signals) between them and some internet-enabled app. The app is the place.

Discord, TikTok, Facebook is the place. https://www.generalist.com/briefing/discord

Instead of saying ‘let’s go to the arcade’, a few games have become so dominant that instead we’re saying ‘let’s go to the Tetris-place’. Tetris was the bomb, but it was never that powerful.

The Great Commons that is the internet remains the bedrock upon which all these other places built their foundations. They’ve just layered so many facades of concrete, steel and plastic on top that we’ve forgotten what the once-fertile earth underneath looks like.

Connecting on the internet shouldn’t involve having to make constant compromises about which app-platforms to meet the others on.

Where you meet up should be entirely separated from who you meet up as.

If you're interested in whatever this is and where it's headed, for now you can find my contact info and story at github.com/erlend-sh.

I sincerely hope you'll get in touch!


The Great Untangling:

The Great Untangling: Part 2 – Paving a path to the new frontier.

I've been feeling a growing sense of anxiety related to account lockout lately. Horror stories about people getting locked out of their Google/Discord/GitHub accounts without due process and any form of appeal weighs heavy on my mind. While this type of event is extremely unlikely, the chance of it happening the way it does (sudden data unavailability) ought to be exactly 0. And as someone who is explicitly working on alternatives to the dominant platforms, that does add a multiple to my chances of suffering a lockout, however small that chance may be.

Here's the rough migration plan for 2023 and beyond. This is not a fixed path, but rather a demonstration of available options that are becoming increasingly viable.

Conversation around the Bonfire 🏕️

Status quo Transition End-state
Discord Revolt Revolt (+Matrix)
Discourse Gitter Revolt (+Matrix)
Telegram - Element (personal edition)
Element - Element
Gmail CubeMail Dust+Stalwart Labs
(+Postmoogle/Matrix?)

My indie game studio Spicy Lobster is already using Revolt in production as a 1:1 mirror of our Discord server. It serves two purposes:

  1. Backing up our Discord data for posterity.
  2. Providing a two-way bridge for collaborators who cannot access Discord (due to firewalls et.al.)

For a button-click service focused on #1 plus SEO, I recommend Linen.

Thinking in the Garden 🌳

Status quo Transition End-state
GDdocs Notion (Markdown) Subconscious
GetPocket Raindrop.io Omnivore
PocketCasts PocketCasts open source Teacher-app?
(+ActivityPub/Noosphere)
Substack Write.as Weird (Noosphere+ActivityPub feed)

The introduction of the Noosphere protocol and its accompanying Subconscious app unleashes the true potential of the digital garden. My apps for notes, articles, blog feeds and podcasts will all be hooked into a common connectivity layer.

ActivityPub might play a similar role as a publication layer, but it needs to become less chronologically inclined to better accommodate timeless knowledge artifacts.

Flowing through the Stream 💧

Status quo Transition End-state
Twitter/Tumblr Tumblr/Mastodon ChatterNet (ActivityPub)
Reddit/HN Lemmy/ChatterNet ChatterNet (+Matrix?)

Chatter Net is a companion protocol to ActivityPub. It's still in the prototyping phase, but a functional demo is available at conversely.social.

My micro-thesis: The AP network has already onboarded the ~10 million early-adopter techies who cared enough about their personal tech to jump ship when Twitter began leaking. The first big move is over. The mainstream >100 million users won’t do anything until there’s a proper paradigm shift. Mastodon is just an incremental change, from centralized to federated. It’s still the exact same UX paradigm. It’s gonna take a while for the 10m community to iterate and innovate further until we’ve arrived at the true paradigm shift of a brand new interface for the AP protocol.

Chatter Net is able to play the Mastodon game on par with everyone else, while layering on top a lot of extra capabilities that can spring into action once we’ve run up against enough limitations in the Mastodon (Twitter-legacy) paradigm to necessitate a more radical shift.

Solving for nothing else other than the account-loss issue (which causes the exact same anxiety as the global-scale authoritarian platforms) is already a very strong sales pitch for CN, which it has a built-in solution for with its DID-based identities.

Conversing, Thinking, Flowing self 👤

Adding to the three outer layers, we include the inner core: Identity, I.e. the digital-self.

Status quo Transition End-state
Linktree - Weird
Google/GitHub GitHub/Matrix Matrix/Chatter Net

Linktree might seem like an odd addition here, but I believe it's on track to becoming a personal website protocol. More on that in part 3.

With the introduction of OIDC support in Matrix, it has a chance of establishing itself as a primary authentication platform.

Key technology

The next generation of identity-enabling technology is becoming possible this year thanks to the maturation of some foundational building blocks. I will not get into why I think this tech is so important; I'm merely putting this out to signal alignment with other builders working with the same stack.

Emerging web standards

Tauri

I predict ALL of the app-archetypes listed above will exist in the form of a Tauri-based app by 2024. And by then, Tauri Mobile will be stable (enough).

Rust

Rust is leading the charge for The Great Rewriting. Maximized performance without foot-guns is a huge force multiplier on its own, but Rust is so much more than that. All of the end-state apps listed above are using Rust to some extent.


The Great Untangling:

The Great Untangling: Part 1 – Shaping the foundations.

To sufficiently express my identity as a netizen I require:

  • global group messaging: Discord
  • local group messaging: Telegram
  • secure & sovereign messaging: Element (Matrix)
  • first-contact messaging: Gmail

and..

  • collective thinking: GDdocs/Notion
  • collective writing: Writing.as
  • collective learning: Omnivore, PocketCasts, Inoreader

and..

  • interactive social-sharing feed: Twitter/Reddit

and..

  • public, static identity: Linktree/GitHub
  • personal, dynamic identity: Google/GitHub

They’re all somewhat-interchangeable components of an overarching community platform in the making, with identity at the center. Not one single app, but rather the entire stack I want as a community-professional as well as a regular participant on the interwebs. Identity realized in community: Community OS.

Some of these tools are partially open source already, but by the end of 2023 I'd really like most of them to be so. That'll require some complete migrations on my part, like I recently did with GetPocket (fully proprietary) to Raindrop.io (open source client).

It'll also require a lot of building, because the open version of the tools I need won't come from the closed tools dominating the status quo. Thankfully, a lot of people are already working on the open version of the tools needed for the Community OS stack, so cOS will happily default to these applications.

Gardens, Streams and Campfires

Building on the terminology of Digital Streams, Campfires and Gardens and its forebearer and knowledge-management classic The Garden and the Stream: A Technopastoral, we will add in the concept of the Digital Experiencing-Self, aka your identity.

The Garden is the web as topology. The web as space. It’s the integrative web, the iterative web, the web as an arrangement and rearrangement of things to one another.

Things in the Garden don’t collapse to a single set of relations or canonical sequence, and that’s part of what we mean when we say “the web as topology” or the “web as space”. Every walk through the garden creates new paths, new meanings, and when we add things to the garden we add them in a way that allows many future, unpredicted relationships

In the stream metaphor you don’t experience the Stream by walking around it and looking at it, or following it to its end. You jump in and let it flow past. You feel the force of it hit you as things float by.

It’s not that you are passive in the Stream. You can be active. But your actions in there — your blog posts, @ mentions, forum comments — exist in a context that is collapsed down to a simple timeline of events that together form a narrative.

In other words, the Stream replaces topology with serialization. Rather than imagine a timeless world of connection and multiple paths, the Stream presents us with a single, time ordered path with our experience (and only our experience) at the center.

There are no hard boundaries between these categorizations of tooling. They greatly overlap with one another depending on how they are used and extended by their respective tool-users. That is why I appreciated Tom’s addition of the campfire, which blurs the line between Garden and Stream.

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. Thinking out loud, self referencing and connection forming. 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.

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

Your identity (ID) inhabits the places and behaviors which the Garden, Stream and Campfire represent, simultaneously experiencing and expressing itself through those outlets.

digital-metaphors By Lise

To my great delight, three new internet protocols are emerging as a communications triumvirate of great promise. In order of maturity:

The missing piece is an identity protocol, but we’re on the verge of figuring that out as well. Both Matrix and ActivityPub (currently represented chiefly by Mastodon) are adopting OIDC (OAuth), the Web2 standard for login.

Matrix’ progress can be tracked at https://areweoidcyet.com/ . Once complete, they will support logging in with Mastodon, among many other options.

Mastodon already supports OAuth 2, with ongoing discussion about improved SSO support and allowing Mastodon to be used as an OpenID provider.

On the horizon awaits OpenID Connect Federation and Self-Issued OpenID Provider.

Meanwhile, Noosphere is trying a brand new approach to fit its local-first, peer-to-peer paradigm: UCAN a Web3 login protocol that’s also been adopted by ATproto.

The requirements for centralized always-online identity and distributed local-first identity are very different, and thus not in opposition but rather complementary. I don’t want to keep my money in a flimsy USB drive — I’m messy! I like banks in their essence: Hold on to most of my money for me in your super secure (always-online) vault, and let me access it with my (local-first) formal ID.

Both the old and the new have their part to play on The Path to Self-Sovereign Identity


The Great Untangling:

This post is the preamble of a 5-part series called The Great Untangling. The following four posts have already been published and are linked below.

Meaning making

This year marks the 10 year anniversary of my mother's passing. I spent five of those years in relative isolation, and the other five in union with a soul mate, finding great wisdom and comfort in solitude as well as companionship. To honor my mother's simple yet timeless teachings of loving kindness, I am determined to make this year count. I am hungry for meaning-making, and I sense many others are too.

The past decade has left a profound mark on my identity. At 34yo, I am truly starting to make peace with who and what I am, happily shedding any personal attachments that do not resonate with my most fundamental self.

My personhood is expressed through my relationship to myself and the persons around me. I exist in the world to the extent that my being is experienced by others outside of myself. It’s relationships all the way down; links.

When it's my turn to journey to the other side, like my mother before me, I plan to travel light. Who I was will be defined not by the accumulated material possessions or accolades I leave behind, but by the genuine connections I made along the way, which will endure long past my lifetime.

Connective tissue

I've grown up in an unprecedented time of connective magic. Unlike my ancestors, I have known not tens, not hundreds, but thousands of people with whom I co-created something of value. Such is the power of the digital age. My deepest connections exist locally, offline. Yet many of those connections were initially mediated through the incredible connective tissue of the internet.

My life as a somewhat odd person would have been a profoundly lonely one had it not been for the online spaces where I found The Others; fellow weirdos interested in play-crafts like storytelling and game development, coupled with an obsession for openness as a means to digital emancipation. To most of the thousands of people I've come across in my two decades as a netizen, the digital expression of my persona is my entire persona. I hope to live long enough to engage in a physical handshake or even an embrace with many of my online friends, but I recognize that a large number of these connections will forever remain purely digital.

Therefore it is acutely important to me that my digital identity properly reflects my truest self. I want the people in my life to have seen and known the real me, regardless of whether they came into contact with my physical or digital being.

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.

This year, that is all going to change. It has to, for time is running out. With the help of numerous brilliant individuals I've connected with over the years, I'll be breaking free of the proprietary identity stack with which I’ve become so deeply entangled.

If you'd like to come talk the people working on this, you can join us on Discord. That might seem hypocritical, but we're starting our community on the app with the strongest networking effects. A Matrix bridge is soon to follow!


The Great Untangling:

A longform message written on Spicy Lobster's team chat in the winter of 2022.

The topic of loneliness has been on my mind a lot lately. At this moment I am on a train headed north towards my childhood home in Norway. The mother of a dear friend is dying, so I want to be there for her. Having lost my mother nearly a decade ago in my early 20s, I’ve had a lot of time to contemplate and process this inevitable part of life. It can be a profoundly lonely time, and can hardly be endured without helping hands.

Thanks to many teachers – like my parents, friends, partners, spiritual guides and psychedelic experiences – I am quite comfortable with the concept of death. It’s just another doorway we have to walk through as part of this wild ride of life we’re on.

Looking around, it could not be more obvious that there’s nothing final about death; it’s merely another stage in the cyclical process of all living things. From a seed in the ground a flower springs to life, only to return into the ground once more, transmuted into the soil from which new flowers will sprout. And encoded in the DNA of those flowers is a memory of all the flowers before them. There would be no new flower without the old, and as such they are one and the same. Death is not the end, but rather the beginning of the great unknown from which new life springs forth.

Similarly, 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 unending current of kindness connects us together, making us less alone.

Even so, however kind I am to myself and others, loneliness still creeps in sometimes. Lately I’ve been feeling it rather intensely, for a couple reasons.

For one, I’ve been reducing my intake of cannabis, which for the past decade has been a pretty remarkable wonder-drug for me. It has acted as a powerful tool for introspection, anxiety relief and mood stabilization, as well as inducing states of increased creativity and hyperfocus. I also thrive in solitude when I’m “high”. But for the past year, following increased consumption during the Covid pandemic, my body has begun rejecting the ‘medicine’ with bodily sensations resembling an allergic reaction whenever I consume it too frequently.

I’m actually quite excited about reducing my dependency on weed, as I’ve noticed myself for several years now becoming increasingly reliant on it in situations which I’d be better off facing with a clear mind. My catch-all coping strategy for any hardship in life turned into learned helplessness. So in an odd way it feels like my body is helping me do what my mind wanted, but was unable to enact by sheer will alone.

The other catalyst of loneliness of late has been a change in the dynamic between me and my life partner. Fully explaining the nature of our relationship would require a few too many paragraphs for this already long stream of thought, but in short: We’re still together and in love, but we are going through a separation of sorts in order to make room for, well, everything else. We’re several years into this slow and steady experiment and it feels as right as ever, but that doesn’t prevent it from sometimes being difficult, as it is for me now.

I’ve been single for most of my life and over time I’ve grown very comfortable with solitude, to the point where I frequently fantasize about heading off into the mountains to just be away from it all for several months. This recent surge of loneliness and longing for more human connections has challenged my idea of who I imagined myself to be. Turns out my ego felt safer yearning for disconnection rather than the opposite.

So what am I doing about it? I reach out. I ask for help. I talk to friends, daring to be vulnerable and open with them just as they’ve previously opened up to me before. I’ve started seeing a therapist for additional support. I pay extra close attention to what my body needs to feel good, which essentially comes down to eating mostly healthy food, plenty of rest and either low or high intensity exercise every day. I’ve never once gone for a walk and regretted it afterwards. Never.

And whatever feeling emerges in my mind, I don’t try to push it away. But I don’t identify with it either. Instead I try to heed the advice of a beloved teacher: Whichever thought arrives, invite it over for tea, and just sit with it in non-judgement.

I’m sharing all of this here because the mere act of doing so is helping me untangle my emotions, bringing me ever so slightly closer to equanimity. I’m sharing with all of you because relating to my experience might help untangle your own. And I’m sharing to make space for this type of personal venting, so others may share their hardships as well.

This community is made up of people from all walks of life, with some, like myself, far more privileged than others. As such our individual conditions of hardship differ greatly. But the experience of suffering is universal to all human beings, and no one deserves to suffer quietly and alone. A golden cage is a cage nonetheless; suffering is relative.

Just as we’ve connected through openly sharing our work with one another in pursuit of common interests, we can continue to deepen our connection by sharing our lived experience in pursuit of greater togetherness and belonging.

I love you all! ❤️

Modern apps have a lot of dark incentives, intentionally kept unseen from the public eye.

These secret incentives are not always bad, but they have a higher tendency to be misaligned with the needs of the general public, i.e. the app users.

Neil Panchal described the problem succinctly in Dear Spotify. Can we just get a table of songs?

Back in iTunes Good Ol' Days™ edition, we'd get our search results in a list like this:

Stick something in the search bar. Get results in a list. Life is good. Clear, concise, dense, and most importantly: FUNCTIONAL. It works.

But, when I try to do nothing more than search in your shiny app, I get this:

The ensuing discussion on HN thoroughly reaffirms Neil’s take.

Bad UX by great designers happens when their design is not wholly in service of the user’s joyful experience. Spotify’s UI isn’t designed for user autonomy; rather, it’s designed to control user behavior.

Most modern applications, and practically all closed-source ones, are not innately incentivized to give their users full autonomy. The app will decide for you what you want.

If the app can control UX outcomes rather than merely facilitating them, the app dictates the user and not the other way around. Such apps will optimize for the outcome of maximum profit.

More control over the user means more money. A predictable and suggestible user is a lot easier to monetize than an unpredictable and self-directed one.

Thankfully Spotify’s subscription model doesn’t strongly disincentivize an open API since they make money as long as their app API is used. Therefore alternative clients do exist. However, their lenient approach to alt-clients might suddenly change if they deem it a bad business decision. (update-2024)

Absolute control over the user’s client interface means greater opportunity for profit, so other big subscription companies, like Discord for instance, strictly disallow alt-clients; probably because their particular subscription model (Nitro users) struggles with weak margins to hold up their massive free offering.

It seems the more ‘free’ an app is, the more antagonistic it will be towards the user, because in the world of free tech the user is the product.

Look no further than Reddit. Its video player alone is a thing of brokenness legend, which has caused my computer-tablet material damage by overheating it and thus harming the battery. Ognjen Regoje provides a more detailed breakdown in Reddit's disrespectful design, further elucidated by its own HN discussion as well as a previous topic from a year before:

Ask HN: Why is Reddit on mobile so obsessed with making me use their app?

Reddit constantly hassles me to use their app on mobile.

Why do they care so much?

I really don’t want to use their app. I just wish they’d give up and let me use the browser in peace.

First response:

It is pretty offensive that they say “reddit works better on the app” when the only reason for that is that they broke everything on mobile (on purpose?) in a series of badly-implemented redesigns.

Former Reddit employees have confirmed that it’s on purpose, because of course it is.

Reddit’s proprietary app can extract way more data, it won’t let you block ads, and it can more effectively manipulate your attention with push notifications and other retention mechanisms. In short, it can exert more control over its users.

These apps don’t love you, but there’s no good reason why it cannot be so.

Are apps capable of love? Sure! Apps are made by human beings, and human beings are wholly capable of love. Furthermore, we’re capable of expressing and transmitting our love for others through all manner of technologies & techniques, like language, pictures, songs and food.., software applications should be no different.

So why don’t our most widely used applications have any love for us? We know why: these apps are produced by companies so large they’ve outgrown their humanity, burying any love that was once there deep down in layers of corporate abstractions.