Development
Set up a local Bullstudio development environment.
This guide is for contributors working on Bullstudio from a source checkout.
Prerequisites
Use Node.js 20 or newer and pnpm 10.4.1. Docker is recommended for running local Redis.
node --version
corepack enable
corepack prepare pnpm@10.4.1 --activate
pnpm --versionClone the repository and install dependencies:
git clone https://github.com/emirce/bullstudio.git
cd bullstudio
pnpm installStart Redis
Most dashboard and integration workflows need Redis. The repository includes a Docker Compose file for the test Redis service.
docker compose -f docker-compose.test.yml up -d redisCheck that Redis is reachable:
docker compose -f docker-compose.test.yml psThe default local URL is redis://localhost:6379.
Run the dashboard
For dashboard UI work, run only the frontend package:
pnpm --filter @bullstudio/frontend devOpen the Vite URL printed in the terminal, usually http://localhost:5173.
The frontend dev server mounts the standalone dashboard API, so local UI work can talk to Redis without starting another Bullstudio process. To use a different Redis instance:
REDIS_URL=redis://localhost:6379 pnpm --filter @bullstudio/frontend devOn Windows PowerShell:
$env:REDIS_URL = "redis://localhost:6379"
pnpm --filter @bullstudio/frontend devAdd sample jobs
Seed local Redis with queues and jobs when you need realistic dashboard data:
REDIS_URL=redis://localhost:6379 pnpm --filter ./packages/cli generate:bull-jobsOn Windows PowerShell:
$env:REDIS_URL = "redis://localhost:6379"
pnpm --filter ./packages/cli generate:bull-jobsRefresh the dashboard after the script finishes.
Run embedded examples
Use examples when changing framework adapters or embedded-mode behavior.
pnpm --filter @bullstudio/example-hono-bullmq-embedded dev
pnpm --filter @bullstudio/example-express-bullmq-embedded dev
pnpm --filter @bullstudio/example-fastify-bullmq-embedded dev
pnpm --filter @bullstudio/example-next-bullmq-embedded devStart Redis first, then open the local URL printed by the example.
Run the docs locally
The docs site lives in apps/website-with-docs.
pnpm --filter website-with-docs devRun the docs checks before changing documentation structure or MDX components:
pnpm --filter website-with-docs types:check
pnpm --filter website-with-docs buildValidate changes
Before opening a pull request, run the checks that match your change:
pnpm typecheck
pnpm test
pnpm lint
pnpm buildFor formatting-only cleanup:
pnpm format
pnpm checkIntegration tests use TEST_REDIS_URL when it is set, otherwise they use redis://localhost:6379/15.
TEST_REDIS_URL=redis://localhost:6379/15 pnpm testCommon fixes
If tests say Redis is unavailable, start the Compose service again:
docker compose -f docker-compose.test.yml up -d redisIf dependency versions look inconsistent, reinstall from the repository root:
pnpm installIf the dashboard shows no queues, confirm Redis has test data:
pnpm --filter ./packages/cli generate:bull-jobs