← All articles

We Outgrew bull-board, So I Built a BullMQ Dashboard for Teams

At Monest we run everything after the webhook on BullMQ. Messages come in, get queued, an agent drafts a reply, we send it. Today that is more than 100 million jobs a day.

At some point somebody said the obvious thing: we need to see these jobs.

bull-board: good, until the team grew

We installed bull-board. It was nice. It worked. It did exactly what it says.

The first problem showed up on day one: it had no login. Easy fix. We put it behind the VPN and added a user and a password in front of it.

Then the team grew, and the questions changed:

None of that was possible. One shared password means everyone is everyone.

Taskforce: alerts, and a UI that got in the way

So we moved to Taskforce, the dashboard from the BullMQ team. The alerts were genuinely useful. Day to day, though, the UI felt slow and clunky to the people who lived in it.

So I built the one I wanted

That is Bullpane.

Bullpane Overview: the queues breaking an alert rule are at the top, with the value, the window and the threshold

What it does:

Searching inside job payloads: 43 matches, whole state scanned

And for the team problems that started all this (Pro):

Audit log: every action with who, what, the result and the IP. A viewer's retry-all shows up as refused

Users and roles: admin, operator, viewer

The part I cared about most: not hurting Redis

A dashboard that slows down the workload it watches is worse than no dashboard. At 100M jobs a day, the dashboard is a guest in a very busy Redis. So:

The numbers and the hostile-load test are in the repo: STRESS-TEST.md.

Try it

git clone https://github.com/madmorett/bullpane && cd bullpane
docker compose up -d

Then add your Redis URL. Start with BULLPANE_READ_ONLY=true.

The core is free and MIT, with no account and no login. Pro (roles, audit, SSO, alerts, folders) is USD 39/month per installation, unlimited users.

It is what we run at Monest today. If you try it on your queues, tell me what broke: hello@bullpane.com or an issue on GitHub.

Read it on the planet →