00 the spec

Every module, broken down.

GainSync is not a tracker with extras bolted on. Each module below maps to a real part of the app — with a space reserved for its wireframe.

Training blocks

The core of GainSync. Train in periodised blocks with weeks, deloads, and reps-in-reserve targets — not a flat list of days.

  • Manual creation with full control over weeks & days
  • Auto-generation from goal, experience & frequency
  • Planning state before you commit a block
  • Current block tracking with live progress
  • Calendar view of every planned workout
  • Deload weeks & per-workout target RIR
  • Reschedule a single workout or the whole cycle
  • Mesocycle results & block summary
[ wireframe ]Workout sessionSet-by-set logging + rest timer
/app/mesocycle/workout_session

Live workout session

Log the work as it happens. Weight, reps and RIR per set, with the template snapshot pinned so the plan never drifts.

  • Set-by-set logging: weight · reps · RIR
  • Rest timers between sets
  • Session preview before you start
  • Workout set planner
  • Template snapshot per planned workout
  • Exercise picker mid-session
[ wireframe ]Workout sessionSet logging + rest timer
/app/mesocycle/workout_session

Exercise library

A structured movement database — global exercises plus your own — tagged so the generator and stats actually understand them.

  • Global + custom exercises
  • Movement patterns: squat, hinge, H/V push, H/V pull
  • Muscle group & category tagging
  • Difficulty: beginner / intermediate / advanced
  • Form notes & per-exercise rest seconds
  • Create & edit custom exercises
[ wireframe ]Exercise detailPattern · muscle group · form notes
/app/exercise/detail

Statistics

Progress you can see. Charted progression so you know whether the block is actually working.

  • Per-exercise progression over time
  • Total sets across the block
  • Total workouts completed
  • Charts powered by fl_chart
[ wireframe ]StatisticsProgression · total sets · workouts
/app/statistics

Onboarding

Four steps to a usable plan. The answers feed straight into the mesocycle generator.

  • Step 1 — primary goal
  • Step 2 — experience level
  • Step 3 — training frequency
  • Step 4 — complete & generate
[ wireframe ]Onboarding flowGoal → experience → frequency
/auth/onboarding

Workout templates

Reusable building blocks. Define a workout once and drop it into any block.

  • Create & edit templates
  • Template picker per planned day
  • Per-set inputs & target schemes
  • Workout list & detail views
[ wireframe ]Template formExercises · sets · targets
/app/mesocycle/workout_template_form

Platform

The plumbing that keeps it reliable — built on Flutter, GraphQL, and a local-first store.

  • Offline-first: mutations queue via Hive
  • GraphQL backend with sync
  • Local notifications
  • Type-safe i18n (Slang)
  • Secure storage for credentials
  • BLoC/Cubit state management
[ wireframe ]SettingsTheme · units · language · privacy
/app/settings
pricing

Ready to run your coaching business?

See pricing