Log sets by talking to a bot. Review progress on a 3D body.
A strength-training tracker where workout logging happens in Telegram — text or voice, an AI extracts the sets. The same SPA runs as a Telegram mini-app: feed, calendar with per-exercise charts, a 3D anatomical body map with recovery/volume/learn lenses across 36 muscle groups, an AI assistant over your own data, coach mode, friends, and daily readiness pushes.
What it does
Telegram bot logging
Text or voice → structured sets. You talk to a Telegram bot — free text or voice message — and an AI extracts exercises, reps, and weights. Supports undo, "same again" repeat, and per-set PR detection with reps-to-PR hints. The bot keyboard handles set entry; a new session starts automatically after a 5-hour gap.
3D anatomical body map
Interactive anatomy viewer with three lenses. A DRACO-compressed GLB model tagged with 36 muscle groups renders in THREE.js. Switch between recovery (readiness heat), weekly-volume zones, and an ask lens. Each muscle links to inline Learn content drawn from a 158-muscle dictionary — function, training notes, stretches.
Unified strength tracking
One scale across all movement types. Estimated 1RM (Epley) is the universal strength axis — unified across weighted, isometric (time-as-reps minus bodyweight portion), and bodyweight movements. Calendar with per-exercise D3 charts, PR history, and a radar view. 123 curated exercise guides plus AI-generated fallbacks.
AI assistant & readiness pushes
Query your own training data in natural language. The conversational assistant runs guarded SQL (SELECT-only, mandatory user-id bind, table whitelist) so it never touches another user's data. Daily readiness pushes send a headless-rendered 3D body image with an AI coach caption to your Telegram.
Coach mode
Act as a consenting client — bidirectional invite, per-grant permissions. A coach can impersonate a client via X-Act-As; the accepted coach_links row is re-checked on every request. The client sets the permission level (exercises, workouts), and the coach sees all client-scoped views unchanged. Coaching is friendship-independent and one-directional.
Workout cards & sharing
Styled share images, auto-sent on session close. Closed sessions get a rendered workout-card PNG (disk-cached per card_rev) and a 1200×630 share card. Cards auto-send to Telegram after 2 hours idle or on manual end. Optional once-per-workout Strava share with OAuth. Share analytics track sends and views — owner-only, no names.