Runterdrücker

A low-pressure iOS habit tool — no reminders, no streaks, no judgement. You add things you'd like to do regularly; the list quietly sorts itself by how "ready" each item is, and you press one when you have a moment. Built in SwiftUI with SwiftData and CloudKit sync.

  • Swift
  • SwiftUI
  • SwiftData
  • CloudKit

My First Survivor

A self-directed Godot project and love letter to Vampire Survivors — a rogue-lite, reverse bullet-hell with 2D single-player gameplay. The Geometry / Retro / Cyber aesthetic was chosen deliberately to keep asset scope manageable. The title is not accidental.

  • Godot Engine
  • GDScript

Out Of Space

A desktop app for visualising disk space usage. Scans directories and renders interactive, colour-coded treemaps so you can instantly see what's consuming space — drill into subdirectories, hover for details, navigate dense trees. Signed macOS builds available. Occasionally tested on Windows. See also: Out Of Space Swiftly.

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

Out Of Space Swiftly

Another macOS desktop app for visualising disk space usage, TreeMap style. As contrast, with a minimal tech stack, macOS only. Designed to overcome shortcomings of Out Of Space. And to evaluate this different approach.

  • Swift
  • SwiftUI
  • Zero Dependency
  • Bash

mcprotocol2human-surface

A macOS app for looking at the surface of MCP servers: which tools a server exposes, and what each one says about itself, the way a client sees it — without asking an agent or installing an inspector. Its own small MCP client (stdio and HTTP, old and new protocol revisions), strictly read-only: it never calls a tool. Made for checking and designing tool descriptions. Zero dependencies.

  • Swift
  • SwiftUI
  • Zero Dependency
  • MCP

Idli Intake Counter

Born in a heatwave, to keep track of water intake, a personal tool with me as target group. Single user, a Vue/Springboot setup, using PostgreSQL (cnpg), with a helm chart to get it running. This makes for interesting design choices to take, perhaps not terribly useful to many others. Feel free to check it out though.

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

LCG Shuffle Visualizer

An interactive exploration of LCG-seeded Fisher-Yates shuffles, built around tunable color scales, MSB/LSB controls, and step-size manipulation. The heatmaps and scatter plots surfaced strong positional biases and structural anomalies — in much of the parameter space, the combo is neither properly random nor a true shuffle.

  • Vue 3
  • TypeScript
  • Vite
  • D3

This Portfolio

A personal portfolio site built as a hands-on exploration of Claude Code and AI-assisted development workflows. The project itself is the thing being demonstrated. The very website you are currently visiting.

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