Dites, vous savez si, avec #Discourse, il existe une fonctionnalité "message apportant la réponse" ?
et est-ce qu'il est envisageable que cette qualification soit faite par un groupe limité (modérateurices) ?
#Tag
Dites, vous savez si, avec #Discourse, il existe une fonctionnalité "message apportant la réponse" ?
et est-ce qu'il est envisageable que cette qualification soit faite par un groupe limité (modérateurices) ?
Hey #mastodon !
With #discord doing its age verification thing, where are your communities migrating?
#matrix ? #discourse ? Anywhere else?
Hey #mastodon !
With #discord doing its age verification thing, where are your communities migrating?
#matrix ? #discourse ? Anywhere else?
Has anyone settled on a decent #Discord replacement?
#Zulip looks okay but I don't know that I'll be able to get anyone to join me there. Not sure about the mobile app...
Alternatively #Discourse is very expensive to have hosted. I don't mind paying some money, but $20/mo for the standard hosted plan is too much for me.
Has anyone settled on a decent #Discord replacement?
#Zulip looks okay but I don't know that I'll be able to get anyone to join me there. Not sure about the mobile app...
Alternatively #Discourse is very expensive to have hosted. I don't mind paying some money, but $20/mo for the standard hosted plan is too much for me.
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.
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.
I'm on a journey into hell and it keeps getting worse.
Follow me in the adventures of #DiscordAlternatives,
#Discord #DiscordSucks #Matrix #Stoat #Zulip #Discourse #OnlineChat
I'm on a journey into hell and it keeps getting worse.
Follow me in the adventures of #DiscordAlternatives,
#Discord #DiscordSucks #Matrix #Stoat #Zulip #Discourse #OnlineChat
These days I have seed and flavorful vegetables on my mind. I'm grateful to be part of an international community with that passion. One of the places on the internet I learn the most these days is a #Discourse #forum dedicated to that topic and I wish it could federate with Mastodon and similar networks, so the conversations could take place here too. Atm you need a 500$ business plan to integrate #ActivityPub plugin.
WRT #Discord, there's an effectively unsolvable conundrum we can't really face, folks. We'd all like the high moral standards that are found in the #OpenSource community, when done right: nobody screwing each other over for their PII, and other forms of leverage (walled-garden lock-in). Geeks get this, normies don't. (This gulf is very hard to cross, IMHO, without resorting to actual educational curriculum explaining it in schools.)
But then we have conflicting desires: we *also* want the buttery smoothness to a secure messaging ecosystem - total convenience, total functionality, *complete with a level-playing-field, "Net Neutral" infrastructure to run it on*, with no lobbied government or tech-bro interference skewing the traffic rules (QOS Rules). Good luck with that one, without strong gov't control, and solid grassroots lobbying behind it.
Lets be honest: #Signal is so great *because tens of millions of dollars were charitably spent on it*. Moxie didn't do his genius work *for free*. Where are tens of millions of *more* dollars going to come from, to make a Discord alternative? Would that be nowhere? Look, there's no quick and easy answers to Discord enshittifying. I've looked at #XMPP, #Matrix, #Deltachat, #Discourse, #Flarum, #PHPBB, #Zulip, #Mattermost, etc. and *each has its warts*. You'll dislike each of them, for different reasons. Each paints itself into a different corner. *There were no tens of millions of dollars upfront, at an early design phase, overlooked by qualified Computer Scientists, to prevent this, in each and every case.* #IRC doesn't bear mention in this comparison. None is the perfect replacement or answer. *None had those tens of millions of dollars which Signal had.*
Alas, they don't stand a chance to be the all-singing, all-dancing solutions that the techbros can finance, *along with their predictable, rotten lack of a moral compass to accompany the slickness.* Every non-geek teenager will side with the techbros, owing to 1) convenience, and 2) that's where their friends are, *which mean the world to a teenager*.
So in summary, we are doomed by our own psychological limitations, as a demographic. The psychological predators - the techbros - can't help but prey on the normies, and the normies can't help but turn to the predators, who at least offer convenience, if no other thing. And the geeks who have a moral compass stand in the middle, ignored by-and-large, feeling anxious and powerless, not having any tens of millions of dollars behind their altruism.
I hate Discord. The platform is proprietary, the U/X is just completely confusing and it's difficult to find anything.
If you run a project, I love @Discourse - it's open source, the U/X is great and you can archive everything in markdown (and much more).
https://github.com/discourse/discourse
and we run it for GCVE https://discourse.ossbase.org/c/gcve/14
I hate Discord. The platform is proprietary, the U/X is just completely confusing and it's difficult to find anything.
If you run a project, I love @Discourse - it's open source, the U/X is great and you can archive everything in markdown (and much more).
https://github.com/discourse/discourse
and we run it for GCVE https://discourse.ossbase.org/c/gcve/14
@dansup If you're seriously considering moving to that type of format, I've found @nodebb to be quite lightweight and easy to install and launch. I did have some initial federation issues but that ended up being my own fault.
@incentive @dansup #Discourse has a passable iOS client, though. There's #Tapatalk for #NodeBB (I believe), but I'm not sure you'll want that in this day and age.
Looking back at SWIB25, a small retrospective of #swib25 from the organizer's point of view: https://forum.swib.org/t/looking-back-at-swib25/1643
Amongst other things, the post outlines which #Discourse plugins we have used for the online conference and how much it was used by participants.
Looking back at SWIB25, a small retrospective of #swib25 from the organizer's point of view: https://forum.swib.org/t/looking-back-at-swib25/1643
Amongst other things, the post outlines which #Discourse plugins we have used for the online conference and how much it was used by participants.
🗺️ The Bitwarden roadmap has been updated, let us know what you think.
https://community.bitwarden.com/c/feature-requests/pm-feature-requests/55/l/latest?board=default
@bitwarden Ohh didn't know #Discourse supports roadmaps! 
Hi Mastodon,
Here is a bit about me if you want to follow:
I am a student of linguistics at #Bogazici University. I am interested in topics related to #linguistics #sociology, #sociolinguistics, & #discourse.