Monorepo Overview
The Lombok repository is a Bun workspace monorepo.
It is not organized as a single application with one src/ directory. Instead, it is split into packages that reflect Lombok’s runtime boundaries and responsibilities.
Top-level structure
Section titled “Top-level structure”At a high level, the main repository includes:
- root workspace configuration and scripts
packages/for application/runtime packagesdocker/and compose files for development and deploymentdeploy/for release/build scriptscmd/anddxfor developer workflows
Why a monorepo
Section titled “Why a monorepo”Lombok spans multiple concerns that need to evolve together:
- backend APIs
- web frontend
- worker runtime
- app platform SDKs
- shared contracts and utilities
- deployment and release tooling
A monorepo makes it easier to:
- share types across runtime boundaries
- keep frontend/backend contracts aligned
- evolve the app platform together with the core product
- run development and validation workflows consistently
Main packages
Section titled “Main packages”The most important packages include:
packages/apipackages/uipackages/core-workerpackages/typespackages/utilspackages/sdkpackages/auth-utilspackages/app-worker-sdkpackages/app-browser-sdkpackages/ui-toolkitpackages/worker-utilspackages/demo-apps
Supporting tooling
Section titled “Supporting tooling”The monorepo is supported by:
./dxfor common development operations- Docker-based local development
- shared linting / formatting / typecheck workflows
- root-level workspace configuration
The most important split
Section titled “The most important split”If you remember only one thing about the monorepo, remember this split:
- API in
packages/api - UI in
packages/ui - worker runtime in
packages/core-worker
The rest of the packages mostly support those three major runtime areas.
Next steps
Section titled “Next steps”Continue with: