MkDotnet.Blazor.Live
0.1.0-preview.1
dotnet add package MkDotnet.Blazor.Live --version 0.1.0-preview.1
NuGet\Install-Package MkDotnet.Blazor.Live -Version 0.1.0-preview.1
<PackageReference Include="MkDotnet.Blazor.Live" Version="0.1.0-preview.1" />
<PackageVersion Include="MkDotnet.Blazor.Live" Version="0.1.0-preview.1" />
<PackageReference Include="MkDotnet.Blazor.Live" />
paket add MkDotnet.Blazor.Live --version 0.1.0-preview.1
#r "nuget: MkDotnet.Blazor.Live, 0.1.0-preview.1"
#:package MkDotnet.Blazor.Live@0.1.0-preview.1
#addin nuget:?package=MkDotnet.Blazor.Live&version=0.1.0-preview.1&prerelease
#tool nuget:?package=MkDotnet.Blazor.Live&version=0.1.0-preview.1&prerelease
<div align="center">
MkDotnet.Blazor.Live
Drop-in real-time presence & collaboration for Blazor — over SignalR, no JS-interop headaches.
</div>
🚧 Preview (0.1.0). APIs may still shift before 1.0. Feedback welcome.
Add "who's online", live broadcasts, and an honest reconnecting… indicator to a Blazor app in an afternoon — without hand-rolling SignalR hubs, connection lifecycles, or JavaScript glue. Pure Blazor, works across .NET 10 render modes.
Why this exists
The big component suites (Telerik, Syncfusion, MudBlazor) don't do presence or
collaboration, and the charting/grid options are JS wrappers that break under static
SSR. MkDotnet.Blazor.Live is clean Blazor that works through the .NET 10 render
modes — drop a component in and you're live.
Quickstart
1. Register the services (Program.cs):
builder.Services.AddMkDotnetLive();
// …
app.MapMkDotnetLiveHub(); // maps the SignalR hub at /_mkdotnet/live
2. Drop a room into a page:
@rendermode InteractiveServer
<LiveRoom Room="lobby" UserName="Ada">
<PresenceView />
<LiveConnectionState />
</LiveRoom>
That's it — open the page in two browsers and both users appear, with an honest Live / Reconnecting… badge.
Before / after
@* Before: hand-roll a hub, a HubConnection, reconnect handling, a presence
dictionary, join/leave plumbing, and the wiring to survive render modes… *@
@* After: *@
<LiveRoom Room="lobby" UserName="Ada">
<PresenceView />
<LiveConnectionState />
</LiveRoom>
Building custom collaborative UI? Any child of <LiveRoom> can grab the cascaded
LiveRoomContext to BroadcastAsync(...) or subscribe to BroadcastReceived:
@code {
[CascadingParameter] private LiveRoomContext? Room { get; set; }
// Room!.Users, Room!.Status, Room!.BroadcastAsync("hi"), Room!.BroadcastReceived += …
}
Free vs Pro
| Free (MIT, this package) | Pro | |
|---|---|---|
| Presence — who's online + avatars | ✅ | ✅ |
| Live broadcast helper | ✅ | ✅ |
| Connection / reconnecting UI | ✅ | ✅ |
| Single room | ✅ | ✅ |
| Live cursors / pointers | — | ✅ |
| Shared state sync | — | ✅ |
| Typing / idle / away indicators | — | ✅ |
| Redis + Azure SignalR scale-out helpers | — | ✅ |
| Multi-room, priority support | — | ✅ |
Pro is a perpetual per-developer license. Details at presence.mkdotnet.eu.
Requirements
- .NET 10
- A server-hosted Blazor render mode (Interactive Server today). The hub lives on the server; the components connect to it over SignalR.
License
MIT for the free core. © MkDotnet.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Microsoft.AspNetCore.SignalR.Client (>= 10.0.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.0-preview.1 | 0 | 6/29/2026 |
Initial preview: presence service, SignalR broadcast helper, and connection-state UI for a single room.