Problem
Separate repositories for related surfaces caused dependency drift and slower coordinated releases.
Constraints
- Needed isolated app ownership with shared engineering standards
- Contributors required simple local setup
- CI tasks needed deterministic scripts
Approach
- Structured repository with npm workspaces
- Standardized scripts and package boundaries across services
- Implemented Next.js admin + landing apps and NestJS API in one delivery model
- Documented local development and release routines
Results
- Improved dependency consistency
- Simplified cross-surface releases
- Made onboarding and maintenance easier for contributors
Tech stack
- npm workspaces
- Next.js
- NestJS
- TypeScript