Writing about open & equitable product development

Weird web pages

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 Lobster
Fish Folk
Shotcaller
CommunityOS
Weird
Commune
Teachers-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:

Special interests:

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: