ApexCharts publishes six Blazor component libraries on NuGet. Each one is a Razor class library that wraps a shipping JavaScript visualization engine behind a strongly typed C# API, so you configure it with C# objects and lambdas rather than JSON, and you never touch npm, a bundler, a CDN or a <script> tag.

ComponentPackageVersion.NETLicence
ChartsBlazor-ApexCharts7.0.08, 9, 10MIT wrapper, charting needs no key
Charts on MAUIBlazor-ApexCharts-MAUI7.0.09 (android, ios, maccatalyst)MIT wrapper, charting needs no key
Data gridBlazor-ApexGrid1.0.08, 9, 10Free under the revenue threshold
GanttBlazor-ApexGantt1.3.09Commercial
Org chartsBlazor-ApexTree11.0.08, 9, 10Commercial
SankeyBlazor-ApexSankey1.2.09Commercial
MapsBlazor-ApexMaps0.3.09Commercial

Install any of them with one command:

dotnet add package Blazor-ApexCharts

All of them run in Blazor Server and Blazor WebAssembly. Charts additionally runs in .NET MAUI, WinForms and WPF through its own package.

SeriesType="SeriesType.Bar"

Charts, Configured in C#

Blazor-ApexCharts binds a chart to your own model with lambda accessors and configures it with ApexChartOptions<T>, so option names and enum values are checked by the compiler. One SeriesType change moves between bar, line, area and scatter without touching the data. It is the most mature package in the set and the only one that also ships for .NET MAUI.

Blazor chart component

A Data Grid with No JavaScript Setup

Blazor-ApexGrid gives you a strongly typed grid component with sorting, filtering, inline editing, tree data and expandable detail rows, declared in Razor with your columns in C#. The grid engine is bundled inside the NuGet package and served automatically, so there is no script tag and no npm step to add to your build.

Blazor data grid
Marcus VegaAcme Inc$8,420Enterprise
Sara PatelLinear$7,280Pro
Priya NairVercel$5,940Enterprise
Yuki TanakaNotion$4,820Pro
Olivia ReedStripe$4,260Pro
Eli MorganFigma$3,840Team
Theo ParkWebflow$2,980Team
Iris HaleFramer$2,450Starter
8 of 8 rows · sorted by mrr

Project Timelines from a Task Model

Blazor-ApexGantt renders interactive project timelines with dependencies, milestones and drag-and-drop scheduling, driven by a C# task collection rather than a JSON config. It targets .NET 9, so check your target framework before planning around it.

Blazor Gantt chart

Hierarchies and Flows

Blazor-ApexTree draws org charts and hierarchies with radial, dendrogram and cartesian layouts, and Blazor-ApexSankey draws flow and distribution diagrams. Both are commercial packages with no free tier, so factor a licence in before you prototype.


Flow Diagrams in Razor

Blazor-ApexSankey exposes the ApexSankey option surface as C# with two-way binding and event handling. Like Gantt it targets .NET 9 only, and like Gantt it is commercial. The rendering engine is the same one the JavaScript package uses, so what you see here is what a Razor page produces.

One dotnet add package

Each package bundles its JavaScript and CSS as static web assets under _content/, so there is no npm, bundler, CDN or script tag.

Strongly Typed C#

Configuration is compiled: typed option objects, enums, and lambdas over your own model instead of field-name strings.

Server and WebAssembly

All six use the async IJSRuntime interop surface, so neither Blazor hosting model is a special case.

.NET 8, 9 and 10

Charts, the data grid and org charts multi-target all three. Gantt, Sankey and maps target .NET 9.

Six Component Families

Charts, data grid, Gantt, org charts, Sankey and maps, sharing one design language and one support channel.

Razor Class Libraries

Standard component libraries using JSInterop, with no custom build target or MSBuild task to adopt.

Offline Licence Keys

Where a key is needed it validates offline with no network call, and the format is shared across the family.

Honest Gaps

The .NET 9 only packages and the components that do not ship for MAUI are stated plainly rather than left for you to discover.

Which Blazor Hosting Models Are Supported?

Blazor Server and Blazor WebAssembly, on all six. Charts also supports .NET MAUI, WinForms and WPF.

Nothing in these libraries depends on in-process JavaScript. Every one of them calls through IJSRuntime and IJSObjectReference, the async interop surface that behaves the same whether the render circuit is a SignalR connection or a WebAssembly runtime in the browser. The charts package does detect WebAssembly at runtime and take a faster path when it finds one, which is an optimisation rather than a requirement.

