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.