Frameworks

TanStack Start

Mount Workbench in TanStack Start with @getworkbench/tanstack-start server route handlers.

Install

Shell
npm i @getworkbench/tanstack-start bullmq @tanstack/react-start

Mount

Export handlers from a shared module:

TypeScript
// src/lib/workbench-handlers.ts
import { Queue } from "bullmq";
import { workbench } from "@getworkbench/tanstack-start";

const emailQueue = new Queue("email", {
  connection: { url: process.env.REDIS_URL! },
});

export const workbenchHandlers = workbench({
  queues: [emailQueue],
  basePath: "/jobs",
});

Register on both /jobs and /jobs/$:

TypeScript
// src/routes/jobs.ts
import { createFileRoute } from "@tanstack/react-router";
import { workbenchHandlers } from "../lib/workbench-handlers";

export const Route = createFileRoute("/jobs")({
  server: { handlers: workbenchHandlers },
});
TypeScript
// src/routes/jobs/$.ts
import { createFileRoute } from "@tanstack/react-router";
import { workbenchHandlers } from "../../lib/workbench-handlers";

export const Route = createFileRoute("/jobs/$")({
  server: { handlers: workbenchHandlers },
});

Register handlers on both routes so the bare mount and nested paths work. TanStack Start doesn't host workers — see SSR and workers.

Resources