What it does

The site you are reading right now. The rule it is built around: content changes must never require a code change, a rebuild, or a redeploy. Every page, project and post is a plain markdown file — edit one, save it, and the site reflects it on the next request.

How it works

  • .NET 10, Blazor with static server rendering — no SignalR circuit per visitor, no WebAssembly payload. Deliberately light enough to run well on modest hardware.
  • Markdig renders the markdown, YamlDotNet parses the front matter, and a single content store is the only thing that touches the filesystem
  • A catch-all route maps content/pages/foo.md to /foo; collection folders back the experience, projects and blog listings
  • Parsed documents are cached but revalidated against the file's last-write time on every request, so edits are instant without the cost of re-parsing on every visit
  • Syntax highlighting happens server-side, so code stays coloured even with JavaScript disabled
  • draft: true hides a document completely — from listings and at its own URL — which is what let me build this site's real content incrementally without half-finished pages going live

Deployment

Docker, built multi-arch for a Raspberry Pi–class host on the home network. Content lives in a bind-mounted volume rather than baked into the image, so updating the site is a file edit on the host, not a deployment.