ContributingWeb client
The stack
The dashboard uses React and TypeScript. Each library has one job.
React Router reads the URL and chooses the page.
1 / 4
The parts
| Part | Tools |
|---|---|
| UI | React 19, TypeScript (strict), shadcn/ui (Radix primitives, customized in src/components/ui), lucide icons |
| Style | Tailwind CSS v4, the Ferry design tokens in src/styles/tokens.css, light and dark themes |
| Server state | TanStack Query v5 (src/lib/api/queries/*) |
| Client state | Zustand (src/stores/auth.ts, src/stores/ui.ts) |
| Routing | React Router v7 with history URLs and code-split pages |
| Build and tests | Vite, Vitest |
A code-split page is a result of code splitting: the browser loads its file only when you open the page.