Monoliths have genuine advantages that get overlooked because the word sounds dated. A single stack trace explains a failure. A database transaction guarantees consistency without compensating logic. Refactoring across module boundaries is a normal code change rather than a cross-team negotiation. For a small or mid-sized team, these are large productivity gains.
The constraint is coordination, and it arrives at a specific point: when enough teams share the codebase that every release requires negotiation. A well-structured "modular monolith" — clear internal boundaries, no cross-module database access — postpones that point considerably and makes an eventual split far cheaper, because the seams already exist.
Codazz builds this in production — Legacy Modernization.