How this site is built

One page built from plain text files, checked on every change, with no tracking.

Content

Everything on the home page comes from a few text files: one per job or project, and one each for the timeline, the skills and the contact details. Each file is checked against a schema when the site is built. A wrong date or a missing field stops the update, and the live site keeps its last good version. The texts follow my CV, and every number carries the conditions it was measured under.

Design

The name at the top is drawn like a voice recording: each letter is heavier and wider where the name sounds louder when spoken. The loudness curve is drawn by hand, not taken from a recording, and a playhead sweeps over it once when the page opens. If your system asks for less motion, the sweep is skipped. The name is set in Mona Sans, a variable font, and labels use IBM Plex Mono. Both typefaces are published under the SIL Open Font License and are served from this site.

The diagrams in the work section show who does each step: a solid frame for code, a dashed frame for an LLM and a dotted frame for a person.

Engineering

The site is built with Astro as static HTML. A few small scripts run the name animation, the colour theme, the e-mail address and the BibTeX button; everything is readable without them.

Every change runs automatic checks before it goes live: type checks, the build, a link check, a privacy check that stops a phone number from being published, accessibility tests with axe in light and dark mode, and browser tests at phone and desktop widths.

Privacy

No cookies, no analytics, and no fonts or scripts from other servers. A content security policy tells your browser to load nothing from elsewhere. The site is hosted on GitHub Pages, and the privacy notice (in German) has the details.