Skip to content

ADR-002: Next.js naar Vite SPA

Het dashboard wordt een Vite 6 Single Page Application met React 19, in plaats van een Next.js app.

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).

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
  • React Router v7 met createBrowserRouter voor routing
  • Zustand + SWR voor state management (geen server state framework)
  • Lazy loading via React.lazy() + Suspense voor alle routes
  • Manual chunk splitting in Vite config
  • CF Pages SPA redirect (/* -> /index.html)