Trainer Documentation

Complete guide for trainers and coaches using GainSync on mobile and web.

Mobile App

Getting Started (Account & Onboarding)

Trainer accounts are not created inside the GainSync app but through a paid checkout on the GainSync website via Paddle which redirects you to the app to claim your account. After claiming, you complete a 5-step self-onboarding wizard to set your profile, password, photo, bank account, and receive your personal 6-digit coach code and QR code for clients to connect to you.

  1. Subscribe on the GainSync website by choosing a monthly or yearly plan and completing checkout via Paddle the payment provider.
  2. After payment, Paddle redirects you to the app via a GainSync link of the form gainsync://claim-trainer?_ptxn=...
  3. The app opens on the Claim Trainer screen which verifies your payment and prepares your trainer workspace while showing a Setting up your account message.
  4. If the claim succeeds you're taken to the 5-step trainer onboarding wizard, or if it fails you see an error with a Try again button.
  5. Complete Step 1 Profile by entering your First name and Last name, and entering a Username (min 3 characters, letters/numbers/underscores) which the app checks for availability as you type.
  6. Complete Step 2 Password by entering a Password (min 8 characters), confirming the password, and using visibility toggles to show/hide each field.
  7. Complete Step 3 Photo by optionally uploading a profile photo using Take Photo or Choose from Gallery, with the ability to remove and retry if needed.
  8. Complete Step 4 Bank by entering your bank account number which is used for payouts when clients pay you.
  9. Complete Step 5 Overview by reviewing everything you entered and tapping Finish to submit and enter the app.
  10. Find your coach code in Settings or the Coach Code share screen where you'll see a QR tile and your code (e.g. MARCUS-7QF2).
  11. Share your code using the action row with Copy code to copy to clipboard, Share link to open your phone's share sheet, or Save QR to save the QR image to your photos.
  12. Reset your coach code later in Settings if needed.
You can change your plan later by going to Billing (Settings → Account → Billing, or the Billing tab) to upgrade, downgrade, or cancel.
Cancellation sets cancel at period end so you keep access until your current period ends then the subscription stops.
When a client enters your code a join request appears in your Join Requests screen and you must accept them before they become your client.
The in-app Sign Up form only creates client accounts while trainer accounts require a paid subscription handled externally via Paddle.

The Home Screen & Navigation

After onboarding you land on the Home screen with four tabs along a floating glass navigation bar at the bottom: Dashboard for your daily overview with KPIs and alerts, Clients for your client roster and per-client management, Library for your exercise library, plan templates, meal database, and meal templates, and Chat for conversations with your clients. The navigation includes notification indicators and quick access to key features.

  1. Switch between the four tabs by tapping the icon in the bottom navigation bar: Dashboard (grid icon), Clients (people icon), Library (folder icon), or Chat (speech bubble icon).
  2. View the red badge on the Chat tab showing the total number of unread messages across all client conversations.
  3. Tap the notification bell in the top-right to open the Notification Center when you see a red dot indicating unread alerts.
  4. The Dashboard tab shows your daily overview with KPIs, weekly activity, clients needing attention, and quick actions.
  5. The Clients tab displays your client roster and per-client management with search and filtering.
  6. The Library tab provides access to your exercise library, plan templates, meal database, and meal templates.
  7. The Chat tab opens conversations with your clients for messaging and attachments.

Dashboard Tab

The Dashboard is your daily command center displaying a greeting header with your avatar and notification bell, KPI stat row with Active Clients count and Sessions Today, Weekly Activity bar chart of sessions per day over the last 7 days with peak days highlighted in red, Quick Actions tiles for Add Client, Create Plan, and Meal Prep, and a Clients Needing Attention list with alerts for missed workouts, overdue check-ins, or missing plans.

  1. View the greeting header with your avatar, a Good morning/afternoon Coach Name greeting, and the notification bell.
  2. Review the KPI stat row with two glass cards showing Active Clients (your current roster count) and Sessions Today (sessions scheduled for today).
  3. Check the Weekly Activity chart which is a bar chart of sessions per day over the last 7 days with peak days highlighted in red.
  4. Use the three Quick Actions tiles: tap Add Client to open the Coach Code share sheet to invite a new client, tap Create Plan to jump to the Plan Builder to create a new training plan template, or tap Meal Prep to jump to the Meal Database/Meal Templates to manage meals.
  5. Review the Clients Needing Attention list showing clients with alerts such as Missed Workout or Overdue Check-in, and tap a row to act on the client.
Clients appear in Needs Attention when they've missed a workout, have an overdue check-in, or are missing macros/training/meal plans.
The dashboard layout is fixed but the content updates automatically based on your roster.

Clients Tab & Client Management

The Clients tab features a search bar to filter clients by name, KPI summary cards showing Active Roster count and Avg Adherence percentage, a Planning button to open the cross-client Trainer Planning screen, and client cards showing avatar, status dot, name, goal tag, last-activity time, and adherence percentage. Tapping a client opens their Client Profile with five tabs for Overview, Progress, Training Plan, Nutrition, and Notes.

  1. Use the search bar to filter clients by name with the placeholder Search elite clients.
  2. View the KPI summary with two cards showing Active Roster count and Avg Adherence percentage.
  3. Tap the Planning button in the top-right to open the cross-client Trainer Planning screen.
  4. View client cards each showing avatar, status dot, name, goal tag (e.g. MUSCLE GAIN/FAT LOSS), last-activity time, and an adherence percentage with a progress bar.
  5. Tap a client to open their Client Profile which has a horizontal tab bar with five tabs: Overview, Progress, Training Plan, Nutrition, and Notes.
  6. On the Overview tab view the client's profile header with avatar, goal tag, and adherence, plus quick-link cards to Progress Gallery, Training Plan, and Nutrition.
  7. On the Progress tab view the client's weight trend, measurements, and progress photos.
  8. On the Training Plan tab view the client's assigned training plan with the ability to assign/unassign/reassign plans.
  9. On the Nutrition tab view the client's assigned meal plan and nutrition goals with the ability to assign/unassign meal plans and edit macros.
  10. On the Notes tab view your private trainer-only notes about the client with the ability to add, edit, and delete notes.
  11. Run the Trainer Onboarding Wizard for a client from the Dashboard (Needs Attention) or client action sheet to set their macros, training plan, meal plan, and payment.
  12. End a trainer-client relationship by opening the client's profile, using the end relationship action in the overflow menu or action sheet, and confirming in the dialog.
