BISO Docs

Packages in the Monorepo

How shared packages relate to apps — summary, dependency graph, and links to package docs.

Packages in the Monorepo

Shared code lives under packages/. This page explains how packages relate to each other and to apps. API surface, examples, and integration guides live in the Packages section — linked below so there is a single source of truth.

Package summary

PackageRoleUsed by
@repo/apiAppwrite clients and helpers (server/session and browser patterns)web, admin
@repo/uiComponents, theme, shared UI patternsweb, admin, docs
@repo/editorPuck editor and renderer for visual pagesweb, admin
@repo/paymentVipps-oriented checkout and order flows (DI-friendly core)web, admin
@repo/aiAI-assisted features (admin)admin
@repo/eslint-configShared lint presetsall
@repo/typescript-configShared tsconfig basesall

Dependency graph (conceptual)

Package docs (canonical references)

Tooling packages (eslint-config, typescript-config) are consumed via extends in each app or package; see existing eslint.config.* and tsconfig.json files in the repo.

Conventions

  1. Apps depend on packages; packages do not depend on apps — Avoid circular coupling.
  2. Prefer framework-agnostic cores — Pass infrastructure in (see Dependency injection).
  3. Document exports in the Packages tab — Keep long examples there, not here.
ℹ️
Adding a package

Create a new workspace package under packages/, wire it in the root workspace, add it to the Turborepo pipeline if it has a build step, and add documentation under content/docs/packages/ when the API is stable enough for others to consume.

On this page