Architectureadvanced
Case study: feature-first architecture in this portfolio
How lazy routes, a typed DataService and a shared component barrel keep 30+ pages maintainable.
Introduction
Every page is a lazy-loaded standalone component under features/. Content lives in JSON, fetched through a single typed DataService built on httpResource, so pages never hand-roll HTTP or hold loading booleans.
Shared UI is exported from one barrel and styled entirely with CSS custom-property design tokens, so a page composes primitives without reaching into their internals.
- core/ — models, services, tokens, constants. No UI.
- shared/ — reusable components, directives, layout.
- features/ — one folder per route, lazy-loaded.