Wattup
Een dagelijks dashboard voor wielrenners. Het rekent elke ochtend je ritten door en vertelt in gewone taal wat ze betekenen, en wat voor rit vandaag past.
Bekijk de demo
Een werkende versie met Bo, een verzonnen renner met ruim een jaar aan ritten. Mijn eigen versie zit achter een login.

Het advies voor vandaag staat bovenaan, met de laatste rit er direct onder.
Het probleem
Veel getallen, weinig duiding
Als wielrenner wil ik op de lange termijn vooruit, zolang ik daar de tijd en de mogelijkheid voor heb. In Strava en de app van Wahoo miste ik data. intervals.icu leerde ik pas kennen toen ik aan Wattup begon; daar staat de data wel, maar onduidelijk gepresenteerd, en in afkortingen als CTL, ATL en TSB. De AI in Strava geeft weinig duiding.
Wat ik wilde weten, was eigenlijk eenvoudig: wat past vandaag, en werkt mijn training? Mijn uitgangspunt: geen coach die vragen stelt, maar een data-analyse die ik 's ochtends bekijk.
Er was ook een tweede reden. Ik wil bijblijven met wat er met AI mogelijk is, en dat leer je het best aan een echte case, met echte data en een echte gebruiker. Wattup is dat voor mij.
Voor wie
Voor de serieuze renner die van data houdt
In de eerste plaats voor mezelf: een amateurrenner met een vermogensmeter, die binnen op Zwift racet en buiten fietst. Geen sociaal netwerk, maar een rustig overzicht van hoe je ervoor staat. In het ontwerp heb ik al vooruitgedacht aan andere renners, met een profiel achter de avatar en een uitgewerkte flow om je eigen intervals.icu te koppelen.
Advies
Soort rit, duur en vermogen voor vandaag, met waarom.
Vorm
Conditie, vermoeidheid, drempels en of je aerobe basis groeit.
Signalen
Hartslag bij vast vermogen als waarschuwing voor ziek of moe.
Mijn rol
Ontwerper, opdrachtgever en tester tegelijk
De code is met Claude geschreven. Ik bepaalde wat er gebouwd werd en hoe het eruit moest zien, testte alles op mijn eigen ritten en nam de ontwerpbeslissingen; Claude kwam ook zelf met ideeën. Per module staat in een logboektekst waarom hij bestaat en wat er eerder misging.
Er zitten twee vangnetten in. Een controle kijkt elke gebouwde pagina na voordat er iets gepubliceerd wordt, en een verbouwtest vergelijkt bij elke opruimronde alle pagina's voor en na.
- 280+Versies sinds eind augustus
- 07:30Elke ochtend automatisch bijgewerkt
- 2Vangnetten voor elke publicatie
- 1Huisstijl, gedeeld met dit portfolio
Ontwerpkeuzes
Rust in een scherm vol data
Mijn aandacht ging vooral naar begrijpelijkheid, en naar rust in een scherm met heel veel getallen. Zes keuzes die dat laten zien.
1. Eerst het advies, dan de cijfers
Op de telefoon vulde "Vandaag in cijfers" eerst het hele scherm. Nu staat het advies bovenaan, ook op de computer: soort rit, duur en vermogen, en een weekbalk die laat zien of je in de opbouwzone zit. Wie wil weten waarom, klapt de uitleg open.

2. Geen jargon zonder uitleg
Overal staat een Nederlandse naam met de afkorting erachter, zoals "Basisconditie (CTL)". De uitleg zit achter "Hoe lees je dit" en een i-tje, zodat hij er niet in de weg zit, en achterin staat een begrippenlijst.
3. Minder getallen tegelijk
Per kengetal stonden eerst drie vergelijkingen: gisteren, vorige week en vorig jaar. Nu is dat één regel. Het kaartje "Opbouwsnelheid" is weg: over 418 dagen nagerekend bleek het precies hetzelfde getal als de weekstijging van de basisconditie.

4. Alleen wat op echte data getoetst is
Zoals ik bij klanten een idee toets met gebruikers, toets ik hier elke maat op echte data voordat hij op het dashboard komt. Een paar dingen gingen er daardoor juist af. De rusthartslag stond altijd op 50: dat bleek een instelling, geen meting. Watt per hartslag als dagmeter zei na correctie voor de trend niets meer. Ontkoppeling per rit bleek ruis. En ritjes van een paar minuten tellen niet mee.
5. Eerlijk over wat de cijfers kunnen zeggen
Data ziet er precies uit, ook als hij dat niet is. Een rit wordt alleen vergeleken met de ritten ervoor, en medailles tellen pas vanaf twintig eerdere ritten; zo krijgt ongeveer een op de vier ritten er een. De hartslag geeft pas een melding bij herhaling, zodat toeval geen alarm geeft. En waar binnenritten een cijfer kunnen optillen, is de lijn gestippeld en staat erbij waarom.

6. De telefoon als volwaardig scherm
Op de telefoon is het menu in groepen ingedeeld, zijn de tabellen compact en kies je zelf tussen licht, donker of je systeeminstelling.

De demo
Een openbare demo zonder mijn eigen data
Om Wattup te kunnen laten zien, maakte ik een demo met Bo, een verzonnen renner uit Drenthe met ruim een jaar aan ritten. Er zit bewust een zieke week in, zodat het hartslagsignaal iets te laten zien heeft. Wie de demo opent, krijgt een rondleiding in zes stappen die je kunt overslaan.
Het koppelen van je eigen intervals.icu is als klikbaar ontwerp uitgewerkt. Dat zegt eerlijk dat die stap via intervals.icu zelf loopt; er zit geen nagemaakt inlogscherm in. En een lekcontrole zorgt dat er niets van mijn eigen gegevens in de demo belandt.
Waar het nu staat
Van eigen gebruik naar de eerste feedback
Tot nu toe ben ik zelf de gebruiker. De volgende stap is wat ik in mijn werk ook doe: anderen ermee laten werken en kijken waar ze vastlopen. De demo ligt nu bij de eerste andere renner.
Techniek, kort: Python bouwt statische pagina's uit de data van intervals.icu, met Chart.js voor de grafieken en Leaflet voor de kaarten. Het draait elke ochtend om 07:30 en publiceert naar Cloudflare Pages.
Reflectie
Wat ik meeneem
Of het nu om calculaties gaat of om trainingsdata: het werk zit in de vertaling. Wat betekent dit getal, en wat doe je ermee? Met AI kan ik die vertaling zelf tot een werkend product maken. Maar het schrappen bleek net zo belangrijk als het bouwen: een maat die niet klopt, kan beter weg dan dat hij er overtuigend uitziet.