879 B
879 B
ADR-001: Monorepo with pnpm Workspaces
Status
Accepted
Context
Fleet Forge requires multiple packages: API server, web dashboard, shared types, and the Go agent. We need a structure that supports shared code, independent builds, and a single repository.
Decision
Use pnpm workspaces for the TypeScript/Node.js packages. The Go agent lives in the same repo but is built independently.
Rationale
- pnpm workspaces provide efficient dependency management with a single lockfile
- Workspace references (
workspace:*) enable local development without publishing - Compatible with Next.js, Express, and Drizzle ORM
- The Go agent uses standard Go modules independently
Consequences
- All TS packages share a common
tsconfig.base.json - Build order is managed via workspace dependency graph
- Go agent has its own
go.modand is not part of the pnpm workspace