Create React App (CRA) is an officially supported toolchain for setting up new single-page React applications with zero build configuration. It was created by Facebook to solve the overwhelming complexity of configuring Webpack, Babel, ESLint, and other build tools that developers had to wrestle with before writing a single line of React code. CRA provides a single command that scaffolds a fully configured React project with a development server, production build pipeline, testing setup, and sensible defaults that work out of the box.
Create React App abstracts away the underlying build toolchain, providing hot module reloading for rapid development, optimized production builds with code splitting and minification, built-in support for CSS Modules, Sass, and CSS-in-JS, TypeScript support, environment variable management, and a test runner based on Jest. It enforces a consistent project structure and build configuration across teams without requiring manual Webpack or Babel configuration. The tool also supports progressive web app features, proxy configuration for API development, and import aliasing.
Create React App has been the standard starting point for millions of React projects since its introduction, particularly for learning React, building prototypes, and creating client-side single-page applications. However, it is now considered legacy by the React team, who recommend frameworks like Next.js, Remix, or Vite-based setups for new projects. CRA remains relevant for existing projects and educational contexts, but developers starting new applications are encouraged to use modern alternatives that support server-side rendering, streaming, and the latest React features.