Ruzora
Engineering Culture

Create React App Deprecated: What to Use Instead

The React team deprecated Create React App on February 14, 2025. Here is what that means for an existing CRA app, Vite vs Next.js as a replacement, and what the move costs.

RE

Roberto Espinoza

CEO, Ruzora

October 2, 20266 min read

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.

ItemDate or statusSource
CRA deprecated for new appsFeb 14, 2025react.dev
CRA statusMaintenance mode, works with React 19react.dev
Node.js 20 (common in older CRA setups)End of life Apr 30, 2026Node.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.

React code open in an editor
React code open in an editor

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.

RE

Roberto Espinoza

CEO, Ruzora

Roberto is the founder and CEO of Ruzora. He works directly with US startup founders and CTOs on staff-augmentation and software-factory engagements, and personally reviews senior engineer placements.

AI-vetted engineers, ready now

Your next senior engineer is already vetted and waiting.

It starts with a single call. 72 hours later, you're reviewing scored candidates who already match your stack and culture.