# Always-Anonymous Categories Plugin

**URL:** https://meta.discourse.org/t/always-anonymous-categories-plugin/41110
**Category:** Plugin
**Tags:** anonymous-mode
**Created:** [March 15, 2016, 10:35pm UTC](https://meta.discourse.org/t/always-anonymous-categories-plugin/41110 "2016-03-15T22:35:59Z")
**Posts on this page:** 20
**Page:** 3

<div class="post-metadata">

### Author: ![MihirR](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mihirr/32/475158_2.png) [@MihirR](https://meta.discourse.org/u/MihirR)
#### Post date: [December 29, 2024, 11:50am UTC](https://meta.discourse.org/t/always-anonymous-categories-plugin/41110/43 "2024-12-29T11:50:14Z")

</div>

I personally find that to be a feature, even though it is not intended to be one, as there is a reason it’s anonymous category. But yeah, maybe it happens because there isn’t a track maintained for the post. I’m honestly not sure, but this could be the reason.

---

<div class="post-metadata">

### Author: ![MihirR](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mihirr/32/475158_2.png) [@MihirR](https://meta.discourse.org/u/MihirR)
#### Post date: [December 29, 2024, 12:48pm UTC](https://meta.discourse.org/t/always-anonymous-categories-plugin/41110/44 "2024-12-29T12:48:06Z")

</div>

> [@michaeld](#):
>
> anonymous account

Great, this works perfectly fine. Was wondering does all the @anon created accounts get dumped after while or it remains there in the database?

---

<div class="post-metadata">

### Author: ![nathank](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/nathank/32/290039_2.png) [@nathank](https://meta.discourse.org/u/nathank)
#### Post date: [December 30, 2024, 2:44am UTC](https://meta.discourse.org/t/always-anonymous-categories-plugin/41110/45 "2024-12-30T02:44:58Z")

</div>

I don’t think that they ever get dumped / scrubbed per se automatically. Just that new anon posts after x days from the last one by that user (controlled by a core site setting) create a new anon user.

It would of course be quite possible to do so manually.

---

<div class="post-metadata">

### Author: ![MihirR](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mihirr/32/475158_2.png) [@MihirR](https://meta.discourse.org/u/MihirR)
#### Post date: [December 30, 2024, 4:51am UTC](https://meta.discourse.org/t/always-anonymous-categories-plugin/41110/46 "2024-12-30T04:51:18Z")

</div>

Got you :))

Also, is there a way to hide that popup every time when someone posts?

---

<div class="post-metadata">

### Author: ![MihirR](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mihirr/32/475158_2.png) [@MihirR](https://meta.discourse.org/u/MihirR)
#### Post date: [December 30, 2024, 6:14am UTC](https://meta.discourse.org/t/always-anonymous-categories-plugin/41110/47 "2024-12-30T06:14:21Z")

</div>

Here’s a fix if someone needs it, you can form the repo and in the plugin.rb file you can remove both `result.message` and `result.route_to`, so now there is no feedback mechanism to the user, and no dialog box or popup will be triggered.

This is how the piece of code would look like:

```plaintext
if result.success?
  result.post = post
  # Removed message and route_to to skip the dialog box
else
  user.flag_linked_posts_as_spam if creator.spam?
end

```

---

<div class="post-metadata">

### Author: ![nathank](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/nathank/32/290039_2.png) [@nathank](https://meta.discourse.org/u/nathank)
#### Post date: [December 30, 2024, 8:02pm UTC](https://meta.discourse.org/t/always-anonymous-categories-plugin/41110/48 "2024-12-30T20:02:58Z")

</div>

