Aug 22

GitGlass, a VS Code-style repo viewer in under 10 KB of vanilla JS

I wanted readers to browse a demo repo without leaving the article. Nothing embeddable was small enough, so I built one: tree, tabs, highlighting, themes, snippets and guided tours in under 10 KB of JS, with no dependencies and no backend.

javascript · tooling · 6 min
Aug 18

Your API ignores the user who gave up

ASP.NET Core can tell when a caller disconnects. Most handlers never ask. What CancellationToken actually does, where to pass it, and where to be careful.

dotnet · performance · 6 min
Aug 11

Kill the boolean soup

isLoading, error, data — three flags, eight combinations, half of them lies. Discriminated unions make the impossible states impossible, and the compiler enforces it.

angular · patterns · 5 min
Aug 04

The cache stampede you haven't met yet

GetOrCreateAsync on IMemoryCache lets every concurrent request run the factory on a cold key. HybridCache's single-flight fixes the stampede you only meet under load.

dotnet · performance · 5 min
Jul 28

Integration tests that lie

A mocked repository test proves your mock works. Testcontainers runs the real SQL Server and RabbitMQ inside the test run, so green means what you think it means.

dotnet · testing · 5 min
Jul 21

Life without Zone.js

Going zoneless removes Angular's magic change detection. What actually breaks, why it breaks, and the migration order that keeps the app working at every step.

angular · development · 5 min