Apps
Application web
La SPA React 19 + Vite + Mapbox dans apps/web.
L'application web est une single-page application construite avec React 19, Vite 8 et Mapbox GL 3.
Structure
apps/web/
├── src/
│ ├── components/ # Map, sidebar, controls
│ ├── routes/ # TanStack Router routes
│ ├── lib/ # Web-specific glue
│ ├── hooks/ # React hooks
│ └── main.tsx # Entry
├── public/ # Static assets
├── nginx.conf # Production server config
├── entrypoint.sh # Runtime env injection
├── Dockerfile # Multi-stage build → nginx
└── vite.config.tsDépendances clés
| Bibliothèque | Pourquoi |
|---|---|
mapbox-gl + react-map-gl | La carte |
@tanstack/react-router | Routage type-safe avec routes en code-split |
@tanstack/react-query | Mise en cache de l'état serveur |
zustand | État client (depuis @routess/core) |
tailwindcss v4 | Styles, thémés via @routess/design-tokens |
@radix-ui/* | Primitives UI headless |
@react-oauth/google | Bouton de connexion Google |
Configuration au runtime
Le Dockerfile build avec des valeurs de remplacement. Au démarrage du conteneur, entrypoint.sh substitue les vraies valeurs issues des variables d'environnement dans les fichiers JS buildés. Cela permet de promouvoir une même image à travers les environnements sans la rebuild.
Scripts
bun run dev # Vite dev server
bun run build # Production build
bun run preview # Preview the production build locally
bun run test # bun test + happy-dom
bun run check-types # tsc --noEmit