- Organize code into layers: `app/`, `pages/`, `widgets/`, `features/`, `entities/`, `shared/`.
- Dependencies flow top-down only: features can import from entities and shared, but not from pages or widgets.
- Each feature slice exports a typed public API — use barrel `index.ts` files and enforce import boundaries with ESLint `no-restricted-imports`.
- `shared/` contains reusable utilities, UI kit, and API client — no business logic.
- `entities/` contains business entities (User, Product) with their types, API calls, and UI components.
- `features/` contains user-facing features that compose entities (AddToCart, LoginForm).
- `pages/` composes features and widgets into routed views. `widgets/` composes features into layout sections.