Benefits of a Monorepo
These benefits do exist, but drawbacks still exist too. The &quot;constantly updating, constantly recompiling&quot; problem can get pretty bad when there are many developers. Developers either lose time recompiling more than they should need to, or keep working in out-of-date trees and dealing with trickier merges. Multiply by the number of developers in a large org, and that can be a lot of lost productivity.<p>The thing I don&#x27;t see discussed often enough, in all of the &quot;monorepos are good&#x2F;bad&quot; debates, is that they require a certain discipline. When one commit can span multiple components, it&#x27;s easy to add or ignore bad coupling between those components. That contributes to the rebuild treadmill for everyone, and is bad design in a bunch of other ways as well. IDEs make it worse, because they obscure the boundaries between components, but everyone ends up using an IDE because their predecessors made it very difficult to follow the flow of control across components otherwise. So you end up with one big ball of mud. With separate repos this is discouraged, because violating the rules of good design causes immediate pain. With a monorepo the pain must come in the form of stronger reviews, to discourage bad coupling even though it&#x27;s easy. Unfortunately, the very same companies that have embraced monorepos have also abandoned separation of concerns as a design principle. :(<p>ETA: please read bunderbunder&#x27;s comment (<a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=19796960" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=19796960</a>) as well. It&#x27;s an insightful take on some of the same issues.