A client can be connected to only one trainer at a time.
Notes are private to you and the client cannot see them.
To remove a client, open their profile, end relationship, and confirm - the client gets a Relationship Ended notification.
View a client's check-in history at Client Profile → Progress tab → Check-in History and tap Open latest report to view their most recent weekly report in read-only mode.

Join Requests (Trainer side)

When a client enters your coach code a join request appears which you can view from the Notification Center filtering by Join Requests or the Trainer Join Requests screen. For each pending request you can view the client profile, accept to create the trainer-client relationship, or reject to remove the request. Your subscription plan has a client seat limit that may require upgrading when accepting new clients.

  1. View pending join requests from the Notification Center filtering by Join Requests or the Trainer Join Requests screen at Profile/Settings → Join Requests or a Dashboard alert.
  2. For each pending request, tap View client profile to see their info before deciding.
  3. Tap Accept to create the trainer-client relationship which gives the client a Join Accepted notification and auto-creates a chat conversation.
  4. Tap Reject to remove the request which gives the client a Join Rejected notification.
  5. If you're at capacity with your client seat limit, accepting a new client triggers a seat-limit paywall showing an upgrade suggestion.
  6. Upgrade your plan or remove an existing client before accepting a new one if at capacity.
Your client seat limit depends on your plan which you can check in Billing.
Acceptance creates a relationship immediately and to undo it you'd have to end the relationship.
When you reject, the client gets a Join Rejected notification and can try connecting to a different trainer.

Library Tab

The Library is your content hub showing four stat cards with counts and a last-refreshed indicator for Workout Plans (your training plan templates), Exercises (your exercise library), Meal Plans (your meal plan templates), and Meals (your meal database). Tapping any card opens the corresponding library and the tab auto-reloads when you switch back to keep counts fresh after creating or deleting items.

  1. View the four stat cards showing Workout Plans count, Exercises count, Meal Plans count, and Meals count with a last-refreshed indicator.
  2. Tap the Workout Plans card to open your training plan templates library.
  3. Tap the Exercises card to open your exercise library.
  4. Tap the Meal Plans card to open your meal plan templates library.
  5. Tap the Meals card to open your meal database.
  6. The Library tab auto-reloads when you switch back to it so counts stay fresh after you create or delete items on other screens.

Exercise Library & Editor

The Exercise Library displays a searchable list with filter chips for All/Favorites/System/Custom where System exercises are built-in and read-only while Custom exercises are ones you've created. Each exercise card shows name, muscle-group badges, and a heart icon to favorite. The Exercise Detail shows version badge, attribute tiles, target muscles, description, tutorial video, and action buttons for editing and adding to plans.

  1. Open Exercise Library from Library → Exercises.
  2. Use the search field to filter exercises by name.
  3. Use filter chips to view All, Favorites, System, or Custom exercises where System exercises come built-in and can't be edited while Custom exercises are ones you've created.
  4. View exercise cards showing name, muscle-group badges (e.g. LEGS · BARBELL · ADVANCED), and a heart icon to favorite.
  5. Tap the + FAB (bottom-right) to create a new exercise.
  6. Tap a card to open Exercise Detail showing version badge (e.g. V1.2) and source pill (Core Database for system exercises, Trainer Database for yours).
  7. View attribute tiles for Difficulty, Equipment, and Movement Pattern.
  8. View Target Muscles with Primary (red-tinted chip) and Secondary (neutral chips).
  9. View the Description card with form guidance and Tutorial Video card with playable thumbnail if a YouTube URL was added.
  10. Use the action bar with Edit Exercise (ghost button) to open the editor for custom exercises only, and Add to Plan (red button) to add the exercise to a workout you're building.
  11. Use the overflow menu (⋮) for custom exercises to Edit or Delete.
  12. From the Library tap the + FAB to create or open an existing custom exercise and tap Edit to open the Exercise Editor.
  13. Fill in the Basics card with Exercise Name, Description (multiline), and Note.
  14. Fill in the Mechanics card with Difficulty (Beginner/Intermediate/Advanced), Equipment (dropdown), Movement Pattern (dropdown), and Primary Muscle Groups (add/remove chips with + Add Muscle).
  15. Fill in the Media card with Reference Video URL (YouTube) and tap Verify to validate the link.
  16. Tap Save Version to create a new version of the exercise.
System (core database) exercises are read-only so you can favorite them and add them to plans but not modify them.
Verification checks that the YouTube URL is a valid playable link so clients don't see a broken video.
Each save creates a new version letting you track changes over time without losing the previous form.

Training Plan Templates & Plan Builder

The Plan Templates list shows your reusable training plan templates with each displaying name, number of workouts, schedule mode (Repeating Week or Cycle), and creation date. The Plan Builder lets you assemble a training program with top-level fields for plan title, description, and schedule mode, per-day configuration for day type and title, workout sections with exercises, and set configuration including weight, reps, and drop sets support.

  1. Open Plan Templates from Library → Workout Plans.
  2. View template cards showing template name, number of workouts, schedule mode (Repeating Week or Cycle), and creation date.
  3. Tap Create New to open the Plan Builder for a new template.
  4. Tap Edit to open the Plan Builder with the template loaded.
  5. Tap Delete to remove the template with confirmation.
  6. Tap Assign to open the Assign Plan screen.
  7. In the Plan Builder, fill in top-level fields including Plan Title, optional Description, and Schedule Mode toggle between Repeating Week (7-day cycle that repeats) or Cycle (sequential days not tied to weekdays).
  8. For each day, set the Day type (Rest, Push, Pull, Legs, Upper, Lower, Full Body, Cardio), edit the Day title, add or remove days (min 1 day), and expand/collapse a day to see its workout details.
  9. Within a day, add or remove workout sections such as Main Workout or Warm-up using Add Section or Delete Section.
  10. Within a section, tap + Add Exercise to open the Exercise Picker (full-screen bottom sheet with search and muscle-group filter chips), multi-select exercises, and tap Confirm.
  11. For each exercise, configure the number of sets, reps range (e.g. 8-10), weight in kg, and drop sets support.
  12. Tap Save as Template in template mode to save a reusable template version.
  13. Tap Save & Assign in client-specific mode to save client-specific weights/reps and assign the plan to them.
  14. Tap a day card in the Plan Builder to open the Workout Editor for that day to edit sections and their exercises, add/remove sets and drop sets per exercise, add/remove sections, and save changes back to the parent plan.
