Roosevelt Docs

Nx Monorepo

Structuur en configuratie van de Nx monorepo

Nx Monorepo

Roosevelt OPS gebruikt een Nx workspace met pnpm als package manager.

Structuur

roosevelt-ops/
├── apps/
│   ├── api/          # Fastify REST API (port 3001)
│   ├── marketing/    # Marketing site — static export (port 3001 dev)
│   ├── web/          # Next.js dashboard (port 3000)
│   ├── portal/       # Client portal (port 3002)
│   └── docs/         # Deze documentatie (port 3002 dev)
├── packages/
│   ├── analytics-layer/   # Analytics & telemetrie
│   ├── feature-flags/     # Feature flag management
│   ├── pipeline-core/     # Data pipeline utilities
│   ├── portal-auth/       # Authenticatie voor portal
│   └── time-tracking/     # Time tracking utilities
└── infrastructure/
    ├── roosevelt-dev/     # Caddy config, deploy scripts
    └── metabase/          # Metabase config

Waarom Nx? (ADR-006)

  • Computation caching — ongewijzigde packages worden niet opnieuw gebuild
  • pnpm workspaces — efficiënter disk gebruik via hard links
  • Affected commandsnx affected:build beperkt CI tijd
  • Code generators — consistente code-generatie

Veelgebruikte Commando's

# Development starten
pnpm dev                          # Nx dev web (main app)
 
# Specifieke app builden
pnpm --filter @roosevelt/docs build
pnpm --filter @roosevelt/marketing build
 
# Alleen gewijzigde packages testen
pnpm nx affected:test
 
# Database
pnpm db:types    # TypeScript types genereren vanuit Supabase
pnpm db:migrate  # Migraties uitvoeren

Path Aliases

{
  "@roosevelt/feature-flags": "./packages/feature-flags/src/index.ts"
}

On this page