Everything I've built and still keep running

These are my own projects, not client work, which makes them the most honest thing I can show you. All of them are maintained, and most are written from scratch without a framework. Open one and poke at it.

Bauchgefühl

A food and symptom diary for sensitive stomachs. Describe a meal in one sentence and AI breaks it into ingredients and nutrients, or scan a barcode for real Open Food Facts data. One tap logs a stomach ache, and over time it shows which patterns repeat in your own data. Patterns, never diagnoses. German and English, with a Stripe subscription for the premium analysis.

Built with Next.js, Supabase, Cloudflare Workers AI and Stripe.

Open Bauchgefühl

Pausenklau

Upload a photo of your timetable and AI reads every lesson with its real start and end time, A/B weeks included. A live countdown to the bell turns into a red overtime counter when the teacher keeps going, and one tap logs it. A leaderboard shows who eats the most of your break, with school holidays for every German state built in.

Plain JavaScript on a Cloudflare Worker with D1 and Workers AI. German interface.

Open Pausenklau

Atomic Precision Clock

A network-synced clock that measures and compensates for your device's own drift. It has a Swiss-style analog dial, an interactive 3D globe, world clocks, a stopwatch and a timer, plus a settings panel that remembers everything locally.

Plain JavaScript with SVG and canvas, NTP-style offset sync, no dependencies.

Open the clock

Rust Raid Calculator

A raid calculator for the game Rust. Pick walls, doors and deployables, choose which explosives you can use, and get the cheapest raid path, mixed combos included, with sulfur, gunpowder and every raw material.

Plain JavaScript, settings kept in your browser.

Open the calculator

Tennis Match Tracker

An offline-first scorekeeper built for actually holding a phone courtside: point-by-point entry, full set timelines, ace and double-fault counts, and a head-to-head momentum view that shows who was winning which stretch of the match.

Plain JavaScript, built for phones, works offline. German interface.

Open the tracker

Daumenduell

27 quick party games for one to four people sharing one phone or tablet. Everyone gets a part of the screen and one finger: tapping races, a red-light run, a tug of war that moves the border between the halves, a dare where you let go before the bang, shot put, word and number snaps, a blind stopwatch, blind counting, a rhythm test, darts, basketball, skipping rope, fishing, tower stacking, hurdles, lane switching, a light trail and a flappy flight. Every game says which player counts it makes sense for, and solo rounds keep a personal best.

Plain JavaScript, multi-touch, sound and haptics. Installable as an app and works offline. German interface.

Open the games

WW2 Frontline

A Minecraft resource pack that reskins the game for the Second World War era, 1939 to 1945: firearms, uniforms, field rations and a military-style interface, all at 32x.

Resource pack for Minecraft 26.2, 32x. Found a problem? Report it on GitHub.

Open on Modrinth

spanani bot

The Discord bot that runs my server. Post a project request or ask for a quote and it opens a private thread with a card that shows how far along your project is. It also sets reminders and has free tools for server owners: a Minecraft server status check, Discord timestamps, a bot permissions calculator and a MOTD preview. Every reply is a card with buttons, so nobody has to remember commands.

TypeScript with discord.js and SQLite, running on my own server. Every button is also a slash command. English and German. Privacy and terms.

Try it in Discord

Experiments, half-finished ideas, Rust Empire (server and clan tooling for a Rust community) and the source for this site live on GitHub. Want something like one of these built for you? See what I build for other people.