A template is a reusable blueprint stored in your Library while an assigned plan is a template you've assigned to a specific client for a date range with the backend auto-generating individual planned workouts.
You can reuse one template for many clients by creating it once and assigning it to as many clients as you want.
When you edit a template, GainSync detects outdated assignments and offers a bulk reassign option so clients move to the latest version.

Assigning Plans & The Planning Dashboards

You can assign training plans through multiple methods: from Plan Templates by selecting a template and client with dates, from a client's action sheet, or from the Unified Plan Assignment screen with Meal Plan and Workout Plan tabs. The planning dashboards include Trainer Planning for cross-client overview, Client Planning Dashboard for single-week grid editing, Session Planner for multi-week view with set value editing, and Client Workout Calendar for read-only viewing.

  1. Assign a plan using Method 1 from Plan Templates by tapping Assign on a template, selecting one or more clients, picking a Start Date and optional End Date, reviewing the timeline for conflicts (overlapping assignments are flagged), and tapping Assign to have the backend auto-generate PlannedWorkouts for the date range.
  2. Assign using Method 2 from a client's action sheet by opening the Clients tab, tapping Assign Plan on a client card or from their profile, selecting a template, setting dates, and assigning.
  3. Assign using Method 3 from the Unified Plan Assignment screen by opening from a client's profile or action sheet, picking the Meal Plan or Workout Plan tab, searching and selecting a template, setting Valid From and Valid To dates, and tapping Assign.
  4. Open Workout Plan Detail (trainer view) from a client's profile or plan-assigned notification to see the plan structure, workouts, and exercise counts, with options to Activate This Plan or Reassign Plan if the template has a newer version.
  5. Open Trainer Planning (cross-client dashboard) from the Clients tab → Planning button (top-right) to see a summary card with count of workouts needing planning, filter chips (All/Needs Planning/Planned), and a client list showing the client, next workout date, workout name, and ready status.
  6. Tap a client in Trainer Planning to open their Client Planning Dashboard which is a week-grid view with a horizontal Mon-Sun selector, week navigation arrows, the ability to tap a day to select its planned workout, a Workout Details panel showing exercises with sets/reps/weights with Edit and Delete options, and a Mark Ready toggle (bottom bar) to mark the workout as ready for the client.
  7. Open Session Planner (multi-week) from the Clients tab → Session Planner button or the Trainer Planning screen to see a per-client multi-week view of all scheduled workouts across the plan's date range with week nav arrows and Week X of Y indicator.

Web App

Get Your Trainer Account

Trainer accounts are not created through a public sign-up form but through a paid checkout via Paddle. After payment, you are redirected to the Claim Trainer page where your payment is verified and your account is created.

  1. Complete a Paddle checkout from a marketing landing page or invite link to initiate trainer account creation.
  2. After payment, you are automatically redirected to the GainSync Claim Trainer page at /claim-trainer.
  3. The Claim Trainer page verifies your payment in the background while showing a loading state that says 'Setting up your account… Verifying your payment and preparing your trainer workspace.'
  4. If verification succeeds and your trainer profile is complete, you are redirected directly to /dashboard.
  5. If verification succeeds but your trainer profile is incomplete, you are routed to the trainer onboarding wizard to complete your setup.
  6. If verification fails, an error message is displayed with a retry option and help link.
  7. Double-check that your Paddle payment actually completed if verification fails, and contact GainSync support if the issue persists.
  8. Your trainer account is created without a password by Paddle, so setting a password becomes the first step of onboarding.
  9. Once your account is fully set up, you can log in using the email and password you established during onboarding.
If verification fails, double-check that the Paddle payment actually completed. Contact GainSync support if it persists.
Your trainer account is created without a password by Paddle — that's why setting a password is the first step of onboarding.

First-Run Onboarding (5 Steps)

After claiming your trainer account with an incomplete profile, you are automatically guided through a 5-step wizard to set your password, profile information, avatar, and bank account details. This wizard ensures your trainer workspace is fully configured before you begin using the app.

  1. After claiming your trainer account, you are automatically redirected to the onboarding wizard if your profile is incomplete.
  2. On Step 1 (Password), set a secure password for your account using the strength indicator to guide your choice, then click Next.
  3. On Step 2 (Profile), enter your First name, Last name, and Username, which may be pre-filled from your payment information, then click Next.
  4. On Step 3 (Profile picture), optionally upload an avatar image by selecting a file from your computer, or click Skip to continue without one.
  5. On Step 4 (Bank account number), optionally enter your bank account number which clients will see when you request payments, or click Skip to add this later in Profile/Settings.
  6. On Step 5 (Overview), review a summary of all the information you entered across the previous steps.
  7. Use the Back button to navigate to any step and correct any mistakes before finalizing.
  8. Click Finish to complete the onboarding process and save all your information.
  9. After clicking Finish, you are automatically redirected to your dashboard at /dashboard where you can begin managing clients.
  10. You can edit all of these settings later from the Profile page for name/avatar/bank account, and Settings for password.
You can edit all of these later (Profile page for name/avatar/bank account; Settings for password).
Adding your bank account now saves time later when you create your first payment request.

Your Dashboard (Command Center)

The dashboard is your command center displaying KPI tiles, weekly activity charts, invite codes, and a Needs Attention list. This is where you land after logging in and where you can quickly access key metrics and actions for managing your training business.

  1. Click Dashboard in the side navigation on desktop or bottom navigation on mobile, or navigate directly to /dashboard.
  2. View the greeting block at the top with your avatar and a notifications shortcut for quick access to alerts.
  3. Review the KPI tiles showing total clients, active clients, new clients this week, and pending join requests at a glance.
  4. Examine the weekly activity chart displaying real session data from your clients to track training volume trends.
  5. Check the ASAP count which shows how many workouts still need planning for today or tomorrow to prioritize urgent tasks.
  6. Find your invite code displayed on the dashboard card with options to copy, regenerate, or show a QR code.
  7. Click Copy on the invite code card to copy the 6-character code to your clipboard and share it with clients via text or email.
  8. Click Show QR code to open a QR dialog that clients can scan in person to join your roster.
  9. Click Regenerate on the invite code card to generate a new code after confirming that the old code will stop working.
  10. Review the Needs Attention list with a count badge showing clients flagged for missing training plan, missing meal plan, missing macros, missing payment, macros not met, or missed workout.
