Sajjad Mahessar Good Merch Group Free audit
~/sajjad $ cat projects/training-app ← cd ../projects Client work

Personal training & tasks app

In use · private installPaying client

A native iPhone app built for one private client: gym sessions, routines and strength progress in one half, a fast task list in the other. Everything stays on the phone — no account, no server, no subscription. Installed directly on his device.

Type
iOS app
Category
Client work
Built with
Swift · SwiftUI · SwiftData · Local notifications
Project
26 of 37
SET LOGGED → ESTIMATED 1RM → TREND 80 KG × 8week 1 90 KG × 5week 4 BEST SETpersonal best flagged DIFFERENT REP RANGES · ONE COMPARABLE LINE
Every set logged becomes an estimated one-rep max, so progress is comparable across rep ranges

What it does

  • Training: saved routines, live sessions logged set by set, a freestyle mode for unplanned workouts, and a full history.
  • Progress: estimated one-rep max per lift, best set, personal bests, and change since the last session — so a heavy triple and a lighter set of eight can be compared on one line.
  • Body: weight and body-fat measurements logged over time, in the unit he prefers.
  • Tasks: typed in one line, with !1–!4 setting priority and #project filing it, plus a reminder for tomorrow’s list.

Why on-device only

The client wanted his training log and his to-do list in one place, private, and fast to open between sets. A backend would have added a login, a running cost and personal data to look after — for a single user who never needs his data anywhere but his phone.

The right amount of system for the job. No server to maintain, no subscription to bill, nothing to breach — and around 3,000 lines of SwiftUI across fourteen files.

Small decisions that matter in a gym

  • An empty session can be started and built as he goes, because plans change when a machine is taken.
  • Abandoning a session warns plainly that nothing from it will be saved, rather than half-saving a workout.
  • If notifications are switched off, the app says so where the reminder would have been, instead of failing silently.
Android app

Rota, wages & profit app for a cleaning company

Rotas, wages and profit per clean

React Native / ExpoTypeScriptSupabasepg_cron
Consultancy

Operations platform review, aviation catering

Review and roadmap for aviation catering

Systems analysisProcess mappingData quality auditAI strategy
No charge

I’ll find the money before you pay me anything.

Send me your software subscriptions and I’ll come back with what’s replaceable and what it’s worth — free, and yours to keep either way. How it works →

Contact

Want the same done to your cost base?

Open to operations, automation and technical operations roles — and to talking with anyone running a multi-site business who suspects they're paying for software they could own instead.