The frontend is split by responsibility:
src/app- application shell/orchestration (global state composition, page-level flow, feature wiring).src/features- domain features grouped by capability:mixer- channel cards, target assignment UI, mixer-specific constants/helpers.settings- settings-only form components.calibration- calibration overlay and calibration-specific UI.updates- app update panel UI.
src/components/ui- design-system primitives (shared UI building blocks).src/hooks- reusable React hooks.src/lib- pure domain logic, API adapters, utilities and tests.src/types- ambient type declarations.
- Keep orchestration in
src/app, keep feature UI insrc/features/*/components. - Avoid adding feature-specific components back into
src/app/App.tsx. - If a component needs feature constants/helpers, keep them in the same feature folder.
- Keep
src/libframework-agnostic when possible.