ADR 0008: Ship one customer application with restricted operations routes
This record defines the first frontend boundary and language scope.Context
V1 needs customer banking flows and a small internal console. English ships first, while Arabic support must not require a structural rewrite.Decision
Use one React application with customer routes and role-gated/ops routes. Keep authorization in FastAPI. Extract all copy into localization keys, use locale-aware formatting, and make layout primitives compatible with right-to-left text.
Do not register a service worker or cache authenticated responses offline.
Consequences
The shared design system reduces duplication. Operators receive only view and fail-safe suspension actions. A later risk or staffing boundary may justify a separate deployment.Rejected alternatives
- Separate operations repository: v1 scope does not justify duplicated tooling.
- Progressive web application caching: stale banking state and cached private responses create unacceptable ambiguity.