Server Adapters

One server adapter per framework. The core @bull-board/api package is shared. Pick your framework below.

Tip

Try the live demo first — all 9 adapters serve the same UI.

Adapter matrix

FrameworkPackageDocs
Express@bull-board/expressExpress →
Fastify@bull-board/fastifyFastify →
NestJS@bull-board/nestjsNestJS →
Koa@bull-board/koaKoa →
Hapi@bull-board/hapiHapi →
Hono@bull-board/honoHono →
H3@bull-board/h3H3 →
Elysia@bull-board/elysiaElysia →
Bun@bull-board/bunBun →

Sails

No dedicated Sails adapter. Sails runs on Express, so use @bull-board/express inside a Sails controller. Working example: examples/with-sails.

Shape

Most adapters follow the same three steps:

  1. Create a server adapter and set its base path (setBasePath(), or constructor options for Elysia).
  2. Call createBullBoard({ queues, serverAdapter }) with your queue adapters.
  3. Register the adapter with your app (Express app.use, Fastify app.register, Bun spreads getRoutes() into Bun.serve, etc.).

Elysia and Bun are a bit different, the adapter pages show exactly what goes where.

See Your first dashboard for a concrete Express walkthrough.