A closer look / GetFit → bellos
A workout plan with a plan.
And a record of what happened.
I wanted a workout app that kept my logs, explained its plans, and let me change the rules. So I built a personal tool—and made the source available for someone else to adapt.
And then I adapted it. The source is still available.
- My role
- Product rules, architecture & implementation
- What I made
- Personal workout app & a commercial next step
- Current state
- GetFit live & open source · bellos private beta
01 / The question
What if the log
came first?
I started with a practical frustration: losing workout records in an app I depended on. The replacement needed to save each set as I entered it, remain useful offline, and give me a way to take the data elsewhere.
GetFit is personal software with a focused job. It suggests the next workout, records what I actually do, and keeps the difference visible. The interface is plain because the work is in the planning and the record.
02 / What I built
Plans you can inspect.
Records you can keep.
I built the app around a clear distinction between a suggestion and a record. The workout screen shows the planned work alongside the sets actually entered, with previous numbers available for reference. Calendar, history, and exercise-library views make the same records useful beyond the current session.
React and TypeScript provide the interface. The planning rules live in a separate module, so they can be tested and adapted without rewriting the screens. Dexie stores records in the browser’s IndexedDB; a Hono API and SQLite provide the sync layer. A PWA service worker supports the app’s offline use, and JSON import and export keep the records portable.
03 / Make it yours
Personal by origin.
Open to adaptation.
I built GetFit around my own needs, rather than a general service with accounts and subscriptions. Its public repository carries an MIT license, so another person can reuse, modify, and build on the code.
The exercise catalog, equipment profile, and generation rules give someone a starting point for their own version. The value is both a working application and a readable implementation of the decisions that produce a workout.
Explore the source ↗
04 / The adaptation
And then
I adapted it.
GetFit answered a personal need. bellos is the commercial next step. I’m developing the same planning foundation into a product for other people, with their own accounts, equipment, and records.
The product plan keeps the training engine separate from the commercial app. The original GetFit source stays available under MIT; the commercial product is being designed with its own experience and service around it.
The name keeps the sound of an accordion’s bellows and drops the w. That small edit reflects the design direction: simplicity, clear choices, and room to concentrate on the workout.
05 / Beside the bench
A phone beside you.
A quiet place to log.
This is a phone-first web app because that is where it is used: beside you in the gym, between sets. The next movement, the previous numbers, and the place to record a set need to be easy to reach and read at a glance.
The bellos design calls for larger weight and rep fields, primary actions within thumb reach, a focused workout screen, and a clear distinction between the plan and the work logged. Offline logging carries forward from GetFit. Feedback and account tasks belong outside the middle of a set.
06 / Where it stands
An open starting point.
A product taking shape.
GetFit is live, with its planner, logging, calendar, history, exercise library, and data export implemented. The screenshots above show the running bellos app at phone width.
bellos has been released into private beta, with its app running at app.bellos.app. These captures show its workout logging, progress and muscle balance, and calendar; the original GetFit source remains available.