#occultism — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #occultism, aggregated by home.social.
-
The Occult in Nineteenth-Century America https://library.hrmtc.com/2026/05/11/the-occult-in-nineteenth-century-america/ #18001899 #ancientMysteries #arthurVersluis #book #CathyGutierrez #EricCasey #FredNadis #freemasonry #GeoffreyMcVey #HarrietJacobs #hermeticBrotherhoodOfLuxor #history #JohnKucich #literaryRealism #MatthewDeVoll #Mesmerism #occultSocieties #occultism #OccultismUnitedStatesHistory19thCentury #OccultismeETatsUnisHistoire19eSieCle #Okkultismus #RalphWaldoEmerson #ReligiousCults #review #SheriWeinstein #spiritualism #stageMagic #TPolyphilus #theosophicalSociety #unitedStates #UnitedStatesHistory #USA -
Series of illustration for a new sticker pack I'm preparing! Theme is #occultism and #witchcraft! #illustration #skull #art #luxembourg Here is one pesky #Mandrake
-
Series of illustration for a new sticker pack I'm preparing! Theme is #occultism and #witchcraft! #illustration #skull #art #luxembourg
-
Josef Vachal: 'The Cult Of Ahriman'. #weird #weirdart #arhriman #Zoroastrianism #Occult #Occultism #evilgod
-
“Then along came Austin Spare, who identified the basic sleight of mind techniques underlying all forms of magic, and showed us that we could treat the whole baroque symbolism of magic as entirely optional. Spare invented the Postmodernist approach to magic well before the cultural advent of Existentialism or Postmodernism.” https://library.hrmtc.com/2026/04/28/then-along-came-austin-spare-who-identified-the-basic-sleight-of-mind-techniques-underlying-all-forms-of-magic-and-showed-us-that-we-could-treat-the-whole-baroque-symbolism-of-magic-as-entirely-op/ #allForms #alongCame #AustinOsmanSpare #AustinSpare #baroqueSymbolism #basic #BodyMindSpirit #book #chaosMagic #culturalAdvent #entirelyOptional #existentialism #identified #invented #magic #MagicStudies #mindTechniques #NewAgeMysticism #occultism #PeterJCarroll #philHine #Postmodernism #PostmodernistApproach #quote #showed #sleight #SpiritualityReligion #treat #underlying #wellBefore #WesternOccultism #whole -
Photo from Kajinksy book biological wireless or biological radio (Биологическое радио). It depicts experiment on telepathy, that was conducted in USSR in 1920-s – an operator (sitting man) is suggesting telepathically commands to a dog. (experiments were performed at Durovs laboratory, pg 54) A booth, where he is sitting is covered with metal net, which is obstructing the flow of electromagnetic waves. The idea is to check if such obstacle will affect the process. These experiments has shown that there is some disturbances in the process because of the metal booth, which suggest at least to some extent electromagnetic nature of the phenomena.
Back in 1920-s in the USSR telepathy was a very serious topic for research. Soviet state was assigning resources and money for such work. Overall scientific consensus was – that telepathy is existent and common feature, though its mechanism is challenging to obtain from scientific point of view.
What has changed from that time? – Has humans just lost these ability? – no. Has nature changed? – no. Has laws of physics changed? – no.
The only thing that changed – is the attitude of capitalists and state bureaucracy. They realized that it is too risky and they don’t need it.
In USSR they just purged most of the scientists in 1930-s. Though what left (and it was Leningrad’s institute of brain research, department lead by Leonid Vasilev) was enough to scare USA and make them create their own state paranormal program.
Situation with telepathy reminded me the situation with the idea of roundness of the earth. It was true, but authorities and public denied it and persecuted anyone who dares to admit it.
But, it also gives an advantage to a person who decided to explore this ability and use it against the state, capitalists and its agents. Overall they all use scientifically improved apparatus of subjugation and destruction of humans, and if some feature is denied by science – just grab it and use against them – there won’t be any countermeasures.
So comrades – turn your mind into a weapon! Join the digital brotherhood of mystical anarchists.
#anarchy #anarchism #occult #occultism #parapsychology #telepathy #paranormal #magic #mind #history #science -
Just a little tease of some of our methods. If you have some mental technique, that you want to share with our digital brotherhood of mystical anarchists, or you want more info about our methods - PM this account.
Turn your mind into a weapon, join our brotherhood!
Psychic vision – brief description.
Psychic vision, or extrasensory vision, or third eye etc. – is one of the “classic” occult or esoteric phenomena. Here we present a remastered light variant, which proved to be useful in an open field operations. This technique has an essential difference from remote viewing, and that is more flexibility. That makes it more appropriate to use on a whim – when needed without much preparation.
For activists or revolutionaries it will be beneficial to use this method - to look far from your original location to a place of your interest, that is obscured by some obstacles or long distance. This technique may give valuable information about potential threats or targets – for example police forces in an area.
Science behind the process, in our opinion – is precognition process. By using this method, you are glimpsing into the future events that are connected with you personally through your perception. Be mindful of this fact, because some of your presumptions may influence the results.
We describe 2 variants of this method – one is for training, and the other one for use in the field. Difference is some preparation steps and speed. However, it is necessary to regularly do training sessions at least 1 time in 2 weeks in order to use fast field variant effectively.
Psychic vision technique. Training variant algorithm:1. Relax and breathe a little bit.
2. Remember something from your past.
3. Close your eyes and imagine that you are underwater.
4. Scenes of your memories is playing like a movie inside this “water”.
5. Concentrate on feelings in your body – notice how “water” is creating pressure on it
6. Notice that pressure is different in different parts of the body. And if some object is closer to your body – then the pressure of “water” is stronger
7. Send the ‘shadow’ (how to imagine - it is like a shadow, that you can use how you want) or projection of your own body to an object you want to ‘see’. Then start touching this object with your projection – carefully noticing all the sensations. (How to use projection – if you send a “shadow” of your hands – then all the sensations of the projection will be in your hands)
8. You may actually ‘touch’ letters and symbols with it, not only objects itself.
9. When you ended – remember how you started the process (1-st step). It is needed to end the process properly, so you will not get any random sensations without your wish.
.....
#occult #anarchy #anarchism #parapsychology #magic #occultism #intuition #left #struggle #paranormal #projection #mind -
Just a little tease of some of our methods. If you have some mental technique, that you want to share with our digital brotherhood of mystical anarchists, or you want more info about our methods - PM this account.
Turn your mind into a weapon, join our brotherhood!
Psychic vision – brief description.
Psychic vision, or extrasensory vision, or third eye etc. – is one of the “classic” occult or esoteric phenomena. Here we present a remastered light variant, which proved to be useful in an open field operations. This technique has an essential difference from remote viewing, and that is more flexibility. That makes it more appropriate to use on a whim – when needed without much preparation.
For activists or revolutionaries it will be beneficial to use this method - to look far from your original location to a place of your interest, that is obscured by some obstacles or long distance. This technique may give valuable information about potential threats or targets – for example police forces in an area.
Science behind the process, in our opinion – is precognition process. By using this method, you are glimpsing into the future events that are connected with you personally through your perception. Be mindful of this fact, because some of your presumptions may influence the results.
We describe 2 variants of this method – one is for training, and the other one for use in the field. Difference is some preparation steps and speed. However, it is necessary to regularly do training sessions at least 1 time in 2 weeks in order to use fast field variant effectively.
Psychic vision technique. Training variant algorithm:1. Relax and breathe a little bit.
2. Remember something from your past.
3. Close your eyes and imagine that you are underwater.
4. Scenes of your memories is playing like a movie inside this “water”.
5. Concentrate on feelings in your body – notice how “water” is creating pressure on it
6. Notice that pressure is different in different parts of the body. And if some object is closer to your body – then the pressure of “water” is stronger
7. Send the ‘shadow’ (how to imagine - it is like a shadow, that you can use how you want) or projection of your own body to an object you want to ‘see’. Then start touching this object with your projection – carefully noticing all the sensations. (How to use projection – if you send a “shadow” of your hands – then all the sensations of the projection will be in your hands)
8. You may actually ‘touch’ letters and symbols with it, not only objects itself.
9. When you ended – remember how you started the process (1-st step). It is needed to end the process properly, so you will not get any random sensations without your wish.
.....
#occult #anarchy #anarchism #parapsychology #magic #occultism #intuition #left #struggle #paranormal #projection #mind -
Just a little tease of some of our methods. If you have some mental technique, that you want to share with our digital brotherhood of mystical anarchists, or you want more info about our methods - PM this account.
Turn your mind into a weapon, join our brotherhood!
Psychic vision – brief description.
Psychic vision, or extrasensory vision, or third eye etc. – is one of the “classic” occult or esoteric phenomena. Here we present a remastered light variant, which proved to be useful in an open field operations. This technique has an essential difference from remote viewing, and that is more flexibility. That makes it more appropriate to use on a whim – when needed without much preparation.
For activists or revolutionaries it will be beneficial to use this method - to look far from your original location to a place of your interest, that is obscured by some obstacles or long distance. This technique may give valuable information about potential threats or targets – for example police forces in an area.
Science behind the process, in our opinion – is precognition process. By using this method, you are glimpsing into the future events that are connected with you personally through your perception. Be mindful of this fact, because some of your presumptions may influence the results.
We describe 2 variants of this method – one is for training, and the other one for use in the field. Difference is some preparation steps and speed. However, it is necessary to regularly do training sessions at least 1 time in 2 weeks in order to use fast field variant effectively.
Psychic vision technique. Training variant algorithm:1. Relax and breathe a little bit.
2. Remember something from your past.
3. Close your eyes and imagine that you are underwater.
4. Scenes of your memories is playing like a movie inside this “water”.
5. Concentrate on feelings in your body – notice how “water” is creating pressure on it
6. Notice that pressure is different in different parts of the body. And if some object is closer to your body – then the pressure of “water” is stronger
7. Send the ‘shadow’ (how to imagine - it is like a shadow, that you can use how you want) or projection of your own body to an object you want to ‘see’. Then start touching this object with your projection – carefully noticing all the sensations. (How to use projection – if you send a “shadow” of your hands – then all the sensations of the projection will be in your hands)
8. You may actually ‘touch’ letters and symbols with it, not only objects itself.
9. When you ended – remember how you started the process (1-st step). It is needed to end the process properly, so you will not get any random sensations without your wish.
.....
#occult #anarchy #anarchism #parapsychology #magic #occultism #intuition #left #struggle #paranormal #projection #mind -
Just a little tease of some of our methods. If you have some mental technique, that you want to share with our digital brotherhood of mystical anarchists, or you want more info about our methods - PM this account.
Turn your mind into a weapon, join our brotherhood!
Psychic vision – brief description.
Psychic vision, or extrasensory vision, or third eye etc. – is one of the “classic” occult or esoteric phenomena. Here we present a remastered light variant, which proved to be useful in an open field operations. This technique has an essential difference from remote viewing, and that is more flexibility. That makes it more appropriate to use on a whim – when needed without much preparation.
For activists or revolutionaries it will be beneficial to use this method - to look far from your original location to a place of your interest, that is obscured by some obstacles or long distance. This technique may give valuable information about potential threats or targets – for example police forces in an area.
Science behind the process, in our opinion – is precognition process. By using this method, you are glimpsing into the future events that are connected with you personally through your perception. Be mindful of this fact, because some of your presumptions may influence the results.
We describe 2 variants of this method – one is for training, and the other one for use in the field. Difference is some preparation steps and speed. However, it is necessary to regularly do training sessions at least 1 time in 2 weeks in order to use fast field variant effectively.
Psychic vision technique. Training variant algorithm:1. Relax and breathe a little bit.
2. Remember something from your past.
3. Close your eyes and imagine that you are underwater.
4. Scenes of your memories is playing like a movie inside this “water”.
5. Concentrate on feelings in your body – notice how “water” is creating pressure on it
6. Notice that pressure is different in different parts of the body. And if some object is closer to your body – then the pressure of “water” is stronger
7. Send the ‘shadow’ (how to imagine - it is like a shadow, that you can use how you want) or projection of your own body to an object you want to ‘see’. Then start touching this object with your projection – carefully noticing all the sensations. (How to use projection – if you send a “shadow” of your hands – then all the sensations of the projection will be in your hands)
8. You may actually ‘touch’ letters and symbols with it, not only objects itself.
9. When you ended – remember how you started the process (1-st step). It is needed to end the process properly, so you will not get any random sensations without your wish.
.....
#occult #anarchy #anarchism #parapsychology #magic #occultism #intuition #left #struggle #paranormal #projection #mind -
Just a little tease of some of our methods. If you have some mental technique, that you want to share with our digital brotherhood of mystical anarchists, or you want more info about our methods - PM this account.
Turn your mind into a weapon, join our brotherhood!
Psychic vision – brief description.
Psychic vision, or extrasensory vision, or third eye etc. – is one of the “classic” occult or esoteric phenomena. Here we present a remastered light variant, which proved to be useful in an open field operations. This technique has an essential difference from remote viewing, and that is more flexibility. That makes it more appropriate to use on a whim – when needed without much preparation.
For activists or revolutionaries it will be beneficial to use this method - to look far from your original location to a place of your interest, that is obscured by some obstacles or long distance. This technique may give valuable information about potential threats or targets – for example police forces in an area.
Science behind the process, in our opinion – is precognition process. By using this method, you are glimpsing into the future events that are connected with you personally through your perception. Be mindful of this fact, because some of your presumptions may influence the results.
We describe 2 variants of this method – one is for training, and the other one for use in the field. Difference is some preparation steps and speed. However, it is necessary to regularly do training sessions at least 1 time in 2 weeks in order to use fast field variant effectively.
Psychic vision technique. Training variant algorithm:1. Relax and breathe a little bit.
2. Remember something from your past.
3. Close your eyes and imagine that you are underwater.
4. Scenes of your memories is playing like a movie inside this “water”.
5. Concentrate on feelings in your body – notice how “water” is creating pressure on it
6. Notice that pressure is different in different parts of the body. And if some object is closer to your body – then the pressure of “water” is stronger
7. Send the ‘shadow’ (how to imagine - it is like a shadow, that you can use how you want) or projection of your own body to an object you want to ‘see’. Then start touching this object with your projection – carefully noticing all the sensations. (How to use projection – if you send a “shadow” of your hands – then all the sensations of the projection will be in your hands)
8. You may actually ‘touch’ letters and symbols with it, not only objects itself.
9. When you ended – remember how you started the process (1-st step). It is needed to end the process properly, so you will not get any random sensations without your wish.
.....
#occult #anarchy #anarchism #parapsychology #magic #occultism #intuition #left #struggle #paranormal #projection #mind -
From Kitāb-i ʻAjāʾib-i makhlūqāt (1921).
Source: Princeton University Library
https://pdimagearchive.org/images/79c9b86c-7cff-4652-9757-629830dc48ea
#astrology #persia #iran #devils #ghosts #angels #demons #occultism #magic #art #publicdomain
-
Most of my life when I heard of #hypnosis, #meditation, #LucidDreaming and basically any altered mind state, it was always in context of some occult/witchcraft practices. It shaped my expectations about these phenomena and for many years I thought I should develop some supernatural powers or else it would be shameful failure.
(Of course it destroyed my already poor self-esteem :/)Some time after I recovered from this "I have to gain psychic powers" mindset I noticed one thing. In that magic context meditation training is often described as something forced, fighting agains own mind, hard effort. In contrast, when meditation (and any relaxation/mental exercises) is mentioned in more health of wellnes-related topics it's something calm, peaceful, pleasant. More like letting things go, not make them by force.
And it's really big difference. When my perception of it shifted, I started noticing any progress in meditation and "keeping my mind quiet and calm".
-
Most of my life when I heard of #hypnosis, #meditation, #LucidDreaming and basically any altered mind state, it was always in context of some occult/witchcraft practices. It shaped my expectations about these phenomena and for many years I thought I should develop some supernatural powers or else it would be shameful failure.
(Of course it destroyed my already poor self-esteem :/)Some time after I recovered from this "I have to gain psychic powers" mindset I noticed one thing. In that magic context meditation training is often described as something forced, fighting agains own mind, hard effort. In contrast, when meditation (and any relaxation/mental exercises) is mentioned in more health of wellnes-related topics it's something calm, peaceful, pleasant. More like letting things go, not make them by force.
And it's really big difference. When my perception of it shifted, I started noticing any progress in meditation and "keeping my mind quiet and calm".
-
Most of my life when I heard of #hypnosis, #meditation, #LucidDreaming and basically any altered mind state, it was always in context of some occult/witchcraft practices. It shaped my expectations about these phenomena and for many years I thought I should develop some supernatural powers or else it would be shameful failure.
(Of course it destroyed my already poor self-esteem :/)Some time after I recovered from this "I have to gain psychic powers" mindset I noticed one thing. In that magic context meditation training is often described as something forced, fighting agains own mind, hard effort. In contrast, when meditation (and any relaxation/mental exercises) is mentioned in more health of wellnes-related topics it's something calm, peaceful, pleasant. More like letting things go, not make them by force.
And it's really big difference. When my perception of it shifted, I started noticing any progress in meditation and "keeping my mind quiet and calm".
-
Most of my life when I heard of #hypnosis, #meditation, #LucidDreaming and basically any altered mind state, it was always in context of some occult/witchcraft practices. It shaped my expectations about these phenomena and for many years I thought I should develop some supernatural powers or else it would be shameful failure.
(Of course it destroyed my already poor self-esteem :/)Some time after I recovered from this "I have to gain psychic powers" mindset I noticed one thing. In that magic context meditation training is often described as something forced, fighting agains own mind, hard effort. In contrast, when meditation (and any relaxation/mental exercises) is mentioned in more health of wellnes-related topics it's something calm, peaceful, pleasant. More like letting things go, not make them by force.
And it's really big difference. When my perception of it shifted, I started noticing any progress in meditation and "keeping my mind quiet and calm".
-
Most of my life when I heard of #hypnosis, #meditation, #LucidDreaming and basically any altered mind state, it was always in context of some occult/witchcraft practices. It shaped my expectations about these phenomena and for many years I thought I should develop some supernatural powers or else it would be shameful failure.
(Of course it destroyed my already poor self-esteem :/)Some time after I recovered from this "I have to gain psychic powers" mindset I noticed one thing. In that magic context meditation training is often described as something forced, fighting agains own mind, hard effort. In contrast, when meditation (and any relaxation/mental exercises) is mentioned in more health of wellnes-related topics it's something calm, peaceful, pleasant. More like letting things go, not make them by force.
And it's really big difference. When my perception of it shifted, I started noticing any progress in meditation and "keeping my mind quiet and calm".
-
Real people. Real results. High Magick changed their lives — and they said it out loud. 🔥 Watch now 👉https://youtube.com/shorts/1tbk4FXH-rE #highmagick #occultism #patreon
-
Top ten posts in March 2026 https://library.hrmtc.com/2026/04/01/top-ten-posts-in-march-2026/ #AA #Abaddon #abominableCrime #absolute #accordingToTheFashion #advancedMagician #albertusMagnus #Alchemy #aleisterCrowley #american #AmericanWitch #anneRice #archivalFinds #artsClub #astralProject #astralProjection #babalon #barriersToEntry #basicPrinciples #basicTraining #basisOfMagic #BehmenistPrinciples #BehmenistThought #beliefs #bend #berlin #bestTen #blinderWearingSheep #blood #body #BrianJGibbons #cabala #ceremonialMagic #chatbot #class #colinWilson #consciousness #consecration #conspiracy #conspiracyTheories #CosmicEvilToys #cosmologicalConcerns #Craft #culturalCurrents #dailyPractice #DanielMitsui #DavidConway #destroying #diary #earlyModernPeriod #edit #elements #endeavours #EricaMCornelius #esotericSociety #esotericTraditions #esotericists #everyWord #everydayLife #Expression #failures #fatalResults #FelixJohnTaylor #follow #FoucaultSPendulum #FranzKafka #Fraterאוהבהנו #freemasons #FrenchOccult #FrenchSecretService #GastonDeMengel #gender #goldenAge #gospel #GreenDragon #HeinrichHimmler #hermeticism #holyMountain #human #IkeVil #imaginativeExploration #inform #intelligenceOperators #interfereWith #JEdwardCornelius #jacobBoehme #journeyToTheEast #KaAba #kabbalah #Khabs #Khu #kill #lam #life #literaryArts #literaryHistory #livedExperiences #london #LuciferianSalons #magic #magicArts #magicalAlphabets #magicalPractice #magicalRecipes #magicalTheory #magicalTraining #makeItLogical #man #March2026 #MariaDeNaglowska #MarshallWSL #masonicLodges #mechanicalOracle #memories #mercilessly #modernMagic #modernWitch #moralStatus #mostIntense #mysteries #mysticalThought #narrativeHistory #naturalLaw #NaziMysteries #NaziMysticism #Nu #obscureSources #obsessions #occult #occultRevival #occultThought #occultUnderground #occultism #occultist #offeredUp #ohevHanu #OnSexualFreedom #philosophy #phrases #poetry #Polaires #politicalSchisms #practicalMagic #primer #progressiveIdeals #realities #religion #religiousValues #reneGuenon #ritualEquipment #RomanticNotion #sacredSong #saints #sanctuary #satan #secretSociety #Self #seminalWork #seriousStudent #sex #sexScandals #sexualIdeology #sexualNature #sexuality #societyOfWriters #soul #spellcraft #spiritualEnlightenment #story #strangerThanFiction #study #subconsciousness #successes #summary #summaryOfTheMonth #supremeSacrament #supremelySacred #tablesOfCorrespondences #talismanicMagicAndProphecy #tarot #teachings #temple #terms #TheAlchemist #theHermeticOrderOfTheGoldenDawn #TheRevivalOfMagickAndOtherEssays #thelema #ThelemicPath #ThelemicPhilosophy #ThelemicPractice #ThelemicStudy #Thelemite #ThomasAquinas #timingOfRituals #toTheSoul #topPosts #topTen #traditional #traditions #tryToEdit #UmbertoEco #unbelievableClaims #Victorian #VictorianSexuality #VisualArts #WBYeats #waterItDown #whiteLighters #whoSWho #wicca #will #WilliamBlake #witch #womanhood #women #worthy #yourOwnSoul -
Top ten posts in March 2026 https://library.hrmtc.com/2026/04/01/top-ten-posts-in-march-2026/ #AA #Abaddon #abominableCrime #absolute #accordingToTheFashion #advancedMagician #albertusMagnus #Alchemy #aleisterCrowley #american #AmericanWitch #anneRice #archivalFinds #artsClub #astralProject #astralProjection #babalon #barriersToEntry #basicPrinciples #basicTraining #basisOfMagic #BehmenistPrinciples #BehmenistThought #beliefs #bend #berlin #bestTen #blinderWearingSheep #blood #body #BrianJGibbons #cabala #ceremonialMagic #chatbot #class #colinWilson #consciousness #consecration #conspiracy #conspiracyTheories #CosmicEvilToys #cosmologicalConcerns #Craft #culturalCurrents #dailyPractice #DanielMitsui #DavidConway #destroying #diary #earlyModernPeriod #edit #elements #endeavours #EricaMCornelius #esotericSociety #esotericTraditions #esotericists #everyWord #everydayLife #Expression #failures #fatalResults #FelixJohnTaylor #follow #FoucaultSPendulum #FranzKafka #Fraterאוהבהנו #freemasons #FrenchOccult #FrenchSecretService #GastonDeMengel #gender #goldenAge #gospel #GreenDragon #HeinrichHimmler #hermeticism #holyMountain #human #IkeVil #imaginativeExploration #inform #intelligenceOperators #interfereWith #JEdwardCornelius #jacobBoehme #journeyToTheEast #KaAba #kabbalah #Khabs #Khu #kill #lam #life #literaryArts #literaryHistory #livedExperiences #london #LuciferianSalons #magic #magicArts #magicalAlphabets #magicalPractice #magicalRecipes #magicalTheory #magicalTraining #makeItLogical #man #March2026 #MariaDeNaglowska #MarshallWSL #masonicLodges #mechanicalOracle #memories #mercilessly #modernMagic #modernWitch #moralStatus #mostIntense #mysteries #mysticalThought #narrativeHistory #naturalLaw #NaziMysteries #NaziMysticism #Nu #obscureSources #obsessions #occult #occultRevival #occultThought #occultUnderground #occultism #occultist #offeredUp #ohevHanu #OnSexualFreedom #philosophy #phrases #poetry #Polaires #politicalSchisms #practicalMagic #primer #progressiveIdeals #realities #religion #religiousValues #reneGuenon #ritualEquipment #RomanticNotion #sacredSong #saints #sanctuary #satan #secretSociety #Self #seminalWork #seriousStudent #sex #sexScandals #sexualIdeology #sexualNature #sexuality #societyOfWriters #soul #spellcraft #spiritualEnlightenment #story #strangerThanFiction #study #subconsciousness #successes #summary #summaryOfTheMonth #supremeSacrament #supremelySacred #tablesOfCorrespondences #talismanicMagicAndProphecy #tarot #teachings #temple #terms #TheAlchemist #theHermeticOrderOfTheGoldenDawn #TheRevivalOfMagickAndOtherEssays #thelema #ThelemicPath #ThelemicPhilosophy #ThelemicPractice #ThelemicStudy #Thelemite #ThomasAquinas #timingOfRituals #toTheSoul #topPosts #topTen #traditional #traditions #tryToEdit #UmbertoEco #unbelievableClaims #Victorian #VictorianSexuality #VisualArts #WBYeats #waterItDown #whiteLighters #whoSWho #wicca #will #WilliamBlake #witch #womanhood #women #worthy #yourOwnSoul -
“As magicians it’s essential that we train ourselves to be capable of taking on any role. As individuals, it’s important to recognize the preferences that make up our unique character.” https://library.hrmtc.com/2026/03/25/as-magicians-its-essential-that-we-train-ourselves-to-be-capable-of-taking-on-any-role-as-individuals-its-important-to-recognize-the-preferences-that-make-up-our-unique-character/ #anyRole #book #BrandyWilliams #capable #essential #important #individuals #MagicStudies #magicians #makeUp #occultism #Occultisme #ourselves #preferences #quote #recognize #RitesAndCeremonies #RitesEtCeReMonies #SexReligiousAspects #SpiritualityReligion #taking #train #uniqueCharacter -
“Major Darget, placing his fingers together, projected his will on a sensitive plate.” (1913) by Hippolyte Baraduc, from The Human Soul.
Source: Boston Public Library / Internet Archive
https://pdimagearchive.org/images/65b2de8e-f9ac-4b7e-8ae5-169f4cba3111
#abstract #electricity #spirituality #soul #spirits #occultism #electromagnetism #auras #art #publicdomain
-
I‘m convinced that my cat defended me from a demon or ghost or some other inter dimensional being tonight. When I got to bed shortly after 1 am I turned off the lights and he jumped onto my bed and after a while I felt his body shifting or he let himself fall over and suddenly hissed at something in the dark and was immediately quiet after and lied down beside me. Thanks Rune.
-
It's been such a long time since I've been on Mastodon! What have y'all been up to while I was away? 😄
I actually have some pretty exciting news! A dear friend of mine used to run a podcast years ago, and she recently decided to reboot it! And guess what? She was kind enough to invite me along for the ride!
So, I co-host a podcast now! It's called The Eternal Void, But With Jazz. Each week, we bring a new guest on to discuss some topic relating to magick, spirituality, occultism, and more. So far, we've featured folks like Maevius Lynn, Amy Blackthorn, AP Strange, and tons of other cool folks!
You can find us on YouTube, PodBean, Apple Podcasts, and all your other favorite platforms!
Here's a link to the show, where you can watch our first 9 episodes! 🥰 New episodes drop every Sunday!
🎙 https://youtube.com/playlist?list=PLNKMoeCx69iJG-Q9EN10PEo41QXx5AaHj&si=IqYy8rwi4waaicqy
#Witchcraft #Magick #Spirituality #Occult #Occultism #Podcast #YouTube
-
No Injury to the Willing (ca. 1790) by Marcus Eugenius Bonacina, from Compendiolum de praeparatione auri potabilis veri.
Source: Beinecke Rare Book and Manuscript Library
https://pdimagearchive.org/images/577d8478-e396-433f-bb5b-d5ea7ebab92b
#chemistry #nudes #occultism #alchemy #serpents #shields #owls #art #publicdomain
-
Lich Silvae
online, Friday, March 6 at 08:00 PM UTC
Good day all! Upcoming episode of Fireside Fedi!
The #livestream will be on: https://stream.firesidefedi.live
Special Guest: @[email protected]
Passionate about Ethnomusicology, Occultism, Nature, Cooking, and Social Welfare. Topics commonly include subjects not suitable for people under 18. Minors do not follow.
So don't miss it!
It will happen on 06 March 2026 at 15:00 US Eastern Time ( UTC-5 )
If by any ungodly chance you miss the show:
#PeerTube ( #VOD ): https://tubefree.org/@firesidefedi
#firesidefedi #fediverse #fedi #interview #freesoftware #opensource #userfreedom #freedom #resistance
-
Lich Silvae
online, Friday, March 6 at 08:00 PM UTC
Good day all! Upcoming episode of Fireside Fedi!
The #livestream will be on: https://stream.firesidefedi.live
Special Guest: @[email protected]
Passionate about Ethnomusicology, Occultism, Nature, Cooking, and Social Welfare. Topics commonly include subjects not suitable for people under 18. Minors do not follow.
So don't miss it!
It will happen on 06 March 2026 at 15:00 US Eastern Time ( UTC-5 )
If by any ungodly chance you miss the show:
#PeerTube ( #VOD ): https://tubefree.org/@firesidefedi
#firesidefedi #fediverse #fedi #interview #freesoftware #opensource #userfreedom #freedom #resistance
-
@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.
-
@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.
-
@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.
-
@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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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!
-
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!
-
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!
-
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.
-
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.
-
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.
-
I am Not Migrating Back To IRC
So, with this whole Discord surveillance age verification situation, I am seeing lots of talk on every social media platform, including Discord ironically, about moving back to IRC. I am not going back to IRC. Though, I do not really have a valid interest in it, because I use Discord just to monitor occult cults and extremist groups, lol. So, it is not like I would be really displaced, anyway. I would just need to figure out a new exploit or hack.
I’m a Computational Biologist, so I am half in Biology and half in software engineering. I tend to look at technology and evolution as analogous to one another. Software, dynamical systems, and evolution are analogous. Evolution functions like a survivorship process. Lineages that leave more descendants become more represented over time where drift, mutation, recombination, and migration all perturb the system. It’s a stochastic dynamical system.
Speciation is a change under isolation. Once gene flow is cut off, divergence accumulates. Eventually, compatibility breaks, creating a divergence. A fork. You can think of it in a version control system like this: you stop merging upstream commits. You accumulate independent changes, and at some point the codebases are no longer interchangeable.
With evolution, even when traits resemble ancestral forms, they arise through new mutations in the current system. It’s a forward, not backward, branch. So from an evolutionary and software engineering perspective, progress happens by forking and optimizing what exists. That means you will not get progress by trying to migrate everyone back to legacy infrastructure.
I’m not migrating to IRC because it is not progress or evolution. It is technologically regressive. Regressive attitudes are why we are essentially in a weird, industrial, cyberpunk version of the 1930s right now. Hoping old-school forums make a comeback and that everyone migrates back to IRC is a technological and societal regression. It’s the same nostalgia-driven impulse that MAGA rides on. It’s not evolutionary or progressive. It’s regressive and backward. So that triggers all the alarm bells in my head, because this is sort of how we got here. Donald Trump rode in on a regressive platform of nostalgia and populism. Roughly 10–12% of Bernie Sanders supporters in 2016 voted for Donald Trump under that wave.
Trump’s 2016 rise was driven significantly by populist themes such as critiques of establishment politics, nationalism, economic resentment, and appeals to voters dissatisfied with the status quo in both parties. Anyone paying attention in 2026 should see the cycle repeating itself. This weird form of technological regression is a techno-populist version of it. America never learns is lesson, does it?
Currently, I am on Matrix, albeit I use it more or less for bridge and puppeteer bot purposes. To me, it’s like going back to using muskets when everyone else is using AK-47s. The solution is not to make more regressive pieces of technology. They are least effective when you are essentially in a guerrilla, stochastic war with your own fascist government.
-
I am Not Migrating Back To IRC
So, with this whole Discord surveillance age verification situation, I am seeing lots of talk on every social media platform, including Discord ironically, about moving back to IRC. I am not going back to IRC. Though, I do not really have a valid interest in it, because I use Discord just to monitor occult cults and extremist groups, lol. So, it is not like I would be really displaced, anyway. I would just need to figure out a new exploit or hack.
I’m a Computational Biologist, so I am half in Biology and half in software engineering. I tend to look at technology and evolution as analogous to one another. Software, dynamical systems, and evolution are analogous. Evolution functions like a survivorship process. Lineages that leave more descendants become more represented over time where drift, mutation, recombination, and migration all perturb the system. It’s a stochastic dynamical system.
Speciation is a change under isolation. Once gene flow is cut off, divergence accumulates. Eventually, compatibility breaks, creating a divergence. A fork. You can think of it in a version control system like this: you stop merging upstream commits. You accumulate independent changes, and at some point the codebases are no longer interchangeable.
With evolution, even when traits resemble ancestral forms, they arise through new mutations in the current system. It’s a forward, not backward, branch. So from an evolutionary and software engineering perspective, progress happens by forking and optimizing what exists. That means you will not get progress by trying to migrate everyone back to legacy infrastructure.
I’m not migrating to IRC because it is not progress or evolution. It is technologically regressive. Regressive attitudes are why we are essentially in a weird, industrial, cyberpunk version of the 1930s right now. Hoping old-school forums make a comeback and that everyone migrates back to IRC is a technological and societal regression. It’s the same nostalgia-driven impulse that MAGA rides on. It’s not evolutionary or progressive. It’s regressive and backward. So that triggers all the alarm bells in my head, because this is sort of how we got here. Donald Trump rode in on a regressive platform of nostalgia and populism. Roughly 10–12% of Bernie Sanders supporters in 2016 voted for Donald Trump under that wave.
Trump’s 2016 rise was driven significantly by populist themes such as critiques of establishment politics, nationalism, economic resentment, and appeals to voters dissatisfied with the status quo in both parties. Anyone paying attention in 2026 should see the cycle repeating itself. This weird form of technological regression is a techno-populist version of it. America never learns is lesson, does it?
Currently, I am on Matrix, albeit I use it more or less for bridge and puppeteer bot purposes. To me, it’s like going back to using muskets when everyone else is using AK-47s. The solution is not to make more regressive pieces of technology. They are least effective when you are essentially in a guerrilla, stochastic war with your own fascist government.
-
I am Not Migrating Back To IRC
So, with this whole Discord surveillance age verification situation, I am seeing lots of talk on every social media platform, including Discord ironically, about moving back to IRC. I am not going back to IRC. Though, I do not really have a valid interest in it, because I use Discord just to monitor occult cults and extremist groups, lol. So, it is not like I would be really displaced, anyway. I would just need to figure out a new exploit or hack.
I’m a Computational Biologist, so I am half in Biology and half in software engineering. I tend to look at technology and evolution as analogous to one another. Software, dynamical systems, and evolution are analogous. Evolution functions like a survivorship process. Lineages that leave more descendants become more represented over time where drift, mutation, recombination, and migration all perturb the system. It’s a stochastic dynamical system.
Speciation is a change under isolation. Once gene flow is cut off, divergence accumulates. Eventually, compatibility breaks, creating a divergence. A fork. You can think of it in a version control system like this: you stop merging upstream commits. You accumulate independent changes, and at some point the codebases are no longer interchangeable.
With evolution, even when traits resemble ancestral forms, they arise through new mutations in the current system. It’s a forward, not backward, branch. So from an evolutionary and software engineering perspective, progress happens by forking and optimizing what exists. That means you will not get progress by trying to migrate everyone back to legacy infrastructure.
I’m not migrating to IRC because it is not progress or evolution. It is technologically regressive. Regressive attitudes are why we are essentially in a weird, industrial, cyberpunk version of the 1930s right now. Hoping old-school forums make a comeback and that everyone migrates back to IRC is a technological and societal regression. It’s the same nostalgia-driven impulse that MAGA rides on. It’s not evolutionary or progressive. It’s regressive and backward. So that triggers all the alarm bells in my head, because this is sort of how we got here. Donald Trump rode in on a regressive platform of nostalgia and populism. Roughly 10–12% of Bernie Sanders supporters in 2016 voted for Donald Trump under that wave.
Trump’s 2016 rise was driven significantly by populist themes such as critiques of establishment politics, nationalism, economic resentment, and appeals to voters dissatisfied with the status quo in both parties. Anyone paying attention in 2026 should see the cycle repeating itself. This weird form of technological regression is a techno-populist version of it. America never learns is lesson, does it?
Currently, I am on Matrix, albeit I use it more or less for bridge and puppeteer bot purposes. To me, it’s like going back to using muskets when everyone else is using AK-47s. The solution is not to make more regressive pieces of technology. They are least effective when you are essentially in a guerrilla, stochastic war with your own fascist government.
-
From Kitāb-i ʻAjāʾib-i makhlūqāt (1921).
Source: Princeton University Library
https://pdimagearchive.org/images/e3f01737-592b-421a-ac2f-4a89539af2b4
#astrology #persia #iran #devils #ghosts #demons #occultism #magic #art #publicdomain
-
BlueSky’s Solution To Moderating Is Moderating Without Moderating via Social Proximity
I have noticed a lot of people are confused about why some posts don’t show up on threads, though they are not labeled by the moderation layer. Bluesky has begun using what it calls social neighborhoods (or network proximity) as a ranking signal for replies in threads. Replies from people who are closer to you in the social graph, accounts you follow, interact with, or share mutual connections with, are prioritized and shown more prominently. Replies from accounts that are farther away in that network are down-ranked. They are pushed far down the thread or placed behind “hidden replies.”
Each person gets their own unique view of a thread based on their social graph. It creates the impression that replies from distant users simply don’t exist. This is true even though they’re still technically public and viewable if you expand the thread or adjust filters. Bluesky is explicitly using features of subgraphs to moderate without moderating. Their reasoning is that if you can’t see each other, you can’t harass each other. Ergo, there is nothing to moderate.
Bluesky mentions that here:
https://bsky.social/about/blog/10-31-2025-building-healthier-social-media-update
As a digression, I’m not going to lie: I really enjoyed working on software built on the AT protocol, but their fucking users are so goddamn weird. It’s sort of like enjoying building houses, but hating every single person who moves into them. But, you don’t have to deal with them because you’re just the contractor. That is how I feel about Bluesky. I hate the people. I really like the protocol and infrastructure.
I sort of am a sadist who does enjoy drama, so I do get schadenfreude from people with social media addictions and parasocial fixations who reply to random people on Bluesky, because they don’t realize their replies are disconnected from the author’s thread unless that person is within their network. They aren’t part of the conversation they think they are. They’re algorithmically isolated from everyone else. Their replies aren’t viewable from the author’s thread because of how Bluesky handles social neighborhoods.
Bluesky’s idea of social neighborhoods is about grouping users into overlapping clusters based on real interaction patterns rather than just the follow graph. Unlike Twitter, it does not treat the network as one big public square. Instead, it models networks of “social neighborhoods” made up of people you follow, people who follow you, people you frequently interact with, and people who are closely connected to those groups. They’re soft, probabilistic groupings rather than strict labels.
Everyone does not see the same replies. Bluesky is being a bit vague with “hidden.” Hidden means your reply is still anchored to the thread and can be expanded. There is another way Bluesky can handle this. Bluesky uses social neighborhoods to judge contextual relevance. Replies from people inside or near your social neighborhood are more likely to be shown inline with a thread, expanded by default, or served in feeds. Replies from outside your neighborhood are still public and still indexed, but they’re treated as lower-context contributions.
Basically, if you reply to a thread, you will see it anchored to the conversation, and everyone will see it in search results, as a hashtag, or from your profile, but it will not be accessible via the thread of the person you were replying to. It is like shadow-banning people from threads unless they are strongly networked.
Because people have not been working with the AT Protocol like I have, they assume they are shadow-banned across the entire Bluesky app view. No—everyone is automatically shadow-banned from everyone else unless they are within the same social neighborhood. In other words, you are not part of the conversation you think you are joining because you are not part of their social group.
Your replies will appear in profiles, hashtag feeds, or search results without being visually anchored to the full thread. Discovery impressions are neighborhood-agnostic: they serve content because it matches a query, tag, or activity stream. Once the reply is shown, the app then decides whether it’s worth pulling in the rest of the conversation for you. If the original author and most participants fall outside your neighborhood, Bluesky often chooses not to expand that context automatically.
Bluesky really is trying to avoid having to moderate, so this is their solution. Instead of banning or issuing takedown labels to DIDs, the system lets replies exist everywhere, but not in that particular instance of the thread.
I find this ironic because a large reason why many people are staying on Bluesky and not moving to the fediverse—thank God, because I do not want them there—is discoverability, virality, and engagement.
In case anyone is asking how I know so much about how these algorithms work: I was a consultant on a lot of these types of algorithms, so I certainly hope I’d know how they work, lol. No, you get no more details about the work I’ve done. I have no hand in the algorithm Bluesky is using, but I have proposed and implemented that type of algorithm before.
I have an interest in noetics and the noosphere. A large amount of my ontological work is an extension of my attempts to model domains that have no spatial or temporal coordinates. The question is how do you generalize a metric space that has no physically, spatial properties. I went to school to try to formalize those ideas. Turns out they’re rather useful for digital social networks, too. The ontological analog to spatial distance, when you have no space, is a graph of similarities.
This can be modeled by representing each item as a node in a weighted graph, where edges are weighted by dissimilarity rather than similarity. Highly similar items are connected by low-weight edges, while less similar items are connected by higher-weight edges. Distances in the graph, computed using standard shortest-path algorithms, then correspond to degrees of similarity. Closely related items are separated by short path lengths, while increasingly dissimilar items require longer paths through the graph. It turns out that attempts to generalize metric spaces for noetic domains—to model noetic/psychic spaces—are actually pretty useful for social media algorithms, lol.
-
BlueSky’s Solution To Moderating Is Moderating Without Moderating via Social Proximity
I have noticed a lot of people are confused about why some posts don’t show up on threads, though they are not labeled by the moderation layer. Bluesky has begun using what it calls social neighborhoods (or network proximity) as a ranking signal for replies in threads. Replies from people who are closer to you in the social graph, accounts you follow, interact with, or share mutual connections with, are prioritized and shown more prominently. Replies from accounts that are farther away in that network are down-ranked. They are pushed far down the thread or placed behind “hidden replies.”
Each person gets their own unique view of a thread based on their social graph. It creates the impression that replies from distant users simply don’t exist. This is true even though they’re still technically public and viewable if you expand the thread or adjust filters. Bluesky is explicitly using features of subgraphs to moderate without moderating. Their reasoning is that if you can’t see each other, you can’t harass each other. Ergo, there is nothing to moderate.
Bluesky mentions that here:
https://bsky.social/about/blog/10-31-2025-building-healthier-social-media-update
As a digression, I’m not going to lie: I really enjoyed working on software built on the AT protocol, but their fucking users are so goddamn weird. It’s sort of like enjoying building houses, but hating every single person who moves into them. But, you don’t have to deal with them because you’re just the contractor. That is how I feel about Bluesky. I hate the people. I really like the protocol and infrastructure.
I sort of am a sadist who does enjoy drama, so I do get schadenfreude from people with social media addictions and parasocial fixations who reply to random people on Bluesky, because they don’t realize their replies are disconnected from the author’s thread unless that person is within their network. They aren’t part of the conversation they think they are. They’re algorithmically isolated from everyone else. Their replies aren’t viewable from the author’s thread because of how Bluesky handles social neighborhoods.
Bluesky’s idea of social neighborhoods is about grouping users into overlapping clusters based on real interaction patterns rather than just the follow graph. Unlike Twitter, it does not treat the network as one big public square. Instead, it models networks of “social neighborhoods” made up of people you follow, people who follow you, people you frequently interact with, and people who are closely connected to those groups. They’re soft, probabilistic groupings rather than strict labels.
Everyone does not see the same replies. Bluesky is being a bit vague with “hidden.” Hidden means your reply is still anchored to the thread and can be expanded. There is another way Bluesky can handle this. Bluesky uses social neighborhoods to judge contextual relevance. Replies from people inside or near your social neighborhood are more likely to be shown inline with a thread, expanded by default, or served in feeds. Replies from outside your neighborhood are still public and still indexed, but they’re treated as lower-context contributions.
Basically, if you reply to a thread, you will see it anchored to the conversation, and everyone will see it in search results, as a hashtag, or from your profile, but it will not be accessible via the thread of the person you were replying to. It is like shadow-banning people from threads unless they are strongly networked.
Because people have not been working with the AT Protocol like I have, they assume they are shadow-banned across the entire Bluesky app view. No—everyone is automatically shadow-banned from everyone else unless they are within the same social neighborhood. In other words, you are not part of the conversation you think you are joining because you are not part of their social group.
Your replies will appear in profiles, hashtag feeds, or search results without being visually anchored to the full thread. Discovery impressions are neighborhood-agnostic: they serve content because it matches a query, tag, or activity stream. Once the reply is shown, the app then decides whether it’s worth pulling in the rest of the conversation for you. If the original author and most participants fall outside your neighborhood, Bluesky often chooses not to expand that context automatically.
Bluesky really is trying to avoid having to moderate, so this is their solution. Instead of banning or issuing takedown labels to DIDs, the system lets replies exist everywhere, but not in that particular instance of the thread.
I find this ironic because a large reason why many people are staying on Bluesky and not moving to the fediverse—thank God, because I do not want them there—is discoverability, virality, and engagement.
In case anyone is asking how I know so much about how these algorithms work: I was a consultant on a lot of these types of algorithms, so I certainly hope I’d know how they work, lol. No, you get no more details about the work I’ve done. I have no hand in the algorithm Bluesky is using, but I have proposed and implemented that type of algorithm before.
I have an interest in noetics and the noosphere. A large amount of my ontological work is an extension of my attempts to model domains that have no spatial or temporal coordinates. The question is how do you generalize a metric space that has no physically, spatial properties. I went to school to try to formalize those ideas. Turns out they’re rather useful for digital social networks, too. The ontological analog to spatial distance, when you have no space, is a graph of similarities.
-
BlueSky’s Solution To Moderating Is Moderating Without Moderating via Social Proximity
I have noticed a lot of people are confused about why some posts don’t show up on threads, though they are not labeled by the moderation layer. Bluesky has begun using what it calls social neighborhoods (or network proximity) as a ranking signal for replies in threads. Replies from people who are closer to you in the social graph, accounts you follow, interact with, or share mutual connections with, are prioritized and shown more prominently. Replies from accounts that are farther away in that network are down-ranked. They are pushed far down the thread or placed behind “hidden replies.”
Each person gets their own unique view of a thread based on their social graph. It creates the impression that replies from distant users simply don’t exist. This is true even though they’re still technically public and viewable if you expand the thread or adjust filters. Bluesky is explicitly using features of subgraphs to moderate without moderating. Their reasoning is that if you can’t see each other, you can’t harass each other. Ergo, there is nothing to moderate.
Bluesky mentions that here:
https://bsky.social/about/blog/10-31-2025-building-healthier-social-media-update
As a digression, I’m not going to lie: I really enjoyed working on software built on the AT protocol, but their fucking users are so goddamn weird. It’s sort of like enjoying building houses, but hating every single person who moves into them. But, you don’t have to deal with them because you’re just the contractor. That is how I feel about Bluesky. I hate the people. I really like the protocol and infrastructure.
I sort of am a sadist who does enjoy drama, so I do get schadenfreude from people with social media addictions and parasocial fixations who reply to random people on Bluesky, because they don’t realize their replies are disconnected from the author’s thread unless that person is within their network. They aren’t part of the conversation they think they are. They’re algorithmically isolated from everyone else. Their replies aren’t viewable from the author’s thread because of how Bluesky handles social neighborhoods.
Bluesky’s idea of social neighborhoods is about grouping users into overlapping clusters based on real interaction patterns rather than just the follow graph. Unlike Twitter, it does not treat the network as one big public square. Instead, it models networks of “social neighborhoods” made up of people you follow, people who follow you, people you frequently interact with, and people who are closely connected to those groups. They’re soft, probabilistic groupings rather than strict labels.
Everyone does not see the same replies. Bluesky is being a bit vague with “hidden.” Hidden means your reply is still anchored to the thread and can be expanded. There is another way Bluesky can handle this. Bluesky uses social neighborhoods to judge contextual relevance. Replies from people inside or near your social neighborhood are more likely to be shown inline with a thread, expanded by default, or served in feeds. Replies from outside your neighborhood are still public and still indexed, but they’re treated as lower-context contributions.
Basically, if you reply to a thread, you will see it anchored to the conversation, and everyone will see it in search results, as a hashtag, or from your profile, but it will not be accessible via the thread of the person you were replying to. It is like shadow-banning people from threads unless they are strongly networked.
Because people have not been working with the AT Protocol like I have, they assume they are shadow-banned across the entire Bluesky app view. No—everyone is automatically shadow-banned from everyone else unless they are within the same social neighborhood. In other words, you are not part of the conversation you think you are joining because you are not part of their social group.
Your replies will appear in profiles, hashtag feeds, or search results without being visually anchored to the full thread. Discovery impressions are neighborhood-agnostic: they serve content because it matches a query, tag, or activity stream. Once the reply is shown, the app then decides whether it’s worth pulling in the rest of the conversation for you. If the original author and most participants fall outside your neighborhood, Bluesky often chooses not to expand that context automatically.
Bluesky really is trying to avoid having to moderate, so this is their solution. Instead of banning or issuing takedown labels to DIDs, the system lets replies exist everywhere, but not in that particular instance of the thread.
I find this ironic because a large reason why many people are staying on Bluesky and not moving to the fediverse—thank God, because I do not want them there—is discoverability, virality, and engagement.
In case anyone is asking how I know so much about how these algorithms work: I was a consultant on a lot of these types of algorithms, so I certainly hope I’d know how they work, lol. No, you get no more details about the work I’ve done. I have no hand in the algorithm Bluesky is using, but I have proposed and implemented that type of algorithm before.
I have an interest in noetics and the noosphere. A large amount of my ontological work is an extension of my attempts to model domains that have no spatial or temporal coordinates. The question is how do you generalize a metric space that has no physically, spatial properties. I went to school to try to formalize those ideas. Turns out they’re rather useful for digital social networks, too. The ontological analog to spatial distance, when you have no space, is a graph of similarities.
This can be modeled by representing each item as a node in a weighted graph, where edges are weighted by dissimilarity rather than similarity. Highly similar items are connected by low-weight edges, while less similar items are connected by higher-weight edges. Distances in the graph, computed using standard shortest-path algorithms, then correspond to degrees of similarity. Closely related items are separated by short path lengths, while increasingly dissimilar items require longer paths through the graph. It turns out that attempts to generalize metric spaces for noetic domains—to model noetic/psychic spaces—are actually pretty useful for social media algorithms, lol.
-
BlueSky’s Solution To Moderating Is Moderating Without Moderating via Social Proximity
I have noticed a lot of people are confused about why some posts don’t show up on threads, though they are not labeled by the moderation layer. Bluesky has begun using what it calls social neighborhoods (or network proximity) as a ranking signal for replies in threads. Replies from people who are closer to you in the social graph, accounts you follow, interact with, or share mutual connections with, are prioritized and shown more prominently. Replies from accounts that are farther away in that network are down-ranked. They are pushed far down the thread or placed behind “hidden replies.”
Each person gets their own unique view of a thread based on their social graph. It creates the impression that replies from distant users simply don’t exist. This is true even though they’re still technically public and viewable if you expand the thread or adjust filters. Bluesky is explicitly using features of subgraphs to moderate without moderating. Their reasoning is that if you can’t see each other, you can’t harass each other. Ergo, there is nothing to moderate.
Bluesky mentions that here:
https://bsky.social/about/blog/10-31-2025-building-healthier-social-media-update
As a digression, I’m not going to lie: I really enjoyed working on software built on the AT protocol, but their fucking users are so goddamn weird. It’s sort of like enjoying building houses, but hating every single person who moves into them. But, you don’t have to deal with them because you’re just the contractor. That is how I feel about Bluesky. I hate the people. I really like the protocol and infrastructure.
I sort of am a sadist who does enjoy drama, so I do get schadenfreude from people with social media addictions and parasocial fixations who reply to random people on Bluesky, because they don’t realize their replies are disconnected from the author’s thread unless that person is within their network. They aren’t part of the conversation they think they are. They’re algorithmically isolated from everyone else. Their replies aren’t viewable from the author’s thread because of how Bluesky handles social neighborhoods.
Bluesky’s idea of social neighborhoods is about grouping users into overlapping clusters based on real interaction patterns rather than just the follow graph. Unlike Twitter, it does not treat the network as one big public square. Instead, it models networks of “social neighborhoods” made up of people you follow, people who follow you, people you frequently interact with, and people who are closely connected to those groups. They’re soft, probabilistic groupings rather than strict labels.
Everyone does not see the same replies. Bluesky is being a bit vague with “hidden.” Hidden means your reply is still anchored to the thread and can be expanded. There is another way Bluesky can handle this. Bluesky uses social neighborhoods to judge contextual relevance. Replies from people inside or near your social neighborhood are more likely to be shown inline with a thread, expanded by default, or served in feeds. Replies from outside your neighborhood are still public and still indexed, but they’re treated as lower-context contributions.
Basically, if you reply to a thread, you will see it anchored to the conversation, and everyone will see it in search results, as a hashtag, or from your profile, but it will not be accessible via the thread of the person you were replying to. It is like shadow-banning people from threads unless they are strongly networked.
Because people have not been working with the AT Protocol like I have, they assume they are shadow-banned across the entire Bluesky app view. No—everyone is automatically shadow-banned from everyone else unless they are within the same social neighborhood. In other words, you are not part of the conversation you think you are joining because you are not part of their social group.
Your replies will appear in profiles, hashtag feeds, or search results without being visually anchored to the full thread. Discovery impressions are neighborhood-agnostic: they serve content because it matches a query, tag, or activity stream. Once the reply is shown, the app then decides whether it’s worth pulling in the rest of the conversation for you. If the original author and most participants fall outside your neighborhood, Bluesky often chooses not to expand that context automatically.
Bluesky really is trying to avoid having to moderate, so this is their solution. Instead of banning or issuing takedown labels to DIDs, the system lets replies exist everywhere, but not in that particular instance of the thread.
I find this ironic because a large reason why many people are staying on Bluesky and not moving to the fediverse—thank God, because I do not want them there—is discoverability, virality, and engagement.
In case anyone is asking how I know so much about how these algorithms work: I was a consultant on a lot of these types of algorithms, so I certainly hope I’d know how they work, lol. No, you get no more details about the work I’ve done. I have no hand in the algorithm Bluesky is using, but I have proposed and implemented that type of algorithm before.
I have an interest in noetics and the noosphere. A large amount of my ontological work is an extension of my attempts to model domains that have no spatial or temporal coordinates. The question is how do you generalize a metric space that has no physically, spatial properties. I went to school to try to formalize those ideas. Turns out they’re rather useful for digital social networks, too. The ontological analog to spatial distance, when you have no space, is a graph of similarities.
This can be modeled by representing each item as a node in a weighted graph, where edges are weighted by dissimilarity rather than similarity. Highly similar items are connected by low-weight edges, while less similar items are connected by higher-weight edges. Distances in the graph, computed using standard shortest-path algorithms, then correspond to degrees of similarity. Closely related items are separated by short path lengths, while increasingly dissimilar items require longer paths through the graph. It turns out that attempts to generalize metric spaces for noetic domains—to model noetic/psychic spaces—are actually pretty useful for social media algorithms, lol.