How do you keep a large Angular codebase maintainable as the team grows?
Answer with conventions and automation, since those are what actually scale rather than individual discipline.
- A clear module or folder boundary per feature, with a shared area that has an owner and a rule for what may go in it. Shared modules become dumping grounds without that rule.
- Lazy load every feature route. It keeps the initial bundle small and enforces the boundary — if a feature cannot be lazy loaded, it is too entangled.
- A presentational and container split. Components that only take inputs and emit outputs are trivially testable and reusable; components that fetch data are not.
- Automate the rules. ESLint with the Angular plugin, Prettier, strict TypeScript, and a bundle-size budget that fails the build. A convention that is not enforced by CI decays.
- Generate rather than copy. Angular CLI schematics keep new code consistent by default.
Note: Mention keeping up with Angular's major releases on a schedule. Falling three versions behind is how a codebase becomes unmaintainable, and ng update makes staying current routine.





