Skip to content

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.

Orrery — architecture documentation · MIT · No tracking