6/27/2026 Admin

BlazorDX: Fastest Blazor Controls Ever


image

I came across a new open-source Blazor component library called BlazorDX:

https://github.com/logixrcorp/BlazorDX

What caught my attention is the angle it takes. It isn’t a productivity skin over Bootstrap — it’s a secure-by-default, headless, AOT-safe component system for .NET 10. It has zero runtime reflection (grid and JSON binding come from C# source generators), it survives full IL trimming, and the heavy work — sorting, filtering, aggregating — runs in a Rust → WASM kernel. That is where the “fastest controls ever” claim comes from: the DataGrid demo renders 100,000 rows, virtualized to the viewport, with the Rust module doing the math.

It ships around 100+ components and it’s MIT licensed.

image

The project has excellent documentation and a live demo of every component:

https://blazordx.com

These days good documentation is all you need to supply your AI with the information it needs to leverage any library or tool.

(One note in fairness: BlazorDX is currently a beta and the authors say it’s for evaluation, not production yet. That’s exactly what I’m doing here — evaluating it on a real app.)

 

image

The point of all this is that their controls are faaaaaaaaaaaaaast! I mean Blazing-Fast.

See this sample: https://blazordx.com/app

 

Blazor SMTP Forwarder

image

I decided to update one of my existing applications — the Blazor SMTP Forwarder — to use BlazorDX for all of its controls:

https://github.com/ADefWebserver/BlazorSMTPForwarder

 

image

This app has a Blazor web admin with a dashboard, a domain/forwarding rules editor, an inbox viewer, and a log viewer — so it has plenty of buttons, inputs, dialogs, and tables to swap over. The inbox and log viewers in particular are a perfect fit for the virtualized, Rust-backed DxDataGrid.

Even though I like to use Visual Studio for writing and debugging my code, I find that Visual Studio Code is much better when writing code with AI.

So, I open it in there.

This is where I will create my AI code. I will use Visual Studio for running and debugging the app.

 

image

First step is add their AI Instructions file to the app. You get it from: https://blazordx.com/docs

 

image

In Visual Studio Code I open a new Chat Window.

I always use a template like the following to first create an .md file, and after editing it, then instruct the AI to write code:

Task: Create a Markdown file and save it in the docs/ directory. The file should contain a detailed, structured plan for implementing the following features (I will list them after this instruction).

Requirements:

Use clear section headings.

Include Mermaid diagrams to illustrate both system structure and process flows. Do not put \n inside Mermaid node labels — VS Code’s Mermaid renderer doesn’t support that. With edge labels like “1. User clicks AI” — Mermaid’s renderer interprets 1. as a markdown numbered list inside the label.

Provide enough detail that a developer could begin implementing the features based on this document alone.

Use Markdown formatting throughout.

Do not include any file‑system commands; simply output the Markdown content.

Output Format: Return only the contents of the .md file, starting with a top‑level # heading.

Features to document:

#1 Replace all of the existing UI controls in the BlazorSMTPForwarder.Web project (https://github.com/ADefWebserver/BlazorSMTPForwarder) with their BlazorDX equivalents (https://blazordx.com): buttons → DxButton, text and password inputs → DxTextBox / DxPassword, dropdowns → DxSelect, checkboxes and switches → DxCheckbox / DxSwitch, modal confirmations → DxDialog, and inline status messages → DxAlert / DxToastHost.

#2 Convert the Inbox Viewer and the Log Viewer pages to use DxDataGrid<TRow> with sorting, filtering, column resize, and export enabled, so the Rust/WASM compute kernel handles large message and log lists. Mark each row model with the [GridRow] attribute so the source generator emits the reflection-free accessor.

#3 Register the BlazorDX services and styles per the docs (https://blazordx.com): call AddBlazorDXInterop() and register the ToastService in Program.cs of BOTH the server host and the client, and link dx-theme.css plus the per-component CSS in the host page so prerendering works. See docs/blazordx-llms.md for instructions

#4 Keep everything AOT-safe and zero-reflection — do not introduce any reflection-based binding — and do not change the SMTP forwarding, SendGrid, or Azure Storage logic. This is a UI-layer update only.

The .md file will be created.

 

image

I review the .md file and make changes as needed.

 

image

The reason I use my template is that it creates mermaid diagrams that I find really helpful to understand the code about to be written. In this case the diagrams map every page in the admin to the BlazorDX components it will use, which made it easy to spot anything I’d missed before a single line of code was written.

 

image

When I’m satisfied I return to the chat window and tell it to execute the plan.

 

image

The controls were swapped out across the whole admin, and the app runs exactly as before, except now all the controls are faster and more responsive.

 

Links

BlazorDX

BlazorDX Documentation

Blazor SMTP Forwarder

An unhandled error has occurred. Reload 🗙