Federated systems need better affordances
Ploum wrote about PixelFed sawing off the branch that the Fediverse is sitting on. He describes a kind of misuse of the protocol: PixelFed only delivers posts with images to followers.
This is arguably a response to Instagram, but he makes a good point:
In the Fediverse, if a poster publishes text, they expect followers to receive that message.
Followers likewise expect to receive posts, but they might not realize they're only receiving posts with images.
Ploum argues this means the Fediverse should have certain approaches to moderation to prevent such protocol violations.
But there's a deeper problem than respecting the protocol or determining appropriate moderation.
The fundamental issue is the assumption that users have a moral obligation that matches the app or protocol creator's intentions.
I'm not talking about political ideology. I'm talking about something more mundane.
With ActivityPub's federated server architecture, we place the moral obligation on the user to:
- Find a server
- Participate in the decentralized aspects of the system
- Understand the system's implications
What actually happens?
Most people sign up to the big main server. They're not immoral. We've just designed these systems to imitate the centralized ones they're used to.
Their expectations come along with that imitation. They expect to sign up quickly, and get their toots a-tootin'!
We developers saw centralized systems and recognized we needed decentralized backends to make the world better. I absolutely believe that's true.
But we didn't take responsibility for going farther than that.
When we talk about respecting the protocol, we're talking about respecting a set of affordances that we haven't modified from the centralized systems themselves.
We need to design new affordances for decentralised social.
To be clear in my language, from the point of view of affordance theory:
Affordances: When you present a person with an object, they can look at it, interact with it, and learn what's possible. You can look at something and know if it's liftable.
Signifiers: These tell you how to use an affordance. We see these in design systems:
- A box with a single handle on top signifies: lift with one hand
- A box with two hand-shaped holes on either side signifies: heavier, lift with both hands
- A hamburger menu (three lines) signifies: there's a menu under here
- A heart under something indicates everyone will see a heart-count go up.
When we look at what went wrong with centralized systems that we wanted to avoid, much of it comes down to misuse of user data, but I think more so:
Centralised systems encourage users to behave badly for themselves
For example, what happens when you have followers and follower counts?
- People want to raise that number
- You get large controlling accounts
- You magnify the divide between people who speak and people who consume
- You get influencers
- You get people paying influencers to gain access to their followers and reputation
It all stems from the follower count. From the visibility placed on knowing who your followers are, being able to enumerate them—even if you remove the number.
Medium was Ev's answer to Twitter's user behavior
We needed:
- More discourse
- People able to express nuanced and complicated thoughts
- So, long form content
Otherwise, we'd fall into retweeting headlines without reading anything.
But that happened anyway. Medium inherited all the other problems. Not only followers, but also the title, the headline.
What did we get?
- Playing to the world of writing good headlines
- The rise of Buzzfeed-style "one weird trick" headlines
- Social media bubbles and the negative effects on political discourse
To be fair, this wasn't just Medium. This was during the rise of Facebook and Open Graph.
But Medium, in spite of trying to do better, chose affordances that reinforced this pattern:
- People retweet/reshare a headline that makes them angry
- They believe it because it matches things they already believe
- They share immediately without reading the article
- Others receive it with social proof: "If this person is sharing it, it must be valid"
Headlines will spread faster than anything else in the protocol. We can't control that.
This isn't a one-sided political problem. It's a problem of the networks we choose, the communication networks, and the affordances and signifiers we choose to participate with.
As app developers, they're affordances that we choose to recreate.
ActivityPub set up an alternative to centralized systems and solved a lot.
But decentralising isn't enough.
Ploum argues you should follow the protocol in its entirety because that's the user's expectation. There's undeniable truth to that:
- We should do right by users' expectations.
- We shouldn't mislead them.
Are we making it the user's responsibility when it's ours?
Our sign-up mechanics don't reflect the ease of expectations users have for signing up, combined with the difference of "go find yourself a community that is a server."
We're asking them behave in ways where the integrity of the system depends on doing something, but giving them ambiguous directions.
We've also put the onus on server operators, who, if we're being honest, are second-class citizens in the ActivityPub world. It is not easy to run Fediverse servers. We haven't put the same effort into making it turnkey to run servers cheaply and without maintenance as we have into being a user.
Yet our decentralization properties completely depend on these.
When I compare different networks—ActivityPub, Bluesky, Nostr, Farcaster—you see quite different decentralization properties. You have a different way of putting the onus on the user in each case.
We start by recreating the signifiers users are used to, because that's how they know "this is like that other thing":
- We make it look like Twitter with a like and a retweet
- Or like Instagram with images
- Or like TikTok with swipeable videos
Those signifiers tell users: "Here's a handle on top. You can lift it with one hand." We're telling users to expect the same thing.
The signifiers are the same. And so are most of the affordances, just with an extra aspect of decentralization added that they don't really understand yet.
Have we done the full steps of changing the design toward the behavior we're aiming for?
Back to Medium, I've always been interested in: What does long-form writing look like without the problematic affordances?
A though experiment. What if:
- There are no titles or headlines
- There is no "list of headlines" or "card with title and description." These fields don't exist at the protocol level. (You can use headings in what you write, but they're no longer a special feature.)
- The interface is simply a feed of streams of consciousness writing, one post after the next
- The only way you could refer to somebody is quote them
- You don't separate "comment" from "post" in your underlying ontology
- You just say "here's where you've been quoted, go read"
- You're dropped into a stream of consciousness
Sure, you'd see lots of people just taking a quote and sharing the quote without context.
The only way you know somebody has interacted with you is they've quoted you. They quote this and they keep writing.
Now we don't have followers in the same sense.
You could still follow people and follow their streams of consciousness, but:
- No follow count. No list of follows. It's not the obvious target or game for people to play.
- Discovery isn't through a reshare, it's through quoting.
- Similarly, the only way for you to see that people are reading your stuff is that they quoted you, or emailed you.
- It encourages a different kind of writing. Share your thoughts and move on. You don't even need to think in "full posts", which is freeing.
There are better affordances asking to be protocolized.
We see bloggers everywhere, asking for replies by email. They don't want to "build engagement" but actually just meet interesting people and get into genuine conversations. They want to be in relation with each other.
So, what if our Medium Without The Mistakes simply allowed that instead? Private replies. Co-authored feeds. Let those affordances lead.
This could give rise to very different communication, something more personal and less performative.
I shared this with Manu (linked above, who also responded to Ploum and he pointed out that the profile and feed themselves are the problem. He contrasted forums, which put our attention on discussion threads, not profiles and feeds.
Sure, you technically did have a profile page on forums, but I suspect most people never even bothered checking them. Because your profile on a forum wasn’t really relevant in the context of that digital space. You learned about people through discussions. You see the same usernames popping up and over time you learn things about them.
Every interaction has a well defined starting point and it’s not just one big stream. Plus discussions on forums could stretch for weeks and months and sometimes even years.
This was said in a broader context: Manu was making a case that social media itself isn't healthy. I asked him how he considers his blog being different from Medium.
RSS is entirely personal and private. You make your feed. There’s no vitality inside an RSS feed. There’s no reposting, no boosting, no metric driven surfacing of content. You get everything that’s posted and that’s it.
This leads right back to the question: which affordances are we reproducing?
If we choose to take away just one things, say images or reshares, that's a different set. A different kind of object we're providing. A different animal that encourages different behaviour. But we can't just focus on the one feature we're adding or dropping, it's the aggregate of capabilities we're making possible for that matters.
We're not just decentralising, our goal is deeper: making deeply user-centric alternatives for pro-social behavior.
If we're thinking terms of effects on psychology and individual relationships that we create, that means responsibility for set of affordances we provide.
That's how we'll get the world we're building this stuff for.