> For AI agents: the complete documentation index is available at /bull-board/llms.txt, the full documentation bundle is available at /bull-board/llms-full.txt.

# Server Adapters

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

::: tip <a href="/bull-board/demo/" target="_blank" rel="noopener">Try the live demo</a> first. All 9 adapters serve the same UI.
:::

## Adapter matrix

| Framework | Package               | Docs                                                |
| --------- | --------------------- | --------------------------------------------------- |
| Express   | `@bull-board/express` | [Express →](/bull-board/server-adapters/express.md) |
| Fastify   | `@bull-board/fastify` | [Fastify →](/bull-board/server-adapters/fastify.md) |
| NestJS    | `@bull-board/nestjs`  | [NestJS →](/bull-board/server-adapters/nestjs.md)   |
| Koa       | `@bull-board/koa`     | [Koa →](/bull-board/server-adapters/koa.md)         |
| Hapi      | `@bull-board/hapi`    | [Hapi →](/bull-board/server-adapters/hapi.md)       |
| Hono      | `@bull-board/hono`    | [Hono →](/bull-board/server-adapters/hono.md)       |
| H3        | `@bull-board/h3`      | [H3 →](/bull-board/server-adapters/h3.md)           |
| Elysia    | `@bull-board/elysia`  | [Elysia →](/bull-board/server-adapters/elysia.md)   |
| Bun       | `@bull-board/bun`     | [Bun →](/bull-board/server-adapters/bun.md)         |

## Sails

No dedicated Sails adapter. Sails runs on Express, so use `@bull-board/express` inside a Sails controller. Working example: [`examples/with-sails`](https://github.com/felixmosh/bull-board/tree/master/examples/with-sails).

## Next.js

No dedicated Next.js adapter. Mount bull-board inside a Next.js API route using the Hono adapter (App Router) or the Express adapter (Pages Router). The Vercel deployment needs a small bit of `next.config.js`, see [Next.js & Vercel](/bull-board/recipes/nextjs.md) and the [`with-nextjs-app`](https://github.com/felixmosh/bull-board/tree/master/examples/with-nextjs-app) / [`with-nextjs-pages`](https://github.com/felixmosh/bull-board/tree/master/examples/with-nextjs-pages) examples.

## 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](/bull-board/guide/your-first-dashboard.md) for a concrete Express walkthrough.