The ASAP count tells you how many workouts need planning urgently — tackle these first.
Regenerating your invite code invalidates the old one — only do this if you think the old code has been shared too widely.

Invite Clients & Manage Join Requests

You invite clients by sharing your 6-character invite code from the dashboard, and manage incoming join requests from the Join Requests page. This section covers the complete workflow from sharing your code to accepting or rejecting client requests.

  1. Copy your 6-character invite code from the dashboard card by clicking the Copy button.
  2. Share the invite code with your client via text, email, or any other communication method.
  3. Alternatively, click Show QR code on the dashboard to display a QR code that clients can scan in person to request to join your roster.
  4. Navigate to the Join Requests page by clicking Clients in the navigation and selecting Join Requests, or go directly to /clients/requests.
  5. View the list of pending join requests where each row shows the client's avatar, name, requested date, and Accept/Reject actions.
  6. Look for any cancelled-request alerts that appear when a client cancels their own request, which you can dismiss to remove from the list.
  7. To accept a pending request, click the Accept button on the client's row in the join requests list.
  8. After clicking Accept, you are automatically routed into the Client Setup Wizard to complete the client's full setup with macros, training plan, meal plan, and payment.
  9. To reject a pending request, click the Reject button and confirm the rejection in the confirmation dialog that appears.
  10. To dismiss a cancelled-request alert, find the alert in the list and click dismiss to mark it as read and remove it from the view.
Accepting a request is just the first step — you then run the setup wizard to assign macros, plans, and payment. The client gets app access immediately when they submit your code, regardless of when you accept.

Client Setup Wizard (4 Steps)

The Client Setup Wizard is a 4-step guided process to get newly-accepted clients fully configured with macros, training plans, meal plans, and payment setup. Each step is skippable and progress is tracked so you can complete setup at your own pace.

  1. Access the wizard automatically after accepting a join request, or manually by opening a client's detail page and clicking Setup which navigates to /clients/:uid/setup.
  2. On Step 1 (Macros), set the client's nutrition goal by entering calories, protein, carbs, fat, and target weight, then click Next or Skip.
  3. On Step 2 (Training plan), assign a training plan template to the client by selecting from your existing templates and setting valid-from and valid-to dates, then click Next or Skip.
  4. On Step 3 (Meal plan), assign a meal plan template to the client by selecting from your existing meal plan templates, then click Next or Skip.
  5. On Step 4 (Payment), create a one-off payment request for the client, or select or create a reusable payment template, or set up a recurring payment schedule.
  6. Enter the payment amount, description, and optional due date when creating a payment request in the wizard.
  7. If setting up recurring payments, configure the interval (e.g. monthly), start date, and end date for automatic payment request generation.
  8. Click Finish on the final step to complete the setup wizard and save all configurations for the client.
  9. The client will receive access to their assigned plans and payment information immediately after you complete the wizard.
  10. Any skipped steps can be completed later from the client's detail page where you can assign macros, plans, or payment individually.
Skipped steps can be completed later from the client's detail page (section 7).
The payment step is web-only — the mobile wizard doesn't include it.

Client Management (Roster)

The Clients roster provides a paginated list of all your clients with search functionality and online status indicators. From here you can quickly find and open any client's detailed profile to access their full information and coaching tools.

  1. Click Clients in the navigation menu to access the client roster, or navigate directly to /clients.
  2. View the paginated or scrollable list of all your clients displaying each client's avatar, name, last-active time, and online status indicator.
  3. Use the search field at the top of the list to find clients by typing their name, username, or email.
  4. Watch the list filter in real-time as you type to quickly locate specific clients.
  5. Check the pending join-request count badge on the Clients nav item to see if any new requests need your attention.
  6. Click any client's row in the roster to open their full detailed profile page at /clients/:uid.
  7. Observe the online status dot next to each client's name to see if they are currently active in the app.
  8. Use the online status information to time your chat messages when clients are likely to be responsive.
  9. Navigate to the Join Requests page from the Clients section if you need to accept or reject pending client requests.
  10. Return to the dashboard from the Clients roster by clicking Dashboard in the navigation to view overall business metrics.
The online status dot tells you if a client is currently active — useful for timing chat messages.

Client Detail (Tabbed Profile)

The Client Detail page is a comprehensive tabbed profile containing everything you need to coach a single client, including overview info, check-ins, private notes, scaling suggestions, plan history, nutrition goals, progress tracking, and payment management.

  1. Access the Client Detail page by clicking a client row from the Clients roster or navigating directly to /clients/:uid.
  2. View the Overview tab which displays basic info like avatar, name, username, email, age, and goal type along with active nutrition goal and assigned plans.
  3. On the Overview tab, click Assign in the assigned-plans section to assign a training or meal plan by picking a template and setting valid-from/to dates.
  4. Click Unassign on an active plan in the Overview tab and confirm to remove the plan assignment from the client.
  5. Find and click the End relationship action on the Overview tab to unlink the client from your roster after confirming.
  6. Navigate to the Check-ins tab to review the client's submitted weekly check-ins including weight, sleep, steps, cardio, energy/hunger/digestion ratings, and notes.
  7. Go to the Notes tab to create, edit, or delete private trainer-only notes that the client cannot see by clicking Add note, Edit, or Delete.
  8. View the Scaling tab to see this client's individual scaling suggestions with Pending/Approved/Rejected status for weight and rep adjustments.
  9. Access the Plan History tab to view all training plans assigned to the client, drill into plan structures, and assign or unassign training plans.
  10. Open the Nutrition tab to edit the client's active nutrition goal by clicking Edit and updating calories, protein, carbs, fat, and target weight, or assign meal plans.
  11. Review the Progress tab for read-only access to the client's weight history, bodypart measurements, and progress photos.
  12. Use the Payments tab for full write access to the client's payment history and requests with the same actions available on the main Payments page.
Notes are private to you — use them for observations you don't want in chat.
The Scaling tab here is per-client; the global Scaling Review page (section 14) shows suggestions across all clients.

Needs Attention

