Vite 25,978 gives you a bundler and nothing else. The moment an application needs routes, data loading or server rendering, you either assemble those yourself or start from a framework that already made the decisions. The React 7,897 documentation now recommends the second path for most new applications.
| Starter | Command | What you get | Reach for it when |
|---|---|---|---|
| Vite | npm 2,036 create vite@latest | Bundler and dev server | The app is one page |
| Next.js 10,514 | npx create-next-app@latest | Routes, SSR, server components | Content or commerce |
| React Router 139,386 | npx create-react-router@latest | Routes, loaders, actions, SSR | Data-heavy dashboards |
| Expo 6,418 | npx create-expo-app@latest | Android, iOS and web | One codebase, three targets |
| Parcel 195,638 | npm install -D parcel | Zero-config bundler | You want no config file |
| Rsbuild | npm create rsbuild@latest | Rspack-based bundler | Migrating from webpack 3,824 |
Next.js and React Router in framework mode are the two you will meet most often in job postings, and they are closer than their marketing suggests: both render on the server and both colocate data loading with routes. Next.js covers Next.js; Routing with React Router and Data Routers cover React Router, including the framework mode.
One name is missing on purpose. Create React App 190,986 , for a decade the default answer to "how do I start a React project", was sunset on 14 February 2025; it is unmaintained and never gained routing or data fetching. If you inherit a CRA project, plan a migration to Vite: the source usually moves unchanged, and the work is in index.html, environment variable prefixes (REACT_APP_ becomes VITE_) and the Jest-to-Vitest switch of Testing React Applications.