Naar de inhoud

Strength Tracker

Mijn eigen trainingsapp: workouts loggen op telefoon en laptop, ook zonder bereik, met elke week een concreet advies.

Installeerbare web-appLive en in gebruik

fig. Vvorige weekdeze weekvergelijk per oefeningverbeterdgelijkteruggangnieuwgewichtvolgende weekww + 2,5 kgstap 2,5 of 1,25 kg
fig. V Twee weken naast elkaar, een stap van 2,5 kg voor volgende week.

Voor wie

Mijn trainingspartner en ik. Ik gebruik hem nog elke week.

Het probleem

Trainingsapps zijn vaak Engelstalig, werken slecht zonder internet of laten je niet met twee mensen tegelijk loggen. Ik wilde één app die op telefoon en laptop hetzelfde laat zien, in de sportschool zonder bereik gewoon werkt en na elke week zegt welk gewicht ik de volgende keer pak.

Wat ik bouwde

Strength Tracker is een web-app die je installeert als een gewone app. Je logt sets, gewichten en herhalingen, alleen of samen met je trainingspartner. Alles staat eerst op je eigen toestel en gaat daarna vanzelf naar je andere apparaten. Er zit een bibliotheek van ruim honderd oefeningen in, een 3D-figuur die laat zien welke spieren je deze week trainde, en elke week een advies voor je volgende gewichten.

Wat het oplevert

  1. Werkt offline in de sportschool en synchroniseert zodra er weer bereik is.

  2. Samen trainen: meerdere profielen in één sessie.

  3. Elke week een concreet gewichtsadvies op basis van de week ervoor.

  4. Installeerbaar op telefoon en laptop, gewoon via de browser.

Onder de motorkap

  • Gegevens eerst lokaal, daarna realtime gesynchroniseerd tussen apparaten.

  • Een eigen service worker, zodat de app ook zonder internet opent.

  • In tien stappen omgebouwd tot een snelle app die alleen laadt wat je nodig hebt, met 110 automatische tests.

Het lastigste stuk

Op een nieuw apparaat bleef de app leeg, terwijl de gegevens wel binnenkwamen: het actieve profiel verwees naar een profiel dat alleen lokaal bestond. Nu kiest de app na het samenvoegen automatisch een geldig profiel, en laat een duidelijke melding zien als de synchronisatie ergens vastloopt.

Gebouwd met

  • React
  • TypeScript
  • Vite
  • Tailwind CSS
  • Supabase
  • Three.js