npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

nodebb-plugin-tadbeero

v1.5.3

Published

A web-configured NodeBB staff queue for unresolved topics, assignment, frozen states, overdue highlighting, email reminders, statistics dashboards, Technasium form assignment, direct WordPress intake, and Technasium automated forum posting and email workf

Readme

NodeBB tadbeero

A NodeBB v4 plugin that provides a private staff queue for unresolved topics.

The plugin tracks newly opened topics and topics that receive replies, keeps unresolved topics in oldest-first order, supports plugin-only staff accounts, and lets staff assign, unassign, freeze, unfreeze, and resolve topics. It can also email assigned staff users when their assigned topics pass the configured overdue threshold. All runtime configuration is handled through the NodeBB Admin Control Panel.

Features

  • Tracks new topics automatically.
  • Tracks replies to open topics without changing the original unresolved queue position.
  • Shows oldest unresolved topics first.
  • Shows unresolved duration as days and hours, for example 3d 4h.
  • Removes topics from the queue when staff mark them as resolved.
  • Optionally reopens resolved topics when new replies are posted.
  • Plugin-only staff accounts, separate from NodeBB user accounts.
  • Staff email addresses collected and editable in ACP.
  • Admin-only staff account creation and management through ACP.
  • Staff assignment from the tracker page.
  • Staff assignment badge next to each assigned topic.
  • Staff colour badges using admin-configured hex colours.
  • Unassign button on assigned topic badges.
  • Frozen topic state with light blue background.
  • Overdue topic state with red background after the configured threshold, default 72 hours.
  • Email reminders to assigned staff for overdue topics that are not frozen.
  • Staff statistics dashboard at /tadbeero/stats.
  • Visual summaries for open, resolved, assigned, frozen, overdue, and age-bucketed topics.
  • Assignment totals per staff user, including already resolved topics.
  • Configurable reminder subject and body with placeholders.
  • Optional setting to require assignment before resolving.
  • No runtime dependency packages.

Compatibility

Designed for NodeBB v4.10.3.

"nbbpm": {
  "compatibility": "^4.10.3"
}

Web routes

Staff-facing routes

  • /tadbeero/login
  • /tadbeero
  • /tadbeero/stats

Admin route

  • /admin/plugins/tadbeero

Email reminders

Tadbeero sends email through NodeBB's own emailer. Configure SMTP or an emailer service in NodeBB first, then enable Tadbeero reminders in ACP → Plugins → tadbeero.

Reminder placeholders:

  • {topicTitle}
  • {topicUrl}
  • {staffName}
  • {staffUsername}
  • {duration}
  • {thresholdHours}
  • {lastActivity}
  • {assignedAt}

Frozen topics do not send overdue reminders and do not get the red overdue background. If enabled, a new reply automatically unfreezes a frozen topic.

Publishing to npm

Before publishing, edit these fields in package.json and plugin.json:

  • repository.url
  • bugs.url
  • homepage
  • plugin.json.url

Then publish:

npm login
npm publish --access public

If the package name nodebb-plugin-tadbeero is already taken on npm, choose a different name that still starts with nodebb-plugin-. The plugin.json id should match the npm package name.

Installing in NodeBB after publishing

  1. Log in to the NodeBB Admin Control Panel as an administrator.
  2. Go to Extend → Plugins.
  3. Search for nodebb-plugin-tadbeero.
  4. Install the plugin.
  5. Activate the plugin.
  6. Rebuild and restart NodeBB when prompted by the ACP.
  7. Reload the ACP.
  8. Open Plugins → tadbeero.

If the plugin has only just been published, it may take time before NodeBB Package Manager indexing makes it appear in the ACP plugin search. Until then, install it manually from the NodeBB installation directory:

npm install nodebb-plugin-tadbeero
./nodebb build
./nodebb restart

Configuring the plugin

Open:

/admin/plugins/tadbeero

Settings available in the web UI:

  • Enable tracker.
  • Tracker page title.
  • Reopen resolved topics when a new reply is posted.
  • Automatically unfreeze a frozen topic when a new reply is posted.
  • Allow topics to be unassigned.
  • Require assignment before resolving.
  • Staff session length in days.
  • Maximum topics shown.
  • Overdue threshold in hours, default 72.
  • Enable or disable reminder emails.
  • Reminder resend interval.
  • Reminder email subject.
  • Reminder email body.

Creating staff accounts

  1. Open ACP → Plugins → tadbeero.
  2. In Create staff user, enter:
    • Username
    • Display name
    • Email
    • Temporary password
    • Staff colour
  3. Click Create staff user.

Staff accounts are stored by the plugin and are separate from NodeBB accounts.

