Skip to content

Repo Layout and Ownership

What This Covers

This page defines canonical monorepo boundaries for apps, shared packages, and scripts. Use it to prevent cross-app coupling and misplaced shared logic.

Canonical Layout

  • apps/event-site: unified SvelteKit app serving all events and the platform management UI
  • packages/platform-shared: platform contracts, lifecycle rules, validation
  • packages/runtime-core: shared runtime primitives (KV/env/path helpers only)
  • scripts: repository-level orchestration scripts only

Ownership Rules

  • Event business logic and schema live in apps/event-site/src/lib/server/**.
  • Platform management logic lives in apps/event-site/src/lib/server/platform/**.
  • Platform routes live at apps/event-site/src/routes/platform/**.
  • Shared code in packages/* must be either:
    • infra-only runtime helpers (runtime-core), or
    • contract/validation logic (platform-shared).
  • Cross-workspace dependencies must use package imports (for example @tripplan/platform-shared/*).

Guardrails

  • Run npm run check:boundaries to validate import boundaries.
  • PR checklist must confirm shared-code placement:
    • new shared code is infra-only or contract-only

Released under the MIT License.