Skip to main content

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.