> ## Documentation Index
> Fetch the complete documentation index at: https://api-documentation.kare-app.fr/llms.txt
> Use this file to discover all available pages before exploring further.

# Monorepo

> Organisation du repo et articulation des briques

## Structure

```text theme={null}
KARE/
├── apps/
│   ├── api/            Backend Fastify — toute la logique métier
│   │   └── database/   Schéma Prisma + migrations (workspace à part)
│   ├── kare/           Front registre (Next.js, audience rs)
│   ├── backoffice/     Front admin (Next.js, audience bo)
│   ├── audit/          Front audit (Next.js, audience ad)
│   └── provider/       Front prestataire (Next.js, audience pr)
├── packages/
│   ├── rs-api/         Types + client typé de l'audience rs
│   ├── pr-api/         Types + client typé de l'audience pr
│   ├── sdk/            Client OpenAPI historique (backoffice, audit)
│   ├── core/           Code partagé non-HTTP
│   ├── ui/             Composants React partagés
│   ├── error-boundary/ Error boundary avec outils de dev
│   └── tsconfig/       Configs TypeScript partagées
├── infrastructure/     Infra as code (OpenTofu, Scaleway) — staging
├── openapi/            Specs générées : rs, bo, ad, pr
└── docs/              Docs internes du repo
```

**Les fronts sont fins.** La logique de domaine vit dans l'API ; les fronts la consomment via un
client typé.

## Workspaces et task runner

Yarn 4 workspaces relie les packages, Turborepo ordonne et met en cache les tâches.

```bash theme={null}
yarn build       # build dans l'ordre des dépendances
yarn dev         # tout en watch
yarn typecheck   # tsc sur tous les packages
yarn lint:fix    # Biome format + lint --write
yarn test        # suites de test (hors @kare/api, qui a la sienne)
```

Dans un seul workspace :

```bash theme={null}
yarn workspace @kare/api dev:rs
yarn workspace @kare/backoffice dev
```

<Note>
  `apps/kare` et `apps/provider` tirent le dist HeroUI Pro sous licence via
  `scripts/pull-heroui-pro.mjs` : un `HEROUI_AUTH_TOKEN` est nécessaire pour leur `dev`, `build` et
  `typecheck`.
</Note>

## Comment les types circulent

```mermaid theme={null}
flowchart LR
    Z["Schémas Zod (apps/api)"] -->|yarn docs:openapi| S["openapi/{rs,bo,ad,pr}"]
    S --> P["@kare/rs-api · @kare/pr-api · @kare/sdk"]
    P --> F["kare · provider · backoffice · audit"]
```

Un changement de schéma dans l'API propage les types aux fronts — aucune synchro manuelle. Voir
[OpenAPI, SDK, publication](/devops/openapi-sdk).

## Infrastructure

Un seul stage vivant : **staging**, décrit dans `infrastructure/envs/staging`. Voir
[DevOps → Infrastructure](/devops/infrastructure).
