I had a request from a co-worker to find a way to offer “anonymous Q&A” to our division’s employees. At first blush, Discourse seemed like the wrong tool for the job: anonymous posting seemed anathema to the whole point of fostering open, friendly, but lively discussions. Discourse does have built-in support for anonymous posting, but it’s a global setting. What we needed was a way to restrict anonymous posting to a single category (or a select subset of them). Even better, make anonymous posting automatic, so that users don’t have to think about it (and can’t get it wrong).
Thus was born discourse-anonymous-categories.
This plugin lets you choose individual categories for “always-anonymous” behavior, where all posts and replies automatically use the anonymous pseudonym for the user instead of their actual identity. The user doesn’t have to opt-in, and more importantly, doesn’t need to remember to opt-out when they are done posting.
Here’s what that looks like:
After the plugin is installed, turn on the global setting to enable “always-anonymous” categories:
Then, pick a category (or create a new one) for which you want “always-anonymous” behavior, and turn on the “Force posts to be anonymous in this cateory” setting:
Now, when anyone posts (note that current user is “E”):
They will actually get anonymized:
… like this (note that post is as “anonymous”/“A”):
This plays very nicely with recent versions of discourse-feature-voting, which can be used to anonymously vote on topics. (The votes themselves aren’t anonymous, but the identities of the voters are not currently surfaced through the UI, unlike “Likes”.)