I've been writing C# for over 20 years, mostly backend implementations, APIs, services, infrastructure etc… I built frontend too, but it always meant switching to a completely different world. C# on the backend, JavaScript on the frontend. Different patterns, different tooling, different mental models. Every project meant context switching between two ecosystems.
Then I properly dug into Blazor, and something clicked.
Being able to build full stack with C# end-to-end was genuinely enjoyable in a way I didn't expect. No more jumping between languages. No separate JS ecosystem to maintain. Just C# all the way through.
But one thing was missing.
The Gap
If you've worked with React, you've seen libraries like shadcn/ui and Radix UI. They just look and work great out of the box. They are modern, clean, composable. The kind of UI that makes you want to build things because you know that it’ll actually look good once built!
Blazor didn't have that.
Most Blazor UI libraries either look like enterprise software from 2015 or lock you into a rigid design system with their own opinions about everything. I wanted something that looked modern, felt flexible, and didn't fight me when I needed to customize it.
So I built my own.
What is Blazor Blueprint?
Blazor Blueprint is a component library inspired by shadcn/ui. It brings that same design philosophy to Blazor:
- 80+ styled components — buttons, dialogs, data tables, forms, charts, and more
- 15 headless primitives — unstyled building blocks for when you need full control
- 1,640+ Lucide icons — same icon set shadcn uses. I’ve also included heroicons and feather icons too
- Theme compatibility — drop in any theme from shadcn/ui or tweakcn.com and it’ll just work
The key idea is a two-tier architecture.
Two-Tier Architecture
Most component libraries give you one thing: styled components. Take them or leave them.
I wanted something more flexible. So Blazor Blueprint has two layers:
Primitives - headless components that handle behavior, accessibility, and keyboard navigation with zero styling. They're the bones. Use them when you need complete control over how things look.
Components - pre-styled components built on top of the primitives. They follow shadcn/ui design patterns and work out of the box. Use them when you want to move fast.
You can use the styled components for 90% of your UI and drop down to primitives when you need something custom. Best of both worlds.
Patterns That Worked
A few implementation patterns that made the architecture work:
Cascading values for context — Parent components pass state down to children without prop drilling. An accordion item knows its parent's state without explicit wiring.
@bind- for controlled/uncontrolled state — Components work out of the box (uncontrolled) but can be fully controlled when you need it.
AsChild pattern — Lets you delegate rendering to a child element. Useful for things like making a button render as a link while keeping all the button behavior.
Theme Compatibility
One thing I really wanted was compatibility with existing shadcn themes. The React ecosystem has years of beautiful themes built for shadcn/ui. I thought it would be a waste not to tap into that.
Blazor Blueprint uses the same CSS variable structure as shadcn. You can grab a theme from shadcn/ui or tweakcn.com, drop it into your project, and it just works. No conversion needed.
One Week In
I posted about Blazor Blueprint on Reddit last week and the response genuinely surprised me. 160+ GitHub stars, mass of feedback, people actually using it in real projects.
The .NET community has been incredibly supportive. It's given me a lot of motivation to keep building. I just shipped v3 with performance improvements, new components, and fixes based on community feedback.
This is a passion project I've been pouring my evenings and weekends into. Seeing people find it useful makes all that time worth it.
Try It
Blazor Blueprint is free, open-source, and available now:
dotnet new install BlazorBlueprint.Templates
dotnet new blazorblueprint -n MyApp
Or add to an existing project:
dotnet add package BlazorBlueprint.Components
- 📚 Docs: blazorblueprintui.com
- 💻 GitHub: github.com/blazorblueprintui/ui
If you're building Blazor apps and want modern UI without the enterprise aesthetic, give it a try. Feedback and contributions welcome.
Top comments (0)