How deepstructured/deep-gym works
DeepGym is a cross-platform workout tracker: athletes configure a profile and training week, log and reuse workouts, then review history and strength trends. The web app and Expo mobile app expose parallel product surfaces, with shared domain logic and Supabase-backed account data. The sampled code confirms Telegram OTP and OAuth session flows; most workout and analytics wiring is inferred only at the capability level from the README, so uncertain implementation-level links are omitted.
Main entry points: workout-form.tsx Workout logging · auth Sign in · page.tsx Web app · index.tsx Mobile app
Components 21
App surfaces
- Web app
app/page.tsx - Mobile app
apps/mobile/app/(app)/(tabs)/index.tsx - Sign in
src/features/auth - Guided setup
src/views/onboarding/ui/onboarding-view.tsx - Preferences
src/views/settings/ui/settings-view.tsx
Training workflow
- Workout logging
src/features/workout-form/ui/workout-form.tsx - Workout drafts
src/features/workout-form/model/draft-sync.ts - Workout records
src/entities/workout/api/queries.ts - Workout templates
src/entities/workout-template/api/queries.ts - Exercise library
src/entities/exercise/api/queries.ts - Plate calculator
src/features/plate-calculator/ui/plate-sheet.tsx
Progress and planning
- Exercise insights
src/features/exercise-stats/ui/progress-explorer.tsx - Workout history
src/views/history/ui/history-view.tsx - Training analytics
src/features/training-analytics/model/analytics.ts - Body weight
src/entities/body-weight/api/queries.ts - Training schedule
src/features/training-schedule
Shared platform
- Domain logic
packages/core/src/index.ts - Supabase data
src/shared/lib/supabase/client.ts
Other components
- Athlete
- Supabase
- Telegram bot
Connections 24
- Athlete → Web app: uses
- Athlete → Mobile app: uses
- Web app → Sign in: signs in
- Mobile app → Sign in: signs in
- Web app → Guided setup: configures
- Mobile app → Guided setup: configures
- Web app → Workout logging: starts logging
- Mobile app → Workout logging: starts logging
- Workout logging → Workout drafts: saves draft
- Workout logging → Workout records: records session
- Workout logging → Exercise library: selects exercises
- Workout logging → Workout templates: loads template
- Workout logging → Plate calculator: calculates plates
- Workout history → Workout records: reads sessions
- Exercise insights → Workout records: reads exercise history
- Training analytics → Workout records: analyzes sessions
- Preferences → Training schedule: edits schedule
- Preferences → Body weight: records weight
- Workout logging → Body weight: reads latest weight
- Domain logic → Training analytics: provides calculations
- Sign in → Supabase data: authenticates
- Supabase data → Supabase: reads and writes
- Sign in → Telegram bot: requests code
- Telegram bot → Sign in: delivers code