Tempo
Follow a stretching and physio routine in the right order and with the right timing, without resetting a timer for every exercise.
- Mobile development
- Health
- AI-assisted development
Retired. I no longer use or maintain this project. It was replaced by Cadence.
Problem
Early in COVID I was working from home and my back was getting really tight, so I started stretching every day to get some flexibility back. Every stretch needed its own timer, and resetting one after another got old fast. I tried several apps, but the paywalls and limits got in the way, and the free ones were too simple for a routine with sides, holds and rests.
Later I added physio exercises on top of the stretching. Then the hard part was remembering to do them at all, and which exercises came next.

Options
I wanted to learn some mobile development, and I wanted the app on my Android phone and on the web. I didn’t need an iPhone version then, but I wanted to keep that option open.
- Android and the web: One codebase for my phone and a browser, with iPhone possible later.
- Easy to learn: This was a side project for learning mobile development, so I needed something I could pick up in the evenings.
- No paywalls or limits: Nothing I needed locked behind a subscription.
- Sequences and timing: A whole routine run in order, with the same timing every time for each step, side and rest.
| Option | Android and the web | Easy to learn | No paywalls or limits | Sequences and timing |
|---|---|---|---|---|
| Existing timer apps | Partly | Yes | No | Partly |
| React Native | Yes | No | Yes | Yes |
| FlutterChosen | Yes | Yes | Yes | Yes |
Why Flutter won: I tried React Native first and found it really hard to learn, while Flutter’s concepts felt intuitive almost straight away.
Build
The first version was called FLXIT, a play on “flexibility”. It took two or three months before it was useful, and it grew a bit at a time after that. A routine is a list of steps, each with its own time, reps, sides and rest, and the app speaks each change so I can keep my eyes off the screen. When the physio routines got hard to keep track of, I added reminders.
Writing the timer logic by hand was the hardest part, and it took a long time to get right. Spoken cues were just as tricky: they had to fire at the right moment without talking over each other.
Later I wanted to learn how to develop with AI, so I used Claude Code to rebuild FLXIT as Tempo. The new name was about timing rather than flexibility. I’d switched back to iPhone around then, so the rebuild finally added a proper iPhone version, along with schedules for reminders and optional sync between devices through Supabase. Routines and history still live on the device first, so it works with no connection, and workouts can be logged to Apple Health or Health Connect. The privacy policy sets out what stays on the device.
It was only ever for me. I published only the web version and put it on phones through TestFlight and direct installs. It really helped me stay on track.
Lessons
Claude Code amazed me. I could polish the code and make changes in minutes that would have taken me hours or days before. But it overcomplicated things I had kept simple on purpose, and I had to keep pulling it back.
The timer logic lived only in my head. I hadn’t documented it, so every AI change meant careful regression testing of the timer.
That led to Cadence, Tempo’s successor. I built it from scratch with a fully agentic process: a clear spec first, fully automated tests, and AI driving the work from start to finish. Starting fresh also let me choose new platforms that suit that way of working. Tempo is retired now.