Lab
What I build when nobody commissioned it
Own products and smaller work. This is where the techniques come from that later show up in client work — and where something is allowed to fail.
Common room booking plan
Residents of a student hall see when the common room is free and book it without an account — edits happen through a secret link. One Node process, no external services.
- SvelteKit
- Svelte 5
- SQLite
- Drizzle
Kicktipp dashboard
A public football prediction round turned into a readable dashboard: standings with position trends, cumulative points, a bump chart, a heatmap and auto-generated insights — because the original interface is static.
- Next.js
- TypeScript
- data visualisation
CouchCinema
A film and TV companion built on TMDb data, with watchlists, ratings and a light social layer. Published in the Google Play Store.
- Flutter
- Dart
- Firebase
- TMDb API
GamerGrove
Discover games and manage your own collection on top of IGDB data, with a wishlist and a community feed. Published in the Google Play Store.
- Flutter
- Dart
- IGDB API
LifeLoop
A photo journal for stable long-term timelapses. A semi-transparent overlay in the viewfinder plus ML Kit face alignment keep frames registered — all on device, nothing in the cloud.
- Flutter
- ML Kit
- on-device processing