← home

The Workshop

What I build with — and why. Roots to canopy.

ROOTS

the homelab I actually run — real ops you can't fake
caddy
edge · TLS + forward-auth
24/7
authentik
single sign-on for every service
24/7
estate-api
Hono · VSA · RCON + SSE control plane
24/7
postgres
app + analytics data
24/7
restic
nightly DR to a Storage Box
nightly
immich · jellyfin
photos + media for the family
24/7
Three Hetzner boxes, ~19 services, one Caddy edge, DNS-as-code, restic with weekly integrity checks. The same ops muscles — reverse-proxy, SSO, Postgres, monitoring, backups — that sit behind any real operational dashboard.
Read the full build → Irminsul case study

TRUNK

production .NET / C# — what I'm expert in
ASP.NET CoreEverything backend rests here.daily-driver
BlazorMy comfort zone for UI.daily-driver
EF CoreORM of choice.daily-driver
MediatR / CQRSClean seams between request and handler.daily-driver
xUnitTests before I trust it.daily-driver
RiderI'd pay double.daily-driver

CANOPY

React + geospatial — the new growth, learned in public
React8 months in, still losing fights with useEffect — the outer ring.learning
Next.jsFor static, bilingual sites.weekly
CesiumJSGeospatial — where I'm heading.weekly
TailwindFast, native-feeling UI.weekly
MapLibre / deck.glExploring for ops dashboards.learning
R3F / GLSLLearning — the cinematic layer.learning