Summary
Please consider adding a private "user tagger" feature.
This would fill one of the biggest remaining gaps for people who prefer the modern Reddit layout.
The basic idea is: when I see a Reddit username in posts, comments, or profile links, I would like to be able to assign a small private label/note to that user, then see that label again whenever I encounter the same username elsewhere on Reddit.
This same idea was part of Reddit Enhancement Suite's user tagger.
Problem / use case
We often encounter and interact with different users repeatedly over time. A private user tag helps keep some context about that up front.
For example:
- "Helpful on PHP questions"
- "Good-faith disagreement"
- "Previously hostile, avoid engaging"
- "Moderator"
- "Known expert on this topic"
- "Check prior conversation before replying"
- "Troll"
These aren't public labels. It would just be local/private to help users decide how to engage.
Suggested MVP
A minimal version could be:
- Detect Reddit usernames on supported pages (which you already can do thanks to the user blocker).
- Show a small tag/edit button near each username.
- Let the user save:
- a short visible tag label
- an optional longer note
- optionally a simple color/category
- Render the saved tag next to that username wherever it appears later.
- Let the user edit or delete the tag.
- Store the data locally through the extension.
The first version wouldn't need to cover every place where a username appears on Reddit. Just covering post authors and comment authors would cover the majority of the need.
Suggested UI behavior
When no tag exists:
- Show a small unobtrusive icon next to the username (maybe only on hover if there's too much visual clutter).
- Clicking it opens a small editor/modal.
When a tag exists:
- Show the tag text next to the username, for example:
username [helpful]
username [bad-faith]
username [PHP]
- Hovering the tag could show the longer note as a tooltip.
- Clicking the tag would reopen the editor.
The UI should probably make it clear that tags aren't visible to other Reddit users.
Data Structure ideas
A user data structure:
redditUserTags: {
"someusername": {
label: "helpful",
note: "Provided useful sources in r/example discussion",
color: "#optional",
createdAt: 1710000000000,
updatedAt: 1710000000000
}
}
Also, just a side note, to avoid duplicate records, usernames should probably be normalized before lookup:
- lower-case
- strip leading
u/
- strip URL parts including
/user/ or /u/
A template data structure:
You could also have reusable "tag templates" that would prefill a label, note, color, icon, or category (while still allowing the user to customize the actual saved tag). For example:
- "Helpful"
- "Expert"
- "Bad-faith"
- "Moderator"
- "Avoid engaging"
- "Previously discussed topic"
They could be structured like this:
redditUserTagTemplates: {
"helpful": {
id: "helpful",
label: "Helpful",
defaultNote: "This user has helped me out in some way.",
color: "#2e7d32",
category: "positive",
icon: "check",
createdAt: 1710000000000,
updatedAt: 1710000000000
},
"bad-faith": {
id: "bad-faith",
label: "Bad-faith",
defaultNote: "Evasive or hostile. Move on.",
color: "#c62828",
category: "caution",
icon: "warning",
createdAt: 1710000000000,
updatedAt: 1710000000000
},
"expert": {
id: "expert",
label: "Expert",
defaultNote: "This user knows their stuff.",
color: "#1565c0",
category: "context",
icon: "star",
createdAt: 1710000000000,
updatedAt: 1710000000000
}
}
If you use a template, I would just copy all the template data over to the user's record instead of just including a link to the referring template record, because then you get into consistency issues (e.g., what if somebody deletes a template that's in use by some user records, etc).
Other storage notes:
Because notes could grow large, storage.local would probably be safer than synced storage for the main tag database. Sync could be a later optional enhancement (you'd have to handle quota/size concerns though).
It would also be a good idea to have an Import/Export data option.
Suggested implementation:
Because Reddit's UI loads dynamically, it probably needs to work like other Reddit Enhancer features that scan existing content and then observe any added DOM nodes.
One approach:
- Add a new tweak module, maybe under something like:
src-webpack/src/common/content/tweaks/productivity/user_tagger.js
-
Add a loader call for the latest UI in tweak_loader.js.
-
Use a function like:
applyUserTags(root = document)
That function could:
- find user links or author elements under
root
- normalize the username
- skip elements already processed, using a class/data attribute or maybe a js
WeakSet
- inject a tag span/button next to the username
- attach event handling through delegation (I definitely wouldn't add individual element listeners because that could bloat)
- Use the existing observer code instead of creating an isolated observer.
The existing registerMutationCallback / observer manager pattern would probably work. It could observe a stable container such as shreddit-feed, the comments area, or document.body as a fallback, then process only added nodes.
- And just for the sake of performance, I wouldn't repeatedly scan the entire page on every mutation.
A rough pattern:
function applyUserTags(root = document) {
const candidates = root.querySelectorAll(
'a[href*="/user/"], a[href*="/u/"], shreddit-post[author], shreddit-comment[author]'
);
candidates.forEach(addTagUiIfNeeded);
}
The selector there is just an idea, because reddit keeps changing their markup. Maybe some author data could be better retrieved from attributes like author on shreddit-post or similar.
Pages/Data that would be impacted:
For the first version:
- feed pages
- post pages
- comment authors
- post authors
Future versions:
- profile pages
- hover cards
- inbox/notifications
- old Reddit support, if you really wanted to
- search/manage tags from the options page
- import/export JSON for backup or migration from RES
Acceptance criteria
A first implementation would be a success if:
- I can tag a user from a post or comment.
- The tag appears next to that same username elsewhere on dynamically loaded pages.
- I can edit and delete existing tags.
- It can be disabled in Reddit Enhancer settings.
- It doesn't send data anywhere external.
Why should you bother?
Honestly, this is one of the most useful missing features for people who moved away from old Reddit but still relied on RES for user interaction. It helps users to maybe engage more thoughtfully, avoid obvious trolls, say hi to friends, etc. For me, it's just useful to remember positive stuff from previous conversations.
Thanks for considering, and thanks for all your work on a solid Reddit extension.
Summary
Please consider adding a private "user tagger" feature.
This would fill one of the biggest remaining gaps for people who prefer the modern Reddit layout.
The basic idea is: when I see a Reddit username in posts, comments, or profile links, I would like to be able to assign a small private label/note to that user, then see that label again whenever I encounter the same username elsewhere on Reddit.
This same idea was part of Reddit Enhancement Suite's user tagger.
Problem / use case
We often encounter and interact with different users repeatedly over time. A private user tag helps keep some context about that up front.
For example:
These aren't public labels. It would just be local/private to help users decide how to engage.
Suggested MVP
A minimal version could be:
The first version wouldn't need to cover every place where a username appears on Reddit. Just covering post authors and comment authors would cover the majority of the need.
Suggested UI behavior
When no tag exists:
When a tag exists:
username [helpful]username [bad-faith]username [PHP]The UI should probably make it clear that tags aren't visible to other Reddit users.
Data Structure ideas
A user data structure:
Also, just a side note, to avoid duplicate records, usernames should probably be normalized before lookup:
u//user/or/u/A template data structure:
You could also have reusable "tag templates" that would prefill a label, note, color, icon, or category (while still allowing the user to customize the actual saved tag). For example:
They could be structured like this:
If you use a template, I would just copy all the template data over to the user's record instead of just including a link to the referring template record, because then you get into consistency issues (e.g., what if somebody deletes a template that's in use by some user records, etc).
Other storage notes:
Because notes could grow large,
storage.localwould probably be safer than synced storage for the main tag database. Sync could be a later optional enhancement (you'd have to handle quota/size concerns though).It would also be a good idea to have an Import/Export data option.
Suggested implementation:
Because Reddit's UI loads dynamically, it probably needs to work like other Reddit Enhancer features that scan existing content and then observe any added DOM nodes.
One approach:
Add a loader call for the latest UI in
tweak_loader.js.Use a function like:
That function could:
rootWeakSetThe existing
registerMutationCallback/ observer manager pattern would probably work. It could observe a stable container such asshreddit-feed, the comments area, ordocument.bodyas a fallback, then process only added nodes.A rough pattern:
The selector there is just an idea, because reddit keeps changing their markup. Maybe some author data could be better retrieved from attributes like
authoronshreddit-postor similar.Pages/Data that would be impacted:
For the first version:
Future versions:
Acceptance criteria
A first implementation would be a success if:
Why should you bother?
Honestly, this is one of the most useful missing features for people who moved away from old Reddit but still relied on RES for user interaction. It helps users to maybe engage more thoughtfully, avoid obvious trolls, say hi to friends, etc. For me, it's just useful to remember positive stuff from previous conversations.
Thanks for considering, and thanks for all your work on a solid Reddit extension.