The Needs Attention page displays a prioritized list of clients who require immediate action for issues like missed workouts, missing macros, or overdue payments. Each item is color-coded by severity and includes quick actions to message the client or view their profile.

  1. Click Needs Attention in the navigation menu or navigate directly to /clients/attention to access the prioritized action list.
  2. View the total count header showing how many items across all clients currently need your attention.
  3. Use the filter chips at the top to filter the list by type including All, Missed workout, Missing macros, Missing payment, and other flag types.
  4. Scan the list for items with the highest severity indicated by the color-coded row borders showing urgency level.
  5. Review each row which displays the client's information and specifically what they are flagged for (e.g. missed workout, missing payment).
  6. Click the Message inline action on any row to open a chat conversation with that client to nudge them about the issue.
  7. Click the View Client inline action on any row to open that client's detail page where you can fix the underlying issue directly.
  8. Address missing payments first by clicking View Client to navigate to their Payments tab and follow up on overdue invoices.
  9. Tackle missed workouts by clicking Message to remind the client or View Client to adjust their training plan if needed.
  10. Regularly check the Needs Attention page to stay on top of urgent client issues before they impact progress or revenue.
The six flag types are: missing training plan, missing meal plan, missing macros, missing payment, macros not met, missed workout.
Tackle missing payments and missed workouts first — they're usually highest severity.

Exercise Library

The Exercise Library is a searchable and filterable database of exercises where you can create, edit, delete, and favorite exercises. Each exercise includes detailed information like description, difficulty, equipment, muscle groups, movement patterns, and video links.

  1. Click Library in the navigation menu to access the library, which opens on the Exercises tab by default at /library/exercises.
  2. Use the search field to find exercises by name, typing your query to filter the list in real-time.
  3. Apply filters including muscle group (multi-select), equipment type, difficulty level, and favorites-only to narrow down the exercise list.
  4. Click the star icon on any exercise card or detail page to favorite it for quick access later.
  5. Click any exercise in the list to open its detail page at /library/exercises/:id showing description, note, difficulty, equipment, muscle groups, movement pattern, version, and video link.
  6. Create a new exercise by clicking New exercise in the library or navigating to /library/exercises/new to open the Exercise Editor.
  7. In the Exercise Editor, enter the Name, Description, and coaching Note for the exercise.
  8. Select the Difficulty level from Beginner, Intermediate, or Advanced options.
  9. Choose the Equipment type from Dumbbell, Barbell, Machine, Cable, Bodyweight, or Other.
  10. Select the muscle groups (both primary and secondary) that the exercise targets.
  11. Pick the movement pattern that best describes the exercise from the available options.
  12. Add a video URL such as a YouTube link to demonstrate proper form for the exercise.
  13. Optionally upload media files for image or video preview of the exercise.
  14. Click Save to create the exercise, which will then appear in your library for use in training plans.
  15. Edit an existing exercise by opening its detail page and clicking Edit to navigate to /library/exercises/:id/edit, then update any fields and save.
  16. Delete an exercise by opening its detail page, clicking Delete, and confirming the deletion (only the owner can delete, and plans referencing the exercise are unaffected).
Editing an exercise creates a new version — your existing plans keep using the version they were built with, so you can safely refine exercises over time.
Upload a video URL so clients can see proper form for each exercise.

Training Plan Builder & Assignment

The Training Plan Builder allows you to create reusable plan templates with multiple workout days, exercises, sets, and session notes. These templates can be assigned to multiple clients with specific date ranges, providing an efficient way to manage training programs across your client base.

  1. Click Library in the navigation and go to the Plans tab at /library/plans to access the Plan Templates list.
  2. View the list of your reusable training plan templates showing each template's name, description, and day count.
  3. Create a new plan template by clicking Create plan or the new-plan action from the Plan Templates list.
  4. In the Plan Builder, enter the plan Name and Description to identify the template.
  5. Toggle the Loop option if the plan should repeat weekly on a continuous cycle.
  6. Use the day tabs (Mon–Sun) to navigate between different workout days in the plan.
  7. Add or remove workout days as needed for your training structure.
  8. Set the day type for each workout day from options including Workout, Rest, Push, Pull, Legs, Upper, Lower, or Cardio.
  9. Add exercises to each workout day using the exercise picker to search and select from your library.
  10. Reorder exercises within a workout day by dragging them into the desired sequence.
  11. For each exercise, add, edit, or remove sets by specifying weight in kg, rep range with min/max values, and flags including to-failure, myo-rep-match, and dropset.
  12. Add per-workout session notes to provide additional coaching instructions for specific days.
  13. Click Save in the sticky header to save your plan template when complete.
  14. Edit an existing plan template by clicking it from the list, which opens the Plan Builder in read-only mode by default.
  15. Switch to edit mode by clicking the Edit button or toggle in the header (the page uses an ?edit=1 opt-in for edit mode).
  16. Make your changes to the plan with dirty-state tracking warning you if you have unsaved changes when attempting to navigate away.
  17. Delete a plan template by finding the delete action in the Plan Templates list or Plan Builder, clicking Delete, and confirming in the dialog.
  18. Assign a plan template to clients by clicking Assign on a template, selecting one or more clients, setting valid-from and valid-to dates, and confirming.
Plan Templates are reusable — build once, assign to many. For client-specific week-by-week tweaks, use the Planning page (section 11) instead.
The Plan Builder is read-only by default to prevent accidental edits — explicitly switch to edit mode to make changes.
If you have unsaved changes and try to navigate away, you'll get a warning — don't ignore it.

Trainer Planning Page (Week-by-Week)

The Planning page provides a client-specific week-by-week view where you can make adjustments to individual client's upcoming workouts without modifying the underlying plan template. This is ideal for personalized tweaks based on client progress or feedback.

  1. Click Planning in the navigation menu to access the Trainer Planning Page at /planning.
  2. View the count badge on the Planning nav item showing how many workouts still need planning across your clients.
  3. Use the client selector row at the top of the page to pick a specific client if you have multiple clients, utilizing the search functionality to find them quickly.
  4. Deep-link to a specific client by adding ?client=<uid> to the URL to pre-select that client when navigating to the planning page.
  5. Review the Client Planning Dashboard showing a next-7-days view of the selected client's planned workouts.
  6. Edit sets inline by clicking any set and modifying the weight, rep range, or flags directly in the view.
  7. Edit exercises inline by adding, removing, or reordering exercises for specific days within the 7-day window.
  8. Mark a workout as ready by clicking the Mark ready action per workout to indicate to the client that the workout is finalized and ready to perform.
  9. Watch for the sticky save bar that appears at the bottom of the page when you have unsynced changes.
  10. Click Save on the sticky save bar to sync all your changes to the client's plan.
  11. Navigate between different clients using the client selector to make week-by-week adjustments for multiple clients in one session.
  12. Use this page for urgent adjustments like deload weeks, working around injuries, or accommodating client schedule changes without affecting the base template.
