Qu’est-ce qu’un monorepo ?

Un monorepo (abréviation de monolithic repository) consiste à regrouper plusieurs projets, applications ou librairies dans un seul et même dépôt Git. Contrairement à l’approche polyrepo — un dépôt par projet — le monorepo centralise l’ensemble du code source au même endroit.

Cette stratégie n’est pas nouvelle. Google héberge plus de 2 milliards de lignes de code dans un unique dépôt. Meta, Microsoft et Twitter ont adopté la même philosophie. Mais aujourd’hui, grâce à des outils matures, le monorepo est aussi accessible aux PME et aux équipes de 5 à 50 développeurs.

Monorepo vs polyrepo : quelle approche choisir ?

Pour bien comprendre l’intérêt du monorepo, comparons les deux stratégies :

CritèreMonorepoPolyrepo
Partage de codeImmédiat, même dépôtVia packages publiés (npm, Composer…)
Cohérence des versionsGarantie nativementDifficile à synchroniser
CI/CDUn seul pipeline à configurerUn pipeline par dépôt
Autonomie des équipesPlus encadréeTotale
Taille du dépôtPeut devenir volumineuxReste léger par projet

En résumé : le monorepo brille quand vos projets partagent du code, des dépendances ou des conventions. Le polyrepo convient mieux à des projets totalement indépendants.

Les avantages concrets du monorepo

Partage de code simplifié

Plus besoin de publier une librairie interne sur npm ou Packagist pour la réutiliser. Vous importez directement le module depuis le même dépôt. Résultat : moins de friction, moins de bugs liés aux versions décalées.

Refactoring à grande échelle

Renommer une fonction utilisée dans 4 micro-services ? Dans un monorepo, une seule pull request suffit. Dans un polyrepo, il faut coordonner 4 PR sur 4 dépôts différents.

Revue de code transversale

Les développeurs ont une visibilité complète sur l’écosystème. Un changement d’API dans un service affiche immédiatement les impacts sur les consommateurs. Fini les surprises en production.

CI/CD plus intelligente

Les outils modernes détectent quels packages ont été modifiés et n’exécutent que les tests et builds nécessaires. Sur un projet de 12 packages, cela peut réduire le temps de CI de 60 à 70 %.

Les outils incontournables en 2025

Plusieurs solutions facilitent la gestion d’un monorepo :

  • Nx : très populaire dans l’écosystème JavaScript/TypeScript, avec graph de dépendances et cache distribué.
  • Turborepo : acquis par Vercel, orienté performance avec un système de cache incrémental redoutable.
  • Lerna : historique, désormais maintenu par Nx, idéal pour la gestion de packages npm.
  • Bazel : l’outil open-source de Google, adapté aux très gros dépôts multi-langages.
  • pnpm Workspaces : léger et efficace pour les projets Node.js de taille moyenne.

Chez Lueur Externe, nous accompagnons régulièrement des entreprises dans le choix et la mise en place de ces outils, en tenant compte de la stack technique existante et de la taille de l’équipe.

Les pièges à éviter

Le monorepo n’est pas une solution magique. Voici les erreurs classiques :

  • Négliger l’outillage : sans build incrémental ni cache, le temps de CI explose dès que le dépôt grossit.
  • Oublier le code ownership : utilisez un fichier CODEOWNERS pour définir qui valide quoi. Sans gouvernance, le monorepo devient chaotique.
  • Tout mettre dedans sans réfléchir : un projet legacy PHP et une app React sans lien commun n’ont pas forcément leur place dans le même dépôt.

Exemple de structure monorepo

/apps
  /frontend-next
  /backend-api
  /admin-dashboard
/packages
  /ui-components
  /shared-utils
  /config-eslint
package.json
nx.json

Chaque dossier sous /apps est une application déployable indépendamment. Les /packages contiennent le code partagé. Simple, lisible, maintenable.

Conclusion : structurez vos projets pour mieux scaler

Le monorepo est une approche puissante pour les équipes qui gèrent un écosystème de projets interconnectés. Il simplifie le partage de code, renforce la cohérence et accélère les cycles de développement — à condition d’investir dans le bon outillage.

Que vous envisagiez de migrer vers un monorepo ou d’optimiser votre architecture actuelle, Lueur Externe peut vous accompagner à chaque étape. Forts de plus de 20 ans d’expérience en développement web et DevOps, nous concevons des architectures robustes, pensées pour durer.

Parlons de votre projet →