Staff usage

  1. Staff user opens /tadbeero/login.
  2. Staff user logs in with their plugin staff username and password.
  3. Staff user opens /tadbeero.
  4. Staff user can open /tadbeero/stats from the Statistics button to view queue statistics.
  5. Staff user sees unresolved topics, oldest unresolved first.
  6. Staff user assigns a topic using the dropdown.
  7. Assigned topics show a coloured badge next to the topic title.
  8. Staff user can click the × on the badge to unassign the topic.
  9. Staff user can click Freeze to mark a topic as waiting on the other user.
  10. Staff user can click Unfreeze when it should return to normal handling.
  11. Staff user clicks Mark resolved when done.

Statistics dashboard

Staff users can open /tadbeero/stats from the Statistics button on the overview page. The dashboard shows:

  • Total open topics.
  • Total resolved topics.
  • Assigned and unassigned open-topic counts.
  • Frozen and overdue open-topic counts.
  • Open-topic age buckets.
  • Assignment totals per staff user, including topics that have already been resolved.
  • Open, resolved, frozen, overdue, and resolved-by-user counts per staff user.
  • Oldest open topics with their current assignee and state.

The visualisations are rendered with HTML and CSS only. No external chart package is required.

Queue behaviour

  • New topics are added at the bottom of the unresolved queue.
  • Open topics keep their queue position when new replies are posted.
  • Old unresolved topics naturally move up as earlier topics are resolved.
  • Resolved topics leave the open queue.
  • If configured, a resolved topic that receives a new reply reopens at the bottom of the queue.
  • Frozen topics remain unresolved but are visually marked light blue.
  • Non-frozen topics older than the threshold are visually marked red.

Security notes

  • Staff passwords are hashed with Node.js built-in crypto.scrypt.
  • Staff accounts are plugin-only accounts.
  • Staff management requires a NodeBB admin session.
  • Staff tracker access requires a plugin staff session.
  • No staff passwords are stored in plain text.

Development notes

The plugin uses NodeBB hooks:

  • static:app.load
  • static:api.routes
  • filter:admin.header.build
  • action:topic.post
  • action:topic.reply

The plugin stores data with NodeBB's database abstraction and does not require external services or extra runtime dependencies.

Troubleshooting

If staff creation, settings saves, or reminder scans fail, copy the diagnostics box from ACP → Plugins → tadbeero. The ACP uses NodeBB socket actions as the primary path because some installations reject plugin HTTP POST routes with 403 Forbidden.

If reminder emails do not arrive:

  1. Confirm NodeBB can send normal test emails from its Email settings.
  2. Confirm the staff user has a valid email address.
  3. Confirm the topic is assigned, open, older than the threshold, and not frozen.
  4. Click Run reminder scan now in the Tadbeero diagnostics panel.
  5. Check NodeBB logs for lines starting with [tadbeero].

Version 1.5.3 additions

  • Adds a Resolved recently filter on /tadbeero.
  • Adds internal staff notes on tracked topics.
  • Adds staff password reset by email from the staff login screen.
  • Adds a password reset page at /tadbeero/reset-password/:token.
  • Adds time-to-resolution statistics and resolution duration buckets.
  • Adds weekly, monthly, and yearly activity overviews showing tracked posts and total messages.
  • Adds configurable password reset email subject/body and the resolved-recently window in the ACP.

Password reset email delivery uses NodeBB's configured email system. Staff users must have a valid email address saved in Tadbeero.

Technasium form overview

Tadbeero 1.3.0 includes /tadbeero/technasium, a compact overview for imported Technasium applications. It can parse the legacy Adbeer Technasium overview HTML or a JSON feed from the configured source URL. Staff can assign forms to Tadbeero staff users, unassign them, decline them, restore them, and expand each form to view contact, school, and project details.

Direct Technasium intake

Tadbeero can receive Technasium form submissions directly from WordPress through:

POST /tadbeero/intake/technasium

Use the bundled WordPress helper plugin in wordpress/tadbeero-technasium-connector.php to connect the Contact Form 7 Technasium form to Tadbeero. The endpoint uses a shared secret configured in the Tadbeero ACP.

Version 1.5.3 patch

This patch improves manual reminder email error reporting. If NodeBB cannot send an email, Tadbeero now returns a readable message instead of {} and points to the NodeBB email/SMTP/emailer configuration.

Version 1.5.3 addition

Administrators can remove Tadbeero staff users from the ACP staff list. Removal is a soft-delete for audit safety: the user is disabled, hidden from the staff list, removed from Tadbeero login/link maps, and any currently open topic or Technasium form assignment for that staff user is cleared. Historical topic metadata is preserved where possible.

Technasium automated forum posting

Version 1.5.3 adds direct forum topic creation from Technasium forms. Staff linked to a NodeBB forum account can review/edit the generated Dutch draft and click Plaats forumtopic. Tadbeero creates the topic through NodeBB as the logged-in forum user, stores the topic URL on the Technasium form, and lets staff edit the final Dutch email before sending it to the requester.