Use the Planning page for ASAP adjustments — the dashboard ASAP count tells you how many workouts need planning urgently.
This differs from Plan Templates (section 10): Plan Templates are reusable blueprints, while the Planning page is for client-specific, week-by-week tweaks.

Meal Database & Meal Plan Builder

The Meal Database allows you to create and manage individual meals with macro information, while the Meal Plan Builder lets you assemble these meals into reusable daily meal plans with multiple meal slots and options that can be assigned to clients.

  1. Click Library in the navigation and go to the Meals tab at /library/meals to access the Meal Database.
  2. Use the search field to find meals by name in the database.
  3. Apply filters including size (Small/Medium/Large), calorie/protein/carb/fat ranges using sliders, and favorites-only to narrow the meal list.
  4. Click the star icon on any meal to favorite it for quick access later.
  5. Create a new meal by clicking New meal to navigate to /library/meals/new and open the Meal Editor.
  6. In the Meal Editor, enter the Name and Description for the meal.
  7. Pick the Size from Small, Medium, or Large options.
  8. Enter the Macros including calories, protein, carbs, fat, and weight for the meal.
  9. Optionally upload an image to visually represent the meal.
  10. Optionally add an external URL such as a recipe link for reference.
  11. Click Save to add the meal to your database.
  12. Edit an existing meal by clicking it in the database to open the Meal Editor at /library/meals/:id/edit, update fields, and save.
  13. Navigate to the Meal Plans tab at /library/meal-plans to access your meal plan templates list.
  14. View the list of meal plan templates showing per-day macro averages and day count for each template.
  15. Create a new meal plan template by clicking Create to open the Meal Plan Builder at /library/meal-plans/:id.
  16. In the Meal Plan Builder, enter the plan Name and Description.
  17. Use day tabs to navigate between different days of the meal plan.
  18. Add meal slots by type including Breakfast, Lunch, Dinner, or Snack for each day.
  19. Set a max-picks limit for each slot to control how many options the client can choose from that slot.
  20. Add meal options to each slot by picking from your Meal Database.
  21. Remove or reorder meal options within each slot as needed.
  22. Add per-slot notes to provide additional instructions or context for each meal slot.
  23. Watch the running macro totals at the bottom of the builder showing daily totals versus targets to ensure you hit the client's nutrition goals.
  24. Assign the meal plan to clients directly from the builder by clicking Assign and selecting one or more clients.
  25. Delete a meal plan using the Delete plan action with confirmation when you no longer need it.
  26. Edit an existing meal plan template by clicking it from the list to open the Meal Plan Builder, making changes, and saving.
  27. Assign a meal plan to clients from the templates list by clicking Assign, picking clients, and confirming.
The running macro totals at the bottom of the builder help you hit a client's daily targets — aim to match their nutrition goal.
Set max-picks per slot to give clients controlled flexibility (e.g. 'pick 1 of these 3 breakfasts').

Check-Ins Review

The Check-Ins Review page displays a list of clients who have submitted weekly check-ins with goal-aware weight deltas and progress photo thumbnails. This allows you to quickly review client progress and make informed decisions about plan adjustments.

  1. Click Check-ins in the navigation menu to access the Check-Ins Review page at /clients/check-ins.
  2. View the count badge on the Check-ins nav item showing how many check-ins are pending your review.
  3. Review the list of clients with recent check-ins, each showing relative submission time such as '2 hours ago'.
  4. Examine the goal-aware weight delta for each client which indicates whether they gained or lost weight relative to their specific goal.
  5. Look at the color coding of the weight delta where green indicates movement in the right direction and red indicates movement away from the goal.
  6. View the latest progress photo thumbnail for each client, or a no-photo placeholder if no photo was submitted.
  7. Click the Review action on any client's row to open their detailed check-in information.
  8. After clicking Review, you are taken to the client's check-in detail or their Client Detail page on the Check-ins tab.
  9. Review the client's submitted data including weight, sleep hours, step count, cardio minutes, and energy/hunger/digestion ratings.
  10. Read the client's notes to understand their context, challenges, and feedback from the past week.
  11. Use the check-in information to make informed decisions about adjusting their macros, training plan, or other program elements.
  12. Navigate back to the Check-Ins Review list to continue reviewing other clients' submissions.
  13. Regularly review check-ins to stay informed about client progress and catch issues early.
The weight delta is color-coded relative to the client's goal — green if it's in the right direction, red if not.
Check the progress photo thumbnail to spot visual changes between check-ins.

Scaling Review

The Scaling Review page provides a global queue of scaling suggestions across all your clients, recommending weight, rep, or set adjustments based on recent workout performance. You can approve or reject these suggestions to progressively overload your clients' programs.

  1. Click Scaling in the navigation menu to access the Scaling Review page at /scaling-review.
  2. View the count badge on the Scaling nav item showing how many suggestions are currently pending your review.
  3. Review the global queue of scaling suggestions across all your clients, which defaults to showing pending suggestions.
  4. Use the filter options to view suggestions by status including Pending, Approved, Rejected, or All.
  5. Optionally filter the suggestions by a specific client to focus on one person's recommendations.
  6. Examine each suggestion which shows the client, the exercise, old versus new values for weight/reps/sets, the reason for the suggestion, and the date.
  7. Review the proposed change such as 'increase squat weight from 80kg to 82.5kg' and the reason provided by the system.
  8. Click Approve on a pending suggestion to apply the change to the client's plan immediately with an optimistic UI update.
  9. Click Reject on a pending suggestion to mark it as rejected without applying any changes to the client's plan.
  10. Use your professional judgment to approve sensible suggestions that align with the client's capabilities and goals.
  11. Reject suggestions that don't fit the client's current situation, such as recommendations for exercises they're not ready to progress.
  12. Regularly review scaling suggestions to ensure clients are progressively overloading and making continued strength gains.
Scaling suggestions are usually auto-generated from a client's recent workout performance (e.g. if they're consistently exceeding rep targets, the system suggests a weight increase). Use your judgment — approve the sensible ones, reject the ones that don't fit.
You can also see a single client's suggestions on their Client Detail → Scaling tab (section 7).

Weekly Activity

