Aller au contenu principal

Le monorepo

Pambe est un monorepo pnpm workspaces + Turborepo. Deux familles de workspaces, déclarées dans pnpm-workspace.yaml :

  • apps/* — les applications déployables.
  • packages/* — le code partagé (design system, ports SDK, configs).

apps/docs (cette doc) ne dépend d'aucun package interne : c'est un site statique autonome.

Turborepo

Le turbo.json racine définit le graphe de tâches. Chaque tâche fan-out sur les workspaces qui possèdent le script correspondant :

TâcheEffetNotes
buildturbo builddependsOn: ["^build"] — build les deps d'abord. Outputs cachés.
devturbo devcache: false, persistent: true
lint / typecheck / formatfan-outapps/docs n'a pas de script lint/format → Turbo l'ignore pour ces tâches
testturbo testSans dépendances ni cache ; fan-out sur les workspaces qui ont un script test (Vitest).

apps/docs fournit un turbo.json local qui étend la racine ("extends": ["//"]) juste pour déclarer ses sorties de build (build/**, .docusaurus/**), afin que le cache Turbo les capture correctement.

Où poser ma prochaine modif ?

Tu veux…Va dans…
Un endpoint HTTP, de la logique métierapps/api/src/routes + apps/api/src/<domaine>
Une page publique ou dashboardapps/web/app/[locale] ou apps/web/app/app
Un composant UI réutilisablepackages/ui/src/components
Intégrer un SDK tierspackages/lib/src/<capability> (voir la frontière lib)
De l'admin/back-officeapps/hermes
De la docapps/docs/docs (et /sync-docs si tu documentes du code)