Become a sponsor to Artyom M.
Support my open-source work
Hi, I'm Artyom. I'm a .NET developer from Estonia and I spend a significant amount of my free time working on open-source projects, mostly around Blazor, .NET, performance, trimming, AOT, build tooling, and infrastructure.
A large part of my open-source work goes into MudBlazor, where I contribute to general framework improvements.
I also maintain several projects of my own:
-
Scarlet.Serilog.Sinks.Graylog — originally a fork of an unmaintained Graylog sink for Serilog. I ended up fixing a large number of bugs, reworking parts of the design, improving performance, and putting a lot of effort into unit and integration testing. I started working on it because the existing libraries didn't meet the quality bar I wanted for production use. I'm particularly proud of where this one ended up, and I use it in production myself.
-
Scarlet.BlazorRouter — an explicit-route alternative to Blazor's built-in router, without assembly scanning for
@pageattributes. -
Scarlet.Bun — integrates Bun into MSBuild and .NET build pipelines.
-
Scarlet.Sass — integrates Sass into MSBuild and .NET build pipelines.
-
Scarlet.Tailwind — integrates Tailwind into MSBuild and .NET build pipelines.
-
Scarlet.System.Text.Json.DateTimeConverter — custom
DateTimeandDateTimeOffsetformats forSystem.Text.Json. -
Blazor.GoogleTagManager — Google Tag Manager integration for Blazor.
-
Blazor.WebAssembly.DynamicCulture — dynamically loads localization satellite assemblies in Blazor WebAssembly.
-
Microsoft.Extensions.Hosting.Wpf — integration between the .NET Generic Host and WPF applications.
Most of these projects exist because I needed something myself and either couldn't find it, or the existing solutions didn't meet the quality bar I was looking for.
I care a lot about correctness, performance, maintainability, and testing. That often means spending time on things that aren't particularly visible: tracking down edge cases, writing integration tests, benchmarking changes, dealing with trimming and AOT issues, or cleaning up an API before it becomes something people have to live with for years.
I also use AI as part of my development workflow, mainly to offload repetitive or boring work. But I don't treat generated code as something to blindly accept. Every line that ends up in my projects is reviewed, and every meaningful change should have a reason behind it. The goal is to save time on mechanical work, not to replace engineering decisions with vibe coding.
Sponsorship helps me justify putting more of my time into that work.
If you use one of my libraries, my contributions to MudBlazor have been useful to you, or you simply like the way I approach open source, you can support my work here.
Thanks.
1 sponsor has funded ScarletKuro’s work.
Featured work
-
MudBlazor/MudBlazor
Blazor Component Library based on Material Design principles. Do more with Blazor, utilizing CSS and keeping JavaScript to a bare minimum.
C# 10,657 -
ScarletKuro/Microsoft.Extensions.Hosting.Wpf
Unofficial implementation of Microsoft.Extensions.Hosting for WPF.
C# 12 -
ScarletKuro/Blazor.GoogleTagManager
Google Tag Manager implementation for Blazor
C# 10 -
ScarletKuro/Scarlet.System.Text.Json.DateTimeConverter
A custom attribute for System.Text.Json that allows you to specify custom date formats for DateTime, DateTimeOffset, and their nullable counterparts during JSON serialization and deserialization.
C# 1 -
ScarletKuro/Scarlet.BlazorRouter
Explicit-route Blazor router with native template semantics. Supports WASM, Blazor Hybrid, Interactive Server, Interactive WebAssembly, Interactive Auto, and Static SSR.
C# -
ScarletKuro/Scarlet.Bun
MSBuild task for integrating Bun (a fast JavaScript runtime) into .NET build processes
C#