4 min read
React is stalling. The State of JS 2025 survey put React retention at 85%, but interest dropped to 27% from an already low 34% - the lowest since 2016. Also, satisfaction has dropped from 75% to 72%. Server Components are still experimental, the new compiler broke half the ecosystem for six months, and the average Next.js bundle at a typical London fintech is still 380KB on the wire. Meanwhile, the five contenders below are shipping actual production wins at the BBC, Monzo, and HMRC. If you are picking a frontend stack in late 2025 or planning a 2026 rewrite, stop defaulting to React.
Solid.js keeps the JSX and hooks model but compiles it down to fine-grained signals instead of a virtual DOM. The result is that a Solid app typically ships 30KB gzipped and beats React on every benchmark Solid's Ryan Carniato has thrown at it. The mental model is also closer to what most teams want: no useMemo, no useCallback, no re-render rules. Just reactive primitives that update only the DOM nodes that changed.
Production use is no longer fringe. The Telegraph's data team moved their election dashboards to SolidStart in 2025 and cut Time to Interactive from 2.1s to 0.6s on mid-range Android. A small Solid app looks like this:
import { createSignal } from "solid-js";
function Counter() {
const [count, setCount] = createSignal(0);
return (
<button onClick={() => setCount(count() + 1)}>
Clicks: {count()}
</button>
);
}
If your team already knows React, Solid is the lowest-risk upgrade on this list. The migration story is real - companies like Netlify have documented moving component-by-component using solid-js/compat.
Svelte 5 is the version that finally answers the "what about large apps" question. Runes ($state, $derived, $effect) replace the old reactive-statement magic with explicit, composable primitives. Rich Harris shipped this while the React team was still arguing about RSCs, and the NHS Digital design system team has been piloting it for internal tools since mid-2025.
The numbers are concrete: the SvelteKit homepage is 7KB JS gzipped. A typical React + Vite equivalent is 90KB. That is not a typo. For content-heavy sites - think GOV.UK service pages, which often have strict accessibility and performance budgets - Svelte is the obvious choice. The trade-off is ecosystem depth: you will not find a Svelte equivalent of every React library. For UK teams building internal admin tools, that is a feature, not a bug.
Qwik's core trick is that it does not hydrate. The server serialises the full application state into HTML, and the client only loads JavaScript when the user actually interacts with something. The result is that a Qwik page can reach Time to Interactive in under 100ms even on a 3G connection. Builder.io, the framework's sponsor, has the benchmarks to prove it.
Qwik City is the meta-framework, sitting somewhere between Next.js and SvelteKit in ergonomics. It is the right pick when your site is mostly read-mostly with a few interactive islands - think product catalogues, marketing pages, or the public-facing bits of a Monzo-style banking app. For a dense SPA like Figma, skip it.
Astro is not a SPA framework, and that is precisely why it is winning. Astro 5 ships zero JS by default, then lets you drop in interactive components from React, Svelte, Solid, Vue, or Preact as needed. The BBC's Prometheus team uses it for internal documentation sites; GOV.UK-style design system docs are an obvious fit.
The killer feature in 2025 is Server Islands: render interactive components on demand from a server, so the initial HTML stays flat and only the parts that need it ever ship JS. If your 2026 project is a content site with occasional interactivity - blogs, docs, landing pages, e-commerce PDPs - Astro is the sane default.
Vue has been quietly eating the mid-market for years. With 3.5 and the new Vapor mode (no virtual DOM, compiler-driven updates), Vue gets the same performance story as Solid and Svelte without giving up the Options API or the mature ecosystem. Vue's London meetup regularly pulls 200+ attendees, and Vue's share of the UK frontend job market has been climbing since 2023.
Vapor is opt-in per component, so teams can migrate incrementally. A small Vapor component looks identical to a regular Vue SFC - you just write <script setup vapor> at the top. For UK teams that want one framework that does content, SPA, and SSR well without betting on a startup, Vue 3.5 is the conservative 2026 pick.
No. React still has the largest ecosystem, the most jobs, and Meta's continued investment. But its growth is flat and its architectural bets - RSCs, the compiler - are taking years to land. The five frameworks above are not killing React; they are eating the new project market where teams get to choose.
Vue 3.5. It has the longest track record outside React, LTS-style stability, and the largest talent pool of the five. If your risk tolerance is higher, Svelte 5 is the better technical bet.
Solid. The API is closer to React, the migration story is documented, and the productivity gain is immediate. Qwik's resumability model is a deeper mental shift and pays off most for content-heavy sites.