This site
A markdown-driven portfolio site — server-rendered .NET, no build step for content.
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.mdto/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: truehides 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.