> [@MihirR](#):
>
> Also, is there a way to hide that popup every time when someone posts?

I’ve added this CSS to a Theme Component to achieve that (and hide their presence):

```plaintext
// Tweaks to the Anon category
body.category-general-hnz-anon {
    div.presence-users, div.row div.post-notice.new-user {
        display: none;
    }
}

```

The bit after `category-` is the slug of the category you are targetting.

---

<div class="post-metadata">

### Author: ![MoRanYue](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/moranyue/32/523065_2.png) [@MoRanYue](https://meta.discourse.org/u/MoRanYue)
#### Post date: [October 8, 2025, 1:40pm UTC](https://meta.discourse.org/t/always-anonymous-categories-plugin/41110/49 "2025-10-08T13:40:50Z")

</div>

I found an alternative way to implement similar functions of this plugin but without it: just adding a group called `anon` (whatever you want) to include all anonymous users. Of course you do not need adding all accounts one by one, all of anonymouses’ email are `anon.your.site`, so setting an automatic adding, then specify your security of a category to only allow `anon` group to view, create topics and post.

---

<div class="post-metadata">

### Author: ![nathank](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/nathank/32/290039_2.png) [@nathank](https://meta.discourse.org/u/nathank)
#### Post date: [October 9, 2025, 3:26pm UTC](https://meta.discourse.org/t/always-anonymous-categories-plugin/41110/50 "2025-10-09T15:26:03Z")

</div>

Clever, but this misses the key functionality of this plugin:

> [@michaeld](#):
>
> 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).

While straightforward for savvy users, the flow of switching to an anonymous user, posting in the correct place, and switching back is a bridge too far for most!

---

<div class="post-metadata">

### Author: ![nathank](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/nathank/32/290039_2.png) [@nathank](https://meta.discourse.org/u/nathank)
#### Post date: [January 15, 2026, 9:28pm UTC](https://meta.discourse.org/t/always-anonymous-categories-plugin/41110/51 "2026-01-15T21:28:30Z")

</div>

When someone replies to the Always-Anonymous Category via email, they are not annonymised. As you can imagine, this causes a bit of an issue sometimes!

Should this topic be tagged #anonymization or perhaps #anonymous-mode? I’d find it easier to find if so.

---

<div class="post-metadata">

### Author: ![RGJ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rgj/32/523185_2.png) [@RGJ](https://meta.discourse.org/u/RGJ)
#### Post date: [January 15, 2026, 10:01pm UTC](https://meta.discourse.org/t/always-anonymous-categories-plugin/41110/53 "2026-01-15T22:01:21Z")

</div>

> [@nathank](#):
>
> Should this topic be tagged #anonymization or perhaps #anonymous-mode?

The latter. I have now done that.

I see the plugin patches newPostHandler so I would expect it to intercept emails as well. We will have a look when we find some time.

---

<div class="post-metadata">

### Author: ![nathank](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/nathank/32/290039_2.png) [@nathank](https://meta.discourse.org/u/nathank)
#### Post date: [January 15, 2026, 10:13pm UTC](https://meta.discourse.org/t/always-anonymous-categories-plugin/41110/54 "2026-01-15T22:13:05Z")

</div>

> [@RGJ](#):
>
> I see the plugin patches newPostHandler so I would expect it to intercept emails as well. We will have a look when we find some time.

Ok - I’ll do some more testing and ensure it is reproducible to ensure you aren’t wasting your time!

---

<div class="post-metadata">

### Author: ![asc](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/asc/32/288324_2.png) [@asc](https://meta.discourse.org/u/asc)
#### Post date: [January 25, 2026, 5:18pm UTC](https://meta.discourse.org/t/always-anonymous-categories-plugin/41110/55 "2026-01-25T17:18:54Z")

</div>

Is there a way to override anon mode for mods/staff in the always anon categories? This doesn’t seem to allow mods to whisper post either. Not a big deal if not, just wondering if I’m missing something in settings.

---

<div class="post-metadata">

### Author: ![RGJ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rgj/32/523185_2.png) [@RGJ](https://meta.discourse.org/u/RGJ)
#### Post date: [January 26, 2026, 9:17am UTC](https://meta.discourse.org/t/always-anonymous-categories-plugin/41110/56 "2026-01-26T09:17:10Z")

</div>

That sounds fair.

I’ve added that feature now: whisper posts will never be anonymized.

---

<div class="post-metadata">

### Author: ![asc](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/asc/32/288324_2.png) [@asc](https://meta.discourse.org/u/asc)
#### Post date: [January 26, 2026, 12:19pm UTC](https://meta.discourse.org/t/always-anonymous-categories-plugin/41110/57 "2026-01-26T12:19:37Z")

</div>

Thank you for the quick response!

---

<div class="post-metadata">

### Author: ![asc](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/asc/32/288324_2.png) [@asc](https://meta.discourse.org/u/asc)
#### Post date: [January 29, 2026, 12:24am UTC](https://meta.discourse.org/t/always-anonymous-categories-plugin/41110/58 "2026-01-29T00:24:46Z")

</div>

What would be the best way to suppress the “Your post has been anonymized” dialog after posting? I tried hiding it with css but it uses the same id and classes as all other error dialogs, so it made some modding actions impossible and suppresses user feedback dialogs. I’m not sure how to write a theme component to grab the modal only for queued anon posts or if this would need to be a modification to the plugin.

---

<div class="post-metadata">

### Author: ![RGJ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rgj/32/523185_2.png) [@RGJ](https://meta.discourse.org/u/RGJ)
#### Post date: [January 29, 2026, 5:18am UTC](https://meta.discourse.org/t/always-anonymous-categories-plugin/41110/59 "2026-01-29T05:18:56Z")

</div>

And why do you want to hide it?

---

<div class="post-metadata">

### Author: ![asc](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/asc/32/288324_2.png) [@asc](https://meta.discourse.org/u/asc)
#### Post date: [January 29, 2026, 1:05pm UTC](https://meta.discourse.org/t/always-anonymous-categories-plugin/41110/60 "2026-01-29T13:05:08Z")

</div>

Because it’s annoying and it causes friction in the posting process. We’re setting up an always anon category where the expectation is that people will have more extended discussions like they do in categories with usernames, and the popup notification makes it annoying to post anon more than a few times.

Maybe having the popup once on the first post would be fine, but the composer says anonymous, the anonymous comment is shown right after posting, and our category specifically has announcements all over that all topics/posts are anonymous.

I can write a theme component myself to add a div class and hide the popup, I was just hoping for some guidance on where to start since I haven’t done it with a dialog modal before.

---

<div class="post-metadata">

### Author: ![RGJ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rgj/32/523185_2.png) [@RGJ](https://meta.discourse.org/u/RGJ)
#### Post date: [January 29, 2026, 1:19pm UTC](https://meta.discourse.org/t/always-anonymous-categories-plugin/41110/61 "2026-01-29T13:19:53Z")

</div>

I think it’s not easy to suppress it using a theme component.  
There is a [single line in the plugin](https://github.com/communiteq/discourse-anonymous-categories/blob/master/plugin.rb#L99) that adds the message, if you remove that line then the message will be gone. If you’re willing to wait a few days then I will add this as a setting.

---

<div class="post-metadata">

### Author: ![asc](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/asc/32/288324_2.png) [@asc](https://meta.discourse.org/u/asc)
#### Post date: [January 29, 2026, 1:26pm UTC](https://meta.discourse.org/t/always-anonymous-categories-plugin/41110/62 "2026-01-29T13:26:05Z")

</div>

Thanks very much, I’d appreciate it. It’s not a rush at all.

---

<div class="post-metadata">

### Author: ![asc](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/asc/32/288324_2.png) [@asc](https://meta.discourse.org/u/asc)
#### Post date: [January 30, 2026, 11:03pm UTC](https://meta.discourse.org/t/always-anonymous-categories-plugin/41110/63 "2026-01-30T23:03:52Z")

</div>

Sorry to keep bothering about this but I thought you might like to know @RGJ : posts made in an always anonymous category appear to bypass the watched words “require approval” list. Other posts with watched words in the censored, flag, replace, tag, and silence lists get caught, but anything on the require approval list is allowed through.

[Previous page](https://meta.discourse.org/t/always-anonymous-categories-plugin/41110.md?page=2)

[Next page](https://meta.discourse.org/t/always-anonymous-categories-plugin/41110.md?page=4)
