Projects

Ideas that started as experiments. Some became products.

7 entries · 4 live · 2 in progress · 1 archived · 2025–2026

  1. 2025Full-Stack ProductLive product

    Handwrite

    Personal messages, written in real ink. Postcards and cards with envelopes, from one recipient to a CSV list.

    Handwrite turns a message into physical mail: choose a postcard or card with envelope, compose a note, add recipients individually or from a CSV, and inspect the preview.

    The product joins the ordering experience to handwriting rendering, payment authorization, a production queue and a pen plotter. A production review sits before the hardware starts; finishing and dispatch remain explicit operational steps.

    Stack
    Next.js 15 · TypeScript · Tailwind CSS · Prisma / PostgreSQL · Stripe · Python · G-code / Pen Plotter
    Models
    Google Gemini 3 Pro · Claude Sonnet 4.5 · Claude Opus 4.5
  2. 2026Product GovernancePrototype

    PMX

    Turn product intent into a clear next decision, a reviewed engineering handover, and a record of what happened.

    PMX explores how to move from product intent to engineering work without repeatedly reconstructing the agreement. It reuses source context from Linear, surfaces the next decision, and keeps product review, engineering agreement and receiver acceptance explicit.

    The prototype records versioned handovers and separate implementation, verification, release and outcome evidence. Changed context can reopen review. The longer-term direction is progressive delegation to agents under explicit authority; autonomous execution and authenticated organisational approval are not current capabilities.

    Stack
    TypeScript · React · Vite · Express · Node.js (built-in SQLite) · Zod · Linear API · OpenAI API · Vitest
    Models
    GPT-5.4
  3. 2026iOS AppBeta

    Wirkraum

    An offline Natura 2000 field tool for iPhone and iPad. Built with LubaUI, with traceable sources and a distinct visual identity.

    A German-only iOS app that assembles the designated-feature rows needed at the start of an FFH-Verträglichkeitsprüfung under German nature-conservation law. Given a point and a radius between 0 m and 5 km, it finds the nearby FFH and Vogelschutzgebiete in the embedded Natura 2000 shards for Baden-Württemberg (302 sites), Nordrhein-Westfalen (546) and Bayern (753), then surfaces their designated species, habitats and Standard-Data-Form entries with the source snapshot, licence and checksum attached to every row.

    Everything runs on-device: no account, no analytics, no tracking, no ads, and no operator backend. The only network call is an explicitly user-initiated address search through Apple Maps. The harder discipline was in what it refuses to do — it stops before effect characterisation, significance, derogation and cumulative effects, and it keeps the unfinished ordinance reconciliation visible in the UI rather than rounding it up to a verdict. A screening aid for stage 0/1 of the procedure, not a compliance answer.

    Stack
    Swift 6 · SwiftUI · LubaUI · Python (data pipeline)
    Models
    Claude Sonnet 4.5 · Claude Opus 4.5
  4. 2026Open Source / Design SystemOpen source

    LubaUI

    A shared visual language for SwiftUI apps, used to build Wirkraum. Explore the reusable system and its real-world showcase.

    A composable SwiftUI design system built on radical composability — behaviors like press, swipe, long-press, and glass are extracted into primitives so any view can use them. A three-tier token system (primitives → semantic → component) means every magic number has a name and a rationale, and an MCP server plus a single llms.txt reference make the whole system legible to coding agents.

    Version 0.2.0 turned the remaining documentation into behavior: components now resolve colors, fonts, spacing, and radii from the theme in the environment, a single motion policy honors Reduce Motion, 15 semantic text roles grow with Dynamic Type, and built-in accessibility strings ship in English and German. Two of the 104 tests exist only to guard the architecture — they fail if a theme role goes unread or a component reaches past the theme for a raw value. Targets iOS, macOS, watchOS, tvOS, and visionOS from a single package.

    Stack
    Swift · SwiftUI · Swift Package Manager · MCP
    Models
    Claude Sonnet 4.5 · Claude Opus 4.5
  5. 2025iOS AppiOS app

    VibeEcho

    Explore a public Instagram profile through engagement, comments, and AI-assisted content feedback.

    An Instagram analytics app powered by AI. Analyze any public profile for engagement insights, comment sentiment, content recommendations, and optimal posting times. Uses Gemini's File API to upload and analyze Instagram Reels frame-by-frame for content understanding.

    Stack
    Swift · SwiftUI · Firebase · Apify · OpenAI API · Gemini API · StoreKit 2
    Models
    GPT-4o · Gemini 1.5 Flash (multimodal video)
  6. 2025Research / Open SourceResearch

    AnimalTaskSim

    Testing which learning mechanisms reproduce animal-like choices, and where the explanation breaks down.

    AnimalTaskSim tests explanations of animal choices using trial-level data, comparison models and shared evaluation tools. A September internal replication found a small predictive history effect, without validating a neural mechanism or the proposed adaptive controller.

    The latest documented generative comparison recovered strong simulated history effects but not weak ones, and a drift-model precision check failed its tolerance. Fresh confirmation remains deferred while identification and numerical checks are strengthened.

    Stack
    Python · Gymnasium · PyTorch · Stable-Baselines3 · NumPy · SciPy · Pandas · Matplotlib · Pydantic
    Models
    Claude Sonnet 4.5 · Gemini 2.5 Pro
  7. 2025Workflowsarchived

    Automation & Agents

    n8n nodes and Python scripts. Content pipelines, assistant bots.

    A collection of practical scripts and n8n workflows designed to reduce manual repetitive tasks in daily operations.

    Stack
    n8n · Python · WordPress API
    Models
    GPT-4o · Claude 3.5 Sonnet