BlazorDeveloperTools 1.0.0-beta.4
See the version list below for details.
dotnet add package BlazorDeveloperTools --version 1.0.0-beta.4
NuGet\Install-Package BlazorDeveloperTools -Version 1.0.0-beta.4
<PackageReference Include="BlazorDeveloperTools" Version="1.0.0-beta.4" />
<PackageVersion Include="BlazorDeveloperTools" Version="1.0.0-beta.4" />
<PackageReference Include="BlazorDeveloperTools" />
paket add BlazorDeveloperTools --version 1.0.0-beta.4
#r "nuget: BlazorDeveloperTools, 1.0.0-beta.4"
#:package BlazorDeveloperTools@1.0.0-beta.4
#addin nuget:?package=BlazorDeveloperTools&version=1.0.0-beta.4&prerelease
#tool nuget:?package=BlazorDeveloperTools&version=1.0.0-beta.4&prerelease

Docs & Live Demo
Blazor Developer Tools
The first visual DevTools for Blazor. See your component tree, profile renders, understand why components re-render. No more console.log debugging. <img width="1649" height="852" alt="BDT beta 1 screenshot - 1" src="https://github.com/user-attachments/assets/b4723732-091a-48a8-aee4-dd775d4066a7" />
What's New in v1.0.0-beta.x
This release is a complete architectural rewrite with powerful new features:
- 🧩 Component Tree - Visualize your entire Blazor component hierarchy
- ⏱️ Timeline Profiler - Record and analyze component renders with a visual flamegraph
- 💡 "Why Did This Render?" - Click any render event to see exactly what triggered it
- 📊 Ranked View - See which components render most often and take the longest
- 🔧 Works With Any Component - No code changes required for basic tracking
- ⚡ Enhanced Metrics - Opt-in to
BlazorDevToolsComponentBasefor deep lifecycle timing
Features
- 🔍 Component Tree Visualization - See your Blazor component hierarchy in Chrome/Edge DevTools
- 🎯 Element Picker - Click any element on the page to identify its Blazor component
- 📁 File Path Display - See which .razor file each component comes from
- ⏱️ Timeline Profiler - Record, analyze, and visualize component render performance
- 🔥 Flamegraph View - Visual swimlane timeline of all component events
- 📈 Performance Rankings - Identify your slowest components at a glance
- 🎨 CSS Isolation Support - Full support for Blazor CSS isolation
Supported Render Modes
⚠️ Currently, Blazor Developer Tools only supports Blazor Server render mode. Support for WebAssembly and Auto modes is planned for future releases.
Installation
1. Install the NuGet Package
dotnet add package BlazorDeveloperTools
2. Register the Services
Add this line to your Program.cs:
builder.Services.AddBlazorDevTools();
3. Install the Browser Extension
- Chrome: Chrome Web Store
- Edge: Edge Add-ons
4. That's it!
Open your Blazor app, press F12, and look for the "Blazor" tab in DevTools.
Usage
Basic Tracking (Zero Config)
Once installed, BDT automatically tracks all components. No code changes needed!
- Run your Blazor app
- Open Chrome/Edge DevTools (F12)
- Navigate to the "Blazor" tab
- Explore the Components tree or record a Timeline profile
Enhanced Tracking (Opt-in)
For detailed lifecycle metrics, inherit from BlazorDevToolsComponentBase:
@inherits BlazorDevToolsComponentBase
<h1>My Component</h1>
@code {
// Your component code - all lifecycle methods are automatically timed
}
This gives you:
- ✅ Lifecycle method timing (OnInitialized, OnParametersSet, etc.)
- ✅ ShouldRender tracking
- ✅ StateHasChanged counts
- ✅ Parameter change detection
- ✅ Render efficiency metrics
Timeline Profiler
- Go to the Timeline tab
- Click Record
- Interact with your app
- Click Stop
- Explore the results:
- Events - Chronological list of all lifecycle events
- Ranked - Components sorted by total render time
- Flamegraph - Visual timeline with zoom and pan
How It Works
BDT uses a Three Pillars architecture:
| Pillar | Method | What It Tracks |
|---|---|---|
| 1. Enhanced Components | Opt-in inheritance | Deep lifecycle metrics, timing, ShouldRender |
| 2. Activator Tracking | Automatic | All component instantiation |
| 3. Render Batch Interception | Automatic (JS) | Component IDs, hierarchy, render events |
Configuration
Configure in Program.cs:
builder.Services.AddBlazorDevTools(options =>
{
options.EnableTiming = true; // Enable lifecycle timing (default: true)
options.EnableEventPush = false; // Push events to JS in real-time (default: false)
options.MinDurationToReportMs = 0; // Filter events below this duration (default: 0)
});
Disabling in Production
Timing for enhanced components is enabled by default to work out-of-the-box during development. To disable in production for zero overhead:
builder.Services.AddBlazorDevTools(options =>
{
#if !DEBUG
options.EnableTiming = false;
#endif
});
Try It Now!
Visit blazordevelopertools.com and open DevTools to see BDT in action on a live Blazor app.
Contributing
This project is open source! We welcome contributions.
License
Licensed under the Apache License 2.0. See LICENSE for details.
Support
- 📧 Email: me@joegregory.dev
- 🐦 Twitter: @joegregorydev
- 📺 YouTube: @joegregorydev
Built with ❤️ for the Blazor community by Joe Gregory
| Product | Versions 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. |
-
net10.0
- No dependencies.
-
net8.0
- No dependencies.
-
net9.0
- No dependencies.
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.0.0-beta.5 | 110 | 1/29/2026 |
| 1.0.0-beta.4 | 53 | 1/29/2026 |
| 1.0.0-beta.3 | 50 | 1/29/2026 |
| 1.0.0-beta.2 | 81 | 1/22/2026 |
| 1.0.0-beta.1 | 59 | 1/14/2026 |
| 0.9.16 | 289 | 10/23/2025 |
| 0.9.15 | 195 | 10/23/2025 |
| 0.9.14 | 199 | 10/23/2025 |
| 0.9.13 | 188 | 10/22/2025 |
| 0.9.12 | 186 | 10/21/2025 |
| 0.9.11 | 188 | 10/21/2025 |
| 0.9.10 | 193 | 10/21/2025 |
| 0.9.9 | 120 | 10/18/2025 |
| 0.9.8 | 219 | 10/8/2025 |
| 0.9.7 | 188 | 10/8/2025 |
| 0.9.6 | 195 | 10/2/2025 |
| 0.9.5 | 202 | 10/2/2025 |
| 0.9.4 | 198 | 10/2/2025 |
| 0.9.3 | 209 | 10/2/2025 |
| 0.9.2 | 193 | 10/2/2025 |