Base Repository
Monorepo
Base uses a monorepo on Github to manage its code and tests in one place.
The user docs are developed in a separate repositiory:
Why a Monorepo?
After careful consideration, instead of splitting code across many small repositories, we chose to keep everything together.
The modules are tightly related, and managing them in one repo avoids the overhead of syncing versions, maintaining consistency, and duplicating tooling, that managing multiple repositories would bring.
Benefits
Single Source of Truth - All logic lives in one place, making it easier to reuse code, refactor safely, and keep things consistent.
Easier Coordination - Modules can evolve together. A monorepo helps test everything in context and keep dependencies aligned.
Unified Tooling - A common setup for tools such as builds, etc. No need to duplicate across projects.
Quicker Onboarding - New starts can clone a single repo to fetch and begin to understand the full system.
Future-Proof - As Base grows, a monorepo should make it easier to add new features, avoid conflicts, and stay modular but unified.
When We Might Reconsider
This decision may be revisited if things evolve and teams need full isolation, independent versioning becomes critical, or the repo becomes too large to manage efficiently.