Blazor Render Modes Explained

Server, WebAssembly, Auto and static SSR - what each render mode actually costs you, and how to pick one on purpose.
Four modes, one component model
.NET unified the Blazor hosting models behind a single component model, which is wonderful right up to the moment you have to choose one. Here is the short version.
| Mode | First paint | Interactivity | Where state lives |
|---|---|---|---|
| Static SSR | Fastest | None | Nowhere |
| Server | Fast | Over SignalR | Server memory |
| WebAssembly | Slow first visit | Local | Browser |
| Auto | Fast, then local | Server then WASM | Both |
Static server rendering
Static SSR renders the component once and ships plain HTML. No circuit, no download, no interactivity. For a blog listing page this is exactly right.
@attribute [RenderModeStatic]
<ul>
@foreach (var post in Posts)
{
<li><a href="/post/@post.Slug">@post.Title</a></li>
}
</ul>
Interactive server
Add a circuit and the component becomes interactive. Every event round-trips to the server, and the server holds your state between renders.
builder.Services.AddRazorComponents()
.AddInteractiveServerComponents();
The circuit is the unit of failure. If you cannot describe what happens to a page when its circuit drops, you have not finished designing the page.
Picking one
- Content pages - static SSR. There is nothing to interact with.
- Admin screens behind a login - interactive server. The latency is fine on a LAN and you keep full .NET on the server.
- Offline or high-latency clients - WebAssembly, and budget for the download.
- Not sure yet - Auto, and measure before you commit.
Read the official render modes documentation for the full matrix, then come back for part two, where the circuit stops being an implementation detail.
More Posts
Comments (3)
Does Auto mode make sense for an admin area that is only ever used on a fast internal network? Feels like paying the download cost for nothing.
Agreed - on a fast internal network plain interactive server is simpler and the state stays where your data is. Auto earns its keep when clients are remote.
The static SSR versus interactive server table finally made this click for me. We had every page interactive by default and wondered why memory climbed all day.
Leave a comment
No account needed — just your name and email.