Skip to content

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.

At a high level, the main repository includes:

  • root workspace configuration and scripts
  • packages/ for application/runtime packages
  • docker/ and compose files for development and deployment
  • deploy/ for release/build scripts
  • cmd/ and dx for developer workflows

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

The most important packages include:

  • packages/api
  • packages/ui
  • packages/core-worker
  • packages/types
  • packages/utils
  • packages/sdk
  • packages/auth-utils
  • packages/app-worker-sdk
  • packages/app-browser-sdk
  • packages/ui-toolkit
  • packages/worker-utils
  • packages/demo-apps

The monorepo is supported by:

  • ./dx for common development operations
  • Docker-based local development
  • shared linting / formatting / typecheck workflows
  • root-level workspace configuration

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.

Continue with: