Comparison

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.

FeatureWorkbenchBull Board
Native desktop app
Local-first inspector you launch from Spotlight, no server changes.
YesNo
Drop-in dashboard for your server
Mount the same UI inside your existing Node app.
YesYes
Officially supported frameworks
Hono, Elysia, Express, Fastify, NestJS, AdonisJS, Next.js, TanStack Start, Koa, Astro, Nuxt, Bun, h3Express, Fastify, Hapi, Koa (community Next.js wrappers)
One-command install
Auto-detects your framework and injects the mount for you.
npx @getworkbench/cli initNo
FlowProducer DAG visualisation
Parent / child flows rendered as a real graph, not a flat list.
YesLimited
Live counters + p50 / p95 latency
Per-queue throughput sparklines, updated as workers move jobs.
YesLimited
Error triage grouped by class
Failures clustered with 24h trend lines so you spot regressions fast.
YesNo
Enqueue jobs from the UI
Schema-aware payload editor, ⌘↵ to dispatch.
YesLimited
Open failed jobs in your editor
Click a stack-trace line, jump to Cursor / VS Code.
YesNo
Keyboard-driven UI
⌘K palette, single-key actions, no menu hunting.
YesNo
Light + dark themes
YesYes
BullMQ Pro support
YesYes
Open source, MIT-licensed
YesYes

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:

  1. Remove @bull-board/* packages and the mount call.
  2. Run npx @getworkbench/cli init — it detects your framework and adds the right adapter.
  3. Pass the same Queue instances you were passing to Bull Board.
  4. 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.
Try Workbench
One command, thirteen frameworks.