← home

The Workshop

What I build with, where each piece sits, and how deep each tool goes.

One request, end to end

The shape of the systems I build. Select any tool to see what I use it for and where it shows up.

Clientbrowser, desktop, mobile
over HTTPS, through DNS
EdgeDNS, TLS, sign-on
TLS ends, sign-on checked, proxied
APIwhere I live
queries and transactions
Datastate that must be right
Build, ship, keep runningunder every layer

Depth, at a glance

The same tools, sorted by how I know them, with how many listed projects use each.

professionalUsed in a professional role — DELINFO or Papirfly
  • Blazor2 projects
  • ASP.NET Core9 projects
  • C#6 projects
  • MediatR · CQRS1 project
  • WebSocket · SSE2 projects
  • EF Core
  • PostgreSQL4 projects
  • AWS · EKS · Lambda
  • xUnit · Testcontainers1 project
shippedShipped in my own projects
  • React7 projects
  • Next.js2 projects
  • TypeScript5 projects
  • CesiumJS · WebGL1 project
  • MAUI · Photino1 project
  • Cloudflare DNS1 project
  • Caddy1 project
  • Authentik SSO2 projects
  • Vertical Slice2 projects
  • Node · Hono4 projects
  • SQLite1 project
  • Docker4 projects
  • GitHub Actions3 projects
  • k61 project
  • restic · Uptime Kuma1 project
learningLearning now
  • MapLibre · R3F

Roots — what I run myself

the homelab behind this site; real operations, not a diagram

caddy
edge · TLS + forward-auth
24/7
authentik
single sign-on for every service
24/7
estate-api
Hono · vertical slices · 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 per box, DNS as code, restic with weekly integrity checks. The same muscles — reverse proxy, SSO, Postgres, monitoring, backups — sit behind any real operational system.
Read the full build → Irminsul case study