Runterdrücker

Eine iOS-App für Gewohnheiten, ganz ohne Druck: keine Erinnerungen, keine Streaks, kein schlechtes Gewissen. Du trägst Dinge ein, die du regelmäßig machen möchtest; die Liste sortiert sich still und leise danach, wie „fällig" jeder Eintrag gerade ist, und du tippst einen an, wenn du einen Moment Zeit hast. Umgesetzt in SwiftUI mit SwiftData und CloudKit-Sync.

  • Swift
  • SwiftUI
  • SwiftData
  • CloudKit

My First Survivor

Ein Godot-Projekt in Eigenregie und eine Liebeserklärung an Vampire Survivors: ein Roguelite im Reverse-Bullet-Hell-Stil, als 2D-Einzelspielerspiel. Die Geometry-/Retro-/Cyber-Ästhetik habe ich bewusst gewählt, um den Asset-Aufwand überschaubar zu halten. Der Titel ist kein Zufall.

  • Godot Engine
  • GDScript

Out Of Space

Eine Desktop-App zur Visualisierung der Speicherplatzbelegung. Sie scannt Verzeichnisse und stellt sie als interaktive, farbcodierte Treemaps dar, damit du sofort siehst, was den Platz frisst: in Unterverzeichnisse eintauchen, per Mouseover Details anzeigen, auch durch dichte Verzeichnisbäume navigieren. Signierte macOS-Builds verfügbar. Gelegentlich auch unter Windows getestet. Siehe auch: Out Of Space Swiftly.

  • Electron
  • Vue 3
  • TypeScript
  • D3
  • Vite
  • Node.js
  • Pinia
  • Vitest

Out Of Space Swiftly

Noch eine macOS-Desktop-App zur Visualisierung der Speicherplatzbelegung, im Treemap-Stil. Als Gegenentwurf: minimaler Tech-Stack, nur macOS. Entwickelt, um die Schwächen von Out Of Space auszubügeln. Und um diesen anderen Ansatz zu evaluieren.

  • Swift
  • SwiftUI
  • Zero Dependency
  • Bash

mcprotocol2human-surface

Eine macOS-App, die die Oberfläche von MCP-Servern sichtbar macht: welche Tools ein Server anbietet und was jedes über sich selbst sagt, so wie ein Client es sieht – ohne einen Agenten zu fragen oder einen Inspector zu installieren. Mit eigenem kleinem MCP-Client (stdio und HTTP, alte und neue Protokollversionen), strikt nur lesend: Kein Tool wird je aufgerufen. Gemacht, um Tool-Beschreibungen zu prüfen und zu entwerfen. Ohne Abhängigkeiten.

  • Swift
  • SwiftUI
  • Zero Dependency
  • MCP

Idli Intake Counter

In einer Hitzewelle entstanden, um den Überblick über meine Trinkmenge zu behalten: ein persönliches Tool, Zielgruppe: ich. Einzelnutzer, ein Vue/Spring-Boot-Setup mit PostgreSQL (CNPG) und einem Helm-Chart, um das Ganze zum Laufen zu bringen. Daraus ergeben sich interessante Designentscheidungen, für andere vermutlich nur bedingt nützlich. Schau trotzdem gern mal rein.

  • Spring Boot
  • Spring Security
  • TypeScript
  • Vue 3
  • Helm
  • Kubernetes
  • PostgreSQL

LCG Shuffle Visualizer

Eine interaktive Erforschung von Fisher-Yates-Shuffles mit einem LCG als Zufallsquelle, aufgebaut rund um einstellbare Farbskalen, MSB/LSB-Steuerung und eine variable Schrittweite. Die Heatmaps und Streudiagramme haben starke positionsabhängige Verzerrungen und strukturelle Anomalien zutage gefördert: In weiten Teilen des Parameterraums ist die Kombination weder wirklich zufällig noch ein echter Shuffle.

  • Vue 3
  • TypeScript
  • Vite
  • D3

Dieses Portfolio

Eine persönliche Portfolio-Seite, entstanden als praktisches Experiment mit Claude Code und KI-gestützten Entwicklungs-Workflows. Das Projekt selbst ist das Anschauungs­objekt: ebendiese Website, auf der du gerade bist.

  • Vue 3
  • TypeScript
  • Vite
  • Pinia
  • Vue Router
  • vue-i18n
  • Claude Code