ADR03 - Frontend Technology
Title
Decision to Choose the System’s Frontend Technology
Status
accepted
Context
We need a frontend framework to build the user interface for the MovieTracker application.
The frontend must:
provide a responsive UI for browsing and managing a movie watchlist
integrate cleanly with the REST backend, including async data fetching
enable rapid iteration within a small team
support a scalable component-based architecture
Alternatives considered included:
Vue.js (smaller ecosystem and less industry adoption)
Angular (heavyweight and steep learning curve for this project size)
Svelte (limited ecosystem maturity)
Decision
We chose React with Vite and TypeScript. Its declarative, component-based model, large ecosystem,
and strong community support make it a pragmatic and future-proof choice.
Consequences
Easier:
Fast development with reusable components and a rich library ecosystem
Clean REST integration via fetch/axios and React Query for async state
TypeScript support improves code quality and reduces runtime errors
More difficult:
Architectural decisions (state management, routing) must be made explicitly and kept consistent
JSX may require ramp-up time for developers new to React
Bundle size must be actively managed through code splitting and lazy loading