22 lines
879 B
Markdown
22 lines
879 B
Markdown
# 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.mod` and is not part of the pnpm workspace
|