Kind of annoyed at React
React’s evolution from a simple client-side UI library into an ecosystem dominated by hooks, server components, and frameworks like Next.js is leaving many developers frustrated with rising complexity and opaque mental models. Commenters highlight pain points such as overuse of `useEffect`, deprecation of Create React App, and the push toward Node-based, server-heavy setups, arguing this makes modern web apps slower, harder to reason about, and less joyful to build. Some still praise React’s ecosystem and flexibility, but many are gravitating toward alternatives like Svelte, Solid, Vue, Preact, or even plain web standards for simpler, more deterministic front ends.
Client-side React vs Server Components / Next.js
- Many feel React has “split in two”: classic client-side React vs. the new server-components/Next.js world.
- Several miss being able to ship a simple React app via CDN without Node or a full framework.
- Server Components and SSR are seen by some as overreach or scope creep; others see them as the official future, especially via Next.js.
- Some suspect server components mostly serve hosting vendors’ interests (more server compute, vendor lock-in) rather than clear app-level benefits.
Hooks and useEffect Debate
- Hooks are polarizing: some call them one of the best ideas in component frameworks; others see them as a confusing new paradigm unlike FP or OOP.
- Repeated complaints about
useEffectdriving complexity, race conditions, and “spaghetti” when overused or used for data fetching and state orchestration. - Others argue
useEffectshould be rare, used mainly for external systems/DOM APIs, with data handled by libraries (React Query, SWR, etc.). - There is disagreement even about what React itself teaches: docs both showcase
useEffectfor fetching and warn you away from it.
Complexity, DX, and Alternatives
- Several commenters say modern React apps are harder to reason about than older stacks (Backbone, simple jQuery, PHP, early Facebook).
- Others counter that complex UIs will always be complex, and React remains a good middle ground.
- Alternatives praised: Solid, Svelte, Vue, HTMX, Preact, Lit, vanilla Web Components, sometimes with Vite; many say these feel closer to “old React” or simpler mental models.
State Management and Architecture
- Critiques that React encourages colocation of business logic, data fetching, and view in giant components.
- Some advocate strict separation via Redux/MobX or external “services,” using components as pure
state → UI. - Others note Redux/MobX can also be badly abused; large teams and time pressure often drive architecture decay regardless of framework.
Tooling Changes and Communication
- Create React App is widely perceived as effectively deprecated, with no clear replacement in the official story.
- Next.js is seen as the de facto blessed path, which annoys those not building Node-based apps.
- Vite + lighter libraries (Preact, etc.) are commonly cited as a practical, modern “unofficial CRA.”
- Several criticize React’s messaging as inconsistent or opaque, contributing to confusion and frustration.