Yes, Create React App is deprecated. The React team announced it on February 14, 2025, saying they are "deprecating Create React App for new apps, and encouraging existing apps to migrate to a framework, or to migrate to a build tool like Vite, Parcel, or RSBuild." Your existing CRA app still builds and runs. It is in maintenance mode, and every month you stay on it you fall further behind the tooling everyone else uses.
For most single-page apps, I would move to Vite. For apps that need server rendering or SEO, move to Next.js or React Router. The rest of this post is how to choose and what it costs.
Key Takeaways
- Create React App was deprecated on February 14, 2025, and is in maintenance mode, not removed. A new version was published to work with React 19.
- The React team recommends frameworks (Next.js, React Router, Expo) or build tools (Vite, Parcel, Rsbuild).
- A pure client-side CRA app moves to Vite in days to a couple of weeks. Moving to a framework is a bigger project because it changes how the app is structured.
- Do the move before your next major dependency upgrade, so you are not debugging both at once.
What the React Team Actually Said
The official post, "Sunsetting Create React App", is short and worth reading in full. Two quotes matter:
- "Today, we're deprecating Create React App for new apps, and encouraging existing apps to migrate to a framework, or to migrate to a build tool like Vite, Parcel, or RSBuild."
- "Create React App will continue working in maintenance mode, and we've published a new version of Create React App to work with React 19."
New installs now print a warning: `create-react-app is deprecated.` with a link to react.dev. That is the whole enforcement. Nothing breaks on a date, which is exactly why teams put this off.
| Item | Date or status | Source |
|---|---|---|
| CRA deprecated for new apps | Feb 14, 2025 | react.dev |
| CRA status | Maintenance mode, works with React 19 | react.dev |
| Node.js 20 (common in older CRA setups) | End of life Apr 30, 2026 | Node.js Release |
If your CRA app is also pinned to an old Node version in CI, that clock already ran out. See Node 20 end of life.
Create React App Deprecated: Which Replacement to Pick
The React team lists three frameworks (Next.js, React Router, Expo) and three build tools (Vite, Parcel, Rsbuild). For a web app, it comes down to one question: do you need anything to run on a server?
Pick Vite if your app is a client-side SPA behind a login, a dashboard, or an internal tool. The move is mostly config: a new `index.html` entry, renaming `REACT_APP_` environment variables to Vite's `VITE_` prefix and `import.meta.env`, fixing a few import paths and SVG imports, and swapping Jest for Vitest or keeping Jest with its own config. Your component code barely changes.
Pick Next.js or React Router if you need server rendering, public pages that should rank in search, or data loading tied to routes. These are real architecture changes: routing moves to file-based or route-module conventions, data fetching moves, and some browser-only code needs guarding. I compared the two in Next.js vs Remix.
Parcel and Rsbuild are fine too. Rsbuild is attractive if you have a heavy custom webpack config, since it keeps more of that model. For most teams Vite has the largest community, which matters when something odd breaks.
My opinion: do not use the deprecation as an excuse to move a logged-in dashboard to Next.js. Go to Vite, ship it, and move pages to a framework later only if SEO or performance actually requires it.
A Concrete Version
A hypothetical SaaS dashboard on CRA: 120 components, 35 routes with React Router v6, 260 Jest tests, 18 `REACT_APP_` environment variables, Node 20 in CI, deployed as static files to a CDN.
Moving to Vite:
- Vite config, `index.html`, dev server and proxy setup: 8 hours.
- 18 environment variables renamed and every reference updated: 4 hours.
- Import fixes (SVGs as components, absolute paths, a few CommonJS packages): 12 hours.
- 260 Jest tests moved to Vitest, mostly config with about 10% needing changes (26 tests at 30 minutes): 13 hours, plus 6 hours of setup.
- CI to Node 24, build and deploy pipeline updates: 8 hours.
- Regression pass across 35 routes at about 30 minutes each: 18 hours.
Total: 8 + 4 + 12 + 13 + 6 + 8 + 18 = 69 hours. One senior React engineer finishes in about two weeks.
Moving the same app to Next.js instead would add route restructuring, data-fetching changes and server-side checks across 35 routes. At roughly 8 hours a route that is another 280 hours, which is why I only recommend it when you need what Next.js gives you.
The Honest Counterpoint
If your CRA app works, builds in an acceptable time, and nobody is fighting the tooling, there is no fire. CRA still runs, and the React team published a React 19 compatible version. Migrating a stable internal tool that ships twice a quarter is low priority.
The case for moving soon is about compounding: dependency upgrades get harder each quarter you sit on unmaintained tooling, new hires expect Vite or Next.js, and security patches in the CRA dependency tree will slow down. Plan it for a quiet sprint before it becomes a blocker for something you actually care about.
Who Should Do It
A Vite migration is a good first project for a new senior React engineer: contained, well documented, and it teaches them your app. A Next.js move is a bigger job and benefits from someone who has done it before. This React hiring guide covers what to test, and the Next.js guide covers the framework side.
Ruzora sends a vetted shortlist of senior React engineers within 72 hours. See React engineers or Next.js engineers.
Frequently Asked Questions
Is Create React App deprecated?
Yes. The React team deprecated Create React App for new apps on February 14, 2025. Existing apps keep working in maintenance mode, and a version compatible with React 19 was published.
What should I use instead of Create React App?
The React team recommends a framework (Next.js, React Router, Expo) or a build tool (Vite, Parcel, Rsbuild). For a client-side SPA, Vite is the simplest move. For server rendering or SEO, use Next.js or React Router.
How long does it take to migrate from Create React App to Vite?
For a typical SPA, one to two weeks for one senior engineer, mostly config, environment variables, imports and test setup. Component code rarely changes.
The Bottom Line
Create React App is deprecated and will not get better from here. Move SPAs to Vite this quarter, save Next.js for the apps that need a server, and give the job to someone who can finish it in two weeks. See vetted engineers.
Roberto Espinoza is CEO of Ruzora, which helps US startups hire pre-vetted senior LATAM engineers, with a vetted shortlist in 72 hours. See available engineers.
