Your app doesn't stop working. Create React App continues in maintenance mode, but it has no active maintainers, and the React team deprecated it on 14 February 2025. They encourage existing apps to migrate to a framework, or to a build tool such as Vite, Parcel or RSBuild. For an app that's only a React frontend, moving to Vite is usually the smaller step: mostly configuration, not a rewrite.
What's the problem
Your app was started with Create React App (react-scripts). Now you see deprecation warnings, npm audit reports problems in its dependencies, builds fail on newer Node versions, or a developer tells you it all needs replacing. You want to know how urgent it is and what it involves.
Why it happens
- Nobody is actively maintaining it. Create React App bundled a fixed set of build tools. With no active maintainers, those tools fall further behind every month.
- Its dependencies age. Old build tools bring old packages with published vulnerabilities, and conflicts with newer libraries.
- It hides its configuration. Everything lived inside
react-scripts, so moving away means setting up a few things CRA used to do for you.
How to fix it
Moving a typical CRA app to Vite:
- Do it on a branch and keep the old setup working until the new one passes your tests.
- Install Vite and its React plugin, and add a small
vite.config.js. - Move
index.htmlfrompublic/to the project root, and add a script tag that loads your entry file (usuallysrc/index.jsx). - Rename environment variables. CRA reads variables starting
REACT_APP_fromprocess.env. Vite reads variables startingVITE_fromimport.meta.env. Update both the names and the code that reads them. - Update the scripts in
package.json(dev,build,preview) and removereact-scripts. - Fix what the build reports: usually file extensions (JSX in
.jsfiles), SVG imports and absolute import paths. - Update your hosting. The build output folder changes (Vite outputs to
distinstead ofbuild), and so do the environment variable names. - Test every main flow, then deploy.
When to call Preventionlabs
If the app is small and the build passes after these steps, you're done. Call us when the CRA app is also years behind on React, routing and everything else, and the migration turns into untangling all of it at once. A resurrection delivers an app that builds and starts on maintained dependencies, deployed in your own hosting account, with the user flows you list working end to end.
Submit your project for a free assessmentFree assessment. $10,000 AUD flat to get it live, only if we take it on and you go ahead.
Sources
- React: Sunsetting Create React App (14 February 2025)official blog
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.
- React: Sunsetting Create React App (14 February 2025)official blog
However, since Create React App currently has no active maintainers, and there are many existing frameworks that solve these problems already, we’ve decided to deprecate Create React App.
- React: Sunsetting Create React App (14 February 2025)official blog
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.
- Create React App: Adding Custom Environment Variablesofficial docs
By default you will have NODE_ENV defined for you, and any other environment variables starting with REACT_APP_.
- Vite: Getting Started: index.html and Project Rootbuild tool docs
One thing you may have noticed is that in a Vite project, index.html is front-and-central instead of being tucked away inside public.
- Vite: Build Options: build.outDirbuild tool docs
Default: dist Specify the output directory (relative to project root).
- Create React App: Deploymentofficial docs
npm run build creates a build directory with a production build of your app.