The frontend is a React 19 single-page application built with Vite. Its source lives inDocumentation Index
Fetch the complete documentation index at: https://www.halite-app.com/llms.txt
Use this file to discover all available pages before exploring further.
frontend/src/.
Stack
| Layer | Library |
|---|---|
| UI framework | React 19 |
| Routing | TanStack Router |
| Server state | TanStack Query |
| Component primitives | shadcn/ui (Radix + Tailwind) |
| Charts | Recharts (lazy-split into its own chunk) |
| Build tool | Vite |
| Language | TypeScript |
Source layout
features/<area>/ folder mirrors the corresponding backend module. Feature components, hooks, and route definitions live together inside their feature folder.
Theme
The app uses CSS variables for light/dark theming, defaulting to dark mode. The single accent colour is Halite Amber#e5a00d.
Generated API types
The filefrontend/src/shared/api/types.gen.ts is generated from the backend’s OpenAPI schema. Do not hand-edit this file. After changing any backend Pydantic schema or route, regenerate it:
app.openapi(), and pipes the JSON through openapi-typescript to produce types.gen.ts. Commit the regenerated file alongside your backend changes.
gen-types.sh requires the backend’s .venv to exist and have the package installed (pip install -e '.[dev]'). The script activates it automatically — you do not need to activate it yourself first.Related pages
- API Spec — regenerating the OpenAPI spec and types
- Local Development — running the frontend locally