Online coaching has a secret the software companies hate: the product is a spreadsheet. Your programming lives in tabs — Dre's hypertrophy block, Kat's postpartum rebuild — and honestly, the sheet is great at that job. Sets, reps, RPE, week-over-week progression: nothing renders it better than the grid you built it in.
Everything around the sheet is the mess. Clients lose the link by week three and DM you for it. Check-ins arrive as an Instagram screenshot, a voice note, a "forgot to weigh in, my bad" on Tuesday. Somebody goes quiet in week 6 and you don't notice until week 8. And renewals — the actual revenue event — sneak past because no system was watching the date.
You don't have to abandon the spreadsheet for a coaching app that makes you re-enter every program into its own clunky builder. Keep programming exactly where you program now, and give every client a logged-in portal generated from it.
The master tab is your roster:
| Client | Program | Week | Check-in due | Last check-in | Progress notes | Renewal date | Portal user |
|---|---|---|---|---|---|---|---|
| Dre Wallace | Hypertrophy block 2 | 5 of 8 | Sundays | Jul 19 | Squat up 20 lb since wk 1 | Aug 30 | drew |
| Kat Munro | Postpartum rebuild | 3 of 12 | Fridays | Jul 18 | Sleep rough — deloaded | Oct 4 | katm |
Each client's tab is what it already is: their program, week by week, plus a section where their check-in numbers and photos will accumulate. The Portal user column is the username they'll log in with.
Register at lovespreadsheets.com — building is free. Client logins and putting the portal on your own domain are the paid pieces; for coaching, the logins are the point, because check-ins and progress photos shouldn't sit on a public URL.
Select the Website template and describe it like you'd pitch it in your stories:
"Every client on my roster gets their own login and lands on their current training week, pulled from their tab — exercises, sets, reps, notes. Below it, a check-in form: body weight, key lifts, energy score, progress photos, all saved back into their tab. And a progress view charting their numbers across the weeks. Nobody sees anyone else's training."
Three asks that upgrade it from portal to product:
Rough description? Tap AI Optimize to clean up the wording, answer whatever the AI asks back, and 15 to 20 minutes later the portal exists.
Every client gets their own unique URL behind a login. Flip the project to Private under Share and add usernames from the roster — passwords are kept hashed, and each login only ever opens that client's pages. Put your logo and brand colors on it, park it at train.yourbrand.com, and what used to be "here's my Google Sheet link" is now an app with your name on it.
Your workflow doesn't change. You still write week 6 into Dre's tab like always — his portal shows week 6 the moment you do. His Sunday check-in appears in the tab before your Monday coffee: numbers, photos, energy score, in the same grid you coach from.
Programming stays where you're fast. No transcribing supersets into an app's dropdown menus — the spreadsheet you can fly through remains the source of truth.
Check-ins collect themselves. Every submission is a timestamped entry in the right tab, so "who hasn't checked in" is a glance, not an archaeology dig through three messaging apps.
Ghosting shows up early. A stale last-check-in cell in week 5 is a signal you can act on in week 5 — a quick "everything okay?" beats discovering the disappearance at renewal time.
My programming is complicated — supersets, RPE targets, tempo work. Can the portal handle it? It displays whatever structure your tabs hold. Spell out the layout in your prompt ("group A1/A2 exercises together, show RPE next to each set") and the AI builds around it.
Do progress photos really flow back into the sheet? Yes — check-in submissions land in that client's tab, photos included, so a client's entire arc lives in the one file you already open daily.
What happens when someone finishes a block? Write the next block into their tab (or point their row at a fresh one) and their portal moves on with them. Same motion for updating the renewal date after they re-sign.
The spreadsheet was never the problem — the link-chasing and DM-wrangling were. Take your roster to lovespreadsheets.com, describe what a client should see behind their login, and turn the sheet you already coach from into the portal your clients assume you paid a developer for.
The team turning other people's spreadsheets into software they actually trust — one sheet at a time.