BlazorChat 1.3.1

dotnet add package BlazorChat --version 1.3.1
                    
NuGet\Install-Package BlazorChat -Version 1.3.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="BlazorChat" Version="1.3.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="BlazorChat" Version="1.3.1" />
                    
Directory.Packages.props
<PackageReference Include="BlazorChat" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add BlazorChat --version 1.3.1
                    
#r "nuget: BlazorChat, 1.3.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package BlazorChat@1.3.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=BlazorChat&version=1.3.1
                    
Install as a Cake Addin
#tool nuget:?package=BlazorChat&version=1.3.1
                    
Install as a Cake Tool

BlazorChat - Real-Time Chat for Blazor

Drop-in Chat Widget • SignalR • Emoji Reactions • Themeable

License .NET

🚀 Quick Start

dotnet add package BlazorChat

Register the in-memory service (demos/testing):

// Program.cs 
using BlazorChat.Services;

builder.Services.AddSingleton<IChatService, InMemoryChatService>();

Add the widget to any interactive Razor component:


@page "/my-chat" 
@rendermode InteractiveServer

<ChatWidget ThreadId="project-alpha-general" 
			ChatSender="@currentUser"  
			ThreadTitle="Project Alpha Chat" />
@code { 
	private ChatSender currentUser = new() { Id = "user123", 
											 DisplayName = "Sam Wilson", 
											 AvatarUrl = "https://i.pravatar.cc/150?img=11" }; 
}

Note: InMemoryChatService is for demos only. For production, use BlazorChat.Server.SqlServer with HubUrl="/chathub".

🎯 Features

  • Real-time Messaging — instant delivery via SignalR
  • Emoji Reactions — react to any message
  • Typing Indicators — shows who's typing
  • Active User Presence — live count and user list
  • Message Editing & Deletion — soft-delete tombstones with undo
  • Reply to Message — threaded context
  • Themeable — CSS variables, built-in presets (Default, Dark, Teams, Slack), or custom ChatTheme
  • Backend Agnostic — implement IChatService for any database

📖 Parameters

Parameter Type Description
ThreadId string Required. Unique conversation identifier
ChatSender ChatSender Required. Current user
HubUrl string SignalR hub URL — only needed with BlazorChat.Server (default: /chathub)
ThreadTitle string Header title
ThemePreset ChatThemePreset Built-in theme (Default, Dark, Teams, Slack)
CustomTheme ChatTheme Custom theme override
WidgetWidth / Height string Widget dimensions (e.g. "500px", "100%")
BubbleBackgroundMine / Other string Bubble CSS colors
AutoCreateChatService bool Auto-create SignalRChatService if none injected (default: true)

🏢 Production — BlazorChat.Server

For production with persistence, add BlazorChat.Server.SqlServer:

  • Complete SignalR hub infrastructure
  • SQL Server persistence (included SQL scripts)
  • Extensible IChatRepository / IChatPresenceStore interfaces
  • 30-day free trial

Pricing & details →

📜 License

BlazorChat (this package) is GPL v3 — free and open source. Modifications to BlazorChat itself must remain open-source under GPL v3.

BlazorChat.Server requires a commercial license.

You can use BlazorChat with your own IChatService implementation without purchasing BlazorChat.Server.


Copyright (C) 2024-2026 LoneWorx LLC

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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
1.3.1 23 3/15/2026
1.3.0 37 3/13/2026
1.2.9 75 3/11/2026
1.2.8 75 3/10/2026
1.2.7 75 3/9/2026
1.2.6 73 3/8/2026
1.2.5 77 3/8/2026
1.2.4 78 3/8/2026
1.1.0 115 2/28/2026
1.0.2 103 2/24/2026
1.0.1 102 2/24/2026
1.0.0 112 2/24/2026

v1.3.1 (2026-03-14):
- Fixed: Dark mode text visibility in message editor (inherits BlazorRTE contenteditable fix)
- Updated: BlazorRTE dependency with dark mode improvements

v1.3.0 (2026-03-12):
- Added: .NET 8 and .NET 9 multi-target support
- Added: Embedded debug symbols and SourceLink for consumer debugging
- Fixed: README — corrected quick start example, updated pricing links, removed stale changelog

v1.2.9:
- Updated: BlazorRTE dependency with contenteditable bug fixes for font family and font size dropdown selections

v1.2.8:
- Fixed: Send message on Enter key reliability improvements

v1.2.7:
- Fixed: Emoji reactions replacing each other when multiple different emojis added to the same message

v1.2.6:
- Added: Hover/focus affordance for the active users toggle button (.people-btn)
- Fixed: Active users dropdown panel — styled list of connected users anchored to the chat header
- Fixed: Styled tooltip on the active users badge now matches the BlazorRTE toolbar tooltip (data-tooltip pseudo-element) instead of the unstyled native browser title tooltip

v1.2.5:
- Fixed: Emoji reactions not appearing under message bubbles when using InMemoryChatService directly (without a SignalR hub)
- Fixed: RestoreMessageAsync signature mismatch with IChatService interface — undo-delete was silently no-op in InMemoryChatService

v1.2.4:
- Fixed: BlazorChat.Shared is now declared as a proper package dependency — resolves assembly-not-found errors when consuming BlazorChat from NuGet
- Fixed: BlazorChat.Shared models (ChatMessage, ChatSender, ChatReactionSummary, etc.) are now automatically restored in consumer projects