A conservative comparison of product direction. This page describes what each framework optimizes for; it does not invent benchmark claims. Use it to understand fit, not to rank speed.
Architecture Custom Elements + Declarative Shadow DOM are first-class; protocol-first contracts; the app owns routes/render; Vite, Hono, and Nitro are swappable adapters.
Rendering SSG by default, DSD/shadow default, streaming DSD, islands (client:load/idle/ visible/only), static zero-JS default.
DX JSX + Signal, definePage / defineIsland, TypeScript-first.
Lock-in Standards-based (Web Components, DSD); core protocol is runtime-free; adapters are replaceable.
Architecture File-based routing, React Server Components, app router, server actions.
Rendering SSR / SSG / ISR, RSC streaming, client components hydrated on the client.
DX React/JSX, large ecosystem, first-class on Vercel.
Lock-in React runtime plus Next.js abstractions; platform affinity with Vercel.
Architecture File routing, Vue Single-File Components, Nitro server engine.
Rendering SSR / SSG / ISR, hybrid rendering, client hydration.
DX Vue SFCs, auto-imports, convention-driven.
Lock-in Vue runtime plus Nuxt and Nitro conventions.
Architecture File routing, Svelte components, Vite, adapter-based deployment.
Rendering SSR / SSG / CSR, progressive hydration, no virtual DOM.
DX Svelte compiler, concise syntax, small runtime.
Lock-in Svelte compiler/runtime; deploy adapters are swappable (lower lock-in than Next.js).
Architecture File routing, multi-framework islands, content collections.
Rendering Static-first, island hydration, server islands, View Transitions.
DX .astro components, framework-agnostic islands, Markdown/MDX.
Lock-in Low — islands can be any framework; some Astro-specific component syntax.
Architecture File routing, Preact islands, Deno-native, zero build step.
Rendering SSR with Preact islands; minimal client JavaScript by default.
DX Preact/TypeScript, Deno runtime, no bundler config.
Lock-in Deno runtime plus Preact; islands are Preact components.
Architecture Base class for Custom Elements with reactive properties; no router/SSR built in.
Rendering Client-side Web Components; pairs with any bundler or meta-framework for SSR.
DX TypeScript, decorators, tagged-template rendering.
Lock-in Low — pure standards Web Components; no framework of its own.
Architecture Custom Elements, file-based routes, Node/Express-style handlers.
Rendering SSR to Web Components, zero-JS by default, progressive enhancement.
DX HTML-first, single-file components, minimal abstraction.
Lock-in Low — standards Web Components; Enhance adds helpers, not a runtime.
Architecture Compiler that outputs standards Web Components; framework-agnostic output.
Rendering Client Web Components with prerendering, lazy loading, internal virtual DOM.
DX TSX, decorators, design-system oriented tooling.
Lock-in Output is lock-in-free Web Components; authoring uses the Stencil toolchain.