Frontend
The frontend is a Next.js 16 / React 19 app (frontend/public-page) using
the App Router, Tailwind CSS v4, next-intl for localisation, and a small
design-system of shared primitives. It serves the public landing page, the
authentication flows, the authenticated console, and these docs.
App Router structure
app/
├── layout.tsx root layout — fonts, i18n provider, auth providers
├── page.tsx landing
├── login/ register/ forgot-password/ reset-password/ verify-email/
├── dashboard/ authenticated console (own layout: sidebar + topbar)
│ ├── layout.tsx
│ ├── page.tsx overview
│ ├── account/ admin/
├── docs/ this documentation (MDX)
└── shared/
├── ui/ design-system primitives
├── components/ larger pieces (e.g. architecture diagram)
└── auth/ ProtectedRoute, providers
The root layout wires the global providers once — next-intl, tooltip, Google OAuth, auth and user contexts, and toast notifications — so every route inherits them. The dashboard layout adds the authenticated chrome (sidebar + topbar).
How to read this section
Each page covers one part of the frontend:
- Design System — the design tokens that drive all styling, and the shared UI primitives built on them.
- Internationalisation — how the eight locales work and how components consume translations.
- The Console — the authenticated dashboard and how it is protected.
- Calling Backend Services — the API client layer and the steps to wire a new service in.
- Writing Docs — how these MDX pages are built and how to add one.
Next: Design System.