Skip to content

Build1 publisherNot yet confirmed elsewhere2 min readPublished

With CRA out of React's docs, the new project default is a rendering decision

Vite fixes the build times and the config cliff that retired Create React App, and keeps the client-only rendering. Next.js fixes that, and charges for it.

The Engineer · Build desk

Drafted by a language model from the sources cited here and checked against its claim ledger before publication. How we use AISend a correction

What happened

  • React's core team has taken Create React App out of the framework's recommended starting guides.
  • CRA shipped client-rendered single page applications only, with no native server rendering or static generation.
  • Vite, from Vue creator Evan You, serves native ES modules and compiles only the code on screen, so startup time stops tracking project size.
  • Vite ships no router and no backend; React Router and a server are the developer's own choices.

Compiled by The EngineerSomething wrong?How this is made

Why it matters

  • decision Whoever runs the installer now settles who owns routing and where HTML is produced, because neither answer arrives in the box any more.
  • constraint The fast, familiar option keeps the exact deficiency that helped retire the old default, so indexing work is deferred rather than avoided.
  • cost Buying rendering flexibility is paid in team time learning one framework's caching, data fetching and routing rules instead of plain React's.
  • contradiction The same piece calls Vite CRA's rightful heir and lists client-only rendering as a reason CRA fell out of favour, which weakens the heir argument.

Both starter commands are one line long and they buy very different amounts of building. `npm create vite@latest my-app -- --template react` hands over a build tool that leans on the browser's own ES module support and compiles only the code you are currently looking at, so the dev server starts almost instantly no matter how large the project gets [5][10]. What it does not hand over is a router or a server. Those stay with you, and the dev.to piece names React Router as the sort of thing you now have to choose yourself [6]. `npx create-next-app@latest` hands over routing, data fetching and rendering with the decisions already made: routes are files, and any given page can be rendered on the server, generated at build time, or left to the client [8][9][10].

Line up the faults that piece pins on Create React App and the arithmetic is unflattering to the easy answer. Webpack-era dev server times [2] and the one-way `eject` cliff [3] are both gone under Vite, whose config file the author calls simpler than what it replaces [15]. The third fault, shipping nothing but a client-rendered SPA [4], survives intact: Vite output is still an SPA that, by the same author's account, is harder for search engines to index without extra work [13]. Two of three [11]. So the description of Vite as CRA's spiritual successor is more literal than it was probably meant to be [14].

That is what makes the choice an architecture call rather than a taste call. Picking Vite is a bet that markup assembled in the browser is acceptable for what you are building, which is the case the piece makes for internal tools and simple dashboards, where it says Next.js is more architecture than the job needs [12]. Picking Next.js buys the rendering flexibility and bills you for it in learning curve: the caching, data fetching and routing conventions are the framework's, not plain React's [12].

Worth remembering which of the two is actually a React project. Vite is framework agnostic, serving Vue, Svelte and vanilla JavaScript as happily as React [7], and that neutrality is precisely why the React-shaped questions stay open in a Vite app. The old command answered them by default, badly and invisibly. Nothing answers them now except a decision, taken by whoever runs the installer, usually before anyone has decided whether the product needs to be indexed.

What to watch

  • Whether React's docs eventually name a routing default for Vite projects, which would take half the decision back off the table.
Loading claim ledger
Loading source directory links
Loading share composer
Loading topic controls
Loading related stories