The Weekly Activity page displays a week-by-week view of all training sessions across your clients, showing total session counts and individual session details grouped by day. This helps you identify patterns in client training behavior and track overall business volume.

  1. Navigate to /activity to access the Trainer Weekly Activity page.
  2. Use the week navigation buttons including prev, next, and this-week to shift the view to different weeks.
  3. Review the StatTile at the top of the page showing the total session count for the selected week.
  4. Observe the week-over-week delta to see if session volume increased or decreased compared to the previous week.
  5. View sessions grouped by day with SectionHeaders separating each day's activities.
  6. Examine each session entry showing the workout name, client name, time, and status.
  7. Click on any session's client name to open that client's detail page for more information.
  8. Use the weekly view to identify patterns such as clients who never train on weekends or weeks where overall volume dropped.
  9. Navigate between weeks to compare training consistency and volume over time.
  10. Use this information to have conversations with clients about their training consistency and to adjust expectations or plans as needed.
Use this to spot patterns — e.g. a client who never trains on weekends, or a week where volume dropped across the board.

Payments & Billing

The Payments section provides full CRUD access to payment requests including creating one-off requests, setting up recurring payments, and marking requests as paid. The Billing section manages your GainSync subscription including plan upgrades, downgrades, and cancellation.

  1. Click Payments in the navigation to access the Payments page at /payments.
  2. View the count badge on the Payments nav item showing the number of pending payment requests.
  3. Review payment requests grouped by status including Pending, Paid, Cancelled, and Overdue.
  4. Use the filter by client option to focus on payment requests for a specific client.
  5. Examine the payments dashboard chart showing revenue over time to track your business financial trends.
  6. View your trainer bank account details which are shown to clients on pending requests so they know where to send payments.
  7. Note the variable symbol displayed per request which is the reference number clients use when making bank transfers.
  8. Create a one-off payment request by clicking New payment request, selecting the client, entering amount and description, setting an optional due date, and submitting.
  9. Create a reusable payment template by finding the Payment Templates section, clicking Create template, entering amount, description, and recurring settings, and saving.
  10. Set up a recurring payment by creating or using a payment template, assigning it to a client with a recurring interval such as monthly, setting start and end dates, and confirming.
  11. Assign a payment template to a client by finding the template, clicking Assign, picking the client, setting the interval and dates, and confirming.
  12. Mark a request as paid by finding the pending request, clicking Mark paid, and moving it to the Paid group.
  13. Cancel a request by finding it, clicking Cancel, confirming in the dialog, and moving it to the Cancelled group.
  14. Click Billing in the navigation to access the Billing page at /billing.
  15. View your active plan showing name, billing cycle (monthly/yearly), status, renewal/cancel date, and a client-usage bar.
  16. Review the monthly vs yearly plan comparison with Paddle checkout buttons to upgrade or change your plan.
  17. Upgrade or change your plan by clicking the desired plan option, being redirected to a hosted Paddle checkout in a new tab, completing payment, and waiting for the backend to process the Paddle webhook for automatic subscription update.
  18. Use the preview action to see the proration or cost difference before committing to a plan change.
  19. Cancel your subscription by finding the cancel action, clicking it to set the subscription to cancel at period end, and confirming.
  20. Monitor the client-usage bar to see how many of your plan's client slots you are currently using.
The variable symbol is what lets you match a bank transfer to a client — make sure clients include it when they pay.
Recurring payments save you from manually creating monthly invoices — set them up once per client.
The payments dashboard chart helps you track revenue trends.
Cancellation takes effect at the end of your current billing period — you don't lose access immediately.
The client-usage bar shows how many of your plan's client slots you're using.

Chat With Clients

The Chat system provides real-time messaging with clients including text messages, attachments, rich references to exercises or plans, quick replies, and payment requests. The chat list shows all conversations with unread badges and online status indicators.

  1. Click Chat in the navigation menu to access the Chat List page at /chat.
  2. View the count badge on the Chat nav item showing total unread messages across all conversations.
  3. Use the tabs to switch between Active Chats and All Clients views.
  4. Review each conversation row showing contact name, avatar, last message preview, unread badge, online indicator, and last message timestamp.
  5. Use the search field to filter conversations by client name to quickly find specific chats.
  6. Click any conversation in the list to open the Chat Detail page at /chat/:id.
  7. View the contact header at the top showing the client's avatar, name, and online or last-seen status.
  8. Review the message thread with messages grouped by day using day-divider chips and consecutive-message clustering.
  9. Look for the read receipt checkmark on your own messages which appears when the client has read them.
  10. Watch for the typing indicator when the client is currently typing a message.
  11. Send a text message by clicking the text box at the bottom, typing your message, pressing Enter to send, or using Shift+Enter for a new line.
  12. Send an attachment by clicking the attachment icon in the composer, picking an image or document from your computer, and letting it upload and send.
  13. Send a rich attachment by using the attachment picker's reference option, choosing what to share (exercise, workout plan, meal, or progress photo), and sharing it inline as a rich reference card.
  14. Use quick replies by clicking any quick-reply chip above the composer to insert and send that phrase instantly.
  15. Request a payment from within chat by finding the request payment action in the chat thread, creating a payment request with amount, description, and due date, and submitting to notify the client.
  16. Start a new conversation by going to the All Clients tab in the Chat List, finding the client you want to message, and clicking them to create or open a conversation.
Rich attachments are great for coaching — send an exercise reference to show form, or a meal reference to suggest what to eat.
Requesting payment from chat is a quick way to nudge a client about an overdue invoice.
The 'Seen' checkmark tells you the client has read your message.

Notifications

The Notifications page displays a paginated feed of system notifications with filter chips by type and deep-linking to relevant sections. Each notification can be marked as read and clicking it navigates you directly to the related content for quick action.

  1. Click the bell icon in the top bar to access the Notifications page at /notifications.
  2. View the paginated feed of notifications with each row showing a bold title, dimmed body text, created date, and a red dot when unread.
  3. Use the filter chips to filter notifications by type including All, Join Requests, Payments, Sessions, Plans, Scaling, and Other.
  4. Click the Mark all read action to mark all notifications as read and clear the bell badge count.
  5. Click any notification row to mark it as read (red dot disappears) and be deep-linked to the relevant section based on the notification type.
  6. Navigate to the Join Requests page when clicking a JOIN_REQUEST notification to accept or reject the request.
  7. Go to the client's Workouts page when clicking a PLAN_ASSIGNED notification to view the assigned training plan.
  8. Access the client's Nutrition page when clicking a MEAL_PLAN_ASSIGNED notification to review the meal plan.
  9. View Session History when clicking SESSION_STARTED or SESSION_FINISHED notifications to see training activity.
  10. Navigate to Payments when clicking PAYMENT_REQUESTED or PAID notifications to manage payment requests.
  11. Go to Scaling Review when clicking Scaling notifications to approve or reject scaling suggestions.
  12. Scroll or click Load more to view older notifications beyond the initial paginated list.
  13. Regularly check notifications to stay informed about join requests, payments, client activity, and system events.
