nodeBB version: v4.5.0
Hi everyone.
As you know, ActivityPub's 'All Known Topics' comes from /recent?cid=-1 and I wanted to make that accessible as either a category or a sub-category.
So I added a "Remote Category", with the Category ID of -1 for the aforementioned. Bad idea!
The category was added fine, it shows up as 'Uncategorized', but I can't move up or down the Category list, place it as a sub-forum of another category, or even make any changes to the category (changing icon, topics per page)
If I try to change the 'Set Order' to 99, it throws up an error
Error
Category does not exist
Which I understand because of the Category ID of -1
So I decided to 'Purge category' - Thinking that the 'Remote Category' acted like a symlink in Linux.
It didn't delete the category itself, but it did delete any topics that were from the Fediverse (that's fine)
But it did remove all Privileges from the category.
Disabling the category doesn't remove the category from the Categories list either (Which I suspect is because of the error above)
But now I am stuck with this category.
I was able to remove 'View' privileges from the category for non-admin users, but I can still see it.
Now, my issue is that I can't move it or hide it myself.
Is anyone able to help on how to fix this?
I did find I was able to add a directory link in the 'Navigation' bar, which works perfectly, and non-admin users can still view the topics via the Navigation.
Thanks in advance
[Plugin] Global Chat Search - Search across all your conversations
Standard NodeBB chat search is great for searching within a specific room, but what if you need to find that one message and you can't remember which chat it was in?
NodeBB Chat Search adds a global search bar to your chat sidebar, allowing you to search through every conversation you've ever been a part of.
Features
Global Context: Searches across all room IDs associated with your UID.
Performance Focused: Fetches messages in batches of 50 to ensure the server remains responsive during deep searches.
Sticky UI: Your search query and results persist even when you navigate between different chat rooms.
Smart Navigation: Clicking a result takes you directly to that message and highlights it with a smooth scroll and background transition.
Rich Previews: Displays room names, sender avatars, and timestamps using the native NodeBB look and feel.
Technical Details
Hooks Used: static:app.load for server initialization and filter:scripts.client for injecting the search interface.
DOM Management: Uses a MutationObserver to ensure the search bar is injected correctly regardless of how the chat page is loaded.
State Management: Implements window.chatSearchState to prevent losing search results during Ajaxify transitions.
Compatibility: Built for NodeBB ^3.0.0.
Installation
npm install nodebb-plugin-chat-search
Install the plugin via the terminal.
Activate it in the Administrator Control Panel (ACP).
Rebuild and Restart your NodeBB instance.
Links
GitHub: https://github.com/palmoni5/nodebb-plugin-chat-search
Issues: Report a bug
Feel free to leave feedback or feature requests below!
I use computers that only have USB-C ports and then others than only have USB-A ports. It makes it rather difficult to use a single YubiKey and access from either desktop.
My suggestion/request is to allow more than one hardware key for an account. The other main scripts I use allow this (Xenforo and Discourse).
I've received notification that the Google Tenor API will be sunset 30 June 2026.
As of today, new API keys for the Tenor API will no longer be allowed (great, lots of notice Google thanks!)
As of 30 June the API will stop working.
Accordingly this means the tenor gif plugin will no longer work after 30 June 2026.
This is one of my plugins, and is used here, although not by many people.
https://github.com/julianlam/nodebb-plugin-tenor-gif
If you use this plugin and wish to see it updated, let me know and I will look into alternatives... if the API is being sunset, then it will likely be a new GIF service.
[Plugin] Super Admin Chat Control - Monitor and Manage All Conversations
Hi everyone,
I've developed a new plugin called Super Admin Chat Control. This plugin is designed for forum administrators who need deeper oversight into the messaging system for moderation purposes.
It allows administrators to view, manage, and interact with any chat room on the forum, even if they aren't a participant.
Key Features:
Global Access: View any private or group conversation directly.
Moderation Power: Administrators can edit or delete any message within the chat system.
Quick Audit: Adds a "View Chats" link to the user profile menu for admins.
Smart Presence: Admins can view room history without being permanently added as members, keeping room statistics accurate.
Bilingual UI: Full support for English and Hebrew interfaces.
How it works:
The plugin hooks into NodeBB's messaging system to elevate admin permissions. It overrides core functions like Messaging.canEdit, Messaging.canDelete, and Messaging.canViewMessage to ensure administrators have the necessary access for effective moderation.
Technical Details:
Compatibility: NodeBB ^3.0.0 or ^4.0.0.
Hooks used: filter:messaging.isRoomOwner, filter:messaging.canReply, filter:messaging.loadRoom, and more.
Installation:
Install the plugin via your terminal:
npm install nodebb-plugin-admin-chats
Activate the plugin in the NodeBB Admin Control Panel (ACP).
Restart NodeBB.
Repo & Issues:
You can find the source code here: https://github.com/palmoni5/nodebb-plugin-admin-chats
Feel free to leave feedback or report issues on GitHub!
This NodeBB plugin uses the Google Static Map API to convert the location string of a user to a map on the users profile page. Just enter a valid location string.
Installation
npm install nodebb-plugin-location-to-map
Get an API key from https://console.cloud.google.com/ and enable Maps Static API.
Put your API key in the admin page of this plugin and save.
Screenshot
[image: maps.gif]
More info
https://github.com/barisusakli/nodebb-plugin-location-to-map
This is a general query to the base of experience that frequents the community forum, that might also be of benefit to others.
How do you handle multi-domain email operations?
I was wondering if anyone had any tips or tricks for handling multi-site email demands, functional and operational handling, where it mainly info@ contact@ we're not talking running many if any user inboxes, general form collection and things like that, a structured way that is clean, streamlined and cost efficient that scales nicely.
Maybe some run their own email server.
Me, well my exp. says use maligun (or similar) as best option. Though I haven't deployed that for more than one instance.
I was wondering if a CRM might actually work too, but I'm not sure how they would manage multi-domain, maybe it would need to be setup in a chain of delivery, like: mailgun > universal inbox > CRM
@Julian @baris What the story with email > nodeBB - that appears as a post?
That's essentially CRM functionality. Maybe there is a plugin?
Hi.
After almost two years, I'm returning to developing a plugin for RPG sessions. Now I have to do it because the forum finally migrated from vBulletin to NodeBB, and there was a plugin like this...
Getting to the point, I'll first outline my use case.
I'm creating an "RPG Session" object in the database that has several topics pinned to it. Underneath, each topic is in a subcategory corresponding to its genre (gameplay, commentary, session materials). The main category is empty.
I want to have a separate thread view in the main category view for my own control - there will be RPG sessions in the list whose links will take me to the separate RPG view. The separate RPG view isn't that big of a deal since it's a new route and I'm simply basing it on the category view. Everything's fine.
I'm wondering what the best way to create this protected view (only for some users) of the category view is. I see two options: either overwrite the entire tpl based on what NodeBB provides, or replace the jQuery stuff on the front-end.
The first option seems more efficient but creates maintenance issues; every NodeBB release, I'd have to merge the tpl with the new one (as I'd be basing it on that). Regardless, I'm leaning towards the first option.
If anyone sees another, better solution that I'm missing, I'd appreciate your feedback.
Hi.
Default setting for max characters in post are 32767. It is max signed 16-bits number. That's why I felt concerned. Can I safely increase this value (I wanted to increase it twice) without risking errors or any performance issues? The default value suggests too much about some internal implementation details.
I’m trying to customize the look of my NodeBB forum and want to make sure I follow best practices. I’d like to adjust colors, fonts, and the header layout without breaking future updates. Do you usually work with child themes, custom CSS, or modify the default theme directly? Any tips on keeping changes maintainable after updates would be really helpful.
Copyright © 2026 NodeBB | Contributors


