~/work

Tools and systems I build and maintain

Each one built end-to-end, from schema to deploy. Case studies go deeper on decisions and trade-offs.

Featured Live

Open Earth

Source-aware Earth-science explorer

Combines earthquakes, volcanoes, tectonic context, faults and trenches while keeping provenance, freshness and scientific meaning visible.

  • Vanilla JavaScript
  • MapLibre GL JS
  • Python
  • Static JSON
  • Scientific sources are normalized into browser-safe snapshots and a manifest.
  • The browser combines snapshots with live USGS observations.
  • The interface preserves provenance, freshness and distinctions between reference, observed and derived information.
Open Earth · source-aware data flow

Everything else

  • Mostly AliveSafety and survival knowledge baseSvelteKit 2 · Svelte 5 · TypeScript

    A web-first knowledge system where safety-critical information is prioritized, sourced and kept usable offline.

  • OwlryWayland app launcher in a single binaryRust · GTK4 · Wayland

    Lightweight Wayland application launcher built in Rust with GTK4 and Layer Shell — UI, daemon, and every provider in one binary. Apps, calculator, converter, clipboard, web search and more, with fuzzy tag search, frecency ranking, and Lua-first config.

  • Owly NewsLocal-first RSS reader with two interfacesRust · SQLite · Tauri

    A shared Rust core powers a Tauri/Svelte desktop app and a native ratatui TUI, with optional local summarization that never becomes a hard dependency.

  • Infinity TalesAI RPG with branching narrativesGo · PostgreSQL · Svelte

    AI role-playing game with branching storylines, character progression, and AI-generated scene art. Rewritten from Firebase + React to Go + PostgreSQL + Svelte for full data ownership. Multi-provider LLM integration via OpenRouter.

  • MarktvogtFind your next medieval marketGo · Svelte · TypeScript

    Central portal for medieval markets across the DACH region — connecting visitors, merchants, artists, camp groups, and organizers on one platform. Go backend, Svelte frontend, PostgreSQL full-text search, deployed on Kubernetes.

  • gnomaProvider-agnostic terminal coding agentGo · TUI · LLM Routing

    Agentic coding assistant for the terminal, written in Go. A multi-armed bandit router picks the best model per prompt — cloud or local — and shows its choice on every turn. Extensible through hooks, skills, MCP servers, and plugins.