home.social

#discoverability — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #discoverability, aggregated by home.social.

  1. Naseej has joined the DataCite Registered Service Provider Program, the first provider from the Middle East. Through Medad, Naseej supports DOI registration workflows that help institutions improve metadata quality, interoperability & discoverability. Learn more on our blog: doi.org/10.5438/cp4k-mp67

    #DataCite #Naseej #DOI #Metadata #ResearchInfrastructure #OpenScience #ScholarlyCommunication #PersistentIdentifiers #ResearchData #Interoperability #Discoverability #OpenResearch #PID

  2. huh, going to have to check this out, may be a new way to get posts discovered or seen from small servers too. It feels like something between guppy groups and a fedibuzz relay.

    Discover more of the Fediverse with tags.pub
    https://activitypub.blog/2026/04/02/discover-more-of-the-fediverse-with-tags-pub/

    #ActivityPub, #Discoverability, #Fediverse, #Tags, #WordPress

  3. 🔬 #MakingScienceVisible – why #Communication is crucial today 🗣️

    This is exactly where #ScienceRelations comes in:

    A structured form of #publicrelations for #scientists – with the goal of
    📈 increasing #visibility
    🔍 improving #discoverability
    🤝 Create #transparency

    In an age of growing #information overload, it is becoming increasingly important to communicate #research clearly, accessibly, and effectively.

    Learn more: philosophies.de/index.php/scie

  4. 🔬 #MakingScienceVisible – why #Communication is crucial today 🗣️

    This is exactly where #ScienceRelations comes in:

    A structured form of #publicrelations for #scientists – with the goal of
    📈 increasing #visibility
    🔍 improving #discoverability
    🤝 Create #transparency

    In an age of growing #information overload, it is becoming increasingly important to communicate #research clearly, accessibly, and effectively.

    Learn more: philosophies.de/index.php/scie

  5. 🔬 #MakingScienceVisible – why #Communication is crucial today 🗣️

    This is exactly where #ScienceRelations comes in:

    A structured form of #publicrelations for #scientists – with the goal of
    📈 increasing #visibility
    🔍 improving #discoverability
    🤝 Create #transparency

    In an age of growing #information overload, it is becoming increasingly important to communicate #research clearly, accessibly, and effectively.

    Learn more: philosophies.de/index.php/scie

  6. 🔬 #MakingScienceVisible – why #Communication is crucial today 🗣️

    This is exactly where #ScienceRelations comes in:

    A structured form of #publicrelations for #scientists – with the goal of
    📈 increasing #visibility
    🔍 improving #discoverability
    🤝 Create #transparency

    In an age of growing #information overload, it is becoming increasingly important to communicate #research clearly, accessibly, and effectively.

    Learn more: philosophies.de/index.php/scie

  7. 🔬 #MakingScienceVisible – why #Communication is crucial today 🗣️

    This is exactly where #ScienceRelations comes in:

    A structured form of #publicrelations for #scientists – with the goal of
    📈 increasing #visibility
    🔍 improving #discoverability
    🤝 Create #transparency

    In an age of growing #information overload, it is becoming increasingly important to communicate #research clearly, accessibly, and effectively.

    Learn more: philosophies.de/index.php/scie

  8. Discover more of the Fediverse with tags.pub

    Hashtag discovery in the Fediverse is limited by which servers yours knows about. tags.pub, a global hashtag server by the Social Web Foundation, fills that gap. It collects public posts and redistributes them by hashtag, so your content reaches people across the network. It works out of the box on WordPress.com. Self-hosted sites can connect by adding a relay in the ActivityPub settings. The project is open source, privacy-conscious, and respects opt-outs.

    activitypub.blog/2026/04/02/di

  9. You know what kind of sucks? I sort of miss my #Spotify #algorithm. I'm on #Qobuz now, but the #discoverability of it is so and so.

    Human curated playlists are fine, but it depends upon who is doing it. I've started DJing again and I could try to do what we did in the olden days, which was just checking labels and release schedules, but that's a lot of work seeing as how many labels get started and shut down for this, that and the other project.

    I'd like an algorithm I can have control over.

  10. RE: norden.social/@webmontagkiel/1

    German tool to check whether your account can be found in the #Fediverse

    It also offers brief tips on how to improve #Discoverability and orientation:

    Account name

    Profile description / Bio

    Profile set to be discoverable

    Can the profile be indexed?

    Do you have a verified link to identify yourself?

    Have you pinned posts to highlight stuff that is important to you?

    Obviously, depending on what you want or need to do here, you may not want or need all of these.

    #NeuHier #NewHere

  11. Audio Interview: The Digital DNA of Your Book — Metadata Insights with Anna Featherstone and Abbey Clark

    ALLi nonfiction adviser Anna Featherstone speaks with Abbey Clark of NielsenIQ BookData Australia about book metadata—what it is, why it matters, and how it shapes discoverability and distribution across the publishing ecosystem. Clark offers clear, practical advice on when to set up metadata, how to keep it updated, and the common pitfalls authors and publishers can avoid. The conversation prompted Featherstone to update her own metadata right away and offers useful guidance for any author who wants to give a book the best chance of being found.
    selfpublishingadvice.org/podca

    #Podcast #AnnaFeatherstone #authormarketing #bookmetadata #discoverability

  12. Audio Interview: The Digital DNA of Your Book — Metadata Insights with Anna Featherstone and Abbey Clark

    ALLi nonfiction adviser Anna Featherstone speaks with Abbey Clark of NielsenIQ BookData Australia about book metadata—what it is, why it matters, and how it shapes discoverability and distribution across the publishing ecosystem. Clark offers clear, practical advice on when to set up metadata, how to keep it updated, and the common pitfalls authors and publishers can avoid. The conversation prompted Featherstone to update her own metadata right away and offers useful guidance for any author who wants to give a book the best chance of being found.
    selfpublishingadvice.org/podca

    #Podcast #AnnaFeatherstone #authormarketing #bookmetadata #discoverability

  13. Audio Interview: The Digital DNA of Your Book — Metadata Insights with Anna Featherstone and Abbey Clark

    ALLi nonfiction adviser Anna Featherstone speaks with Abbey Clark of NielsenIQ BookData Australia about book metadata—what it is, why it matters, and how it shapes discoverability and distribution across the publishing ecosystem. Clark offers clear, practical advice on when to set up metadata, how to keep it updated, and the common pitfalls authors and publishers can avoid. The conversation prompted Featherstone to update her own metadata right away and offers useful guidance for any author who wants to give a book the best chance of being found.
    selfpublishingadvice.org/podca

    #Podcast #AnnaFeatherstone #authormarketing #bookmetadata #discoverability

  14. Audio Interview: The Digital DNA of Your Book — Metadata Insights with Anna Featherstone and Abbey Clark

    ALLi nonfiction adviser Anna Featherstone speaks with Abbey Clark of NielsenIQ BookData Australia about book metadata—what it is, why it matters, and how it shapes discoverability and distribution across the publishing ecosystem. Clark offers clear, practical advice on when to set up metadata, how to keep it updated, and the common pitfalls authors and publishers can avoid. The conversation prompted Featherstone to update her own metadata right away and offers useful guidance for any author who wants to give a book the best chance of being found.
    selfpublishingadvice.org/podca

    #Podcast #AnnaFeatherstone #authormarketing #bookmetadata #discoverability

  15. Users Are Too Dependent on Centralized Techno-Fascist Corporate Structure to Ever Leave Discord

    I’m watching people scatter into countless real-time chat alternatives to Discord after Discord started pulling the age-verification and age-gating card.

    https://techcrunch.com/2026/02/09/discord-to-roll-out-age-verification-next-month-for-full-access-to-its-platform/

    It’s very frustrating because people are entirely missing the point of a community and how social networks work. Real-time platforms and social media networks only work well when a large number of people share the same space at the same time. If everyone creates separate servers or competing apps, the result is fragmentation that makes it unviable.

    One reason why Bluesky became so successful is the invitation and starter-pack move. It essentially allowed people to move collectively as cliques. Bluesky used invitations and starter packs to move groups of friends together. This kept communities intact. Moving as cliques preserves network structure, whereas random scattering does not. People aren’t do not seem to intend to move as cliques or subgraphs of networks off of Discord. And the whole reason people were on Discord was to host their communities, so an alternative becomes pointless if your community doesn’t remain intact.

    Instead of an active, strongly connected, possibly distributed network, you get dozens of small pockets. I am referring to a potential distributed network rather than a single centralized platform, because Matrix is an example of a decentralized chat protocol. Not all alternatives have to be centralized like Discord. Technically, many older chat protocols, such as XMPP and IRC, are examples of federated real-time synchronous messaging. They allowed communication between users on different, independently operated servers. Federation means that multiple servers can interconnect so that users from separate networks can exchange messages with one another seamlessly.

    Decentralized alternatives would not be a problem if people moved to the same distributed network as cohesive groups. However, what I am seeing is that people move in disconnected and stochastic ways to entirely separate distributed networks, so communities are not kept intact. For example, when people move to XMPP servers or Matrix servers, it bifurcates and disconnects social networks. Notice I said XMPP or Matrix, which logically means people are on Matrix but not XMPP, or they are on XMPP but not Matrix. That implies a person would need to be on both Matrix and XMPP to speak to their original community from Discord if it split down the middle. To synchronize conversations in chats, there would need to be a bridge. It’s a pretty complicated solution.

    The likely outcome is that people will remain on the dominant platform because of its scale and structure. The deeper irony is that while people may want independence from corporate platforms, they often struggle to organize effectively without the centralized structure those platforms provide. They’ve become so dependent on corporate structures to support their communities that they have no clue how to organize their own social networks in a sustainable way.

    I’ve always been an internet nerd, but most of my social life has been offline. I view my interactions with the social app layer of the internet as a game, so losing that domain of the Internet is not devastating to me.

    I’ll give you an example. This is a WordPress site. You hear this insincere nostalgia from Millennials and Gen X for a simulacrum that never was, especially concerning forums. Check this out: when you go into the plugin installation section of WordPress, this is on the second row you see:

    https://bbpress.org/

    That means any WordPress site has the capability to host a forum. They’re nostalgic for a setup where you can use a simple install script on any hosting service to install WordPress. After that, you can then just add a plugin to turn it into a forum. Hell, they can do this on WordPress.com if they don’t want to self-host.

    You can make a forum, but no one will use it because they’d rather use a centralized platform like Reddit. Users have become so dependent on corporations to structure and organize communities that they can’t do it themselves. It’s sort of like the cognitive debt that accrues when people outsource their thinking to AI.

    The issue is not that forums are hard to host or create; rather, the issue is that people have become so dependent on centralized corporate structures that they can’t maintain or organize their own communities, which is why everyone ends up on Reddit or Discord. A reason I keep hearing for why people don’t want to leave Discord is that it’s hard to recreate the community structure that Discord’s features provide. They claim that they want independence from corporate platforms, but rely on the centralized structure those platforms provide to function socially.

    People say they want decentralized freedom, but in practice they depend on centralized platforms to maintain social cohesion. Stochastically scattering to the digital winds of the noosphere destroys the very communities they’re trying to preserve.

  16. Users Are Too Dependent on Centralized Techno-Fascist Corporate Structure to Ever Leave Discord

    I’m watching people scatter into countless real-time chat alternatives to Discord after Discord started pulling the age-verification and age-gating card.

    https://techcrunch.com/2026/02/09/discord-to-roll-out-age-verification-next-month-for-full-access-to-its-platform/

    It’s very frustrating because people are entirely missing the point of a community and how social networks work. Real-time platforms and social media networks only work well when a large number of people share the same space at the same time. If everyone creates separate servers or competing apps, the result is fragmentation that makes it unviable.

    One reason why Bluesky became so successful is the invitation and starter-pack move. It essentially allowed people to move collectively as cliques. Bluesky used invitations and starter packs to move groups of friends together. This kept communities intact. Moving as cliques preserves network structure, whereas random scattering does not. People aren’t do not seem to intend to move as cliques or subgraphs of networks off of Discord. And the whole reason people were on Discord was to host their communities, so an alternative becomes pointless if your community doesn’t remain intact.

    Instead of an active, strongly connected, possibly distributed network, you get dozens of small pockets. I am referring to a potential distributed network rather than a single centralized platform, because Matrix is an example of a decentralized chat protocol. Not all alternatives have to be centralized like Discord. Technically, many older chat protocols, such as XMPP and IRC, are examples of federated real-time synchronous messaging. They allowed communication between users on different, independently operated servers. Federation means that multiple servers can interconnect so that users from separate networks can exchange messages with one another seamlessly.

    Decentralized alternatives would not be a problem if people moved to the same distributed network as cohesive groups. However, what I am seeing is that people move in disconnected and stochastic ways to entirely separate distributed networks, so communities are not kept intact. For example, when people move to XMPP servers or Matrix servers, it bifurcates and disconnects social networks. Notice I said XMPP or Matrix, which logically means people are on Matrix but not XMPP, or they are on XMPP but not Matrix. That implies a person would need to be on both Matrix and XMPP to speak to their original community from Discord if it split down the middle. To synchronize conversations in chats, there would need to be a bridge. It’s a pretty complicated solution.

    The likely outcome is that people will remain on the dominant platform because of its scale and structure. The deeper irony is that while people may want independence from corporate platforms, they often struggle to organize effectively without the centralized structure those platforms provide. They’ve become so dependent on corporate structures to support their communities that they have no clue how to organize their own social networks in a sustainable way.

    I’ve always been an internet nerd, but most of my social life has been offline. I view my interactions with the social app layer of the internet as a game, so losing that domain of the Internet is not devastating to me.

    I’ll give you an example. This is a WordPress site. You hear this insincere nostalgia from Millennials and Gen X for a simulacrum that never was, especially concerning forums. Check this out: when you go into the plugin installation section of WordPress, this is on the second row you see:

    https://bbpress.org/

    That means any WordPress site has the capability to host a forum. They’re nostalgic for a setup where you can use a simple install script on any hosting service to install WordPress. After that, you can then just add a plugin to turn it into a forum. Hell, they can do this on WordPress.com if they don’t want to self-host.

    You can make a forum, but no one will use it because they’d rather use a centralized platform like Reddit. Users have become so dependent on corporations to structure and organize communities that they can’t do it themselves. It’s sort of like the cognitive debt that accrues when people outsource their thinking to AI.

    The issue is not that forums are hard to host or create; rather, the issue is that people have become so dependent on centralized corporate structures that they can’t maintain or organize their own communities, which is why everyone ends up on Reddit or Discord. A reason I keep hearing for why people don’t want to leave Discord is that it’s hard to recreate the community structure that Discord’s features provide. They claim that they want independence from corporate platforms, but rely on the centralized structure those platforms provide to function socially.

    People say they want decentralized freedom, but in practice they depend on centralized platforms to maintain social cohesion. Stochastically scattering to the digital winds of the noosphere destroys the very communities they’re trying to preserve.

  17. Users Are Too Dependent on Centralized Techno-Fascist Corporate Structure to Ever Leave Discord

    I’m watching people scatter into countless real-time chat alternatives to Discord after Discord started pulling the age-verification and age-gating card.

    https://techcrunch.com/2026/02/09/discord-to-roll-out-age-verification-next-month-for-full-access-to-its-platform/

    It’s very frustrating because people are entirely missing the point of a community and how social networks work. Real-time platforms and social media networks only work well when a large number of people share the same space at the same time. If everyone creates separate servers or competing apps, the result is fragmentation that makes it unviable.

    One reason why Bluesky became so successful is the invitation and starter-pack move. It essentially allowed people to move collectively as cliques. Bluesky used invitations and starter packs to move groups of friends together. This kept communities intact. Moving as cliques preserves network structure, whereas random scattering does not. People aren’t do not seem to intend to move as cliques or subgraphs of networks off of Discord. And the whole reason people were on Discord was to host their communities, so an alternative becomes pointless if your community doesn’t remain intact.

    Instead of an active, strongly connected, possibly distributed network, you get dozens of small pockets. I am referring to a potential distributed network rather than a single centralized platform, because Matrix is an example of a decentralized chat protocol. Not all alternatives have to be centralized like Discord. Technically, many older chat protocols, such as XMPP and IRC, are examples of federated real-time synchronous messaging. They allowed communication between users on different, independently operated servers. Federation means that multiple servers can interconnect so that users from separate networks can exchange messages with one another seamlessly.

    Decentralized alternatives would not be a problem if people moved to the same distributed network as cohesive groups. However, what I am seeing is that people move in disconnected and stochastic ways to entirely separate distributed networks, so communities are not kept intact. For example, when people move to XMPP servers or Matrix servers, it bifurcates and disconnects social networks. Notice I said XMPP or Matrix, which logically means people are on Matrix but not XMPP, or they are on XMPP but not Matrix. That implies a person would need to be on both Matrix and XMPP to speak to their original community from Discord if it split down the middle. To synchronize conversations in chats, there would need to be a bridge. It’s a pretty complicated solution.

    The likely outcome is that people will remain on the dominant platform because of its scale and structure. The deeper irony is that while people may want independence from corporate platforms, they often struggle to organize effectively without the centralized structure those platforms provide. They’ve become so dependent on corporate structures to support their communities that they have no clue how to organize their own social networks in a sustainable way.

    I’ve always been an internet nerd, but most of my social life has been offline. I view my interactions with the social app layer of the internet as a game, so losing that domain of the Internet is not devastating to me.

    I’ll give you an example. This is a WordPress site. You hear this insincere nostalgia from Millennials and Gen X for a simulacrum that never was, especially concerning forums. Check this out: when you go into the plugin installation section of WordPress, this is on the second row you see:

    https://bbpress.org/

    That means any WordPress site has the capability to host a forum. They’re nostalgic for a setup where you can use a simple install script on any hosting service to install WordPress. After that, you can then just add a plugin to turn it into a forum. Hell, they can do this on WordPress.com if they don’t want to self-host.

    You can make a forum, but no one will use it because they’d rather use a centralized platform like Reddit. Users have become so dependent on corporations to structure and organize communities that they can’t do it themselves. It’s sort of like the cognitive debt that accrues when people outsource their thinking to AI.

    The issue is not that forums are hard to host or create; rather, the issue is that people have become so dependent on centralized corporate structures that they can’t maintain or organize their own communities, which is why everyone ends up on Reddit or Discord. A reason I keep hearing for why people don’t want to leave Discord is that it’s hard to recreate the community structure that Discord’s features provide. They claim that they want independence from corporate platforms, but rely on the centralized structure those platforms provide to function socially.

    People say they want decentralized freedom, but in practice they depend on centralized platforms to maintain social cohesion. Stochastically scattering to the digital winds of the noosphere destroys the very communities they’re trying to preserve.

  18. Users Are Too Dependent on Centralized Techno-Fascist Corporate Structure to Ever Leave Discord

    I’m watching people scatter into countless real-time chat alternatives to Discord after Discord started pulling the age-verification and age-gating card.

    https://techcrunch.com/2026/02/09/discord-to-roll-out-age-verification-next-month-for-full-access-to-its-platform/

    It’s very frustrating because people are entirely missing the point of a community and how social networks work. Real-time platforms and social media networks only work well when a large number of people share the same space at the same time. If everyone creates separate servers or competing apps, the result is fragmentation that makes it unviable.

    One reason why Bluesky became so successful is the invitation and starter-pack move. It essentially allowed people to move collectively as cliques. Bluesky used invitations and starter packs to move groups of friends together. This kept communities intact. Moving as cliques preserves network structure, whereas random scattering does not. People aren’t do not seem to intend to move as cliques or subgraphs of networks off of Discord. And the whole reason people were on Discord was to host their communities, so an alternative becomes pointless if your community doesn’t remain intact.

    Instead of an active, strongly connected, possibly distributed network, you get dozens of small pockets. I am referring to a potential distributed network rather than a single centralized platform, because Matrix is an example of a decentralized chat protocol. Not all alternatives have to be centralized like Discord. Technically, many older chat protocols, such as XMPP and IRC, are examples of federated real-time synchronous messaging. They allowed communication between users on different, independently operated servers. Federation means that multiple servers can interconnect so that users from separate networks can exchange messages with one another seamlessly.

    Decentralized alternatives would not be a problem if people moved to the same distributed network as cohesive groups. However, what I am seeing is that people move in disconnected and stochastic ways to entirely separate distributed networks, so communities are not kept intact. For example, when people move to XMPP servers or Matrix servers, it bifurcates and disconnects social networks. Notice I said XMPP or Matrix, which logically means people are on Matrix but not XMPP, or they are on XMPP but not Matrix. That implies a person would need to be on both Matrix and XMPP to speak to their original community from Discord if it split down the middle. To synchronize conversations in chats, there would need to be a bridge. It’s a pretty complicated solution.

    The likely outcome is that people will remain on the dominant platform because of its scale and structure. The deeper irony is that while people may want independence from corporate platforms, they often struggle to organize effectively without the centralized structure those platforms provide. They’ve become so dependent on corporate structures to support their communities that they have no clue how to organize their own social networks in a sustainable way.

    I’ve always been an internet nerd, but most of my social life has been offline. I view my interactions with the social app layer of the internet as a game, so losing that domain of the Internet is not devastating to me.

    I’ll give you an example. This is a WordPress site. You hear this insincere nostalgia from Millennials and Gen X for a simulacrum that never was, especially concerning forums. Check this out: when you go into the plugin installation section of WordPress, this is on the second row you see:

    https://bbpress.org/

    That means any WordPress site has the capability to host a forum. They’re nostalgic for a setup where you can use a simple install script on any hosting service to install WordPress. After that, you can then just add a plugin to turn it into a forum. Hell, they can do this on WordPress.com if they don’t want to self-host.

    You can make a forum, but no one will use it because they’d rather use a centralized platform like Reddit. Users have become so dependent on corporations to structure and organize communities that they can’t do it themselves. It’s sort of like the cognitive debt that accrues when people outsource their thinking to AI.

    The issue is not that forums are hard to host or create; rather, the issue is that people have become so dependent on centralized corporate structures that they can’t maintain or organize their own communities, which is why everyone ends up on Reddit or Discord. A reason I keep hearing for why people don’t want to leave Discord is that it’s hard to recreate the community structure that Discord’s features provide. They claim that they want independence from corporate platforms, but rely on the centralized structure those platforms provide to function socially.

    People say they want decentralized freedom, but in practice they depend on centralized platforms to maintain social cohesion. Stochastically scattering to the digital winds of the noosphere destroys the very communities they’re trying to preserve.

  19. @cloudskater wrote:

    Some instances are run by bad people. Hell, a few projects like Lemmy and Matrix are DEVELOPED by assholes, but the FLOSS and federated nature of these platforms allows us to bypass/fork them and create healthy spaces outside their reach.

    Nope, that is actually what is killing the fediverse. I just explained here:

    The issue is the divergence in semantic interpretation that emerges at the interpretation layer. ActivityPub standardizes message delivery and defines common activity types. However, it leaves extension semantics and application-layer policy decisions to individual implementations. Servers may introduce custom JSON-LD namespaces and enforce local behaviors, such as reply restrictions, while remaining protocol-compliant. But, the noise created by divergences are problematic, because it creates unexpected, unintended, and unpredictable behavior.

    Divergence appears when implementations rely on non-normative metadata and assume reciprocal handling to preserve a consistent user experience. Behavioral alignment then varies. Syntactic exchange succeeds, but behavioral consistency is not guaranteed. Though instances continue to federate at the transport level, policy semantics and processing logic differ across deployments. Those differences produce inconsistent experiences and results between implementations.

    That leads to fragmentation, specifically semantic or behavioral fragmentation and an inconsistent user experiences. ActivityPub ensures syntactic interoperability, but semantic interoperability (everyone interprets and enforces rules the same way) varies. This creates a system that is federated at the transport level yet fragmented in behavior and expectations across implementations. It is funny how the thing that the fediverse touted has made the entire thing very brittle. ActivityPub technically federates correctly, but semantically falls apart once servers start adding their own behavioral rules.

    https://neon-blue-demon-wyrm.x10.network/archives/16932

    FYI, I’m not doing culture wars or political debates. I’m just saying this idea of “forking away” from them is literally breaking the fediverse’s distributed network and creating all kinds of issues with semantic interoperability. Yes, federation is still happening at the delivery level, but the semantic issues are out of fucking control. You are a federation by the very sheer skin of your teeth.

    The reason why developers are leaving the fediverse is because you folks don’t take criticism. You respond to criticism with — I’m being so serious right now — political manifestos and harassing developers. ActivityPub developers and authors oversold you folks on the capabilities of ActivityStreams. They flat-out lied to y’all.

    ↬bark.lgbt/@cloudskater/116080965694723006

  20. @cloudskater wrote:

    Some instances are run by bad people. Hell, a few projects like Lemmy and Matrix are DEVELOPED by assholes, but the FLOSS and federated nature of these platforms allows us to bypass/fork them and create healthy spaces outside their reach.

    Nope, that is actually what is killing the fediverse. I just explained here:

    The issue is the divergence in semantic interpretation that emerges at the interpretation layer. ActivityPub standardizes message delivery and defines common activity types. However, it leaves extension semantics and application-layer policy decisions to individual implementations. Servers may introduce custom JSON-LD namespaces and enforce local behaviors, such as reply restrictions, while remaining protocol-compliant. But, the noise created by divergences are problematic, because it creates unexpected, unintended, and unpredictable behavior.

    Divergence appears when implementations rely on non-normative metadata and assume reciprocal handling to preserve a consistent user experience. Behavioral alignment then varies. Syntactic exchange succeeds, but behavioral consistency is not guaranteed. Though instances continue to federate at the transport level, policy semantics and processing logic differ across deployments. Those differences produce inconsistent experiences and results between implementations.

    That leads to fragmentation, specifically semantic or behavioral fragmentation and an inconsistent user experiences. ActivityPub ensures syntactic interoperability, but semantic interoperability (everyone interprets and enforces rules the same way) varies. This creates a system that is federated at the transport level yet fragmented in behavior and expectations across implementations. It is funny how the thing that the fediverse touted has made the entire thing very brittle. ActivityPub technically federates correctly, but semantically falls apart once servers start adding their own behavioral rules.

    https://neon-blue-demon-wyrm.x10.network/archives/16932

    FYI, I’m not doing culture wars or political debates. I’m just saying this idea of “forking away” from them is literally breaking the fediverse’s distributed network and creating all kinds of issues with semantic interoperability. Yes, federation is still happening at the delivery level, but the semantic issues are out of fucking control. You are a federation by the very sheer skin of your teeth.

    The reason why developers are leaving the fediverse is because you folks don’t take criticism. You respond to criticism with — I’m being so serious right now — political manifestos and harassing developers. ActivityPub developers and authors oversold you folks on the capabilities of ActivityStreams. They flat-out lied to y’all.

    ↬bark.lgbt/@cloudskater/116080965694723006

  21. @cloudskater wrote:

    Some instances are run by bad people. Hell, a few projects like Lemmy and Matrix are DEVELOPED by assholes, but the FLOSS and federated nature of these platforms allows us to bypass/fork them and create healthy spaces outside their reach.

    Nope, that is actually what is killing the fediverse. I just explained here:

    The issue is the divergence in semantic interpretation that emerges at the interpretation layer. ActivityPub standardizes message delivery and defines common activity types. However, it leaves extension semantics and application-layer policy decisions to individual implementations. Servers may introduce custom JSON-LD namespaces and enforce local behaviors, such as reply restrictions, while remaining protocol-compliant. But, the noise created by divergences are problematic, because it creates unexpected, unintended, and unpredictable behavior.

    Divergence appears when implementations rely on non-normative metadata and assume reciprocal handling to preserve a consistent user experience. Behavioral alignment then varies. Syntactic exchange succeeds, but behavioral consistency is not guaranteed. Though instances continue to federate at the transport level, policy semantics and processing logic differ across deployments. Those differences produce inconsistent experiences and results between implementations.

    That leads to fragmentation, specifically semantic or behavioral fragmentation and an inconsistent user experiences. ActivityPub ensures syntactic interoperability, but semantic interoperability (everyone interprets and enforces rules the same way) varies. This creates a system that is federated at the transport level yet fragmented in behavior and expectations across implementations. It is funny how the thing that the fediverse touted has made the entire thing very brittle. ActivityPub technically federates correctly, but semantically falls apart once servers start adding their own behavioral rules.

    https://neon-blue-demon-wyrm.x10.network/archives/16932

    FYI, I’m not doing culture wars or political debates. I’m just saying this idea of “forking away” from them is literally breaking the fediverse’s distributed network and creating all kinds of issues with semantic interoperability. Yes, federation is still happening at the delivery level, but the semantic issues are out of fucking control. You are a federation by the very sheer skin of your teeth.

    The reason why developers are leaving the fediverse is because you folks don’t take criticism. You respond to criticism with — I’m being so serious right now — political manifestos and harassing developers. ActivityPub developers and authors oversold you folks on the capabilities of ActivityStreams. They flat-out lied to y’all.

    ↬bark.lgbt/@cloudskater/116080965694723006

  22. @cloudskater wrote:

    Some instances are run by bad people. Hell, a few projects like Lemmy and Matrix are DEVELOPED by assholes, but the FLOSS and federated nature of these platforms allows us to bypass/fork them and create healthy spaces outside their reach.

    Nope, that is actually what is killing the fediverse. I just explained here:

    The issue is the divergence in semantic interpretation that emerges at the interpretation layer. ActivityPub standardizes message delivery and defines common activity types. However, it leaves extension semantics and application-layer policy decisions to individual implementations. Servers may introduce custom JSON-LD namespaces and enforce local behaviors, such as reply restrictions, while remaining protocol-compliant. But, the noise created by divergences are problematic, because it creates unexpected, unintended, and unpredictable behavior.

    Divergence appears when implementations rely on non-normative metadata and assume reciprocal handling to preserve a consistent user experience. Behavioral alignment then varies. Syntactic exchange succeeds, but behavioral consistency is not guaranteed. Though instances continue to federate at the transport level, policy semantics and processing logic differ across deployments. Those differences produce inconsistent experiences and results between implementations.

    That leads to fragmentation, specifically semantic or behavioral fragmentation and an inconsistent user experiences. ActivityPub ensures syntactic interoperability, but semantic interoperability (everyone interprets and enforces rules the same way) varies. This creates a system that is federated at the transport level yet fragmented in behavior and expectations across implementations. It is funny how the thing that the fediverse touted has made the entire thing very brittle. ActivityPub technically federates correctly, but semantically falls apart once servers start adding their own behavioral rules.

    https://neon-blue-demon-wyrm.x10.network/archives/16932

    FYI, I’m not doing culture wars or political debates. I’m just saying this idea of “forking away” from them is literally breaking the fediverse’s distributed network and creating all kinds of issues with semantic interoperability. Yes, federation is still happening at the delivery level, but the semantic issues are out of fucking control. You are a federation by the very sheer skin of your teeth.

    The reason why developers are leaving the fediverse is because you folks don’t take criticism. You respond to criticism with — I’m being so serious right now — political manifestos and harassing developers. ActivityPub developers and authors oversold you folks on the capabilities of ActivityStreams. They flat-out lied to y’all.

    ↬bark.lgbt/@cloudskater/116080965694723006

  23. ActivityPub Server’s Custom Reply‑Control Extensions Undermine Federation

    It seems like Activitbypub developers are extending ActivityPub with optional metadata to fix a lot of its issues, but that is still problematic. Trying to add moderation tools and user control to threads seems to be the ongoing battle. I am fascinated by dumpster fires, so I’ve started looking at the ActivityPub protocol in detail. I tend to become fascinated with things that are going down in flames.

    As a brief recap of the problem:

    So, one of the very popular features on Bluesky—also popular on Twitter—is the ability to select who can reply to a post. A major issue in the Fediverse is the inability to decide who can reply, and once you block someone, their harassing reply is still there. I honestly thought it was simply a case of them choosing not to add or address it for cultural reasons. What is clear from that thread is that they were always aware that the ActivityPub protocol and most Fediverse implementations don’t provide a universal way to control reply visibility or enforce blocks across instances.

    An ActivityPub server that has reply control is GoToSocial. ActivityPub, as defined by the W3C specification, standardizes how servers federate activities. It defines actors, inboxes, outboxes, and activity types (Create, Follow, Like, Announce, etc.) expressed using ActivityStreams 2.0. It also specifies delivery mechanics (including how a Create activity reaches another server’s inbox) and how collections behave.

    The specification does not include interaction policy semantics such as “only followers may reply” or “replies require manual approval.” There is no field in the normative vocabulary requiring conforming servers to enforce reply permissions. That category of rule is outside the protocol’s defined contract.

    GoToSocial implements reply controls through what it calls interaction policies. These appear as additional properties on ActivityStreams objects using a custom JSON-LD namespace controlled by the GoToSocial project.

    JSON-LD permits additional namespaced terms. This means the document remains structurally valid ActivityStreams and federates normally. The meaning of those custom fields, however, comes from GoToSocial’s own documentation and implementation. Other servers can ignore them without violating ActivityPub because they are not part of the interoperable core vocabulary.

    Enforcement occurs locally. When a remote server sends a reply—a Create activity whose object references another via inReplyTo—ActivityPub governs delivery, not acceptance criteria. Whether the receiving server checks a reply policy, rejects the activity, queues it, or displays it is determined in the server’s inbox-processing code. The decision to accept, display, or require approval happens after successful protocol-level delivery. This behavior belongs to the application layer.

    These are server-side features layered on top of ActivityPub’s transport and data model that are not actually part of ActivityPub. The protocol ensures standardized delivery of activities; however, the server implementation defines additional constraints and user-facing behavior. Two GoToSocial instances may both recognize and act on the same extension fields. However, a different implementation, such as Mastodon, has no obligation under the specification to interpret or enforce GoToSocial’s interactionPolicy properties. These fields function as extension metadata rather than protocol requirements.

    The semantics of GoToSocial are not part of the specification’s defined vocabulary and processing rules for ActivityPub. They no longer operate purely at the protocol layer; it has become an application-layer contract implemented by specific servers.

    Let’s use the AT Protocol as an example. Bluesky’s direct messages (DMs) are not currently part of the AT Protocol (ATProto). The AT Protocol has nothing that specifies anything for DMs, so DMs are not part of the AT Protocol. The AT Protocol was designed to handle public social interactions, but it does not define private or encrypted messaging. Bluesky implemented DMs at the application level, outside of the core protocol. DMs are centralized and stored on Bluesky’s servers. What is happening with servers like GoToSocial is sort of like that. The difference is that the AT Protocol was designed for different app views; ActivityPub was not.

    The issue is the divergence in semantic interpretation that emerges at the interpretation layer. ActivityPub standardizes message delivery and defines common activity types. However, it leaves extension semantics and application-layer policy decisions to individual implementations. Servers may introduce custom JSON-LD namespaces and enforce local behaviors, such as reply restrictions, while remaining protocol-compliant. But, the noise created by divergences are problematic, because it creates unexpected, unintended, and unpredictable behavior.

    Divergence appears when implementations rely on non-normative metadata and assume reciprocal handling to preserve a consistent user experience. Behavioral alignment then varies. Syntactic exchange succeeds, but behavioral consistency is not guaranteed. Though instances continue to federate at the transport level, policy semantics and processing logic differ across deployments. Those differences produce inconsistent experiences and results between implementations.

    That leads to fragmentation, specifically semantic or behavioral fragmentation and an inconsistent user experiences. ActivityPub ensures syntactic interoperability, but semantic interoperability (everyone interprets and enforces rules the same way) varies. This creates a system that is federated at the transport level yet fragmented in behavior and expectations across implementations. It is funny how the thing that the fediverse touted has made the entire thing very brittle. ActivityPub technically federates correctly, but semantically falls apart once servers start adding their own behavioral rules.

  24. ActivityPub Server’s Custom Reply‑Control Extensions Undermine Federation

    It seems like Activitbypub developers are extending ActivityPub with optional metadata to fix a lot of its issues, but that is still problematic. Trying to add moderation tools and user control to threads seems to be the ongoing battle. I am fascinated by dumpster fires, so I’ve started looking at the ActivityPub protocol in detail. I tend to become fascinated with things that are going down in flames.

    As a brief recap of the problem:

    So, one of the very popular features on Bluesky—also popular on Twitter—is the ability to select who can reply to a post. A major issue in the Fediverse is the inability to decide who can reply, and once you block someone, their harassing reply is still there. I honestly thought it was simply a case of them choosing not to add or address it for cultural reasons. What is clear from that thread is that they were always aware that the ActivityPub protocol and most Fediverse implementations don’t provide a universal way to control reply visibility or enforce blocks across instances.

    An ActivityPub server that has reply control is GoToSocial. ActivityPub, as defined by the W3C specification, standardizes how servers federate activities. It defines actors, inboxes, outboxes, and activity types (Create, Follow, Like, Announce, etc.) expressed using ActivityStreams 2.0. It also specifies delivery mechanics (including how a Create activity reaches another server’s inbox) and how collections behave.

    The specification does not include interaction policy semantics such as “only followers may reply” or “replies require manual approval.” There is no field in the normative vocabulary requiring conforming servers to enforce reply permissions. That category of rule is outside the protocol’s defined contract.

    GoToSocial implements reply controls through what it calls interaction policies. These appear as additional properties on ActivityStreams objects using a custom JSON-LD namespace controlled by the GoToSocial project.

    JSON-LD permits additional namespaced terms. This means the document remains structurally valid ActivityStreams and federates normally. The meaning of those custom fields, however, comes from GoToSocial’s own documentation and implementation. Other servers can ignore them without violating ActivityPub because they are not part of the interoperable core vocabulary.

    Enforcement occurs locally. When a remote server sends a reply—a Create activity whose object references another via inReplyTo—ActivityPub governs delivery, not acceptance criteria. Whether the receiving server checks a reply policy, rejects the activity, queues it, or displays it is determined in the server’s inbox-processing code. The decision to accept, display, or require approval happens after successful protocol-level delivery. This behavior belongs to the application layer.

    These are server-side features layered on top of ActivityPub’s transport and data model that are not actually part of ActivityPub. The protocol ensures standardized delivery of activities; however, the server implementation defines additional constraints and user-facing behavior. Two GoToSocial instances may both recognize and act on the same extension fields. However, a different implementation, such as Mastodon, has no obligation under the specification to interpret or enforce GoToSocial’s interactionPolicy properties. These fields function as extension metadata rather than protocol requirements.

    The semantics of GoToSocial are not part of the specification’s defined vocabulary and processing rules for ActivityPub. They no longer operate purely at the protocol layer; it has become an application-layer contract implemented by specific servers.

    Let’s use the AT Protocol as an example. Bluesky’s direct messages (DMs) are not currently part of the AT Protocol (ATProto). The AT Protocol has nothing that specifies anything for DMs, so DMs are not part of the AT Protocol. The AT Protocol was designed to handle public social interactions, but it does not define private or encrypted messaging. Bluesky implemented DMs at the application level, outside of the core protocol. DMs are centralized and stored on Bluesky’s servers. What is happening with servers like GoToSocial is sort of like that. The difference is that the AT Protocol was designed for different app views; ActivityPub was not.

    The issue is the divergence in semantic interpretation that emerges at the interpretation layer. ActivityPub standardizes message delivery and defines common activity types. However, it leaves extension semantics and application-layer policy decisions to individual implementations. Servers may introduce custom JSON-LD namespaces and enforce local behaviors, such as reply restrictions, while remaining protocol-compliant. But, the noise created by divergences are problematic, because it creates unexpected, unintended, and unpredictable behavior.

    Divergence appears when implementations rely on non-normative metadata and assume reciprocal handling to preserve a consistent user experience. Behavioral alignment then varies. Syntactic exchange succeeds, but behavioral consistency is not guaranteed. Though instances continue to federate at the transport level, policy semantics and processing logic differ across deployments. Those differences produce inconsistent experiences and results between implementations.

    That leads to fragmentation, specifically semantic or behavioral fragmentation and an inconsistent user experiences. ActivityPub ensures syntactic interoperability, but semantic interoperability (everyone interprets and enforces rules the same way) varies. This creates a system that is federated at the transport level yet fragmented in behavior and expectations across implementations. It is funny how the thing that the fediverse touted has made the entire thing very brittle. ActivityPub technically federates correctly, but semantically falls apart once servers start adding their own behavioral rules.

  25. ActivityPub Server’s Custom Reply‑Control Extensions Undermine Federation

    It seems like Activitbypub developers are extending ActivityPub with optional metadata to fix a lot of its issues, but that is still problematic. Trying to add moderation tools and user control to threads seems to be the ongoing battle. I am fascinated by dumpster fires, so I’ve started looking at the ActivityPub protocol in detail. I tend to become fascinated with things that are going down in flames.

    As a brief recap of the problem:

    So, one of the very popular features on Bluesky—also popular on Twitter—is the ability to select who can reply to a post. A major issue in the Fediverse is the inability to decide who can reply, and once you block someone, their harassing reply is still there. I honestly thought it was simply a case of them choosing not to add or address it for cultural reasons. What is clear from that thread is that they were always aware that the ActivityPub protocol and most Fediverse implementations don’t provide a universal way to control reply visibility or enforce blocks across instances.

    An ActivityPub server that has reply control is GoToSocial. ActivityPub, as defined by the W3C specification, standardizes how servers federate activities. It defines actors, inboxes, outboxes, and activity types (Create, Follow, Like, Announce, etc.) expressed using ActivityStreams 2.0. It also specifies delivery mechanics (including how a Create activity reaches another server’s inbox) and how collections behave.

    The specification does not include interaction policy semantics such as “only followers may reply” or “replies require manual approval.” There is no field in the normative vocabulary requiring conforming servers to enforce reply permissions. That category of rule is outside the protocol’s defined contract.

    GoToSocial implements reply controls through what it calls interaction policies. These appear as additional properties on ActivityStreams objects using a custom JSON-LD namespace controlled by the GoToSocial project.

    JSON-LD permits additional namespaced terms. This means the document remains structurally valid ActivityStreams and federates normally. The meaning of those custom fields, however, comes from GoToSocial’s own documentation and implementation. Other servers can ignore them without violating ActivityPub because they are not part of the interoperable core vocabulary.

    Enforcement occurs locally. When a remote server sends a reply—a Create activity whose object references another via inReplyTo—ActivityPub governs delivery, not acceptance criteria. Whether the receiving server checks a reply policy, rejects the activity, queues it, or displays it is determined in the server’s inbox-processing code. The decision to accept, display, or require approval happens after successful protocol-level delivery. This behavior belongs to the application layer.

    These are server-side features layered on top of ActivityPub’s transport and data model that are not actually part of ActivityPub. The protocol ensures standardized delivery of activities; however, the server implementation defines additional constraints and user-facing behavior. Two GoToSocial instances may both recognize and act on the same extension fields. However, a different implementation, such as Mastodon, has no obligation under the specification to interpret or enforce GoToSocial’s interactionPolicy properties. These fields function as extension metadata rather than protocol requirements.

    The semantics of GoToSocial are not part of the specification’s defined vocabulary and processing rules for ActivityPub. They no longer operate purely at the protocol layer; it has become an application-layer contract implemented by specific servers.

    Let’s use the AT Protocol as an example. Bluesky’s direct messages (DMs) are not currently part of the AT Protocol (ATProto). The AT Protocol has nothing that specifies anything for DMs, so DMs are not part of the AT Protocol. The AT Protocol was designed to handle public social interactions, but it does not define private or encrypted messaging. Bluesky implemented DMs at the application level, outside of the core protocol. DMs are centralized and stored on Bluesky’s servers. What is happening with servers like GoToSocial is sort of like that. The difference is that the AT Protocol was designed for different app views; ActivityPub was not.

    The issue is the divergence in semantic interpretation that emerges at the interpretation layer. ActivityPub standardizes message delivery and defines common activity types. However, it leaves extension semantics and application-layer policy decisions to individual implementations. Servers may introduce custom JSON-LD namespaces and enforce local behaviors, such as reply restrictions, while remaining protocol-compliant. But, the noise created by divergences are problematic, because it creates unexpected, unintended, and unpredictable behavior.

    Divergence appears when implementations rely on non-normative metadata and assume reciprocal handling to preserve a consistent user experience. Behavioral alignment then varies. Syntactic exchange succeeds, but behavioral consistency is not guaranteed. Though instances continue to federate at the transport level, policy semantics and processing logic differ across deployments. Those differences produce inconsistent experiences and results between implementations.

    That leads to fragmentation, specifically semantic or behavioral fragmentation and an inconsistent user experiences. ActivityPub ensures syntactic interoperability, but semantic interoperability (everyone interprets and enforces rules the same way) varies. This creates a system that is federated at the transport level yet fragmented in behavior and expectations across implementations. It is funny how the thing that the fediverse touted has made the entire thing very brittle. ActivityPub technically federates correctly, but semantically falls apart once servers start adding their own behavioral rules.

  26. ActivityPub Server’s Custom Reply‑Control Extensions Undermine Federation

    It seems like Activitbypub developers are extending ActivityPub with optional metadata to fix a lot of its issues, but that is still problematic. Trying to add moderation tools and user control to threads seems to be the ongoing battle. I am fascinated by dumpster fires, so I’ve started looking at the ActivityPub protocol in detail. I tend to become fascinated with things that are going down in flames.

    As a brief recap of the problem:

    So, one of the very popular features on Bluesky—also popular on Twitter—is the ability to select who can reply to a post. A major issue in the Fediverse is the inability to decide who can reply, and once you block someone, their harassing reply is still there. I honestly thought it was simply a case of them choosing not to add or address it for cultural reasons. What is clear from that thread is that they were always aware that the ActivityPub protocol and most Fediverse implementations don’t provide a universal way to control reply visibility or enforce blocks across instances.

    An ActivityPub server that has reply control is GoToSocial. ActivityPub, as defined by the W3C specification, standardizes how servers federate activities. It defines actors, inboxes, outboxes, and activity types (Create, Follow, Like, Announce, etc.) expressed using ActivityStreams 2.0. It also specifies delivery mechanics (including how a Create activity reaches another server’s inbox) and how collections behave.

    The specification does not include interaction policy semantics such as “only followers may reply” or “replies require manual approval.” There is no field in the normative vocabulary requiring conforming servers to enforce reply permissions. That category of rule is outside the protocol’s defined contract.

    GoToSocial implements reply controls through what it calls interaction policies. These appear as additional properties on ActivityStreams objects using a custom JSON-LD namespace controlled by the GoToSocial project.

    JSON-LD permits additional namespaced terms. This means the document remains structurally valid ActivityStreams and federates normally. The meaning of those custom fields, however, comes from GoToSocial’s own documentation and implementation. Other servers can ignore them without violating ActivityPub because they are not part of the interoperable core vocabulary.

    Enforcement occurs locally. When a remote server sends a reply—a Create activity whose object references another via inReplyTo—ActivityPub governs delivery, not acceptance criteria. Whether the receiving server checks a reply policy, rejects the activity, queues it, or displays it is determined in the server’s inbox-processing code. The decision to accept, display, or require approval happens after successful protocol-level delivery. This behavior belongs to the application layer.

    These are server-side features layered on top of ActivityPub’s transport and data model that are not actually part of ActivityPub. The protocol ensures standardized delivery of activities; however, the server implementation defines additional constraints and user-facing behavior. Two GoToSocial instances may both recognize and act on the same extension fields. However, a different implementation, such as Mastodon, has no obligation under the specification to interpret or enforce GoToSocial’s interactionPolicy properties. These fields function as extension metadata rather than protocol requirements.

    The semantics of GoToSocial are not part of the specification’s defined vocabulary and processing rules for ActivityPub. They no longer operate purely at the protocol layer; it has become an application-layer contract implemented by specific servers.

    Let’s use the AT Protocol as an example. Bluesky’s direct messages (DMs) are not currently part of the AT Protocol (ATProto). The AT Protocol has nothing that specifies anything for DMs, so DMs are not part of the AT Protocol. The AT Protocol was designed to handle public social interactions, but it does not define private or encrypted messaging. Bluesky implemented DMs at the application level, outside of the core protocol. DMs are centralized and stored on Bluesky’s servers. What is happening with servers like GoToSocial is sort of like that. The difference is that the AT Protocol was designed for different app views; ActivityPub was not.

    The issue is the divergence in semantic interpretation that emerges at the interpretation layer. ActivityPub standardizes message delivery and defines common activity types. However, it leaves extension semantics and application-layer policy decisions to individual implementations. Servers may introduce custom JSON-LD namespaces and enforce local behaviors, such as reply restrictions, while remaining protocol-compliant. But, the noise created by divergences are problematic, because it creates unexpected, unintended, and unpredictable behavior.

    Divergence appears when implementations rely on non-normative metadata and assume reciprocal handling to preserve a consistent user experience. Behavioral alignment then varies. Syntactic exchange succeeds, but behavioral consistency is not guaranteed. Though instances continue to federate at the transport level, policy semantics and processing logic differ across deployments. Those differences produce inconsistent experiences and results between implementations.

    That leads to fragmentation, specifically semantic or behavioral fragmentation and an inconsistent user experiences. ActivityPub ensures syntactic interoperability, but semantic interoperability (everyone interprets and enforces rules the same way) varies. This creates a system that is federated at the transport level yet fragmented in behavior and expectations across implementations. It is funny how the thing that the fediverse touted has made the entire thing very brittle. ActivityPub technically federates correctly, but semantically falls apart once servers start adding their own behavioral rules.

  27. ActivityPub Server’s Custom Reply‑Control Extensions Undermine Federation

    It seems like Activitbypub developers are extending ActivityPub with optional metadata to fix a lot of its issues, but that is still problematic. Trying to add moderation tools and user control to threads seems to be the ongoing battle. I am fascinated by dumpster fires, so I’ve started looking at the ActivityPub protocol in detail. I tend to become fascinated with things that are going down in flames.

    As a brief recap of the problem:

    So, one of the very popular features on Bluesky—also popular on Twitter—is the ability to select who can reply to a post. A major issue in the Fediverse is the inability to decide who can reply, and once you block someone, their harassing reply is still there. I honestly thought it was simply a case of them choosing not to add or address it for cultural reasons. What is clear from that thread is that they were always aware that the ActivityPub protocol and most Fediverse implementations don’t provide a universal way to control reply visibility or enforce blocks across instances.

    An ActivityPub server that has reply control is GoToSocial. ActivityPub, as defined by the W3C specification, standardizes how servers federate activities. It defines actors, inboxes, outboxes, and activity types (Create, Follow, Like, Announce, etc.) expressed using ActivityStreams 2.0. It also specifies delivery mechanics (including how a Create activity reaches another server’s inbox) and how collections behave.

    The specification does not include interaction policy semantics such as “only followers may reply” or “replies require manual approval.” There is no field in the normative vocabulary requiring conforming servers to enforce reply permissions. That category of rule is outside the protocol’s defined contract.

    GoToSocial implements reply controls through what it calls interaction policies. These appear as additional properties on ActivityStreams objects using a custom JSON-LD namespace controlled by the GoToSocial project.

    JSON-LD permits additional namespaced terms. This means the document remains structurally valid ActivityStreams and federates normally. The meaning of those custom fields, however, comes from GoToSocial’s own documentation and implementation. Other servers can ignore them without violating ActivityPub because they are not part of the interoperable core vocabulary.

    Enforcement occurs locally. When a remote server sends a reply—a Create activity whose object references another via inReplyTo—ActivityPub governs delivery, not acceptance criteria. Whether the receiving server checks a reply policy, rejects the activity, queues it, or displays it is determined in the server’s inbox-processing code. The decision to accept, display, or require approval happens after successful protocol-level delivery. This behavior belongs to the application layer.

    These are server-side features layered on top of ActivityPub’s transport and data model that are not actually part of ActivityPub. The protocol ensures standardized delivery of activities; however, the server implementation defines additional constraints and user-facing behavior. Two GoToSocial instances may both recognize and act on the same extension fields. However, a different implementation, such as Mastodon, has no obligation under the specification to interpret or enforce GoToSocial’s interactionPolicy properties. These fields function as extension metadata rather than protocol requirements.

    The semantics of GoToSocial are not part of the specification’s defined vocabulary and processing rules for ActivityPub. They no longer operate purely at the protocol layer; it has become an application-layer contract implemented by specific servers.

    Let’s use the AT Protocol as an example. Bluesky’s direct messages (DMs) are not currently part of the AT Protocol (ATProto). The AT Protocol has nothing that specifies anything for DMs, so DMs are not part of the AT Protocol. The AT Protocol was designed to handle public social interactions, but it does not define private or encrypted messaging. Bluesky implemented DMs at the application level, outside of the core protocol. DMs are centralized and stored on Bluesky’s servers. What is happening with servers like GoToSocial is sort of like that. The difference is that the AT Protocol was designed for different app views; ActivityPub was not.

    The issue is the divergence in semantic interpretation that emerges at the interpretation layer. ActivityPub standardizes message delivery and defines common activity types. However, it leaves extension semantics and application-layer policy decisions to individual implementations. Servers may introduce custom JSON-LD namespaces and enforce local behaviors, such as reply restrictions, while remaining protocol-compliant. But, the noise created by divergences are problematic, because it creates unexpected, unintended, and unpredictable behavior.

    Divergence appears when implementations rely on non-normative metadata and assume reciprocal handling to preserve a consistent user experience. Behavioral alignment then varies. Syntactic exchange succeeds, but behavioral consistency is not guaranteed. Though instances continue to federate at the transport level, policy semantics and processing logic differ across deployments. Those differences produce inconsistent experiences and results between implementations.

    That leads to fragmentation, specifically semantic or behavioral fragmentation and an inconsistent user experiences. ActivityPub ensures syntactic interoperability, but semantic interoperability (everyone interprets and enforces rules the same way) varies. This creates a system that is federated at the transport level yet fragmented in behavior and expectations across implementations. It is funny how the thing that the fediverse touted has made the entire thing very brittle. ActivityPub technically federates correctly, but semantically falls apart once servers start adding their own behavioral rules.

  28. FEP-171b: Conversation Containers Won’t Work

    So, I took a look at this:

    This document specifies a model for managing conversations in ActivityPub network. It is based on the implementation of Conversation Containers in Streams.

    In this model conversations are represented as collections controlled by a single actor. Such conversations take place within a specific audience and may be moderated.

    FEP-171b: Conversation Containers

    https://fediverse.codeberg.page/fep/fep/171b/

    TL;DR: It won’t work.

    The proposal introduces authoritative conversation control to ActivityPub by modeling threads as owner-managed OrderedCollection containers. The conversation owner curates replies and redistributes approved activities via Add. Participants are expected to reject unapproved content. The abstraction is internally coherent. The friction appears when this model is placed inside ActivityPub’s federated design.

    Here is the problem. ActivityPub does not define enforcement semantics. Servers operate autonomously and apply local policy. A specification can say that implementations “SHOULD reject” unapproved replies. Yet nothing in the protocol requires that outcome. A server that declines to participate can still accept Create(Note) activities directly. It can reconstruct threads from inReplyTo and ignore the container model. In that environment, thread authority exists only where it is voluntarily recognized.

    The delivery path changes as well. Under typical federation, actors deliver activities directly to recipients’ inboxes. Here, replies flow to the conversation owner first. Only approved entries are redistributed. Each thread effectively runs through a single coordinating node. Availability now depends on the owner’s server. If it is offline or slow to redistribute, the conversation stalls. Different redistribution behavior across instances can also produce divergent views of the same thread. This is a structural shift in how information propagates.

    Ordering and consistency are less defined than the container model implies. ActivityPub does not specify global ordering or conflict resolution rules. An OrderedCollection provides sequencing, but not append-only guarantees or convergence constraints. Order might reflect author timestamps, owner receipt time, or redistribution time. The owner can reorder, omit, or later insert activities. Other servers may cache earlier states. Without cryptographic sequencing or a log structure that constrains mutation, synchronization relies on local policy rather than shared verification.

    Moderation authority also changes. The conversation owner decides which activities become part of the visible thread. That may reduce unwanted replies in cooperative environments. It also concentrates control over inclusion and historical presentation. Because the container remains mutable, integrity depends on trust in the owner. It also depends on how other servers interpret updates.

    The harassment issue is not actually solved. A non-adopting instance can continue storing and rendering replies it receives directly. Some servers will display only curated entries. Others will not. Over time, different thread views can coexist without converging.

    Compatibility with existing implementations raises practical concerns. Most current systems build conversation views from inReplyTo chains and local storage. Introducing container-centric validation, authenticated Add wrapping, and modified inbox handling would require substantial changes. Partial adoption would produce mixed behavior across the network.

    The proposal acknowledges risks such as forged or poisoned embedded updates. It also suggests validation steps. Even with those measures, the container remains mutable shared state interpreted by independent systems. ActivityPub standardizes vocabulary and delivery, but not global state enforcement. This design can improve reply gating among cooperating servers. It does not, by itself, establish authoritative thread state across a federation built on autonomous peers.

    The issue with the fediverse is that they want their cake and they want to eat it, too. They like to emphasize that they are truly decentralized and use that as a way to sweep any critiques against them in relation to the AT protocol away. But being truly decentralized is the issue.

    The core issue is the federated and decentralized nature of ActivityPub. The problem is that the protocol is built around autonomous servers that don’t have to obey a central authority. Each server applies its own rules and policies. Even if a specification says servers “should” reject unapproved replies, they can still accept and display them. The authority is voluntary and not enforceable. The major limitation is that state is not globally enforced. There is no mechanism to ensure that all servers see the same thread order or content. A container can sequence posts. Other servers can reorder, omit, or cache different versions. Without cryptographic or append-only logs that every node verifies, synchronization relies entirely on local trust rather than any shared enforcement.

    Partial adoption makes it even more of a clusterfuck. Some servers might implement the new authoritative-thread model, while others won’t. So threads will diverge across the network, and harassment or unwanted content can still appear on servers that do not participate. The decentralized and federated design fundamentally limits any attempt to impose global authority.

    No, I am not joining in on the thread, because ActivityPub devs are especially nasty. That is why no one wants to fucking work with them. That is why it’s so fucking underdeveloped.

    I was going to put this into this post, but I realized it would get too long:

    https://neon-blue-demon-wyrm.x10.network/archives/16790

    This is a really bad situation. I have been working with the AT protocol for roughly a year, so I haven’t been keeping track of what’s been going on here. Basically, the only way to fix it is to pretty much change the expected behavior so much it is no longer recognizable. Yikes!

  29. FEP-171b: Conversation Containers Won’t Work

    So, I took a look at this:

    This document specifies a model for managing conversations in ActivityPub network. It is based on the implementation of Conversation Containers in Streams.

    In this model conversations are represented as collections controlled by a single actor. Such conversations take place within a specific audience and may be moderated.

    FEP-171b: Conversation Containers

    https://fediverse.codeberg.page/fep/fep/171b/

    TL;DR: It won’t work.

    The proposal introduces authoritative conversation control to ActivityPub by modeling threads as owner-managed OrderedCollection containers. The conversation owner curates replies and redistributes approved activities via Add. Participants are expected to reject unapproved content. The abstraction is internally coherent. The friction appears when this model is placed inside ActivityPub’s federated design.

    Here is the problem. ActivityPub does not define enforcement semantics. Servers operate autonomously and apply local policy. A specification can say that implementations “SHOULD reject” unapproved replies. Yet nothing in the protocol requires that outcome. A server that declines to participate can still accept Create(Note) activities directly. It can reconstruct threads from inReplyTo and ignore the container model. In that environment, thread authority exists only where it is voluntarily recognized.

    The delivery path changes as well. Under typical federation, actors deliver activities directly to recipients’ inboxes. Here, replies flow to the conversation owner first. Only approved entries are redistributed. Each thread effectively runs through a single coordinating node. Availability now depends on the owner’s server. If it is offline or slow to redistribute, the conversation stalls. Different redistribution behavior across instances can also produce divergent views of the same thread. This is a structural shift in how information propagates.

    Ordering and consistency are less defined than the container model implies. ActivityPub does not specify global ordering or conflict resolution rules. An OrderedCollection provides sequencing, but not append-only guarantees or convergence constraints. Order might reflect author timestamps, owner receipt time, or redistribution time. The owner can reorder, omit, or later insert activities. Other servers may cache earlier states. Without cryptographic sequencing or a log structure that constrains mutation, synchronization relies on local policy rather than shared verification.

    Moderation authority also changes. The conversation owner decides which activities become part of the visible thread. That may reduce unwanted replies in cooperative environments. It also concentrates control over inclusion and historical presentation. Because the container remains mutable, integrity depends on trust in the owner. It also depends on how other servers interpret updates.

    The harassment issue is not actually solved. A non-adopting instance can continue storing and rendering replies it receives directly. Some servers will display only curated entries. Others will not. Over time, different thread views can coexist without converging.

    Compatibility with existing implementations raises practical concerns. Most current systems build conversation views from inReplyTo chains and local storage. Introducing container-centric validation, authenticated Add wrapping, and modified inbox handling would require substantial changes. Partial adoption would produce mixed behavior across the network.

    The proposal acknowledges risks such as forged or poisoned embedded updates. It also suggests validation steps. Even with those measures, the container remains mutable shared state interpreted by independent systems. ActivityPub standardizes vocabulary and delivery, but not global state enforcement. This design can improve reply gating among cooperating servers. It does not, by itself, establish authoritative thread state across a federation built on autonomous peers.

    The issue with the fediverse is that they want their cake and they want to eat it, too. They like to emphasize that they are truly decentralized and use that as a way to sweep any critiques against them in relation to the AT protocol away. But being truly decentralized is the issue.

    The core issue is the federated and decentralized nature of ActivityPub. The problem is that the protocol is built around autonomous servers that don’t have to obey a central authority. Each server applies its own rules and policies. Even if a specification says servers “should” reject unapproved replies, they can still accept and display them. The authority is voluntary and not enforceable. The major limitation is that state is not globally enforced. There is no mechanism to ensure that all servers see the same thread order or content. A container can sequence posts. Other servers can reorder, omit, or cache different versions. Without cryptographic or append-only logs that every node verifies, synchronization relies entirely on local trust rather than any shared enforcement.

    Partial adoption makes it even more of a clusterfuck. Some servers might implement the new authoritative-thread model, while others won’t. So threads will diverge across the network, and harassment or unwanted content can still appear on servers that do not participate. The decentralized and federated design fundamentally limits any attempt to impose global authority.

    No, I am not joining in on the thread, because ActivityPub devs are especially nasty. That is why no one wants to fucking work with them. That is why it’s so fucking underdeveloped.

    I was going to put this into this post, but I realized it would get too long:

    https://neon-blue-demon-wyrm.x10.network/archives/16790

    This is a really bad situation. I have been working with the AT protocol for roughly a year, so I haven’t been keeping track of what’s been going on here. Basically, the only way to fix it is to pretty much change the expected behavior so much it is no longer recognizable. Yikes!

  30. FEP-171b: Conversation Containers Won’t Work

    So, I took a look at this:

    This document specifies a model for managing conversations in ActivityPub network. It is based on the implementation of Conversation Containers in Streams.

    In this model conversations are represented as collections controlled by a single actor. Such conversations take place within a specific audience and may be moderated.

    FEP-171b: Conversation Containers

    https://fediverse.codeberg.page/fep/fep/171b/

    TL;DR: It won’t work.

    The proposal introduces authoritative conversation control to ActivityPub by modeling threads as owner-managed OrderedCollection containers. The conversation owner curates replies and redistributes approved activities via Add. Participants are expected to reject unapproved content. The abstraction is internally coherent. The friction appears when this model is placed inside ActivityPub’s federated design.

    Here is the problem. ActivityPub does not define enforcement semantics. Servers operate autonomously and apply local policy. A specification can say that implementations “SHOULD reject” unapproved replies. Yet nothing in the protocol requires that outcome. A server that declines to participate can still accept Create(Note) activities directly. It can reconstruct threads from inReplyTo and ignore the container model. In that environment, thread authority exists only where it is voluntarily recognized.

    The delivery path changes as well. Under typical federation, actors deliver activities directly to recipients’ inboxes. Here, replies flow to the conversation owner first. Only approved entries are redistributed. Each thread effectively runs through a single coordinating node. Availability now depends on the owner’s server. If it is offline or slow to redistribute, the conversation stalls. Different redistribution behavior across instances can also produce divergent views of the same thread. This is a structural shift in how information propagates.

    Ordering and consistency are less defined than the container model implies. ActivityPub does not specify global ordering or conflict resolution rules. An OrderedCollection provides sequencing, but not append-only guarantees or convergence constraints. Order might reflect author timestamps, owner receipt time, or redistribution time. The owner can reorder, omit, or later insert activities. Other servers may cache earlier states. Without cryptographic sequencing or a log structure that constrains mutation, synchronization relies on local policy rather than shared verification.

    Moderation authority also changes. The conversation owner decides which activities become part of the visible thread. That may reduce unwanted replies in cooperative environments. It also concentrates control over inclusion and historical presentation. Because the container remains mutable, integrity depends on trust in the owner. It also depends on how other servers interpret updates.

    The harassment issue is not actually solved. A non-adopting instance can continue storing and rendering replies it receives directly. Some servers will display only curated entries. Others will not. Over time, different thread views can coexist without converging.

    Compatibility with existing implementations raises practical concerns. Most current systems build conversation views from inReplyTo chains and local storage. Introducing container-centric validation, authenticated Add wrapping, and modified inbox handling would require substantial changes. Partial adoption would produce mixed behavior across the network.

    The proposal acknowledges risks such as forged or poisoned embedded updates. It also suggests validation steps. Even with those measures, the container remains mutable shared state interpreted by independent systems. ActivityPub standardizes vocabulary and delivery, but not global state enforcement. This design can improve reply gating among cooperating servers. It does not, by itself, establish authoritative thread state across a federation built on autonomous peers.

    The issue with the fediverse is that they want their cake and they want to eat it, too. They like to emphasize that they are truly decentralized and use that as a way to sweep any critiques against them in relation to the AT protocol away. But being truly decentralized is the issue.

    The core issue is the federated and decentralized nature of ActivityPub. The problem is that the protocol is built around autonomous servers that don’t have to obey a central authority. Each server applies its own rules and policies. Even if a specification says servers “should” reject unapproved replies, they can still accept and display them. The authority is voluntary and not enforceable. The major limitation is that state is not globally enforced. There is no mechanism to ensure that all servers see the same thread order or content. A container can sequence posts. Other servers can reorder, omit, or cache different versions. Without cryptographic or append-only logs that every node verifies, synchronization relies entirely on local trust rather than any shared enforcement.

    Partial adoption makes it even more of a clusterfuck. Some servers might implement the new authoritative-thread model, while others won’t. So threads will diverge across the network, and harassment or unwanted content can still appear on servers that do not participate. The decentralized and federated design fundamentally limits any attempt to impose global authority.

    No, I am not joining in on the thread, because ActivityPub devs are especially nasty. That is why no one wants to fucking work with them. That is why it’s so fucking underdeveloped.

    I was going to put this into this post, but I realized it would get too long:

    https://neon-blue-demon-wyrm.x10.network/archives/16790

    This is a really bad situation. I have been working with the AT protocol for roughly a year, so I haven’t been keeping track of what’s been going on here. Basically, the only way to fix it is to pretty much change the expected behavior so much it is no longer recognizable. Yikes!

  31. So, I’m a developer. I am following along with and reading this thread:

    https://oisaur.com/@renchap/116056634129526611

    All I can think while reading this is: Well, that’s unfortunate.

    So, one of the very popular features on Bluesky—also popular on Twitter—is the ability to select who can reply to a post. A major issue in the Fediverse is the inability to decide who can reply, and once you block someone, their harassing reply is still there. I honestly thought it was simply a case of them choosing not to add or address it for cultural reasons. What is clear from that thread is that they were always aware that the ActivityPub protocol and most Fediverse implementations don’t provide a universal way to control reply visibility or enforce blocks across instances. They were hedging and hiding behind cultural norms this whole time instead of working to fix it, because they were too busy waging political culture wars instead of doing their damn jobs.

    That realization sunk my hopes. It basically means that the social media ecosystem with the most moderation tools is Bluesky and the ATmosphere, albeit Bluesky isn’t fully using all of them and is using the moderation tools in ways that selectively moderate according to their enigmatic interests. That does not make me feel good. Honestly, that makes me feel fucking awful about the future of the Internet.

    ActivityStreams/ActivityPub was formalized around 2018, and platforms like Mastodon (which implement the ActivityPub protocol) have had years to work on federation and moderation tooling. Instead, many of those years were spent debating culture and writing manifestos. The most disturbing thing about all of this is that it had so much potential. But yeah, I think the Fediverse is going to be relegated to a legacy platform like Usenet or IRC. It’s not fixable, and the folks over at the Fediverse have alienated so many developers that no one really wants to work on fixing it.

    The co-authors of ActivityPub are working on other social media projects that have nothing to do with the fediverse. Meanwhile, Mastodon’s founder, Eugen Rochko, stepped down as CEO in November 2025 as part of Mastodon’s transition to a nonprofit governance structure. The restructuring was intended to formalize governance and reduce reliance on a single individual. Rochko transferred control of Mastodon’s core assets and trademark to the nonprofit organization and remains involved in a strategic and advisory capacity. Day-to-day operations are now overseen by an executive director under a board-governed structure. I believe how badly Eugen fucked Mastodon is a large reason why he stepped down, albeit they are all doing the virtue signaling thing.

    For the most part, I have pretty much pulled away from microblogging platforms as a whole. I was never a heavy user of anything but forums, and I was part of the occult niche. Since that is pretty much gone, there really isn’t a reason for me to be on social media, which is why I mostly blog. It really sucks because I wanted to believe in ActivityPub and the fediverse.

    It pretty much comes down to the fact that the ActivityPub protocol is flawed at the protocol level when it comes to protecting people from harassment. While Bluesky’s app view is choosing to apply its tools selectively to address this, it is more capable of protecting people. Honestly, that really sucks, because that spells the death of this protocol. ActivityPub’s decentralized design doesn’t provide built-in, enforceable protections against harassment. This makes moderation and harassment mitigation practically impossible.

    Renaud Chaput so much as admits it here:

    “So we need to consider if we want to switch to a “thread context”-based approval model, there the author of the root of the thread controls all the tree of replies. Which would be a big change for Mastodon (and similar implementations), but might be more aligned with what user want, and solve other issues as well (replies federation).
    But that would be a huge undertaking, with lot of problems related to backward compatibility (for example)”

    What I noticed was this phrase by Renaud Chaput:

    “First step for us is probably staying alive and continuing having a team that is focused on building a better product, which is our focus right now. We are very well aware of this topic (as I keep repeating each time you mention me 😉 ).”

    They are saying the quiet part out loud: We are having issues staying relevant.

    ActivityPub is built on the ActivityStreams 2.0 vocabulary. Three core components define it: Actor, Object, and Activity. It provides a Client-to-Server (C2S) API that lets an Actor submit Activities to an outbox. It also provides a Server-to-Server (S2S) federation protocol. This protocol delivers those Activities to other servers’ inboxes.

    Replies are created by setting the inReplyTo property on an Object. Servers may expose a replies Collection. However, that collection is optional and not globally authoritative. The specification describes how Activities are serialized and delivered. It does not introduce a canonical container for conversations. It does not define a required global index or binding enforcement rules for moderation. A Block Activity is defined as a type of Activity. However, remote servers are not obligated to remove or hide content beyond their own policies. Each server maintains its own inboxes, outboxes, collections, and storage model. It interprets incoming Activities according to local implementation choices.

    This facilitates interoperability at the transport and vocabulary level. It does not do so at the level of governance. Servers do not have to construct identical conversation graphs from inReplyTo chains. Nothing in the protocol allows an Actor to assert authoritative control over all descendant replies. This is the main problem. Federation operates peer to peer among autonomous servers. Moderation decisions, including defederation, filtering, and suspensions, remain local. The specification does not define a global control layer.

    The AT Protocol approaches the problem differently. Users are identified through Decentralized Identifiers (DIDs). They publish signed records stored in repositories. These repositories are usually hosted on a Personal Data Server (PDS). They are append-only and cryptographically verifiable. Records follow schemas defined in Lexicon. Lexicon describes types, fields, and RPC interfaces in machine-readable form. Updates propagate through relays. These relays aggregate repository changes into a network-wide event stream, often called the firehose. Higher-level services, including AppViews, subscribe to this stream. They may also query indexes derived from it. The AT Protocol defines message delivery, identity, storage, and synchronization.

    Within the AT Protocol, moderation operates across the same repository data. Labeling and visibility controls are expressed as structured records. Clients or AppViews can apply them deterministically if they choose to consume them. Content exists as signed records keyed by DIDs. It is distributed through relays. Moderation services therefore work against a consistent dataset rather than isolated server copies. Identity portability follows from this structure. Users can move between hosting providers without losing their DID, repository history, or social graph.

    ActivityPub standardizes how Activities move between servers and how they are described. It leaves indexing, thread authority, and enforcement to individual implementations. The AT Protocol defines repository structure, identity binding, record schemas, and synchronization across the network. ActivityPub centers on federated message exchange with local policy control. No participant has protocol-level authority over the shape or visibility of a conversation once it federates. The AT Protocol centers on a shared record system with portable identity and network-wide data propagation. Moderation and visibility decisions can attach to the same canonical records seen across the network.

    In ActivityPub’s model, moderation is local. If someone replies to you in a harassing way, your server can hide it, block it, or defederate from the offending server. Other servers may still store, display, and propagate those replies according to their own policies. There is no protocol-level mechanism that lets you assert binding control over how replies to your post are indexed or rendered elsewhere. Harassment mitigation is fragmented. Harassment can persist in parallel contexts even after you act against it locally.

    In the AT Protocol model, content exists as signed records in repositories keyed to portable identities. It is distributed through a shared data propagation layer. Because of this, moderation services can operate against a consistent dataset. Labels, visibility controls, or account-level actions can attach to the same canonical records that other services consume. While it does not eliminate harassment, it makes it technically possible for moderation decisions to propagate more coherently across applications that choose to honor them.

    So the difference for harassment is this: in ActivityPub, protection is inherently piecemeal and server-scoped. In the AT Protocol, protection can be structurally network-aware. Identity, storage, and moderation signals live in the same shared data model.

    Basically, the fediverse has no means to keep vulnerable, marginalized people safe. The AT Protocol does, albeit the Bluesky app view chooses not to use it. The point is that it has the potential. The last time I tried to explain all of this, I was harassed by a person who operates multiple servers and accounts on here:

    @FediThing @FediTips @[email protected] @[email protected] @[email protected] and @[email protected]

    The protocol is fundamentally flawed, and they do not know how to fix it. These people are incapable of good-faith conversations, so I am avoiding tagging them or attaching this response.to the thread, because their response is basically to stall, hedge, and gas light.

    I’m not a fan of Bluesky — not at all. I really wanted to love ActivityPub, but I think Eugene pretty much killed it within the last three years. They had a very narrow, myopic culture and vision in mind, where they completely ignored all criticisms. Now, there is really no way to fix this mess, which is why they stick to gaslighting their users and literally harassing any developer who criticizes them. Social media has normalized lying to its users, so am I surprised?

    Edit:

    What a surprise. An anti-black reaction that pulls the it is okay to ignore you because you are an angry black person. Yes, black people are angry, and that you do not understand why is the problem.

    I’m not going to go back and forth with a racist, nor am I going to quote them because of my stance on spreading misinformation and vitriol. A person who was implicated in the anti-Black behavior of the fediverse tried to discredit me as a Black person by claiming that I am not on Blacksky, have not worked on Blacksky, and am not happy or positive enough to be included in the Black folks who have been harmed by anti-Blackness.

    Yes, they said that with a straight face. Blacksky exists because Black people were angry at being mistreated by the fediverse. Ergo, since I am not happy about being mistreated, I can’t be part of that demographic of Black folks. They are tacitly expecting trustworthy Black people to respond to abuse by being happy. What kind of Jim Crow shit is this? Therefore, it is acceptable to dismiss my experiences as a Black person because I don’t conform to the stereotype of what a Black person in America is.

    In other words, they are saying I am a hostile angry black person, and we can disregard what I have to say because I am an angry Black person in Donald Trump’s America.

    What kills me is that these folks have no insight into their own racism. This is all the attention they get, because I believe racists should be isolated among other things. They truly believe they are the good guys and that the savior complex is an imperialistic colonial archetype flies over their heads I don’t think white racists can ever change, so I will not be addressing them. That’s all I will say about that.

    Edit again:

    Welp, after seeing the first edit, the hit racist dog deleted the top level of the thread about me. That is what is called a consciousness of guilt, because if they had genuine good intentions and truly believed what they said was right, they would have said it with their whole chest and would not have deleted the top thread reply. Also, the little group of Fediverse racists explicitly rushed to report me. Report me to who—myself? It’s my instance. I have not explicitly violated any rules of this person’s home instance, but they feel entitled to try and have me removed from the Fediverse because I did not respond to their triangulation, brigading, and harassment by being nice. I did not take the mistreatment with a smile and a nod. Racist white people can fuck all the way off.

  32. So, I’m a developer. I am following along with and reading this thread:

    https://oisaur.com/@renchap/116056634129526611

    All I can think while reading this is: Well, that’s unfortunate.

    So, one of the very popular features on Bluesky—also popular on Twitter—is the ability to select who can reply to a post. A major issue in the Fediverse is the inability to decide who can reply, and once you block someone, their harassing reply is still there. I honestly thought it was simply a case of them choosing not to add or address it for cultural reasons. What is clear from that thread is that they were always aware that the ActivityPub protocol and most Fediverse implementations don’t provide a universal way to control reply visibility or enforce blocks across instances. They were hedging and hiding behind cultural norms this whole time instead of working to fix it, because they were too busy waging political culture wars instead of doing their damn jobs.

    That realization sunk my hopes. It basically means that the social media ecosystem with the most moderation tools is Bluesky and the ATmosphere, albeit Bluesky isn’t fully using all of them and is using the moderation tools in ways that selectively moderate according to their enigmatic interests. That does not make me feel good. Honestly, that makes me feel fucking awful about the future of the Internet.

    ActivityStreams/ActivityPub was formalized around 2018, and platforms like Mastodon (which implement the ActivityPub protocol) have had years to work on federation and moderation tooling. Instead, many of those years were spent debating culture and writing manifestos. The most disturbing thing about all of this is that it had so much potential. But yeah, I think the Fediverse is going to be relegated to a legacy platform like Usenet or IRC. It’s not fixable, and the folks over at the Fediverse have alienated so many developers that no one really wants to work on fixing it.

    The co-authors of ActivityPub are working on other social media projects that have nothing to do with the fediverse. Meanwhile, Mastodon’s founder, Eugen Rochko, stepped down as CEO in November 2025 as part of Mastodon’s transition to a nonprofit governance structure. The restructuring was intended to formalize governance and reduce reliance on a single individual. Rochko transferred control of Mastodon’s core assets and trademark to the nonprofit organization and remains involved in a strategic and advisory capacity. Day-to-day operations are now overseen by an executive director under a board-governed structure. I believe how badly Eugen fucked Mastodon is a large reason why he stepped down, albeit they are all doing the virtue signaling thing.

    For the most part, I have pretty much pulled away from microblogging platforms as a whole. I was never a heavy user of anything but forums, and I was part of the occult niche. Since that is pretty much gone, there really isn’t a reason for me to be on social media, which is why I mostly blog. It really sucks because I wanted to believe in ActivityPub and the fediverse.

    It pretty much comes down to the fact that the ActivityPub protocol is flawed at the protocol level when it comes to protecting people from harassment. While Bluesky’s app view is choosing to apply its tools selectively to address this, it is more capable of protecting people. Honestly, that really sucks, because that spells the death of this protocol. ActivityPub’s decentralized design doesn’t provide built-in, enforceable protections against harassment. This makes moderation and harassment mitigation practically impossible.

    Renaud Chaput so much as admits it here:

    “So we need to consider if we want to switch to a “thread context”-based approval model, there the author of the root of the thread controls all the tree of replies. Which would be a big change for Mastodon (and similar implementations), but might be more aligned with what user want, and solve other issues as well (replies federation).
    But that would be a huge undertaking, with lot of problems related to backward compatibility (for example)”

    What I noticed was this phrase by Renaud Chaput:

    “First step for us is probably staying alive and continuing having a team that is focused on building a better product, which is our focus right now. We are very well aware of this topic (as I keep repeating each time you mention me 😉 ).”

    They are saying the quiet part out loud: We are having issues staying relevant.

    ActivityPub is built on the ActivityStreams 2.0 vocabulary. Three core components define it: Actor, Object, and Activity. It provides a Client-to-Server (C2S) API that lets an Actor submit Activities to an outbox. It also provides a Server-to-Server (S2S) federation protocol. This protocol delivers those Activities to other servers’ inboxes.

    Replies are created by setting the inReplyTo property on an Object. Servers may expose a replies Collection. However, that collection is optional and not globally authoritative. The specification describes how Activities are serialized and delivered. It does not introduce a canonical container for conversations. It does not define a required global index or binding enforcement rules for moderation. A Block Activity is defined as a type of Activity. However, remote servers are not obligated to remove or hide content beyond their own policies. Each server maintains its own inboxes, outboxes, collections, and storage model. It interprets incoming Activities according to local implementation choices.

    This facilitates interoperability at the transport and vocabulary level. It does not do so at the level of governance. Servers do not have to construct identical conversation graphs from inReplyTo chains. Nothing in the protocol allows an Actor to assert authoritative control over all descendant replies. This is the main problem. Federation operates peer to peer among autonomous servers. Moderation decisions, including defederation, filtering, and suspensions, remain local. The specification does not define a global control layer.

    The AT Protocol approaches the problem differently. Users are identified through Decentralized Identifiers (DIDs). They publish signed records stored in repositories. These repositories are usually hosted on a Personal Data Server (PDS). They are append-only and cryptographically verifiable. Records follow schemas defined in Lexicon. Lexicon describes types, fields, and RPC interfaces in machine-readable form. Updates propagate through relays. These relays aggregate repository changes into a network-wide event stream, often called the firehose. Higher-level services, including AppViews, subscribe to this stream. They may also query indexes derived from it. The AT Protocol defines message delivery, identity, storage, and synchronization.

    Within the AT Protocol, moderation operates across the same repository data. Labeling and visibility controls are expressed as structured records. Clients or AppViews can apply them deterministically if they choose to consume them. Content exists as signed records keyed by DIDs. It is distributed through relays. Moderation services therefore work against a consistent dataset rather than isolated server copies. Identity portability follows from this structure. Users can move between hosting providers without losing their DID, repository history, or social graph.

    ActivityPub standardizes how Activities move between servers and how they are described. It leaves indexing, thread authority, and enforcement to individual implementations. The AT Protocol defines repository structure, identity binding, record schemas, and synchronization across the network. ActivityPub centers on federated message exchange with local policy control. No participant has protocol-level authority over the shape or visibility of a conversation once it federates. The AT Protocol centers on a shared record system with portable identity and network-wide data propagation. Moderation and visibility decisions can attach to the same canonical records seen across the network.

    In ActivityPub’s model, moderation is local. If someone replies to you in a harassing way, your server can hide it, block it, or defederate from the offending server. Other servers may still store, display, and propagate those replies according to their own policies. There is no protocol-level mechanism that lets you assert binding control over how replies to your post are indexed or rendered elsewhere. Harassment mitigation is fragmented. Harassment can persist in parallel contexts even after you act against it locally.

    In the AT Protocol model, content exists as signed records in repositories keyed to portable identities. It is distributed through a shared data propagation layer. Because of this, moderation services can operate against a consistent dataset. Labels, visibility controls, or account-level actions can attach to the same canonical records that other services consume. While it does not eliminate harassment, it makes it technically possible for moderation decisions to propagate more coherently across applications that choose to honor them.

    So the difference for harassment is this: in ActivityPub, protection is inherently piecemeal and server-scoped. In the AT Protocol, protection can be structurally network-aware. Identity, storage, and moderation signals live in the same shared data model.

    Basically, the fediverse has no means to keep vulnerable, marginalized people safe. The AT Protocol does, albeit the Bluesky app view chooses not to use it. The point is that it has the potential. The last time I tried to explain all of this, I was harassed by a person who operates multiple servers and accounts on here:

    @FediThing @FediTips @[email protected] @[email protected] @[email protected] and @[email protected]

    The protocol is fundamentally flawed, and they do not know how to fix it. These people are incapable of good-faith conversations, so I am avoiding tagging them or attaching this response.to the thread, because their response is basically to stall, hedge, and gas light.

    I’m not a fan of Bluesky — not at all. I really wanted to love ActivityPub, but I think Eugene pretty much killed it within the last three years. They had a very narrow, myopic culture and vision in mind, where they completely ignored all criticisms. Now, there is really no way to fix this mess, which is why they stick to gaslighting their users and literally harassing any developer who criticizes them. Social media has normalized lying to its users, so am I surprised?

    Edit:

    What a surprise. An anti-black reaction that pulls the it is okay to ignore you because you are an angry black person. Yes, black people are angry, and that you do not understand why is the problem.

    I’m not going to go back and forth with a racist, nor am I going to quote them because of my stance on spreading misinformation and vitriol. A person who was implicated in the anti-Black behavior of the fediverse tried to discredit me as a Black person by claiming that I am not on Blacksky, have not worked on Blacksky, and am not happy or positive enough to be included in the Black folks who have been harmed by anti-Blackness.

    Yes, they said that with a straight face. Blacksky exists because Black people were angry at being mistreated by the fediverse. Ergo, since I am not happy about being mistreated, I can’t be part of that demographic of Black folks. They are tacitly expecting trustworthy Black people to respond to abuse by being happy. What kind of Jim Crow shit is this? Therefore, it is acceptable to dismiss my experiences as a Black person because I don’t conform to the stereotype of what a Black person in America is.

    In other words, they are saying I am a hostile angry black person, and we can disregard what I have to say because I am an angry Black person in Donald Trump’s America.

    What kills me is that these folks have no insight into their own racism. This is all the attention they get, because I believe racists should be isolated among other things. They truly believe they are the good guys and that the savior complex is an imperialistic colonial archetype flies over their heads I don’t think white racists can ever change, so I will not be addressing them. That’s all I will say about that.

    Edit again:

    Welp, after seeing the first edit, the hit racist dog deleted the top level of the thread about me. That is what is called a consciousness of guilt, because if they had genuine good intentions and truly believed what they said was right, they would have said it with their whole chest and would not have deleted the top thread reply. Also, the little group of Fediverse racists explicitly rushed to report me. Report me to who—myself? It’s my instance. I have not explicitly violated any rules of this person’s home instance, but they feel entitled to try and have me removed from the Fediverse because I did not respond to their triangulation, brigading, and harassment by being nice. I did not take the mistreatment with a smile and a nod. Racist white people can fuck all the way off.

  33. So, I’m a developer. I am following along with and reading this thread:

    https://oisaur.com/@renchap/116056634129526611

    All I can think while reading this is: Well, that’s unfortunate.

    So, one of the very popular features on Bluesky—also popular on Twitter—is the ability to select who can reply to a post. A major issue in the Fediverse is the inability to decide who can reply, and once you block someone, their harassing reply is still there. I honestly thought it was simply a case of them choosing not to add or address it for cultural reasons. What is clear from that thread is that they were always aware that the ActivityPub protocol and most Fediverse implementations don’t provide a universal way to control reply visibility or enforce blocks across instances. They were hedging and hiding behind cultural norms this whole time instead of working to fix it, because they were too busy waging political culture wars instead of doing their damn jobs.

    That realization sunk my hopes. It basically means that the social media ecosystem with the most moderation tools is Bluesky and the ATmosphere, albeit Bluesky isn’t fully using all of them and is using the moderation tools in ways that selectively moderate according to their enigmatic interests. That does not make me feel good. Honestly, that makes me feel fucking awful about the future of the Internet.

    ActivityStreams/ActivityPub was formalized around 2018, and platforms like Mastodon (which implement the ActivityPub protocol) have had years to work on federation and moderation tooling. Instead, many of those years were spent debating culture and writing manifestos. The most disturbing thing about all of this is that it had so much potential. But yeah, I think the Fediverse is going to be relegated to a legacy platform like Usenet or IRC. It’s not fixable, and the folks over at the Fediverse have alienated so many developers that no one really wants to work on fixing it.

    The co-authors of ActivityPub are working on other social media projects that have nothing to do with the fediverse. Meanwhile, Mastodon’s founder, Eugen Rochko, stepped down as CEO in November 2025 as part of Mastodon’s transition to a nonprofit governance structure. The restructuring was intended to formalize governance and reduce reliance on a single individual. Rochko transferred control of Mastodon’s core assets and trademark to the nonprofit organization and remains involved in a strategic and advisory capacity. Day-to-day operations are now overseen by an executive director under a board-governed structure. I believe how badly Eugen fucked Mastodon is a large reason why he stepped down, albeit they are all doing the virtue signaling thing.

    For the most part, I have pretty much pulled away from microblogging platforms as a whole. I was never a heavy user of anything but forums, and I was part of the occult niche. Since that is pretty much gone, there really isn’t a reason for me to be on social media, which is why I mostly blog. It really sucks because I wanted to believe in ActivityPub and the fediverse.

    It pretty much comes down to the fact that the ActivityPub protocol is flawed at the protocol level when it comes to protecting people from harassment. While Bluesky’s app view is choosing to apply its tools selectively to address this, it is more capable of protecting people. Honestly, that really sucks, because that spells the death of this protocol. ActivityPub’s decentralized design doesn’t provide built-in, enforceable protections against harassment. This makes moderation and harassment mitigation practically impossible.

    Renaud Chaput so much as admits it here:

    “So we need to consider if we want to switch to a “thread context”-based approval model, there the author of the root of the thread controls all the tree of replies. Which would be a big change for Mastodon (and similar implementations), but might be more aligned with what user want, and solve other issues as well (replies federation).
    But that would be a huge undertaking, with lot of problems related to backward compatibility (for example)”

    What I noticed was this phrase by Renaud Chaput:

    “First step for us is probably staying alive and continuing having a team that is focused on building a better product, which is our focus right now. We are very well aware of this topic (as I keep repeating each time you mention me 😉 ).”

    They are saying the quiet part out loud: We are having issues staying relevant.

    ActivityPub is built on the ActivityStreams 2.0 vocabulary. Three core components define it: Actor, Object, and Activity. It provides a Client-to-Server (C2S) API that lets an Actor submit Activities to an outbox. It also provides a Server-to-Server (S2S) federation protocol. This protocol delivers those Activities to other servers’ inboxes.

    Replies are created by setting the inReplyTo property on an Object. Servers may expose a replies Collection. However, that collection is optional and not globally authoritative. The specification describes how Activities are serialized and delivered. It does not introduce a canonical container for conversations. It does not define a required global index or binding enforcement rules for moderation. A Block Activity is defined as a type of Activity. However, remote servers are not obligated to remove or hide content beyond their own policies. Each server maintains its own inboxes, outboxes, collections, and storage model. It interprets incoming Activities according to local implementation choices.

    This facilitates interoperability at the transport and vocabulary level. It does not do so at the level of governance. Servers do not have to construct identical conversation graphs from inReplyTo chains. Nothing in the protocol allows an Actor to assert authoritative control over all descendant replies. This is the main problem. Federation operates peer to peer among autonomous servers. Moderation decisions, including defederation, filtering, and suspensions, remain local. The specification does not define a global control layer.

    The AT Protocol approaches the problem differently. Users are identified through Decentralized Identifiers (DIDs). They publish signed records stored in repositories. These repositories are usually hosted on a Personal Data Server (PDS). They are append-only and cryptographically verifiable. Records follow schemas defined in Lexicon. Lexicon describes types, fields, and RPC interfaces in machine-readable form. Updates propagate through relays. These relays aggregate repository changes into a network-wide event stream, often called the firehose. Higher-level services, including AppViews, subscribe to this stream. They may also query indexes derived from it. The AT Protocol defines message delivery, identity, storage, and synchronization.

    Within the AT Protocol, moderation operates across the same repository data. Labeling and visibility controls are expressed as structured records. Clients or AppViews can apply them deterministically if they choose to consume them. Content exists as signed records keyed by DIDs. It is distributed through relays. Moderation services therefore work against a consistent dataset rather than isolated server copies. Identity portability follows from this structure. Users can move between hosting providers without losing their DID, repository history, or social graph.

    ActivityPub standardizes how Activities move between servers and how they are described. It leaves indexing, thread authority, and enforcement to individual implementations. The AT Protocol defines repository structure, identity binding, record schemas, and synchronization across the network. ActivityPub centers on federated message exchange with local policy control. No participant has protocol-level authority over the shape or visibility of a conversation once it federates. The AT Protocol centers on a shared record system with portable identity and network-wide data propagation. Moderation and visibility decisions can attach to the same canonical records seen across the network.

    In ActivityPub’s model, moderation is local. If someone replies to you in a harassing way, your server can hide it, block it, or defederate from the offending server. Other servers may still store, display, and propagate those replies according to their own policies. There is no protocol-level mechanism that lets you assert binding control over how replies to your post are indexed or rendered elsewhere. Harassment mitigation is fragmented. Harassment can persist in parallel contexts even after you act against it locally.

    In the AT Protocol model, content exists as signed records in repositories keyed to portable identities. It is distributed through a shared data propagation layer. Because of this, moderation services can operate against a consistent dataset. Labels, visibility controls, or account-level actions can attach to the same canonical records that other services consume. While it does not eliminate harassment, it makes it technically possible for moderation decisions to propagate more coherently across applications that choose to honor them.

    So the difference for harassment is this: in ActivityPub, protection is inherently piecemeal and server-scoped. In the AT Protocol, protection can be structurally network-aware. Identity, storage, and moderation signals live in the same shared data model.

    Basically, the fediverse has no means to keep vulnerable, marginalized people safe. The AT Protocol does, albeit the Bluesky app view chooses not to use it. The point is that it has the potential. The last time I tried to explain all of this, I was harassed by a person who operates multiple servers and accounts on here:

    @FediThing @FediTips @[email protected] @[email protected] @[email protected] and @[email protected]

    The protocol is fundamentally flawed, and they do not know how to fix it. These people are incapable of good-faith conversations, so I am avoiding tagging them or attaching this response.to the thread, because their response is basically to stall, hedge, and gas light.

    I’m not a fan of Bluesky — not at all. I really wanted to love ActivityPub, but I think Eugene pretty much killed it within the last three years. They had a very narrow, myopic culture and vision in mind, where they completely ignored all criticisms. Now, there is really no way to fix this mess, which is why they stick to gaslighting their users and literally harassing any developer who criticizes them. Social media has normalized lying to its users, so am I surprised?

    Edit:

    What a surprise. An anti-black reaction that pulls the it is okay to ignore you because you are an angry black person. Yes, black people are angry, and that you do not understand why is the problem.

    I’m not going to go back and forth with a racist, nor am I going to quote them because of my stance on spreading misinformation and vitriol. A person who was implicated in the anti-Black behavior of the fediverse tried to discredit me as a Black person by claiming that I am not on Blacksky, have not worked on Blacksky, and am not happy or positive enough to be included in the Black folks who have been harmed by anti-Blackness.

    Yes, they said that with a straight face. Blacksky exists because Black people were angry at being mistreated by the fediverse. Ergo, since I am not happy about being mistreated, I can’t be part of that demographic of Black folks. They are tacitly expecting trustworthy Black people to respond to abuse by being happy. What kind of Jim Crow shit is this? Therefore, it is acceptable to dismiss my experiences as a Black person because I don’t conform to the stereotype of what a Black person in America is.

    In other words, they are saying I am a hostile angry black person, and we can disregard what I have to say because I am an angry Black person in Donald Trump’s America.

    What kills me is that these folks have no insight into their own racism. This is all the attention they get, because I believe racists should be isolated among other things. They truly believe they are the good guys and that the savior complex is an imperialistic colonial archetype flies over their heads I don’t think white racists can ever change, so I will not be addressing them. That’s all I will say about that.

    Edit again:

    Welp, after seeing the first edit, the hit racist dog deleted the top level of the thread about me. That is what is called a consciousness of guilt, because if they had genuine good intentions and truly believed what they said was right, they would have said it with their whole chest and would not have deleted the top thread reply. Also, the little group of Fediverse racists explicitly rushed to report me. Report me to who—myself? It’s my instance. I have not explicitly violated any rules of this person’s home instance, but they feel entitled to try and have me removed from the Fediverse because I did not respond to their triangulation, brigading, and harassment by being nice. I did not take the mistreatment with a smile and a nod. Racist white people can fuck all the way off.

  34. So, I had an experience with an influencer account on the fediverse: @FediTips

    People believe they are being informed when they are being influenced. That account is litterally publishing what are technically definitionally manifestos.

    That emphasized why I don’t argue online. There is an interesting property about facts: factual ontological propositions about something will converge. That is a fancy way of saying that if something is factual, it would be corroborated. Accuracy is not the only important thing; precision is, too. The more corroborative aspects that converge on that claim, the more precise it is. That is why in science, replication and a lot of measurements are so important.

    When we talk about online conversations, this is important because if I say something is a fact, and there is a source I got it from, I should cite where I got it. If I or other sources are citing that or a different source saying something, it at least makes the statement more precise, albeit not necessarily more accurate. Accuracy means is a close, approximate representation whereas precision is something is consistent. If you hit the bulls eye once but never again, that is accurate but imprecise. If you never hit the bulls eye but always hit the same spot, that is precise. You can be inaccurate yet precise.

    That means if something makes a claim, a source exists, and you can check that claim by visiting the source. If there are multiple sources making the same claim, it is a precise claim.The issue I have with arguments online, for example, endless arguments on Mastodon about Bluesky, is that the sources backing whatever facts I would present are accessible. So, if someone makes a statement about the AT protocol and you say that is wrong, you can look at the documentation, point this out, and say it is wrong because x, y, and z.

    That brings me to the fuckery of today:

    @FediTips said to me today:

    No, you cannot run your own server on AT. Bluesky have made it virtually impossible to set up independent infrastructure. You can store data, but the connections to others run through Bluesky corporation’s infrastructure which they control.

    I shit on Bluesky all day, every day, so I’m not a Bluesky stan. But all you have to do is think about why this doesn’t make sense. They are essentially saying that you cannot have a server running a Bluesky PDS that isn’t owned by Bluesky. One, that is not how servers work. A protocol is a way for devices to talk to one another and network.

    A network protocol is a formal specification that defines how systems interoperate. It establishes message schemas, authentication mechanisms, transport methods, state transitions, and other rules governing communication between nodes. If multiple servers implement the same protocol specification correctly, they can exchange data and participate in the same network. At the protocol layer, interoperability is determined by adherence to the specification, not by who owns or operates a given server.

    Protocol compliance does not inherently guarantee open or permissionless participation. In the architecture of protocols, operators impose constraints through licensing terms, cryptographic trust roots, certificate authorities, service discovery mechanisms, federation allowlists, or other gatekeeping controls. Protocols enable independent servers to communicate; however, it does not logically follow that any compliant server must be accepted into the broader network without additional policy or governance constraints. This is the point they are making.

    However, they are conflating who owns the server with what can be allowed in the network. But what they argue for the AT protocol always applies to the ActivityPub protocol. They specifically said, “No, you cannot run your own server on AT. Bluesky has made it virtually impossible to set up independent infrastructure.”

    No, you can absolutely run your own independent server that communicates over the AT protocol. Either they understand this and are arguing in bad faith, which I think is very likely, or they are completely disinterested in facts. They merely want to spread and enforce a cultural and political norm. Maybe it’s both.

    For example, I am using the ActivityPub protocol to post this, and it is sent to your folks’ inboxes via ActivityStreams through the WordPress ActivityPub plugin. Anyone can set up their own servers on their own hosts. I know for a fact that some feeds are being run off Raspberry Pis in people’s closets. In fact, some people have both fediverse instances and AT protocol PDSs running off the same Raspberry Pis in their closets. By this person’s reasoning, that would imply that Bluesky owns their ISPs, the closets, and the Raspberry Pis.

    Yes, the practical network experience heavily depends on Bluesky-operated infrastructure. And yes, it is true that this is different from something like Mastodon on ActivityPub, where federation between independently operated servers is widely distributed and actually decentralized. I’m not contesting that the infrastructure is heavily dependent on and operated by Bluesky.

    That’s not the claim @FediTips made. The claim they made is that everyone else’s computers—a cloud is just someone else’s computer, mind you—that use the AT protocol are owned by Bluesky. This statement is so absurd to me that I am not sure if this was a semantic error and not what they meant, or if it is exactly what they meant. If it is the former, it is still bad, because they were disinterested in fact-checking, which is my point. If they bothered to fact-check, they would have caught the inaccuracy or the semantic error.

    Secondly, let’s say you know nothing at all about servers, protocols, etc.—you can just look it up.

    https://atproto.com/guides/self-hosting

    https://docs.digitalocean.com/products/marketplace/catalog/bluesky-social-pds

    I was not aware that DigitalOcean was owned by Bluesky. That’s because they are not owned by Bluesky. DigitalOcean is to an AT protocol PDS what a Mastodon host is to Mastodon. If this person had simply done a five-minute search, they would realize that Bluesky does not own the independent servers for the Bluesky apps, albeit it controls the protocol architecture. Personally, I think @FediTips did it in bad faith, because multiple developers have corrected these Mastodon influencer accounts over and over again. At this point, it is propaganda.

    I don’t care about this argument in particular. Rather, it’s an example of why I don’t argue with people online. They don’t check what they say or look up what the other person said because they are disinterested in facts. They are interested in the normative claim and cultural norms they are trying to spread and enforce. It’s basically a form of evangelizing and proselytizing.

    Again, I don’t really care for this particular argument, which is why I never directly addressed it with them. What I am saying is that they were disinterested in easily accessible facts, so arguing with them to persuade them is a waste of my time.

    People on social media care about culture first and facts second. I am not going after the people on Mastodon specifically. Redditors are infamous for this shit. If you ask me, Reddit and Discord are ground zero cases for this dumbass culture of reply guys.

    I wrote my own Bayesian classifier and Markov algorithm a long time ago that curate only what I want to see in activity streams, so I don’t see whatever fuckery many of these idiots on social media are doing. I have my own Bayesian and Markov curation algorithm for activity streams and my own algorithm for feeds on Bluesky.

    You can see the documentation for how Activity Streams, which is what ActivityPub uses, works here:

    Activity Streams 2.0

    https://www.w3.org/TR/activitystreams-core

    I curate the ActivityStream of my inbox points to see posts based on relevance rather than chronological order. Most of the time, their nonsense is filtered out. I just had time to kill.

  35. So, I had an experience with an influencer account on the fediverse: @FediTips

    People believe they are being informed when they are being influenced. That account is litterally publishing what are technically definitionally manifestos.

    That emphasized why I don’t argue online. There is an interesting property about facts: factual ontological propositions about something will converge. That is a fancy way of saying that if something is factual, it would be corroborated. Accuracy is not the only important thing; precision is, too. The more corroborative aspects that converge on that claim, the more precise it is. That is why in science, replication and a lot of measurements are so important.

    When we talk about online conversations, this is important because if I say something is a fact, and there is a source I got it from, I should cite where I got it. If I or other sources are citing that or a different source saying something, it at least makes the statement more precise, albeit not necessarily more accurate. Accuracy means is a close, approximate representation whereas precision is something is consistent. If you hit the bulls eye once but never again, that is accurate but imprecise. If you never hit the bulls eye but always hit the same spot, that is precise. You can be inaccurate yet precise.

    That means if something makes a claim, a source exists, and you can check that claim by visiting the source. If there are multiple sources making the same claim, it is a precise claim.The issue I have with arguments online, for example, endless arguments on Mastodon about Bluesky, is that the sources backing whatever facts I would present are accessible. So, if someone makes a statement about the AT protocol and you say that is wrong, you can look at the documentation, point this out, and say it is wrong because x, y, and z.

    That brings me to the fuckery of today:

    @FediTips said to me today:

    No, you cannot run your own server on AT. Bluesky have made it virtually impossible to set up independent infrastructure. You can store data, but the connections to others run through Bluesky corporation’s infrastructure which they control.

    I shit on Bluesky all day, every day, so I’m not a Bluesky stan. But all you have to do is think about why this doesn’t make sense. They are essentially saying that you cannot have a server running a Bluesky PDS that isn’t owned by Bluesky. One, that is not how servers work. A protocol is a way for devices to talk to one another and network.

    A network protocol is a formal specification that defines how systems interoperate. It establishes message schemas, authentication mechanisms, transport methods, state transitions, and other rules governing communication between nodes. If multiple servers implement the same protocol specification correctly, they can exchange data and participate in the same network. At the protocol layer, interoperability is determined by adherence to the specification, not by who owns or operates a given server.

    Protocol compliance does not inherently guarantee open or permissionless participation. In the architecture of protocols, operators impose constraints through licensing terms, cryptographic trust roots, certificate authorities, service discovery mechanisms, federation allowlists, or other gatekeeping controls. Protocols enable independent servers to communicate; however, it does not logically follow that any compliant server must be accepted into the broader network without additional policy or governance constraints. This is the point they are making.

    However, they are conflating who owns the server with what can be allowed in the network. But what they argue for the AT protocol always applies to the ActivityPub protocol. They specifically said, “No, you cannot run your own server on AT. Bluesky has made it virtually impossible to set up independent infrastructure.”

    No, you can absolutely run your own independent server that communicates over the AT protocol. Either they understand this and are arguing in bad faith, which I think is very likely, or they are completely disinterested in facts. They merely want to spread and enforce a cultural and political norm. Maybe it’s both.

    For example, I am using the ActivityPub protocol to post this, and it is sent to your folks’ inboxes via ActivityStreams through the WordPress ActivityPub plugin. Anyone can set up their own servers on their own hosts. I know for a fact that some feeds are being run off Raspberry Pis in people’s closets. In fact, some people have both fediverse instances and AT protocol PDSs running off the same Raspberry Pis in their closets. By this person’s reasoning, that would imply that Bluesky owns their ISPs, the closets, and the Raspberry Pis.

    Yes, the practical network experience heavily depends on Bluesky-operated infrastructure. And yes, it is true that this is different from something like Mastodon on ActivityPub, where federation between independently operated servers is widely distributed and actually decentralized. I’m not contesting that the infrastructure is heavily dependent on and operated by Bluesky.

    That’s not the claim @FediTips made. The claim they made is that everyone else’s computers—a cloud is just someone else’s computer, mind you—that use the AT protocol are owned by Bluesky. This statement is so absurd to me that I am not sure if this was a semantic error and not what they meant, or if it is exactly what they meant. If it is the former, it is still bad, because they were disinterested in fact-checking, which is my point. If they bothered to fact-check, they would have caught the inaccuracy or the semantic error.

    Secondly, let’s say you know nothing at all about servers, protocols, etc.—you can just look it up.

    https://atproto.com/guides/self-hosting

    https://docs.digitalocean.com/products/marketplace/catalog/bluesky-social-pds

    I was not aware that DigitalOcean was owned by Bluesky. That’s because they are not owned by Bluesky. DigitalOcean is to an AT protocol PDS what a Mastodon host is to Mastodon. If this person had simply done a five-minute search, they would realize that Bluesky does not own the independent servers for the Bluesky apps, albeit it controls the protocol architecture. Personally, I think @FediTips did it in bad faith, because multiple developers have corrected these Mastodon influencer accounts over and over again. At this point, it is propaganda.

    I don’t care about this argument in particular. Rather, it’s an example of why I don’t argue with people online. They don’t check what they say or look up what the other person said because they are disinterested in facts. They are interested in the normative claim and cultural norms they are trying to spread and enforce. It’s basically a form of evangelizing and proselytizing.

    Again, I don’t really care for this particular argument, which is why I never directly addressed it with them. What I am saying is that they were disinterested in easily accessible facts, so arguing with them to persuade them is a waste of my time.

    People on social media care about culture first and facts second. I am not going after the people on Mastodon specifically. Redditors are infamous for this shit. If you ask me, Reddit and Discord are ground zero cases for this dumbass culture of reply guys.

    I wrote my own Bayesian classifier and Markov algorithm a long time ago that curate only what I want to see in activity streams, so I don’t see whatever fuckery many of these idiots on social media are doing. I have my own Bayesian and Markov curation algorithm for activity streams and my own algorithm for feeds on Bluesky.

    You can see the documentation for how Activity Streams, which is what ActivityPub uses, works here:

    Activity Streams 2.0

    https://www.w3.org/TR/activitystreams-core

    I curate the ActivityStream of my inbox points to see posts based on relevance rather than chronological order. Most of the time, their nonsense is filtered out. I just had time to kill.

  36. So, I had an experience with an influencer account on the fediverse: @FediTips

    People believe they are being informed when they are being influenced. That account is litterally publishing what are technically definitionally manifestos.

    That emphasized why I don’t argue online. There is an interesting property about facts: factual ontological propositions about something will converge. That is a fancy way of saying that if something is factual, it would be corroborated. Accuracy is not the only important thing; precision is, too. The more corroborative aspects that converge on that claim, the more precise it is. That is why in science, replication and a lot of measurements are so important.

    When we talk about online conversations, this is important because if I say something is a fact, and there is a source I got it from, I should cite where I got it. If I or other sources are citing that or a different source saying something, it at least makes the statement more precise, albeit not necessarily more accurate. Accuracy means is a close, approximate representation whereas precision is something is consistent. If you hit the bulls eye once but never again, that is accurate but imprecise. If you never hit the bulls eye but always hit the same spot, that is precise. You can be inaccurate yet precise.

    That means if something makes a claim, a source exists, and you can check that claim by visiting the source. If there are multiple sources making the same claim, it is a precise claim.The issue I have with arguments online, for example, endless arguments on Mastodon about Bluesky, is that the sources backing whatever facts I would present are accessible. So, if someone makes a statement about the AT protocol and you say that is wrong, you can look at the documentation, point this out, and say it is wrong because x, y, and z.

    That brings me to the fuckery of today:

    @FediTips said to me today:

    No, you cannot run your own server on AT. Bluesky have made it virtually impossible to set up independent infrastructure. You can store data, but the connections to others run through Bluesky corporation’s infrastructure which they control.

    I shit on Bluesky all day, every day, so I’m not a Bluesky stan. But all you have to do is think about why this doesn’t make sense. They are essentially saying that you cannot have a server running a Bluesky PDS that isn’t owned by Bluesky. One, that is not how servers work. A protocol is a way for devices to talk to one another and network.

    A network protocol is a formal specification that defines how systems interoperate. It establishes message schemas, authentication mechanisms, transport methods, state transitions, and other rules governing communication between nodes. If multiple servers implement the same protocol specification correctly, they can exchange data and participate in the same network. At the protocol layer, interoperability is determined by adherence to the specification, not by who owns or operates a given server.

    Protocol compliance does not inherently guarantee open or permissionless participation. In the architecture of protocols, operators impose constraints through licensing terms, cryptographic trust roots, certificate authorities, service discovery mechanisms, federation allowlists, or other gatekeeping controls. Protocols enable independent servers to communicate; however, it does not logically follow that any compliant server must be accepted into the broader network without additional policy or governance constraints. This is the point they are making.

    However, they are conflating who owns the server with what can be allowed in the network. But what they argue for the AT protocol always applies to the ActivityPub protocol. They specifically said, “No, you cannot run your own server on AT. Bluesky has made it virtually impossible to set up independent infrastructure.”

    No, you can absolutely run your own independent server that communicates over the AT protocol. Either they understand this and are arguing in bad faith, which I think is very likely, or they are completely disinterested in facts. They merely want to spread and enforce a cultural and political norm. Maybe it’s both.

    For example, I am using the ActivityPub protocol to post this, and it is sent to your folks’ inboxes via ActivityStreams through the WordPress ActivityPub plugin. Anyone can set up their own servers on their own hosts. I know for a fact that some feeds are being run off Raspberry Pis in people’s closets. In fact, some people have both fediverse instances and AT protocol PDSs running off the same Raspberry Pis in their closets. By this person’s reasoning, that would imply that Bluesky owns their ISPs, the closets, and the Raspberry Pis.

    Yes, the practical network experience heavily depends on Bluesky-operated infrastructure. And yes, it is true that this is different from something like Mastodon on ActivityPub, where federation between independently operated servers is widely distributed and actually decentralized. I’m not contesting that the infrastructure is heavily dependent on and operated by Bluesky.

    That’s not the claim @FediTips made. The claim they made is that everyone else’s computers—a cloud is just someone else’s computer, mind you—that use the AT protocol are owned by Bluesky. This statement is so absurd to me that I am not sure if this was a semantic error and not what they meant, or if it is exactly what they meant. If it is the former, it is still bad, because they were disinterested in fact-checking, which is my point. If they bothered to fact-check, they would have caught the inaccuracy or the semantic error.

    Secondly, let’s say you know nothing at all about servers, protocols, etc.—you can just look it up.

    https://atproto.com/guides/self-hosting

    https://docs.digitalocean.com/products/marketplace/catalog/bluesky-social-pds

    I was not aware that DigitalOcean was owned by Bluesky. That’s because they are not owned by Bluesky. DigitalOcean is to an AT protocol PDS what a Mastodon host is to Mastodon. If this person had simply done a five-minute search, they would realize that Bluesky does not own the independent servers for the Bluesky apps, albeit it controls the protocol architecture. Personally, I think @FediTips did it in bad faith, because multiple developers have corrected these Mastodon influencer accounts over and over again. At this point, it is propaganda.

    I don’t care about this argument in particular. Rather, it’s an example of why I don’t argue with people online. They don’t check what they say or look up what the other person said because they are disinterested in facts. They are interested in the normative claim and cultural norms they are trying to spread and enforce. It’s basically a form of evangelizing and proselytizing.

    Again, I don’t really care for this particular argument, which is why I never directly addressed it with them. What I am saying is that they were disinterested in easily accessible facts, so arguing with them to persuade them is a waste of my time.

    People on social media care about culture first and facts second. I am not going after the people on Mastodon specifically. Redditors are infamous for this shit. If you ask me, Reddit and Discord are ground zero cases for this dumbass culture of reply guys.

    I wrote my own Bayesian classifier and Markov algorithm a long time ago that curate only what I want to see in activity streams, so I don’t see whatever fuckery many of these idiots on social media are doing. I have my own Bayesian and Markov curation algorithm for activity streams and my own algorithm for feeds on Bluesky.

    You can see the documentation for how Activity Streams, which is what ActivityPub uses, works here:

    Activity Streams 2.0

    https://www.w3.org/TR/activitystreams-core

    I curate the ActivityStream of my inbox points to see posts based on relevance rather than chronological order. Most of the time, their nonsense is filtered out. I just had time to kill.

  37. Roadmap 2026 — Charting the stars of the open social web

    The 2026 roadmap focuses on making WordPress easier to discover and interact with across the Fediverse. Key areas include better search and recommendations through FASP support, Starter Packs to help users find communities, a more interactive Reader with reactions and replies, direct messages, and client-to-server APIs. Alongside these, we’ll continue improving interoperability, long-form publishing, and overall federation features.

    activitypub.blog/2026/02/11/ro

  38. Roadmap 2026 — Charting the stars of the open social web

    The 2026 roadmap focuses on making WordPress easier to discover and interact with across the Fediverse. Key areas include better search and recommendations through FASP support, Starter Packs to help users find communities, a more interactive Reader with reactions and replies, direct messages, and client-to-server APIs. Alongside these, we’ll continue improving interoperability, long-form publishing, and overall federation features.

    activitypub.blog/2026/02/11/ro

  39. Roadmap 2026 — Charting the stars of the open social web

    The 2026 roadmap focuses on making WordPress easier to discover and interact with across the Fediverse. Key areas include better search and recommendations through FASP support, Starter Packs to help users find communities, a more interactive Reader with reactions and replies, direct messages, and client-to-server APIs. Alongside these, we’ll continue improving interoperability, long-form publishing, and overall federation features.

    activitypub.blog/2026/02/11/ro

  40. Roadmap 2026 — Charting the stars of the open social web

    The 2026 roadmap focuses on making WordPress easier to discover and interact with across the Fediverse. Key areas include better search and recommendations through FASP support, Starter Packs to help users find communities, a more interactive Reader with reactions and replies, direct messages, and client-to-server APIs. Alongside these, we’ll continue improving interoperability, long-form publishing, and overall federation features.

    activitypub.blog/2026/02/11/ro

  41. Roadmap 2026 — Charting the stars of the open social web

    The 2026 roadmap focuses on making WordPress easier to discover and interact with across the Fediverse. Key areas include better search and recommendations through FASP support, Starter Packs to help users find communities, a more interactive Reader with reactions and replies, direct messages, and client-to-server APIs. Alongside these, we’ll continue improving interoperability, long-form publishing, and overall federation features.

    activitypub.blog/2026/02/11/ro

  42. Your BlueSky Feed Is Porn You Didn’t Ask For Because Your Friends Are Gooners With a Severe Porn Addiction

    A common complaint I see people make on Bluesky is: why am I being served so much porn or things I am not interested in? They will incorrectly believe that the algorithm is broken. It’s not broken. You didn’t know the people you knew as well as you thought you did. Porn addiction is a thing, and porn addiction is especially common with weebs. You’re seeing deranged shit because people you follow have porn addictions and are into deranged shit. So, though you may not be consuming porn, people in your network are. That activity kicks into your feeds.

    The issue I have with that is that it essentially normalizes being sex pests in a space on the Internet. That sets the expectation that it is good—attractive, even—to act like that elsewhere. That expectation alienates relationships. Bluesky creates a cultural space that offers an unrealistic, bizarre representation of social relationships, which isolates and alienates the users who stay on there consuming erotica and porn like they do.

    So, user repos in Bluesky have a property for likes. Bluesky’s underlying AT Protocol stores likes as first-class structured records in each user’s AT Protocol repository. In the AT Protocol lexicon, a like is an app.bsky.feed.like record type. Unlike a simple boolean flag on a post, it is its own record with a creation timestamp and a subject field that holds a strong reference to the liked record.

    That strong reference is composed of an AT-URI and a CID. The AT-URI identifies the exact record in the network by DID, collection, and record key. The CID is a cryptographic content identifier that uniquely identifies the exact content of that liked record.

    These like records exist under the app.bsky.feed.like namespace in the user’s repo. Bluesky’s repo model is built so that these repos are hosted on a user’s Personal Data Server and are publicly readable through the AT Protocol APIs. Because of that, the like record and its fields can be fetched, indexed, and used by any client or service that can query the protocol.

    The protocol exposes operations like getLikes. This returns all of the like records tied to a particular subject’s AT-URI and CID. It also exposes getActorLikes. This returns all of the subject references a given actor has liked. Those API calls return structured like objects with timestamps and subject references directly from the public repository data.

    Various feeds hosted by different PDSs use the likes property to construct the feeds that you see. Since the likes of people you follow are included in your social graph, along with your own likes, you’re going to get served the porn they are consuming. Because likes are public and anyone can write an algorithm to see everyone’s likes, you can clearly see just how much porn people are consuming.

    Honestly, what started to turn my stomach about the people on Bluesky is how they behave across different contexts. If you look through the records of the posts they interact with, you’ll see them engaging with political posts in the replies like a normal person. Then, when you look through their AT Protocol records, you see hours and hours of them interacting with every kind of porn imaginable. I am not exaggerating. Hours of likes for porn posts within 1–10 minutes of each other. Am I sex-negative? A prude? No, this site is filled with furry, gay bara porn, lol. You can have a drink without being an alcoholic. The problem with these people is like people who can’t have one drink without drinking the whole fucking day; they can’t consume porn in healthy ways.

    I think people assume that their feed is customized for them and based on their likes. No—feeds are generalized based on what everyone likes and then served to your subgraph. It’s not just about who you follow; it’s about who they follow. So if you follow someone who follows a lot of people with porn addictions, you will see porn. Bluesky isn’t weighting the algorithm to do this. Basically, it’s the people in your social network with furry, hentai, or trans porn addictions who are driving it.

  43. Your BlueSky Feed Is Porn You Didn’t Ask For Because Your Friends Are Gooners With a Severe Porn Addiction

    A common complaint I see people make on Bluesky is: why am I being served so much porn or things I am not interested in? They will incorrectly believe that the algorithm is broken. It’s not broken. You didn’t know the people you knew as well as you thought you did. Porn addiction is a thing, and porn addiction is especially common with weebs. You’re seeing deranged shit because people you follow have porn addictions and are into deranged shit. So, though you may not be consuming porn, people in your network are. That activity kicks into your feeds.

    The issue I have with that is that it essentially normalizes being sex pests in a space on the Internet. That sets the expectation that it is good—attractive, even—to act like that elsewhere. That expectation alienates relationships. Bluesky creates a cultural space that offers an unrealistic, bizarre representation of social relationships, which isolates and alienates the users who stay on there consuming erotica and porn like they do.

    So, user repos in Bluesky have a property for likes. Bluesky’s underlying AT Protocol stores likes as first-class structured records in each user’s AT Protocol repository. In the AT Protocol lexicon, a like is an app.bsky.feed.like record type. Unlike a simple boolean flag on a post, it is its own record with a creation timestamp and a subject field that holds a strong reference to the liked record.

    That strong reference is composed of an AT-URI and a CID. The AT-URI identifies the exact record in the network by DID, collection, and record key. The CID is a cryptographic content identifier that uniquely identifies the exact content of that liked record.

    These like records exist under the app.bsky.feed.like namespace in the user’s repo. Bluesky’s repo model is built so that these repos are hosted on a user’s Personal Data Server and are publicly readable through the AT Protocol APIs. Because of that, the like record and its fields can be fetched, indexed, and used by any client or service that can query the protocol.

    The protocol exposes operations like getLikes. This returns all of the like records tied to a particular subject’s AT-URI and CID. It also exposes getActorLikes. This returns all of the subject references a given actor has liked. Those API calls return structured like objects with timestamps and subject references directly from the public repository data.

    Various feeds hosted by different PDSs use the likes property to construct the feeds that you see. Since the likes of people you follow are included in your social graph, along with your own likes, you’re going to get served the porn they are consuming. Because likes are public and anyone can write an algorithm to see everyone’s likes, you can clearly see just how much porn people are consuming.

    Honestly, what started to turn my stomach about the people on Bluesky is how they behave across different contexts. If you look through the records of the posts they interact with, you’ll see them engaging with political posts in the replies like a normal person. Then, when you look through their AT Protocol records, you see hours and hours of them interacting with every kind of porn imaginable. I am not exaggerating. Hours of likes for porn posts within 1–10 minutes of each other. Am I sex-negative? A prude? No, this site is filled with furry, gay bara porn, lol. You can have a drink without being an alcoholic. The problem with these people is like people who can’t have one drink without drinking the whole fucking day; they can’t consume porn in healthy ways.

    I think people assume that their feed is customized for them and based on their likes. No—feeds are generalized based on what everyone likes and then served to your subgraph. It’s not just about who you follow; it’s about who they follow. So if you follow someone who follows a lot of people with porn addictions, you will see porn. Bluesky isn’t weighting the algorithm to do this. Basically, it’s the people in your social network with furry, hentai, or trans porn addictions who are driving it.

  44. Your BlueSky Feed Is Porn You Didn’t Ask For Because Your Friends Are Gooners With a Severe Porn Addiction

    A common complaint I see people make on Bluesky is: why am I being served so much porn or things I am not interested in? They will incorrectly believe that the algorithm is broken. It’s not broken. You didn’t know the people you knew as well as you thought you did. Porn addiction is a thing, and porn addiction is especially common with weebs. You’re seeing deranged shit because people you follow have porn addictions and are into deranged shit. So, though you may not be consuming porn, people in your network are. That activity kicks into your feeds.

    The issue I have with that is that it essentially normalizes being sex pests in a space on the Internet. That sets the expectation that it is good—attractive, even—to act like that elsewhere. That expectation alienates relationships. Bluesky creates a cultural space that offers an unrealistic, bizarre representation of social relationships, which isolates and alienates the users who stay on there consuming erotica and porn like they do.

    So, user repos in Bluesky have a property for likes. Bluesky’s underlying AT Protocol stores likes as first-class structured records in each user’s AT Protocol repository. In the AT Protocol lexicon, a like is an app.bsky.feed.like record type. Unlike a simple boolean flag on a post, it is its own record with a creation timestamp and a subject field that holds a strong reference to the liked record.

    That strong reference is composed of an AT-URI and a CID. The AT-URI identifies the exact record in the network by DID, collection, and record key. The CID is a cryptographic content identifier that uniquely identifies the exact content of that liked record.

    These like records exist under the app.bsky.feed.like namespace in the user’s repo. Bluesky’s repo model is built so that these repos are hosted on a user’s Personal Data Server and are publicly readable through the AT Protocol APIs. Because of that, the like record and its fields can be fetched, indexed, and used by any client or service that can query the protocol.

    The protocol exposes operations like getLikes. This returns all of the like records tied to a particular subject’s AT-URI and CID. It also exposes getActorLikes. This returns all of the subject references a given actor has liked. Those API calls return structured like objects with timestamps and subject references directly from the public repository data.

    Various feeds hosted by different PDSs use the likes property to construct the feeds that you see. Since the likes of people you follow are included in your social graph, along with your own likes, you’re going to get served the porn they are consuming. Because likes are public and anyone can write an algorithm to see everyone’s likes, you can clearly see just how much porn people are consuming.

    Honestly, what started to turn my stomach about the people on Bluesky is how they behave across different contexts. If you look through the records of the posts they interact with, you’ll see them engaging with political posts in the replies like a normal person. Then, when you look through their AT Protocol records, you see hours and hours of them interacting with every kind of porn imaginable. I am not exaggerating. Hours of likes for porn posts within 1–10 minutes of each other. Am I sex-negative? A prude? No, this site is filled with furry, gay bara porn, lol. You can have a drink without being an alcoholic. The problem with these people is like people who can’t have one drink without drinking the whole fucking day; they can’t consume porn in healthy ways.

    I think people assume that their feed is customized for them and based on their likes. No—feeds are generalized based on what everyone likes and then served to your subgraph. It’s not just about who you follow; it’s about who they follow. So if you follow someone who follows a lot of people with porn addictions, you will see porn. Bluesky isn’t weighting the algorithm to do this. Basically, it’s the people in your social network with furry, hentai, or trans porn addictions who are driving it.

  45. Your BlueSky Feed Is Porn You Didn’t Ask For Because Your Friends Are Gooners With a Severe Porn Addiction

    A common complaint I see people make on Bluesky is: why am I being served so much porn or things I am not interested in? They will incorrectly believe that the algorithm is broken. It’s not broken. You didn’t know the people you knew as well as you thought you did. Porn addiction is a thing, and porn addiction is especially common with weebs. You’re seeing deranged shit because people you follow have porn addictions and are into deranged shit. So, though you may not be consuming porn, people in your network are. That activity kicks into your feeds.

    The issue I have with that is that it essentially normalizes being sex pests in a space on the Internet. That sets the expectation that it is good—attractive, even—to act like that elsewhere. That expectation alienates relationships. Bluesky creates a cultural space that offers an unrealistic, bizarre representation of social relationships, which isolates and alienates the users who stay on there consuming erotica and porn like they do.

    So, user repos in Bluesky have a property for likes. Bluesky’s underlying AT Protocol stores likes as first-class structured records in each user’s AT Protocol repository. In the AT Protocol lexicon, a like is an app.bsky.feed.like record type. Unlike a simple boolean flag on a post, it is its own record with a creation timestamp and a subject field that holds a strong reference to the liked record.

    That strong reference is composed of an AT-URI and a CID. The AT-URI identifies the exact record in the network by DID, collection, and record key. The CID is a cryptographic content identifier that uniquely identifies the exact content of that liked record.

    These like records exist under the app.bsky.feed.like namespace in the user’s repo. Bluesky’s repo model is built so that these repos are hosted on a user’s Personal Data Server and are publicly readable through the AT Protocol APIs. Because of that, the like record and its fields can be fetched, indexed, and used by any client or service that can query the protocol.

    The protocol exposes operations like getLikes. This returns all of the like records tied to a particular subject’s AT-URI and CID. It also exposes getActorLikes. This returns all of the subject references a given actor has liked. Those API calls return structured like objects with timestamps and subject references directly from the public repository data.

    Various feeds hosted by different PDSs use the likes property to construct the feeds that you see. Since the likes of people you follow are included in your social graph, along with your own likes, you’re going to get served the porn they are consuming. Because likes are public and anyone can write an algorithm to see everyone’s likes, you can clearly see just how much porn people are consuming.

    Honestly, what started to turn my stomach about the people on Bluesky is how they behave across different contexts. If you look through the records of the posts they interact with, you’ll see them engaging with political posts in the replies like a normal person. Then, when you look through their AT Protocol records, you see hours and hours of them interacting with every kind of porn imaginable. I am not exaggerating. Hours of likes for porn posts within 1–10 minutes of each other. Am I sex-negative? A prude? No, this site is filled with furry, gay bara porn, lol. You can have a drink without being an alcoholic. The problem with these people is like people who can’t have one drink without drinking the whole fucking day; they can’t consume porn in healthy ways.

    I think people assume that their feed is customized for them and based on their likes. No—feeds are generalized based on what everyone likes and then served to your subgraph. It’s not just about who you follow; it’s about who they follow. So if you follow someone who follows a lot of people with porn addictions, you will see porn. Bluesky isn’t weighting the algorithm to do this. Basically, it’s the people in your social network with furry, hentai, or trans porn addictions who are driving it.

  46. The Virulent Infection of BlueSky by Extremely Online, Brain-Rotten Zombies from X Continues

    So, it appears a new migration from Twitter to Bluesky is underway. It appears to be some of the most virulent former 4chan users possible. Yep, I got off Bluesky just in time, lol. I’ve been keeping tabs on a particularly virulent and toxic subgraph on Twitter for years. It pretty much stayed off Bluesky because they couldn’t act like abusive dumpster fires there. Welp, looks like they’re becoming more active on Bluesky. It’s not looking good over there.

    That they are on the move says something. It’s sort of like how the US is suddenly a place that is hospitable to measles. It was all but eradicated here.

    My husband likes to say that you can tell where not to be by where I am looking from somewhere else. I like fires. So if I am observing your platform or community from a distance, you probably don’t want to be there.

    Edit:

    I had originally posted the above on a now-defunct federated blog. It got blasted to Mastodon. Someone replied and asked what I think is causing this. I debated actually answering, then decided that I’ve had enough of the dumpster fire that is social media. I decided not to wade through social media tech discourse into what will mostly likely be an Internet argument with a complete stranger. I am a techie dragon, and I engage with things to learn how they work so I can tinker with them. I only engaged with tech discourse to get my hands on how the tech works. There’s nothing in it for me to be part of larger conversations. Arguing with random strangers on social media is not an epistemically useful format. I do think I should answer, though. Just on my blog.

    I treat social media like I do an addictive substance. I do not believe in abstinence, but I do believe in harm-reduction paradigms, so when I see everyone overdosing on social media, I pull back and shut down a lot of accounts. The Fediverse instance where the first part of this blog post was posted has been taken down, moved to this blog, and this section appended to it.

    I often use the word weeb pejoratively. Here, I am using it categorically. There really isn’t an “official” name outside of otaku or weeb culture. I am at the fringes and intersections of it as a furry. My husband is a millennial weeb. With that being said—

    The migration is in large part because Bluesky is capturing the otaku/weeb niche of X. X hosted networks that were ecosystems of “anime fans.” These included anime and manga artists, doujin and hentai artists, VTuber fans, NSFW illustrators, fandom shitposters, niche fetish communities, and other chronically and extremely online content creators and influencers. That culture relied heavily on timelines, informal networks, and discovery through reposts, replies, and algorithmic amplification.

    Elon Musk pretty much destabilized X’s ecosystems and social networks from multiple directions at once. Algorithm changes made reach inconsistent. Moderation created anxiety and uncertainty about what would get suppressed or unintentionally “viral”. Bots, engagement farming, and blue-check reply spam actively poisoned fandom conversations.

    Bluesky is the memetic and cultural progeny of early imageboard cultures. I conducted a phylogenetic analysis of the memetics, which you can check out here:

    Bluesky is a competitor of X for otaku and fandom communities. Bluesky has a lot of the aspects of old Twitter dynamics around which fandom culture evolved. Recently, Bluesky introduced something big in those communities: going live. Since X is no longer habitable for weebs, they are moving to Bluesky.

    For example, the AT protocol already has PinkSea:

    https://pinksea.art

    And, of course, there is WAFRN:

    https://app.wafrn.net

    I cope and deal with issues via personal, private sublimation and not so much exhibitionism of my art or consumption of art. So, while I do make comic books and do a shit ton of weeby art, it’s for the purpose of sublimation, so I’m not too interested in being a part of a community. That’s a large reason I am not active in those spaces. I’m quite cynical, in general, so I am suspicious of any community — and I mean any community, at all. Honestly, I am mildly contemptuous of mass participation or any sense of belonging. So, my art stays private, because it is created for me – and just me.

  47. The Virulent Infection of BlueSky by Extremely Online, Brain-Rotten Zombies from X Continues

    So, it appears a new migration from Twitter to Bluesky is underway. It appears to be some of the most virulent former 4chan users possible. Yep, I got off Bluesky just in time, lol. I’ve been keeping tabs on a particularly virulent and toxic subgraph on Twitter for years. It pretty much stayed off Bluesky because they couldn’t act like abusive dumpster fires there. Welp, looks like they’re becoming more active on Bluesky. It’s not looking good over there.

    That they are on the move says something. It’s sort of like how the US is suddenly a place that is hospitable to measles. It was all but eradicated here.

    My husband likes to say that you can tell where not to be by where I am looking from somewhere else. I like fires. So if I am observing your platform or community from a distance, you probably don’t want to be there.

    Edit:

    I had originally posted the above on a now-defunct federated blog. It got blasted to Mastodon. Someone replied and asked what I think is causing this. I debated actually answering, then decided that I’ve had enough of the dumpster fire that is social media. I decided not to wade through social media tech discourse into what will mostly likely be an Internet argument with a complete stranger. I am a techie dragon, and I engage with things to learn how they work so I can tinker with them. I only engaged with tech discourse to get my hands on how the tech works. There’s nothing in it for me to be part of larger conversations. Arguing with random strangers on social media is not an epistemically useful format. I do think I should answer, though. Just on my blog.

    I treat social media like I do an addictive substance. I do not believe in abstinence, but I do believe in harm-reduction paradigms, so when I see everyone overdosing on social media, I pull back and shut down a lot of accounts. The Fediverse instance where the first part of this blog post was posted has been taken down, moved to this blog, and this section appended to it.

    I often use the word weeb pejoratively. Here, I am using it categorically. There really isn’t an “official” name outside of otaku or weeb culture. I am at the fringes and intersections of it as a furry. My husband is a millennial weeb. With that being said—

    The migration is in large part because Bluesky is capturing the otaku/weeb niche of X. X hosted networks that were ecosystems of “anime fans.” These included anime and manga artists, doujin and hentai artists, VTuber fans, NSFW illustrators, fandom shitposters, niche fetish communities, and other chronically and extremely online content creators and influencers. That culture relied heavily on timelines, informal networks, and discovery through reposts, replies, and algorithmic amplification.

    Elon Musk pretty much destabilized X’s ecosystems and social networks from multiple directions at once. Algorithm changes made reach inconsistent. Moderation created anxiety and uncertainty about what would get suppressed or unintentionally “viral”. Bots, engagement farming, and blue-check reply spam actively poisoned fandom conversations.

    Bluesky is the memetic and cultural progeny of early imageboard cultures. I conducted a phylogenetic analysis of the memetics, which you can check out here:

    Bluesky is a competitor of X for otaku and fandom communities. Bluesky has a lot of the aspects of old Twitter dynamics around which fandom culture evolved. Recently, Bluesky introduced something big in those communities: going live. Since X is no longer habitable for weebs, they are moving to Bluesky.

    For example, the AT protocol already has PinkSea:

    https://pinksea.art

    And, of course, there is WAFRN:

    https://app.wafrn.net

    I cope and deal with issues via personal, private sublimation and not so much exhibitionism of my art or consumption of art. So, while I do make comic books and do a shit ton of weeby art, it’s for the purpose of sublimation, so I’m not too interested in being a part of a community. That’s a large reason I am not active in those spaces. I’m quite cynical, in general, so I am suspicious of any community — and I mean any community, at all. Honestly, I am mildly contemptuous of mass participation or any sense of belonging. So, my art stays private, because it is created for me – and just me.