React has grown beyond its original promise and it's causing more harm than good
Critiques of Reactâs growing complexity argue that a tool originally designed for managing UI state in rich web applications has expanded into an ecosystemâNext.js, routing, state management, SSR, build toolingâthat is often misapplied to simple sites and proves hard to maintain. Many responders counter that React itself remains a relatively small, stable library and that most pain comes from how teams layer additional dependencies, misuse hooks, or skip core web fundamentals in favor of âReact-onlyâ skills. Alternatives like Svelte, Vue, Solid, HTMX, Astro, Remix, and traditional serverârendered frameworks are frequently cited as better fits for simpler or SEOâheavy projects, underscoring a broader theme: pick tools based on problem complexity rather than defaulting to React for everything.
Role of React and appropriate use
- Many argue React is excellent for complex, stateful web applications, but a poor fit for simple or mostly static sites.
- Several commenters emphasize that criticism like âbad for static pagesâ is mis-aimed: React was not designed for basic sites.
- Some see React as the first JS UI model that feels wellâengineered for the web (oneâway data flow, âUI as a function of stateâ).
Complexity, churn, and ecosystem vs core
- Repeated theme: the ecosystem (tooling, routing, CSSâinâJS, build systems, state libraries) churns far more than Reactâs core API.
- Some say you can use React with just components,
useState, and plain CSS; others counter that realâworld apps end up depending on many unstable tools. - Several people feel React and especially modern Next.js have become overcomplicated, with too many ways to do the same thing.
Performance and the virtual DOM
- One side: React is âas fast as anything elseâ for typical apps; virtual DOM was a major practical improvement vs stringâbased DOM updates and jQuery.
- Other side: poorly structured React apps can feel slow (e.g., laggy inputs), and virtual DOM is not inherently faster than direct DOM manipulationâjust a way to make âre-render everythingâ viable.
- Some note early marketing oversold the performance angle, leading to lasting misconceptions.
State management and hooks
- Hooks split opinion: many find them elegant and testable; others see
useEffect/useMemoas new âfootgunsâ replacing old classâcomponent quirks. - External state tools (Redux, sagas, RxJS) are often blamed for complexity; some advocate minimal global state or eventâdriven patterns, which others warn can become untraceable.
Alternatives and framework choices
- Svelte, Solid, Vue, Preact, Astro, Remix, Fresh, and htmx are mentioned as lighter, more focused, or more comprehensible options.
- Thereâs a recurring âframework lifecycleâ observation: tools start simple, gain features, become bloated, and are replaced by the next âsmall, fastâ contender.
Developer skills & fundamentals
- Multiple commenters report âReact developersâ who lack basic JS/DOM/CSS knowledge.
- Some argue you should understand at least one layer below your abstraction; others say tools can still be used effectively without deep internals, though leaky abstractions (like regex or React) complicate this.