Remix.run Logo
hotcrossbunny 9 hours ago

How?

ColdStream 9 hours ago | parent | next [-]

Funnily enough this is what both Medium and Substack were trying to do but both have ended up being sucked into the system.

Seems to be a universal thing, in a society that values capital as one of the highest achievements, it will co-opt anything that ends up trying to work against it and sell it back to you.

__MatrixMan__ 9 hours ago | parent [-]

I don't think it's universal. People have been using sound waves to communicate for millena and so far nobody has capitalized on it.

Medium and Substack aren't mediums, not like spoken word or watercolor or dance. They're platforms with admins who can be compelled to make changes with no regard to the consent of the users.

Things with that property do always fall to corruption. But we can build software that doesn't do that. It won't be worth investing in, because what investors are buying is the ability to compel that admin, but we can make it for ourselves of we want to.

__MatrixMan__ 9 hours ago | parent | prev [-]

Well, at the base layer I think we need a CRDT of some kind. For my prototype I'm using a GSet of tuples, union for merge.

Overtop that, an API which ensures that applications conform to the CALM theorem. This is a major restriction, but it buys us a lot. CALM violations are nucleation sites for enshittification. They're the points where platform owners exert their influence.

Going without them means going without DNS, for instance, because which bits which name resolves to is the kind of coordination problem that, in our previous attempts, we allowed centralized control to solve for us. And centralized control means presenting a target to corrupting forces.

So I figure we go content addressed. And we gossip tuples of hashes around which we will use to decide which content is which, which is trustworthy, which is malicious, etc. We'll get these from humans that we've met in real life, shook hands with, etc.

We won't have to use a globally unique human friendly name to communicate about content because we won't be blindly trusting content on the basis of it having come from a server with a trustworthy name in the first place. Instead, the act of sharing will be part of the protocol: an attestation about a hash. Instead of "go to Netflix and search for foo" we'll say "here, I've recommended a movie to you" and then you can find it under the list of movies I've recommended to you. It'll have a name for humans, but its the hash that the protocol will operate on.

The lack of a need for a name resolver means we can be partition tolerant. Apps will get smaller if they're just on a LAN with two peers and no internet, but they won't break.

We can gossip this peer to peer over Bluetooth or WiFi, or we can treat Twitter or whatever as our transport protocol: just a dumb wire full of ads nobody sees.

It might never support video calls, because you're gossiping messages opportunistically and there are no service providers involved: nobody to demand that their hardware stays online and conforms to some SLA.

Latency to the other side of the planet might measure in weeks, might require the right person who happens to be taking the right flight to have gossipped the right tuple.

But these are constraints I can live with. Mostly I want to know about local goings on anyway. If it takes my peers a few days to get distant news to me, so be it.