If this site is a product surface, distribution architecture is product work too.
That is the shortest version of why I wired ryanw.eu into the Fediverse.
I did not do it because I suddenly wanted to become a social-platform hobbyist. I did it because I do not like the publishing model where the original thinking lives on one product, the discussion lives on another, the archive lives nowhere dependable, and the canonical copy is whichever platform decides it still wants to show it to people this quarter.
That model is convenient. It is also structurally weak.
I would rather publish from the place I control, then syndicate outward.
The source should live on the site
I wrote recently about why I maintain a website when LinkedIn exists. The same logic applies here, just one layer deeper.
If the site is where I think in public, archive ideas, attach structured data, and give people a durable way to understand how I work, then it should also be the source of truth for the thing being published. Not just a mirror. Not just a profile page with outbound links.
Platform-first posting gets you reach. It does not give you ownership.
Once the canonical copy starts life inside a platform, a few things happen immediately:
- the archive sits inside somebody else’s product decisions
- the surrounding metadata and context become platform-shaped
- the audience relationship is rented, not owned
- the discussion thread is harder to reconnect to the original source later
That is fine if all you want is distribution. It is a poor model if the work itself matters.
What changed on ryanw.eu
This is not theoretical on this site anymore. The ActivityPub integration changed the publishing model in a few practical ways:
- ryanw.eu now exposes a real ActivityPub actor, so the site has a followable identity instead of just a share button
- syndicated field notes can be published through the public outbox, which is where the POSSE flow starts
- replies from the Fediverse can come back through the inbox and surface on the original article through the comments endpoint
- the site advertises ActivityPub support through NodeInfo 2.0, so remote services can understand what it speaks
That is the important part. The website is no longer just where the post happens to be stored. It is part of the distribution system.
On syndicated field notes, that means someone can reply from their own server and the conversation can come back to the article instead of floating off into a disconnected social thread.
That is a better publishing model.
POSSE is the operating rule
IndieWeb has a useful name for the model: POSSE, short for Publish (on your) Own Site, Syndicate Elsewhere.
I think of it as the grown-up version of “post once, send everywhere.” The key detail is the order.
The goal is not to spray the same content into every channel and call it strategy. The goal is to preserve the site as the canonical source, then let other networks act as distribution and discussion surfaces where that makes sense.
That distinction matters.
| Model | Canonical source | Reach | Conversation | Main weakness |
|---|---|---|---|---|
| Platform-first posting | The platform | Usually high | Native to the platform | The original is rented, and context gets platform-shaped |
| Site + RSS only | The site | Good for subscribers | Mostly one-way | Strong archive, weaker social discovery and reply flow |
| Site + POSSE + ActivityPub | The site | Distributed across federated readers and servers | Replies can flow back to the origin | More setup, plus the usual Fediverse UX and moderation messiness |
That last column is important. POSSE is not magic. It is just a much better default if you care where the original lives.
Why ActivityPub and not just RSS
RSS is still useful. I like RSS. It remains one of the cleanest subscription models on the web.
But RSS mostly answers a subscription problem. ActivityPub answers a different one.
ActivityPub became a W3C Recommendation on January 23, 2018. What makes it strategically interesting is not that it is decentralized in the abstract. It is that it gives an owned site a way to participate in a social graph without handing the identity, the archive, and the entire interaction model to one platform owner.
That shows up in a few concrete ways:
- the site can be followed as an account, not just bookmarked as a feed
- a post can move through federated timelines without being copied into a silo as the “real” version
- replies and reactions can stay connected to the original source instead of being trapped in a parallel thread
- no single company has to own the protocol for the system to keep working
If RSS gave the open web a subscription layer, ActivityPub gives it a social transport layer.
That does not make RSS obsolete. It makes the combined model stronger.
Why product leaders should care
Even if you never plan to join Mastodon, there is a broader product lesson here.
This is a source-of-truth problem. It is also an interface problem.
I care about internal platforms, data systems, and high-trust workflows for the same reason I care about this. When the original source of value is unclear, the system gets brittle fast. People work around it. Context fragments. A downstream platform or team starts behaving like the owner because nobody else is acting like one.
Publishing is not exempt from that.
If your thinking, brand, documentation, or product narrative matters, then the publishing system matters too. A site-first protocol model gives you a cleaner contract:
- the original lives on your domain
- distribution can happen in multiple places
- the archive stays durable
- the interfaces stay explicit
- dependence on any one platform drops
That is not anti-distribution. It is anti-fragility.
I find that instinct increasingly hard to separate from good product judgment in general. If you understand why a team wants one dependable source of truth inside a company, you should understand why the same rule helps on the open web.
What ActivityPub does not solve
It does not magically fix onboarding. It does not fix moderation. It does not give the Fediverse consumer-grade UX by default. It does not remove the fact that large proprietary platforms still dominate attention.
And no, I do not think every PM needs to start self-hosting social infrastructure to prove a point.
What it does do is change the ownership model.
It lets the site stop behaving like a passive archive and start behaving like an active publishing surface. That is enough of a difference to matter.
The point
I do not want my best writing to begin life as a rented post inside someone else’s feed.
I want the canonical copy, the metadata, the archive, and as much of the conversation as possible to live with the original. ActivityPub is the most useful protocol I have found for that so far, and POSSE is the cleanest rule I know for keeping the publishing system honest.
Site first. Syndicate outward. Keep the source.
Related thinking
- Why I Have a Website When LinkedIn Exists - the owned-site argument that sits underneath this publishing decision
- Documentation Is a Product Surface - why I care about capture at the source rather than reconstructing truth later
- Domain Bugs Cost More Than Code Bugs - the same source-of-truth instinct, applied to systems and workflows instead of publishing