Hosting modelChartsGridGanttOrg chartsSankeyMaps
Blazor Serveryesyesyesyesyesyes
Blazor WebAssemblyyesyesyesyesyesyes
.NET MAUIyes, separate packagenot claimednot claimednot claimednot claimednot claimed
WinForms, WPFyesnot claimednot claimednot claimednot claimednot claimed

"Not claimed" is not the same as known not to work. WinForms and WPF host Blazor components through a web view, so the others may well run there, but only charts states it, so only charts claims it here.

Why Is My Blazor Component Blank on .NET 8?

Because the host page or component is not running in an interactive render mode, so the JavaScript interop never executes.

From .NET 8 onward, Blazor Web Apps render statically by default. A component that needs JavaScript must opt into interactivity. Set the render mode on the page or component hosting the visualization to InteractiveServer, InteractiveWebAssembly or InteractiveAuto:

@rendermode InteractiveServer

This applies to every component in this family, and to any Blazor component that relies on JS interop. It is the first thing to check when a chart, grid or diagram renders as empty space with no error in the console.

How Does Licensing Work Across the Blazor Components?

It is not uniform, and the differences matter before you build rather than after.

Charts is the permissive one. The Blazor-ApexCharts package on NuGet is MIT licensed. Charting itself is never gated: every chart type and every standard option works with no licence key at all. Only the seven premium interaction modules run in trial mode with a watermark until you apply a key.

The data grid is free under a revenue threshold. ApexGrid's core is free for individuals and organisations under the published revenue threshold, with a commercial licence above it and an OEM licence for embedding.

Gantt, org charts, Sankey and maps are commercial. These have no free tier. The revenue threshold does not apply to them: without a licence key they render with a watermark whatever your organisation earns.

See pricing for the current plans and thresholds.

Two notes on provenance, because they are easy to get wrong.

Blazor-ApexCharts was created by Joakim Dangården and its MIT licence carries his copyright. MIT covers the wrapper. The ApexCharts engine it loads is a separate work under its own terms.

Blazor-ApexTree up to version 10 was published by NF Software Inc under MIT. From version 11 it is maintained here under the commercial ApexTree licence. If you are on version 10, upgrading changes your licence terms.

When Should You Not Use These?

  • You are on .NET 8 LTS and you need Gantt, Sankey or maps. Those three are .NET 9 only today. Charts, the data grid and org charts multi-target .NET 8.
  • You need server-side image rendering with no browser. These are client-side rendering engines driven through JS interop. A headless report pipeline that produces PNGs on the server is not what they are for.
  • You want to configure everything in JavaScript. If your team already has a JavaScript build and wants to work in it, use the JavaScript packages directly. The Blazor wrappers exist to keep you in C#, and that is their whole value.

Blazor Components FAQ

What Blazor components does ApexCharts offer?

Six NuGet packages: Blazor-ApexCharts for charts, Blazor-ApexGrid for a data grid, Blazor-ApexGantt for Gantt charts, Blazor-ApexTree for org charts, Blazor-ApexSankey for Sankey diagrams and Blazor-ApexMaps for maps. Charts additionally ships Blazor-ApexCharts-MAUI for .NET MAUI.

Do these work in Blazor Server or only WebAssembly?

Both. All six use the async IJSRuntime interop surface, so neither hosting model is a special case. Charts also runs in WinForms and WPF, and in .NET MAUI through its companion package.

Which .NET versions are supported?

Blazor-ApexCharts, Blazor-ApexGrid and Blazor-ApexTree multi-target .NET 8, 9 and 10. Blazor-ApexGantt, Blazor-ApexSankey and Blazor-ApexMaps target .NET 9 only, so a .NET 8 LTS project can adopt three of the six today.

Do I need npm or a JavaScript build step?

No. Each package bundles its JavaScript and CSS as static web assets, served automatically from _content/ followed by the package id. There is no script tag, CDN reference or bundler configuration.

Why does my Blazor chart or grid render blank?

Almost always the render mode. On .NET 8 and later, Blazor Web Apps render statically by default, so set the host page or component to InteractiveServer, InteractiveWebAssembly or InteractiveAuto. Otherwise the JavaScript interop never runs, and there is no error in the console.

Are the ApexCharts Blazor components free?

It depends which one. The charts wrapper is MIT and charting itself needs no licence key. The data grid core is free under the published revenue threshold. Gantt, org charts, Sankey and maps are commercial and render with a watermark without a key.

Can I use these in .NET MAUI?

Charts, yes, through the separate Blazor-ApexCharts-MAUI package. The other five are Blazor Server and WebAssembly only.

Ready to build your .NET dashboard?

Start with charts: MIT wrapper, no licence key for charting, and a setup guide that takes about five minutes.

Blazor chart component