Define the relationship with monorepos
Blog post from Nx
A monorepo is a single repository containing multiple distinct projects with well-defined relationships, which helps manage and understand the impact of changes across various codebases more effectively. Unlike the approach where all code is thrown into one repository without structure, monorepos use tools and processes to maintain order and clarity, allowing for immediate visibility of changes. The concept of "distance" in code relationships is crucial; the shortest distance involves importing from another file, enabling instant recognition of changes, while importing from packages or using APIs increases the distance and delays feedback. Monorepos can bridge these distances by collocating code, allowing teams to see and respond to changes quickly, thus facilitating faster iteration and reducing the time needed to understand the impact of changes across different parts of a project.