Skip to main content

Development Setup

Prerequisites

  • Node.js 24+ (see .nvmrc)
  • pnpm 10.32+ (declared in root package.json)

Install dependencies

pnpm install

Environment setup

cp apps/app/.env.example apps/app/.env.local
Fill in the API keys for services you want to test. See Services Overview for the full list.

Run the dev server

pnpm dev
This runs turbo run dev which starts the Next.js app with Turbopack.

Project structure

radarboard/
├── apps/
│   ├── web/          # Next.js 16 dashboard app (@radarboard/app)
│   └── docs/         # Mintlify documentation (@radarboard/docs)
├── packages/
│   ├── api/          # External service API clients (@radarboard/api)
│   ├── charts/       # Chart components (@radarboard/charts)
│   ├── hooks/        # React hooks for data fetching (@radarboard/hooks)
│   ├── tsconfig/     # Shared TypeScript configs (@radarboard/tsconfig)
│   ├── types/        # Shared type definitions (@radarboard/types)
│   ├── ui/           # Shared UI components (@radarboard/ui)
│   ├── utils/        # Utility functions (@radarboard/utils)
│   └── widgets/      # Widget components and registry (@radarboard/widget-engine)
├── turbo.json        # Turborepo task configuration
├── pnpm-workspace.yaml
└── biome.json        # Linter/formatter config

Tooling

ToolPurpose
TurborepoMonorepo task runner and build orchestrator
pnpmPackage manager with workspace support
BiomeLinter and formatter (replaces ESLint + Prettier)
LefthookGit hooks (pre-commit: biome check + typecheck)
VitestTest runner with Testing Library

Common commands

pnpm build          # Build all packages and apps
pnpm dev            # Start dev server
pnpm lint           # Run Biome linter
pnpm lint:fix       # Auto-fix lint issues
pnpm typecheck      # Run TypeScript type checking
pnpm test           # Run tests
pnpm test:coverage  # Run tests with coverage