Projects

Things I have built outside of client work, and — more importantly — still run. Operating something yourself for years teaches you things that shipping and handing over does not.

Mietspiegelrechner Potsdam

mietspiegelrechner-potsdam.de is a free tool that helps Potsdam tenants and landlords classify an apartment against the city's official qualified rent index (Mietspiegel).

Rent indices are published as dense official tables with scoring rules attached. Working out where your flat actually falls means reading a PDF carefully and not making an arithmetic mistake. The calculator does the table lookup and the orientation-aid scoring, compares the result against the rent actually being paid, and fills out the official form.

It is genuinely useful to people in a way that most side projects are not, and it is also where I try out engineering ideas without a deadline attached:

  • Nuxt 4 with full prerendering. Every HTML route is generated at build time, so the site is static to serve but written like an application.
  • A separately versioned calculation core kept at complete test coverage. The rent logic is the part that must not be wrong, so it lives in its own package with its own quality gate, independent of the UI.
  • Machine-readable surfaces. A documented JSON API, an OpenAPI description, an llms.txt, and a Model Context Protocol server, so AI assistants can call the calculator correctly instead of hallucinating rent figures. If someone asks an assistant about Potsdam rent levels, I would rather it fetch a real answer than invent one.
  • Structured data validated against what Google actually accepts, checked in CI against the built HTML rather than against intent.
  • Deployed from CI to a small self-hosted server, with a smoke test that boots the real build artifact and verifies every public endpoint before the deploy counts as successful.

It is open source and AGPL-licensed.

Self-hosted smart doorbell

A private smart doorbell system, built and actively run: device logic, a web interface, and HomeKit integration, all self-hosted. No cloud service sees who is at my door, and it keeps working when someone else's API has an outage.

Developer tooling for Vue and Nuxt

Smaller utilities, editor integrations and workflow helpers that remove friction from day-to-day Vue and Nuxt work. These generally start as something that annoyed me twice in one week. Most of it is on GitHub.

This site

The site you are reading is a Nuxt 4 application rendered on the server, with content in Markdown parsed server-side so the parser never reaches the browser. It is deliberately small: self-hosted cookieless analytics, no external fonts, no third-party scripts, and no cookie banner - because nothing is stored in your browser, none is needed.