Taking a non-functional rehabilitation app to production

Live
Shipped from a codebase that did not run
18 mo
Of unbroken development since 2025
4
Studio locations using the platform
TL;DR
Bespoke’s rehabilitation app arrived non-functional, with little to no documentation.
We audited the codebase end to end, stabilised it and shipped it as a native iOS app in Swift on MVVM, with Firebase behind it.
It runs across 4 studio locations, with 18 months of unbroken development since February 2025.
Bespoke came to us with an app that did not work. Not one that needed features, but one that could not be shipped, with no documentation explaining why. It was meant to let specialists build a recovery programme, assign it, schedule the sessions and give each member a clear view of their plan. That is what it does now.
The challenges
The brief was to work out why the existing app did not run, then get it to a state where it could carry real clinical workflows.
The app did not work
In the condition it was handed over, it could not be put in front of a member or a specialist.
Nothing documented what was broken
Every assumption about the codebase had to be tested rather than read.
New work could not be added safely
A broken programme assignment reaches a patient mid-recovery, so the instability had to be resolved before anything was added on top.
What we built
We have been on the project since February 2025. The app runs in production on iOS in Swift with an MVVM architecture and Firebase as the backend and data layer, serving specialists and members from one codebase.
.jpg)
Auditing a codebase nobody had documented
Building a programme from an exercise library
.jpg)
Scheduling across studios, in person or remote
.jpg)
Conclusion
Bespoke moved from an unreliable, non-functional project to a platform its specialists use in day-to-day rehabilitation work. Development has continued without pause since launch, which is the practical test of whether a rescued codebase was stabilised or merely patched.
Want a stalled build taken to production? Get in touch.
Live
Shipped from a codebase that did not run
18 mo
Of unbroken development since 2025
4
Studio locations using the platform
Platform: iOS, Swift | Architecture: MVVM | Backend and data: Firebase
Programmes: exercise library with provider, category and sub category filters, per day assignment
Scheduling: per studio calendars, day and week views, recurring appointments, remote sessions
Roles: specialist and member views, member activity and pain logs
FAQ
How do you take a non-functional app to production?
Audit before writing code. We audited the project end to end, identified the critical issues and missing pieces, fixed the core issues, reached a reliable state and put it into production. New features go onto that foundation.
What stack does the Bespoke app run on?
A production iOS application in Swift on an MVVM architecture, with Firebase for the backend and data layer.
How does the app handle recurring rehabilitation sessions?
Appointments carry a type, schedule, repeat pattern and provider. The repeat pattern covers recurring rehabilitation blocks, and remote sessions use the same fields as in-person ones.
How do specialists build a recovery programme?
From an exercise library classified by body area and muscle group, filtered by provider, category and sub category, with exercises assigned per day.


