Blazor WASM vs Server vs Hybrid: Which Render Mode Should You Use?
Khalid Abuhakmeh lays out the four render modes a single Blazor Web App can choose per page or per component since .NET 8 — Static SSR, Interactive Server, Interactive WebAssembly and Auto — plus Blazor Hybrid. The post weighs each mode's costs and maps common scenarios to a recommended choice.
Key points
- The render mode is now a per-component decision, swappable with a single directive such as `@rendermode="InteractiveServer"`.
- Interactive Server gives the fastest interactivity but keeps circuit state per user in memory and stalls the UI when the connection drops.
- Interactive WebAssembly keeps no secrets on the client: connection strings and API keys belong behind an API.
- Auto decides when a component first loads, never switches mid-session, and rules out server-only dependencies.
- Components using WebAssembly or Auto must live in the separate `.Client` project, and prerendering is on by default for interactive modes.
- Blazor Hybrid runs Razor components inside a MAUI app through BlazorWebView, with no WASM download and no SignalR circuit.
Since .NET 8 a Blazor Web App picks a render mode per page or component via the `@rendermode` directive, replacing the old Server vs WebAssembly project split. Interactive Server runs C# on the server over a SignalR circuit: tiny download and direct data access, but a round trip per interaction and memory per user. Interactive WebAssembly downloads the runtime and runs in the browser, good for offline and CDN hosting, though the first load is slow and nothing on the client stays secret.
Interactive Auto serves the first visit from the server and caches WASM in the background, choosing per component and requiring code that works in both places. Static SSR stays cheapest for content pages, and Blazor Hybrid runs components inside MAUI through BlazorWebView for installable apps.
Real-world use
- An internal admin panel serving nearby users that talks straight to the database (Interactive Server)
- A field-workforce PWA that must run offline and be hosted as static files on a CDN (Interactive WebAssembly)
- A general-purpose SaaS dashboard that should feel fast on first visit and offload the server later (Interactive Auto)
- SEO-driven marketing and documentation pages with one interactive island dropped in (Static SSR)
- An installable desktop app shipped to Windows, macOS, iOS and Android using web skills (Blazor Hybrid)
Why it matters
The render mode choice decides where your costs and constraints live: server memory and latency for Interactive Server, first-load time and zero client-side secrets for WebAssembly. Because it is now a per-component directive, you can change your mind later without rebuilding the project.