Featured project

upmann.dev

This very website — a personal blog and portfolio built with Astro, Tailwind, and self-hosted on a homelab behind Traefik.

astrotypescripttailwindhomelab

What it is

upmann.dev is the site you’re reading right now — a static-first personal website that doubles as a portfolio and a place to write about infrastructure and tooling.

Stack

  • Astro 7 with the Content Layer API and MDX
  • Tailwind CSS 4 via the Vite plugin (no @astrojs/tailwind)
  • Pagefind for static search, with a custom vanilla-JS search UI
  • Docker + Caddy for the production build, behind Traefik
  • i18n with English (default, unprefixed) and German (/de/)

Why this stack

I wanted zero JavaScript by default, type-safety without ceremony, and a build I could self-host in a single container. Astro hits all three. The custom search UI ships roughly 12 KB of client JS, loads the search index lazily, and never touches a server.