Thanks to LLMs.
Before LLMs even if the architecture principles were simple and clear, distilled into templates + codegens added for boilerplate / skeleton generation ... It was impossible to follow them on the long run. Devs tried their best, but on the long run everything eroded and there were no resources for refactoring.
Now, with coding agents, I was able to create a production grade app following a similar architecture to Presentation Domain Data Layering, from this article.
Now the codebase is 100% uniform both in content (code) and structure (files and folders). It's like being written by a single person. Finding a specific file takes a second with no cognitive load. Editing a file is straightforward since every file follows a specific template.
LLMs have benefits and drawbacks, and in this case their help is enormous.