Compare how React, Vue, and Angular handle the same features to decide which framework fits your project.
Learn how different frameworks structure a to-do app by reading and running their implementations side-by-side.
Use as a benchmark to measure UI performance differences across frameworks and browsers.
TodoMVC is a reference project that implements the same simple to-do list application, add tasks, mark them complete, filter and delete them, in many different JavaScript frameworks. The purpose is to give developers a fair, side-by-side comparison of how each framework approaches the same problem, so they can evaluate syntax, structure, and complexity before committing to one for a real project. Each implementation follows an identical specification for the app's behavior: the same features, the same routing, the same keyboard interactions. This makes comparing them meaningful rather than like comparing different problems. The maintained examples currently include React, Vue, Angular, Svelte, Preact, Lit, and React with Redux, all kept up to date with their latest stable releases. The repository also includes older implementations for historical reference. A Cypress test suite validates that every example works correctly and behaves identically. A developer who is evaluating whether to use React versus Vue for a new project, for example, can look at the TodoMVC implementations of each and see how adding a task or toggling a filter is expressed in each framework's idiom. TodoMVC has also become part of the Speedometer browser benchmark used to measure UI performance across major browser engines. The project is written in JavaScript, and each example can be built and run locally by installing its dependencies and running a build step.
Generated 2026-05-18 · Model: sonnet-4-6 · Verify against the repo before relying on details.