Justoverclock thanks, it's something I wanted to work on for some time, I'm glad someone reached out to sponsor its creation.
If anyone's interested in a bit of trivia, this extension might sound similar to the other Guest posting extension which I helped create, but there's almost no overlap in the features between the 2 (and it's 2 entirely different codebases).
This extension just hides the identity of existing users, while still adhering to all Flarum moderation features, like account activation, group permissions and suspension. The completely guest posting extension cannot do that since the posts aren't tied to actual Flarum users.
Being connected to real user accounts make it possible to have editable posts, as well as a way to find/recognize your own anonymous posts easily even though other users can't know they are from you.
Both extension have similar issues with Flarum around posts that don't have an author at creation time. Flarum doesn't like when that happens, hopefully this will be improved in future Flarum release to make sure no errors and no warnings are outputted when an extension removes the post author prior to publishing.
Flarum also struggles around the notification API because it's generally expected a notification will have a "sender" user, but in the case of anonymous posts, the "sender" has to be redacted to prevent leaking the real post author. Since the "sender" is saved in its own database column, that column is now empty and there's no way to create a dummy user that's dynamically defined by post attribute. Other places in the UI like the post stream and discussion list are able to render a dummy user because the post and its hidden metadata is accessible.
Also here are a few ideas that were not added to the extension but could be done as sponsored features if anyone is interested:
- An indicator on an anonymous post whether the anonymous author is also the anonymous discussion starter
- A unique color or icon or fake name for the same anonymous author inside a single discussion
- The ability for users to anonymize or de-anonymize their own posts based on a permission or time limit
- An anonymous user card that pulls more data out of Formulaire, FoF User Bio or registration/post stats. This information could also possibly be hidden from the real profiles so it's harder to guess who an anonymous profile belongs to
- Integration with more extensions / data types. Currently features like discussion fields or polls might leak the author since those features record the actor by themselves as well.