The Sunsetting of Create React App
On February 14, 2025, React officially deprecated Create React App (CRA), marking the end of an era for React developers. For years, CRA was the go-to tool for bootstrapping new React projects.
Why is Create React App Being Deprecated?
React ecosystem has evolved significantly since CRA’s introduction in 2016. Modern frameworks and build tools have surpassed CRA in both performance and flexibility. With no active maintainers and better alternatives available, the React team decided to retire CRA. The React team is encouraging developers to migrate to frameworks like Next.js or build tools like Vite.
Also because:
- CRA does not provide a routing system
- CRA lacks optimized data-fetching strategies
- CRA ships apps as a single JavaScript bundle, which can result in longer load times. Modern frameworks automatically handle code splitting
- CRA has lacked active maintainers
What now?
Starting today, developers installing Create React App will see a deprecation warning:
create-react-app is deprecated.
You can find a list of up-to-date React frameworks on react.dev
For more info see: react.dev/link/cra
CRA will still function in maintenance mode and has been updated to support React 19. However, no new features will be added, and developers are strongly encouraged to migrate to modern solutions.
How to Migrate Away from Create React App
You can visit the official guide at the React blog post here.
Final Thoughts
Our tip: If you're looking for the simplest and most efficient way to set up a new React project after Create React App's deprecation, React + Vite
is the way to go.
What are your thoughts on this change? Let’s discuss in the comments! 🚀
Top comments (50)
React + vite or react + next which one is more future secure?
Hello, Amir! I think it depends on your project’s needs.
React
+Vite
is awesome for fast development. It's the best choice for SPAs & smaller projects IMO. On the other hand,React
+Next
is best for scalability because of it's server-side rendering(SRR) and static generation(SSG) and built-in routing. I don't think you can go wrong whichever one you choose. Thanks for the comment 🚀For big projects nextjs, for quick testing or static pages vite
Agree @programordie
Webassembly
For sure!
Definitely next js!!
It's sad that CRA is deprecated, but I'm excited to try Next.js and Vite for better one
Yes, it's sad. To be honest, I haven't used it in a long time. I remember using it when I started learning React.js. I always use React + Vite + Typescript. However, there is some nostalgia because the first React app I built was generated using CRA :(
I'm the same way. Using Next.js with TypeScript now, and React + TypeScript + Vite if Next.js isn't needed, but CRA still gives me nostalgia.
Just deprecate react already. Vue is the better
I like Vue, but what are the key things because you think it's better?
Omg 100%
The slowest websites are all React.
I don't disagree. However, Blazor WebAssembly would like to talk to you ;P
Now where does this leave react native?
Hello! I have good news for you 🙂
React Native remains unaffected by CRA's deprecaton because it has its own ecosystem.
Which is metro bundler
Yep
Metro with react 19?
Im coming from NextJS (used at work for an e-commerce platform), and have to say I'm really liking the simplicity of react-router v7 over the vastly many concepts you have to know in nextjs.
Like for example?
I like that:
React router provides SSR with actions
NextJS has something similar to react-router's actions with
getServerSideProps
andgetStaticProps
, but I never managed to get the caching mechanism to work properlyYou might want to revisit Next.js sometime. I don't know whether it'll be exactly to your taste. But Next.js' old pages directory API (the one with getServerSideProps) and the new app directory API are so different they might as well be completely different frameworks.
Caching is still changing so you might want to wait, but it's already very different from what you remember. You are limited to file based routing, but having layouts changes things a lot. And stuff like getServerSideProps is completely replaced with React's new RSC components and Server Actions.
I haven’t used Remix at work yet due to company needs but this should give some insight:
remix.run/blog/remix-vs-next
Should i give up learning react ? 🤔
No, just learn it the right way. I suggest React + Vite + TypeScript + Tailwind + Sass
Ahh i see, thank you so much
Disagree on learning tailwind and sass. Learn css, which is a transferable skill for the web and then have a look at any styling solution for react except tailwind 😛 I recommend pandacss.
CSS must be known. That's the default. That's why I didn't mention it
You don't need to know any CSS for tailwind, which is already happening... People don't know how to do the simplest things with CSS, all they know is limited tailwind utility class names.
I would change it to:
You don't need to know advanced CSS to use Tailwind
Thanks for sharing. Am currently using react + vite, it performance is outstanding and awesome.
You're welcome! Yes, it's performance is awesome you will see.
Tanstack start is something to keep your eye on.
Yes! I used it to implement a frontend for a big bank in Serbia and it's awesome! The only negative issues I had were the integration tests. They are not yet supported.
But be careful! It can use over 300KB of application bundle size.
@designbyonyx
Vue.js is the future, thanks to react!
Hahaha, RIP React developers. Just kidding, of course
nice