The following represents a proven and scalable approach to structuring modular web apps. It is conceptually simple, relying on a few well defined structural patterns, some of which are repeated in a recursive fashion. A structure like this will often look much like the domain of the app, making it very easy to navigate, understand and reason about.
All file and folder names must be lower case and the only word separator allowed is a single -
.
The only exceptions are tests, which must be named {name}.test.ts
, and localized files, which must be named {name}.{locale}.{ext}
.
In the following, -
and +
indicate expanded and collapsed folders, while ...
denote additional unspecified items.