Case study · My own product
Forja, the app for personal trainers
Forja is my product and it is in production. A personal trainer runs every client from their phone: what each one trains, what they eat, how they progress and who owes a payment.
The problem
A lot of personal trainers run their clients out of chats, spreadsheets and notes. The workout goes out in a message and the diet in a PDF. Measurements end up in a notebook and payments live in their head. As the client list grows, things slip. Forja puts it all in one place.
What it does
Trainer and client use the same app, each with their own view:
- The trainer assigns workouts with an animation of each exercise
- The trainer builds each client's diet
- The trainer logs measurements and sees progress in charts
- The trainer tracks payments
- The client gets notifications and trains what is due
- Both install it on their phone like an app (PWA)
How it is built
React on the front and Supabase with row level security behind it: each person can only see their own data, and automated tests check it.
- 160 automated tests
- 109 permission tests
- 13 database migrations
Technical decisions
The decisions that mattered most, and why:
- Permissions are enforced in the database as well as on screen. Even if someone tampers with the app, Supabase won't hand over someone else's data.
- Column-level permissions. A security review found a profile was returning more fields than it needed, so I locked it down in the database.
- Installable from the browser (PWA): no app stores or approval waits, and every improvement reaches everyone on release
- Every database change ships as a numbered migration, so it can be rebuilt and reviewed
What production taught me
An old version of the app was once published by mistake. It clashed with the new permissions, and users started seeing "You don't have permission." The quick fix would have been to loosen the permission, but that would have undone the security fix. Instead I released the right version and tied production to a single branch so it doesn't happen again.
How much does Forja cost?
Free for up to 5 clients. The Pro plan has no client limit.
What's next
The next step is an AI coach for people who train without a trainer, included in a paid plan.
What it says about my work
I can take an app from idea to production: design, database, permissions, tests and release. If your business needs its own app, this is the kind of work I do.