Workbench is now available for Bun
A modern, open-source BullMQ dashboard for Bun — drop it into your existing server with one command, or run it as a native desktop app pointed at the same Redis.
Workbench now ships a first-party adapter for Bun — the all-in-one JavaScript runtime with a native HTTP server and a built-in package manager. Drop the same open-source BullMQ dashboard you already get on the desktop straight into your existing Bun server, behind whatever auth and routing you already run.
No new processes to manage, no parallel Redis connections, no copy of your queue config drifting out of sync. The dashboard reads from the same Redis your workers do, mounts at a path of your choice, and gets out of the way the rest of the time.
Install in your Bun app
Run the CLI from your project root — it detects Bun, installs @getworkbench/bun, and wires the mount into Bun.serve fetch handler for you:
Prefer to wire it up by hand? Install the adapter and add the snippet below to the file you already use for your Bun server bootstrap:
import { Queue } from "bullmq";
import { workbench } from "@getworkbench/bun";
const emails = new Queue("emails");
const dashboard = workbench({
queues: [emails],
basePath: "/jobs",
});
Bun.serve({
port: 3000,
fetch(req) {
return dashboard(req, () => new Response("Hello, Bun!"));
},
});That's the whole integration. Visit http://localhost:3000/jobs and the dashboard renders with every queue you passed in. The adapter is published as @getworkbench/bun and the runnable example lives at examples/with-bun in the repo.
What you get
- Live counters, p50/p95 latency, and throughput sparklines per queue.
- Virtualised runs table with status filters, full payloads one click away, and keyboard-driven retry.
- FlowProducer DAG view for parent/child jobs, with per-node duration and status.
- Scheduler timeline for cron + delayed jobs — pause, resume, edit cron without a redeploy.
- Error triage grouped by exception class with 24h trend lines.
- Click any line in a failed job's stack trace to jump straight to Cursor or VS Code.
Why not bull-board for Bun?
Bull Board is the dashboard most Bun teams reach for first, and for plenty of projects it's fine. The three places Workbench tends to win are coverage, polish, and operations — here are the high-order bits:
- 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.
The short version for Bun users specifically: Bull Board does not ship an official Bun adapter, so you'd be on a community wrapper or bridging through Express. Workbench's @getworkbench/bun is a first-party package with a smoke-tested example app and the same one-command installer as every other supported framework.
| Feature | Workbench | Bull Board |
|---|---|---|
Native desktop app | Yes | No |
Drop-in dashboard for your server | 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 | npx @getworkbench/cli init | No |
FlowProducer DAG visualisation | Yes | Limited |
Live counters + p50 / p95 latency | Yes | Limited |
For the full side-by-side, see Workbench vs Bull Board.
Get started
Adapter docs and a complete runnable example live in the @getworkbench/bun README. If anything trips up, open an issue on GitHub — every supported framework has a CI smoke test, so reproductions move fast.