Resources

Curated, with judgment attached

24 references organized by the problem you're actually having, not by content type. Every link carries a note on why it earns a place here. Found something that belongs on this list?Open a PR; the directory is itself open source.

Sizing & hosting Blazor Server

Start here when the question is "how many nodes / how much memory / will it hold?"

Host and deploy server-side Blazor (Microsoft Learn)

The canonical starting point: circuit memory behaviour, scalability guidance, and load-balancer/affinity requirements. Read this before trusting any sizing rule of thumb.

ASP.NET Core Blazor SignalR guidance (Microsoft Learn)

Circuit handler configuration, reconnect behaviour, and the knobs (DisconnectedCircuitMaxRetained, JSInterop timeouts) that directly drive the disconnected-circuit memory line in any capacity model.

Blazor Server threat mitigation & circuit lifecycle (Microsoft Learn)

Reads as a security doc but doubles as the best description of resource exhaustion risks: per-circuit memory, connection limits, and denial-of-service surface.

Blazor Server Capacity Calculator (this site)

Our interactive model for nodes, SignalR units, memory, and message budget. Open source; the formulas are documented in the tool's glossary.

Azure SignalR Service

Unit economics decide real cost at scale; connections and messages are both metered.

Azure SignalR Service performance guide (Microsoft Learn)

Connection counts and message throughput per unit, with methodology. The numbers behind every 'connections per unit' assumption; verify against your tier before committing.

ASP.NET Core SignalR hosting and scaling (Microsoft Learn)

The decision doc for Azure SignalR Service vs. self-managed Redis backplane: sticky sessions, scale-out patterns, and their trade-offs.

Azure SignalR Service pricing

Included messages per unit per day by tier. SKU terms change; this page, not a blog post, is the source of truth for the message-budget inputs.

Memory & diagnostics

You can't size what you haven't measured. These are the measurement tools.

.NET diagnostics tools overview (Microsoft Learn)

Map of the whole dotnet-* diagnostics family (counters, trace, gcdump, dump) and when to reach for each.

dotnet-counters (Microsoft Learn)

First tool out of the bag in a soak test: live GC heap size, working set, and SignalR connection counters with zero profiler overhead.

dotnet-gcdump (Microsoft Learn)

Heap snapshots you can diff: the practical way to attribute per-circuit memory cost and catch circuit-scoped leaks.

Garbage collection fundamentals (Microsoft Learn)

Server GC vs. workstation GC and generation behaviour: context you need before interpreting any memory number on a Blazor Server node.

Memory management best practices for ASP.NET Core (Microsoft Learn)

The classic traps (captured HttpContext, unbounded caches, large object heap churn), most of which get amplified per-circuit in Blazor Server.

PerfView (GitHub)

Old UI, unmatched depth. When dotnet-counters says 'memory grows' and gcdump says 'somewhere in here', PerfView tells you exactly where.

David Fowler: ASP.NET Core Diagnostic Scenarios (GitHub)

Async and memory anti-patterns with corrected examples, from the ASP.NET architect. Many 'Blazor is slow' cases are actually one of these.

Load & soak testing

A capacity plan is a hypothesis until a soak test confirms it.

crank: .NET benchmarking infrastructure (GitHub)

The load infrastructure the ASP.NET team itself uses for TechEmpower runs. Steeper setup than k6, but it speaks SignalR.

k6 (Grafana)

Scriptable load testing with WebSocket support. Good for driving realistic SignalR connection ramps; pair scenarios with dotnet-counters on the server side.

NBomber

Load testing in C#/F# that lets .NET teams write scenarios in the language they know, including against SignalR hubs with the real client library.

Azure Load Testing (Microsoft Learn)

Managed option when you need geographic scale or CI/CD-integrated load gates without owning the injector fleet.

.NET performance engineering

Broader .NET performance craft that pays off in every Blazor workload.

Stephen Toub: Performance improvements in .NET (annual series)

The annual deep-dive is the single best education in how .NET actually executes. Read the newest edition; skim earlier years for the cumulative picture.

BenchmarkDotNet (GitHub)

The standard for micro-benchmarks. Use it to settle 'is this render path/allocation pattern faster' arguments with data instead of opinion.

ASP.NET Core Blazor performance best practices (Microsoft Learn)

Component-level rendering optimizations: virtualization, ShouldRender, event throttling. This is the per-circuit CPU/allocation side of the scaling story.

Community

Where Blazor practitioners actually compare notes.

Awesome Blazor (GitHub)

The community's index of Blazor libraries, tools, and articles. Broad rather than performance-focused, but the standard first stop.

.NET Community Standups

The ASP.NET/Blazor standups are where roadmap and performance work get discussed months before documentation lands.

.NET Blog: ASP.NET Core & Blazor posts

Release-cycle posts routinely include Blazor scalability changes (rendering modes, SignalR improvements) worth folding into capacity assumptions.