ADR-003 — Vite as bundler
Status · Superseded by ADR-012 (SvelteKit, which bundles via Vite — same answer, decided downstream) Date · 2026-04-01 · Superseded April 2026 TA anchor · §stack
Context
A bundler is needed to handle ES modules, asset bundling (fonts, textures, logos), and production builds.
Decision
Vite.
Rationale
Fast dev server with native ES module support. Zero-config for simple projects. Good Three.js compatibility. Widely used and well-maintained. The prototype code uses vanilla ES modules — Vite handles this without configuration.
Alternatives considered
- Webpack — more configuration overhead; slower dev server; no clear benefit for this project's size.
- esbuild directly — lacks the dev server and HMR that make development practical.
- No bundler (ES modules served directly) — works for development; breaks for production asset bundling, code splitting, and offline support.
Consequences
Positive: fast dev iteration; minimal configuration; handles asset pipeline cleanly. Negative: Vite major versions occasionally have breaking changes; pin the version.