learn

Monorepo

Runnable services in apps/, shared libraries in packages/.

There are two top-level folders. apps/ holds the runnable services: the web editor, the HTTP server, the WebSocket server, and the flush worker. packages/ holds the shared libraries they all build on: element models and protocols, the drawing engine, server-only collaboration helpers, the database client, authentication, Redis access, validation schemas, UI primitives, and the shared tooling configs.

Each service is started and checked with its own workspace filter command, and the root dev command starts everything together with build dependencies. See the apps/ overview and the packages/ overview for who depends on whom.

Shared tooling

The root manifest holds only development tooling — the orchestrator, the compiler, and the formatter every workspace builds through:

No runtime dependencies.

Development and tooling (3)
LibraryVersion rangeWhy it is used here
TypeScript7.0.2Compiles the workspace and type-checks every package.
Prettier3.9.6Formats TypeScript and Markdown behind the format script.
Turbo^2.10.12Orchestrates workspace builds, tests, and development.

Dependencies as of commit b0026d9.

Sources: README.md, apps/README.md (documented at commit b0026d9)

On this page