Workbench vs Bull Board
Bull Board has been the default BullMQ dashboard for years. Here's an honest, evidence-backed look at where Workbench fits, where Bull Board still wins, and how to migrate if you decide to switch.
If you're running BullMQ in production and you've typed "bullmq dashboard" into Google in the last two years, the first thing you found was Bull Board. It's a great open-source project and the default choice for a lot of teams. This post is for the moment you outgrow it — or start from scratch and want to know what else is out there.
We'll keep this honest. Bull Board is genuinely useful and the comparison below only highlights places Workbench solves a specific problem better. If your needs are exclusively in Bull Board's sweet spot — basic per-queue inspection inside an Express or Fastify app — there's nothing wrong with sticking with it.
The short version
- A native desktop app, not just an embeddable UI
Bull Board is a server-side dashboard you mount into your app. Workbench is both — embed it into your server (same one-liner), run the native macOS app pointed at your Redis URL with zero server changes, or deploy the standalone Docker image when you want a separate container.
- Wider framework coverage, with first-party adapters
Bull Board ships adapters for Express, Fastify, Hapi, and Koa. Workbench adds Hono, Elysia, NestJS, AdonisJS, Next.js, TanStack Start, Astro, Nuxt, Bun.serve, and h3 — thirteen officially-supported integrations, each with a smoke-tested example app.
- Built for production triage, not just queue inspection
Error grouping with 24h trend lines, FlowProducer DAGs, scheduler timelines, p50/p95 latency, and ⌘-click to jump from a failed job's stack trace into Cursor or VS Code. The UI is keyboard-driven end-to-end.
- One command to wire it up
`npx @getworkbench/cli init` detects your framework, installs the right adapter, and injects the mount — including the basic-auth boilerplate. Same install regardless of whether you're on Express or Nuxt.
Side-by-side
Every row below maps to behaviour you can verify against the public codebases. "Limited" means the capability exists in some form (plugin, manual config, third-party wrapper) but isn't a first-class feature.
| Feature | Workbench | Bull Board |
|---|---|---|
Native desktop app Local-first inspector you launch from Spotlight, no server changes. | Yes | No |
Drop-in dashboard for your server Mount the same UI inside your existing Node app. | Yes | Yes |
Officially supported frameworks | Hono, Elysia, Express, Fastify, NestJS, AdonisJS, Next.js, TanStack Start, Koa, Astro, Nuxt, Bun, h3 | Express, Fastify, Hapi, Koa (community Next.js wrappers) |
One-command install Auto-detects your framework and injects the mount for you. | npx @getworkbench/cli init | No |
FlowProducer DAG visualisation Parent / child flows rendered as a real graph, not a flat list. | Yes | Limited |
Live counters + p50 / p95 latency Per-queue throughput sparklines, updated as workers move jobs. | Yes | Limited |
Error triage grouped by class Failures clustered with 24h trend lines so you spot regressions fast. | Yes | No |
Enqueue jobs from the UI Schema-aware payload editor, ⌘↵ to dispatch. | Yes | Limited |
Open failed jobs in your editor Click a stack-trace line, jump to Cursor / VS Code. | Yes | No |
Keyboard-driven UI ⌘K palette, single-key actions, no menu hunting. | Yes | No |
Light + dark themes | Yes | Yes |
BullMQ Pro support | Yes | Yes |
Open source, MIT-licensed | Yes | Yes |
When Bull Board is the right call
Bull Board still wins for a handful of cases — being honest about that is what makes the rest of this comparison useful.
- Your app already runs Express or Fastify and you only need read-only queue inspection.
- You can't add a new dependency vendor and need a project with a long, well-known maintainer history.
- You already wrote tooling on top of Bull Board's API and a migration cost outweighs the upside.
When Workbench is the right call
- You're on a framework Bull Board doesn't ship a first-party adapter for — Hono, Elysia, NestJS, AdonisJS, Next.js, TanStack Start, Astro, Nuxt, Bun, or h3.
- You want a local-first inspector you can run on your laptop without touching the server — point it at any Redis URL, get the dashboard.
- Your team triages production failures regularly and you want grouped errors, trend lines, and stack traces that open in your editor.
- You use FlowProducer and need a real DAG, not a flat list.
- You want one install command for every framework instead of a different setup per project.
Migrating from Bull Board
The two dashboards mount the same way — a single line in your server bootstrap. Migration is normally a five-minute job:
- Remove @bull-board/* packages and the mount call.
- Run npx @getworkbench/cli init — it detects your framework and adds the right adapter.
- Pass the same Queue instances you were passing to Bull Board.
- If you were using basic auth in front of Bull Board, the CLI offers to wire the same thing for Workbench.
Frequently asked questions
- What is the best alternative to bull-board?
- Workbench is the modern open-source alternative to bull-board for BullMQ. It ships first-party adapters for thirteen Node.js frameworks (Hono, Elysia, Express, Fastify, NestJS, AdonisJS, Next.js, TanStack Start, Koa, Astro, Nuxt, Bun, and h3), a native macOS desktop app for local-first inspection, and a standalone Docker image (`ghcr.io/pontusab/workbench-standalone`) for container deployments. It also includes FlowProducer DAG visualisation, error triage grouped by exception class, and a scheduler timeline — features bull-board does not ship out of the box.
- Does Workbench work with the same BullMQ version as bull-board?
- Yes. Workbench reads from the same Redis your workers already use, so it works with any BullMQ version that ships modern Queue and FlowProducer APIs. There is no separate Redis instance, no migration step, and no schema change — the dashboard simply attaches to your existing queues.
- Is Workbench open source and free?
- Workbench is MIT-licensed and free. Both the desktop app and every @getworkbench/* framework adapter are open source on GitHub at github.com/pontusab/workbench. There is no paid tier, no telemetry, and no account required.
- Which frameworks does Workbench support?
- Workbench ships first-party adapters for Hono, Elysia, Express, Fastify, NestJS, AdonisJS, Next.js, TanStack Start, Koa, Astro, Nuxt, Bun (Bun.serve), and h3. Each adapter is published as @getworkbench/<framework> on npm and ships with a runnable example in the monorepo. bull-board officially supports Express, Fastify, Hapi, and Koa.
- How do I install Workbench in my existing Node.js app?
- Run `npx @getworkbench/cli init` from your project root. The CLI auto-detects your framework, installs the matching @getworkbench/* adapter, and injects the mount call into your server bootstrap. Visit `/jobs` after restarting and the dashboard renders with every Queue you passed in.
- How do I migrate from bull-board to Workbench?
- Remove the @bull-board/* packages and the existing mount call, then run `npx @getworkbench/cli init`. Pass the same Queue instances you previously passed to bull-board. If you had basic auth in front of bull-board, the CLI offers to wire equivalent auth for Workbench. Migration is normally a five-minute change.
- Does Workbench support FlowProducer and BullMQ Pro?
- Yes. Workbench renders FlowProducer parent / child relationships as a real DAG (not a flat list), with per-node duration and status, and supports drilling into subtrees and replaying nodes. BullMQ Pro is supported in both the desktop app and the embedded server dashboard.