Why hexagons?
The very first mobile mockup, drawn in 2024, had a honeycomb of sessions on the home screen. Two years later it survived every redesign. On what a week actually looks like when it tessellates, and why calendars lie about rest days.
ReadStoring raw TCX in MySQL: a pragmatic heresy
Everyone said "put files on disk". But on a €3 shared host with FTP-only deploys, a MEDIUMBLOB column is the boring choice that survives migrations, backups and moves. Benchmarks, max_allowed_packet traps, and when we'd revisit.
ReadThe invitation-only beta is open
Every account now starts with an invitation code — single-use, seven days. Why we're gating registration during the beta, how invites propagate, and what "limited number of users" means in practice.
ReadDesigning under the aurora
How the Revontulet design system came together: polar-night neutrals, an aurora accent band, one warm fox counter-accent, and sport colours lifted straight from the original product mockups.
ReadOne year of dogfooding
365 days of importing my own runs, rides and swims into the alpha. What broke (pool lengths), what stuck (the Rêve on top of the dashboard), and the features I deleted without regret.
Read