Skip to main content

Personal fitness coach

Self-hosted application.

I am building a deeply personal predictive coach that helps me break out of negative stress → fitness → nutrition → weight cycles quicker by providing the right guidance at the right time.

Application consolidation (replacing multiple paid apps) is a secondary benefit.

tip

Stage 1 Phase 1 (Foundation) is complete Production-ready base with real-time Strava sync, trustworthy splits, route thumbnails, and instant webhooks.

Follow my build progress in this section. Each completed phase is documented, with code and logs in this repo.


Status​

Completed tasks​

Stage 1 - Phase 1 (Foundation). Production-ready base for personal coach:

  • Real-time sync. New activities appear in ~30 seconds via Strava webhooks.
  • Accurate splits. Shows real distances like "0.08 km" and durations like "0:38" (no fake 1km assumptions).
  • Route thumbnails. Auto-generated OpenStreetMap previews for every activity.
  • Comprehensive admin. Monitor webhooks, job queues, and performance via API.
  • Database-first. Enterprise-grade audit trails for tokens and webhooks.
  • Performance optimised. 95% fewer HTTP requests, lazy-loaded images, sub-50ms API responses.
  • Export ready. CSV export of all your data.
  • Code quality. Enterprise-grade development tooling with Prettier, ESLint, Husky, automated Git hooks, comprehensive Jest testing framework, and fully automated GitLab CI/CD pipeline.
  • See costs & time for ongoing tracking.

Next task​

Complete migration from mac development environment to production on-premises Kubernetes cluster to ensure the app is always running.

In progress tasks​

Outstanding phases in stage 1:

  • Phase 2: Advanced Analytics (auto best efforts 400m-50km, ranking system, time filters).
  • Phase 3: Statistics Dashboard (landscape bar graphs, dynamic scaling, timeframe buttons).
  • Phase 4: Activity Management (edit/delete with audit, Strava difference detection).
  • Phase 5: UI Refinements & Components (filtered counts, clear/refresh filters, shadcn/ui Calendar/Popover, consistent buttons with icons, visual feedback).
  • Phase 6: Multi-User Auth & Permissions (unified User model with multi-tenancy, UnifiedAuthAdapter, roles/permissions, session management, user/session CRUD).
  • Phase 7: Data Import & Migration (batch client/session data import tools from TrainingPeaks with templates & validation).
  • Phase 8: Monitoring & Alerting (background health monitoring, admin views, alerting & notifications).
  • Phase 9: Advanced Testing & Quality (integration tests for components, visual regression tests, cross-browser compatibility, E2E testing).
  • Phase 10: Infra & GitOps (k8s manifests, FluxCD, secrets, backups).
  • Phase 11: Security & Reliability (auth layer, error taxonomy, structured logs).

Future stages (planned)​

  • Stage 2: iOS app with Apple HealthKit (import 10+ years historical data for cycle prediction).
  • Stage 3: Personal Analytics & Prediction (early warning system for negative cycles).
  • Stage 4: Holistic Health Integration (weight, nutrition, sleep, HRV, stress correlation).
  • Stage 5: Apple Watch Personal Coach (proactive suggestions, personal voice coaching).