Coaching Platform for US Personal Trainers and Small Studios
Designed and built a clickable trainer web app for a US coaching platform: a dashboard of who needs attention today, a client roster with adherence trends, a client record with PAR-Q+ screening and programming holds, a check-ins inbox against a 48 hour response target, and Stripe payments - keeping the product on the coaching side of the line with medical care.
Most of our work is under NDA. Per agreement, we can share the work but not the company details - all names and identifying information shown here have been changed.
Dashboard, client roster, client detail with 6 tabs, check-ins inbox with its review panel, and payments with transactions, subscriptions, invoices and payouts. Every one of the 24 demo clients opens its own record.
A yes to a general health question flags the client, and a programming hold disables Assign program until the trainer records a clearance note or releases the hold.
Calorie targets cannot be set below 1,200 a day, nutrition targets are off for clients under 18, and every target carries a general guidance, not medical advice note.
A 3-trainer Denver studio with an assistant, 6 programs, 4 packages, 7 sessions today, 16 check-ins, 20 payments, 6 invoices and 6 payouts.
Independent trainers ran their business across five or six tools: a spreadsheet program, a text thread per client, a booking app, a payment link, a Google Form for intake and progress photos sent by text. Clients lost the program link and logged nothing, health details sat in personal phones with no consent record, and Kettle Ridge Labs' research with 60 trainers found 6 to 9 hours a week lost to admin and chasing payments, and about a quarter of online clients gone in the first 8 weeks.
Setwise puts the program, the check-in, the session and the payment in one place for trainers and small studios. The dashboard flags clients who are drifting, health answers and photos sit behind a separate logged consent, PAR-Q+ screening can hold programming until clearance, and clients pay through Stripe Connect so the trainer is paid out directly.
Personal trainers are generally not licensed healthcare providers, yet their clients report injuries, medications and conditions every week. The product has to help trainers act on that information without diagnosing, prescribing or mishandling health data.
On the PAR-Q+, a yes to any general health question generally means the client should complete the follow-up questions or get clearance from a qualified professional before becoming much more active. Trainers had no way to see that flag or hold the program until it was resolved.
HIPAA generally does not apply to a trainer, but the FTC Health Breach Notification Rule, Washington's My Health My Data Act and California's CCPA/CPRA do. Health answers, measurements and progress photos each need separate consent, withdrawal and deletion.
With workouts in a PDF and check-ins in a text thread, trainers only found out on Monday that a client had stopped training two weeks ago. Late check-in replies and failed payments went unnoticed in the same way.
Auto-renewing coaching plans fall under ROSCA and state renewal laws, SMS reminders need TCPA consent, clients aged 13 to 17 need a guardian, and before/after posts must follow the FTC Endorsement Guides.
Mapped 9 roles from solo trainer and studio owner to Kettle Ridge trust and safety, 40 screens across the trainer web app, client mobile app, public trainer pages and operations console, and the data model for consents, PAR-Q+ intake, clearances, programming holds, programs, check-ins, sessions, packages and payments. Wrote down the rules the design follows: scope of practice, PAR-Q+, nutrition limits, health privacy, the FTC Endorsement Guides, COPPA, ROSCA, the TCPA, PCI DSS and app store payment rules.
Built 5 key trainer screens on a production dashboard kit for a fictional Denver studio: the dashboard with adherence, today's sessions and a needs attention list, the client roster with filters and 14-day adherence sparklines, client detail with screening, consents and 6 tabs, the check-ins inbox with age colouring and saved reply snippets, and payments with retry, refund and invoices. All actions run on local state.
Stripe Connect, Billing and Tax, Mux exercise video, in-app chat, Twilio SMS on a registered A2P 10DLC number, Postmark email, push notifications, Google and Outlook calendar sync, Zoom and image moderation. Separate encryption and role-based hiding for health data, an audit log, and the remaining screens: programs and the builder, messages, calendar, packages, team, the client mobile app, public trainer pages and the Kettle Ridge operations console.
The dashboard lists every client who needs action: a new PAR-Q+ flag, a check-in waiting past 48 hours, a failed payment, no workout in 7 days, 1 session left or a program ending with nothing next. Each item links to the right place and can be marked done.
Injuries and conditions are shown as client-reported notes, labelled not a diagnosis, with the trainer's coaching notes beside them. There is no diagnosis field, and pain reported in a check-in brings up a prompt to suggest a physician or physical therapist.
Each client record shows health data, progress photos, photo marketing use and SMS reminder consent with dates. Check-in photos appear only when consent is on, and photo check-ins are off for minors.
Payments show gross, Stripe fee, platform fee and net per transaction, with only the card brand and last 4. Refunds need a reason and can be partial, and a failed payment can be retried from its payment panel, which the dashboard links straight to.

Designed and built a clickable employee app for a Polish employee-benefits company's step and activity challenges: team and solo challenges where every activity converts to points, leaderboards where each person chooses how they appear, prizes with payroll tax notes, charity goals and a fair-play check before anything is won - while the employer only ever sees aggregates.

Designed and built a clickable athlete app for a Finnish sports-tech company that joins heart rate, HRV, sleep and training load from several wearables: a daily readiness score that explains itself, training load and fatigue charts, every workout in one list with duplicates merged, and sleep trends against the athlete's own normal range.
Enterprise Software Engineering - Human + AI
Contact Us
© 2026 - Copyright. All Rights reserved Oceanlab
Location
Global Headquarters
21 Merchant Road, 3rd Floor, Singapore 058267
Main corporate office and leadership operations
North America Office
548 Market Street, PMB 12345, San Francisco, CA 94104
Client operations and business development
India Office
402 Shivalik Shilp II, SG Highway, Ahmedabad 380015
Engineering and delivery center
Enterprise Software Engineering - Human + AI
Contact Us
Locations
Global Headquarters
21 Merchant Road, 3rd Floor, Singapore 058267
Main corporate office and leadership operations
North America Office
548 Market Street, PMB 12345, San Francisco, CA 94104
Client operations and business development
India Office
402 Shivalik Shilp II, SG Highway, Ahmedabad 380015
Engineering and delivery center
© 2026 - Copyright. All Rights reserved Oceanlab