Deep-linking saves clicks — clicking a 'new join request' notification takes you straight to the Join Requests page to accept/reject.
The bell badge count = unread notifications. Check it regularly so you don't miss join requests or payments.

Profile & Settings

The Profile page allows you to edit personal information, avatar, and bank account details, while the Settings page provides account management options including password changes, email updates, notification preferences, language selection, and account deactivation.

  1. Click your avatar in the top-right corner on desktop and choose Profile, or navigate directly to /profile.
  2. View the centered header with your avatar, name, role badge (Trainer), and bio.
  3. Review the stat-tile row showing your account statistics.
  4. Click Edit to make inline fields appear for updating your personal information including first name and last name.
  5. Update your contact information including username and email in the editable fields.
  6. Edit your trainer-specific specialties in the Specialties section.
  7. Click Save to save all profile changes after updating your information.
  8. Change your avatar by clicking the avatar circle, picking an image file (JPEG, PNG, or WebP), and letting it upload and replace your current avatar.
  9. Update your bank account number in the Personal Info or Specialties section by editing the field and saving, as this is what clients see when you request payments.
  10. Click your avatar in the top-right and choose Settings, or navigate directly to /settings.
  11. View the stacked cards including Account, Notifications, Appearance, and About & Support links.
  12. Use the language switch to pick Čeština or English, which updates the interface immediately.
  13. Log out of this device using the logout action in the avatar menu.
  14. Log out of all devices using the Log Out of All Devices action at the bottom of Settings.
  15. Change your password by going to Settings → Account, clicking the change password action, receiving a password reset link via email, and following the link to set a new password.
  16. Change your email by going to Settings → Account, clicking the change email action, entering your new email, receiving a confirmation link to the new email, clicking it to land on the Confirm Email Change page, and completing the switch.
  17. Deactivate your account by going to Settings → Account, finding the delete account action, and confirming the deactivation.
Your bank account number is critical — clients use it to pay you. Keep it up to date.
The web app is currently dark-mode-only — there's no theme switch that works yet (the appearance swatches are UI-only).
The 'Sign in with Google' button on the login page is present but not functional — use email/password.
Some settings rows (notification toggles, theme variants) are UI-only and not yet wired to the backend. The core actions (language, logout, password reset, email change, deactivate) work fully.

FAQ & Troubleshooting

This section answers frequently asked questions about adding clients, managing plans, handling payments, and troubleshooting common issues. It provides quick solutions to problems trainers may encounter while using the GainSync web app.

  1. Add your first client by getting your 6-character invite code from the Dashboard, sharing it with the client, having them enter it during their onboarding or on their Coach Requests page, seeing their join request on the Join Requests page at /clients/requests, clicking Accept, and running the 4-step Client Setup Wizard to assign macros, training plan, meal plan, and payment.
  2. Troubleshoot missing join requests by double-checking that the code you gave the client matches what's on your dashboard, ensuring you haven't recently regenerated the code which would invalidate the old one, asking the client to try again if the code is correct, or contacting GainSync support if the issue persists.
  3. Reuse one training plan for multiple clients by using Plan Templates to build a template once and Assign it to multiple clients with valid-from/to dates, using the Planning page for per-client tweaks instead of editing the template.
  4. Distinguish between Plan Templates and the Planning page by understanding that Plan Templates at /library/plans are reusable blueprints for building once and assigning to many, while the Planning page at /planning is for client-specific week-by-week adjustments without changing the underlying template.
  5. Set up recurring payments by creating a payment template, assigning it to a client with a recurring interval such as monthly, setting start and end dates, and letting the system generate payment requests on that schedule automatically.
  6. Understand that clients cannot mark themselves paid as they have read-only access to payments, and only you can mark a request paid after confirming the bank transfer arrived.
  7. Regenerate your invite code knowing that the old 6-character code stops working immediately, any client who already used the old code is unaffected, only future clients need the new code, and you should only regenerate if the old code has been shared too widely.
  8. Edit an exercise without breaking old plans by understanding that editing creates a new version, existing plans keep referencing the version they were built with, and new plans will use the latest version.
  9. End a client relationship by opening the client's detail page, going to the Overview tab, finding the End relationship action, and confirming to unlink the client from you.
  10. View your client's progress photos by opening their Client Detail page, going to the Progress tab, and accessing read-only weight, measurements, and progress photos including the photo comparison page at /clients/:uid/compare.
  11. Distinguish notes from chat by understanding that Notes on the Client Detail page are private to you and the client can't see them, while Chat is a two-way conversation, so use notes for observations you only want yourself to see.
  12. Handle missed workouts by checking the Needs Attention page at /clients/attention where missed workouts show with high severity, clicking Message to nudge the client in chat, or clicking View Client to review their plan and adjust if needed.
  13. Approve a scaling suggestion by going to Scaling in the nav at /scaling-review, finding the pending suggestion, reviewing the proposed change and reason, and clicking Approve or Reject to apply or decline the change.
  14. Cancel your GainSync subscription by going to Billing at /billing, finding the cancel action, confirming, and understanding that your subscription cancels at the end of the current billing period so you keep access until then.
  15. Troubleshoot Google sign-in issues by understanding that the Sign in with Google button doesn't work on the web app and you should use your email and password to log in instead.
  16. Change the bank account number clients see by going to Profile at /profile, editing the bank account number field, saving, and knowing that all future payment requests will show the new account.
  17. Handle situations where a client paid but the request still shows Pending by manually marking the request paid at Payments, finding the pending request, and clicking Mark paid, understanding that GainSync doesn't auto-detect bank transfers.
  18. View all your clients' workouts for a given week by going to Weekly Activity at /activity, using the prev/next/this-week buttons to pick the week, and reviewing the total session count and day-grouped sessions.