ADR-002: Next.js naar Vite SPA
Beslissing
Section titled “Beslissing”Het dashboard wordt een Vite 6 Single Page Application met React 19, in plaats van een Next.js app.
Context
Section titled “Context”Na de beslissing om naar Cloudflare te migreren (ADR-001) was Next.js niet meer de logische keuze — Cloudflare Pages ondersteunt geen Next.js server features (ISR, server components, middleware).
Overwegingen
Section titled “Overwegingen”Vite SPA (gekozen):
- Snellere builds (~2s vs ~30s)
- Geen SSR nodig — dashboard is een authenticated app
- Volledige controle over routing (React Router v7)
- Kleinere bundle door manual chunk splitting
- Geen framework lock-in
Astro (voor dashboard):
- SSR support op CF Pages
- Overkill voor een SPA — dashboard is 100% client-side
- Islands architecture niet nodig voor authenticated app
Remix/React Router framework mode:
- Server-side rendering op Workers
- Meer complexiteit dan nodig voor een dashboard
Gevolgen
Section titled “Gevolgen”- React Router v7 met
createBrowserRoutervoor routing - Zustand + SWR voor state management (geen server state framework)
- Lazy loading via
React.lazy()+Suspensevoor alle routes - Manual chunk splitting in Vite config
- CF Pages SPA redirect (
/* -> /index.html)