# Monorepo

Una cosa fondamentale quando si pensa a come poter far scalare il proprio Frontend è scegliere tra un'architettura a Monorepo o Monolite.

L'architettura a Monorepo è sicuramente complicata a livello di setup ma ci può dare sicuramente un grande boost in futuro.

Un Monorepo sicuramente ci permette di essere più flessibili dal punto di vista di:

* **Refactor futuri sul codice**: possiamo decidere di isolare domini funzionali in librerie da refactorizzare progressivamente senza dover fare dei big-bang.
* **Condividere il codice**: ci permette di condividere porzioni di codice tra più applicazioni seguendo il concetto DRY.
* **Team grandi**: in ottica di team grandi, ci permette di dividere il progetto in aree e assegnare a ogni team una determinata area in modo da "dividere" lo sviluppo ed evitare che più team si calpestino i piedi.

Concetti che sicuramente perdiamo in un contesto di architettura a Monolite.

Da tenere però in considerazione, che, sicuramente l'architettura a Monorepo ha molto senso quando si hanno progetti di grossa scala che possono magari scalare da un momento all'altro.

L'approccio a Monolite rimane valido quando magari parliamo di app di piccola scala.
