Frontend Overview
The platform serves multiple end-user surfaces from one design system (@ghasi/ui) and one typed client (@ghasi/sdk-client):
:::warning No app surfaces present in this repo yet. The codegen will fill this section as
apps/web-learner,apps/web-authoring,apps/web-admin,apps/mobile,apps/desktopland. Until then, see the spec docs for the planned surfaces. :::
All surfaces honour the same invariants:
- WCAG 2.2 AA, RTL parity,
prefers-reduced-motionrespected. - TanStack Query (server state) + Zustand (client UI). Redux forbidden.
- React Hook Form + Zod schemas shared with backend via
@ghasi/api-contracts. - ICU MessageFormat for every user-facing string. No hardcoded strings.