← All work

№ 01 / 03 · Health & fitness · 2024 → ongoing

GhostPacer.

An endurance training platform built around a single, simple promise: every run gets a smarter coach and a friendlier rival — your own past self.

Sector
Endurance / fitness
Platforms
Web · Android · Desktop
Stack
Reactive UI · native shell · edge cloud · LLM inference
Live at
ghostpacer.net ↗

The brief.

Most endurance apps treat training as a calendar of workouts. GhostPacer treats it as a relationship: between your fitness, your fatigue, and the runner you used to be. The product had to feel like a thoughtful coach who quietly remembered everything — without becoming another notification stream.

The Ghost.

The Ghost engine reconstructs synthetic rivals from your own activity history. Pick a route, a target effort, or a memory of a good day, and I generate a pace ribbon you can chase live. I chose your past self over global leaderboards on purpose: comparison should make you fitter, not lonelier.

Real-time analytics.

I rebuild CTL, ATL, and TSB on every sync, then expose the deltas as plain language: fresh enough for hills tomorrow, do not race Saturday. The maths is conventional sports science. The work was making it feel like a friend, not a chart.

Cross-platform craft.

One codebase, three surfaces. A native shell wraps a single reactive UI for Android and Desktop, while the same project deploys to the web. OAuth runs through native deep links so the round-trip feels like one tap, not three browser hops. Secure session storage, biometric unlock, and offline-first caches do the rest.

What I am proud of.

The product feels weirdly calm for a fitness app. No streaks, no shouting, no neon. Just a clean ribbon, a useful number, and a quiet voice that says you are ready. Engagement is high without being addictive — a distinction that matters to me.

The first running app that ever felt like it was on my side.