Un monorepo est un dépôt de code unique qui regroupe plusieurs projets distincts (applications, services, bibliothèques partagées), par opposition au polyrepo où chaque projet a son propre dépôt.
Les avantages : modifier en une seule fois du code utilisé à plusieurs endroits, partager facilement code et configuration, avoir une vue d'ensemble. Les contreparties : un dépôt volumineux et des outils de build qui doivent comprendre les dépendances internes pour ne reconstruire et retester que ce qui a changé.
Côté JavaScript et TypeScript, on utilise Turborepo, Nx ou les workspaces de pnpm et Yarn. Bazel et Pants couvrent les monorepos multilangages. Google et Meta sont les exemples les plus connus de monorepos à très grande échelle.
Pourquoi ça compte quand on recrute
Le monorepo est un choix d'organisation plus qu'une compétence rare. Il compte quand vous recrutez quelqu'un pour l'outillage (Platform Engineer, Staff Engineer) : demandez-lui comment il a gardé une CI rapide quand le dépôt a grossi. Pour un développeur produit, l'avoir pratiqué suffit ; ce n'est pas un critère éliminatoire.
