• src
    • entries # split by semantics, rendering strategy, or technology
      • [entry-name] # can be called `main` if there's just one entry
        • public # public assets served by entry point's `server`
        • server # `server.ts` or `server/index.ts` exports an instance of Express Router
        • types
        • ui
          • const
            • customValue.ts # exports `const customValue`
          • [feature]
            • const
            • Component
              • index.css
              • index.tsx
            • Component2
            • ...
            • types
            • utils
          • Component
            • index.css
            • index.tsx # not `Component/Component.tsx`, exports `Component` and `ComponentProps`
          • Component2
          • ...
          • types
          • utils
          • index.tsx # CSR entry point, location of `createRoot()` or `hydrateRoot()` in React apps
        • utils
    • lib # would-be packages, pre-publishing + patched external libs
      • [package-name]
    • public # publicly available files shared by multiple entries
    • server
      • const
      • middleware
      • types
      • utils
      • index.ts # runnable app server, plugs in the required entry points' `server` exports (being Express Routers)
    • types # shared types
      • CustomEntity.ts # exports `type CustomEntity`
    • ui # UI components shared by multiple entries
    • utils # shared utils
      • getValue.ts # exports only `function getValue` (and possibly `type GetValueParams`)