Files
oO/docs/adr/0001-monorepo-polyglot.md

741 B

ADR-0001: Polyglot monorepo, TS for apps, Python for ML

Status

Accepted — 2026-04-13

Context

We ship web and mobile clients, backend services, and ML training/serving. Splitting into many repos early creates cross-repo PRs for every contract change and hurts velocity.

Decision

One monorepo, managed with pnpm workspaces for TS and uv/poetry for Python. Shared contracts live in packages/shared-types generated from OpenAPI. ML is Python; everything else is TS.

Consequences

  • One CI system, one versioning flow, atomic cross-service PRs.
  • Requires disciplined boundaries: services must still be independently deployable.
  • Tooling complexity: two package managers, two lint stacks. Acceptable given the ML/app split.