Forge
React · Firebase
Forge tracks daily workouts related to Crossfit or Hyrox. It can be automatically connected to Octiv and provide information such as streak days and muscle groups.
Octiv workout import
Forge is connected to Octiv, the booking app used by many Crossfit boxes. The workout of the day (WOD) published by the box appears directly in Forge, with its format (AMRAP, reps), the full description and the scaled versions. One tap imports it as a logged workout, so there is nothing to type after a session.
Importing the workout of the day from Octiv
Streaks, rest days and injuries
Forge counts a day streak to keep the motivation, and shows how many days were trained this week. A streak should not punish recovery: a rest day can be logged and is accounted for, not missed. The same goes for an injury or a sick day, logged with a short note.
A rest day keeps the streak
An injury day, with the seasonal October theme
Muscle groups
Forge maps every logged workout to the muscle groups it works. A weekly body map (front and back) shows which muscles were trained less than usual, as usual or more than usual, and the list below gives each muscle group's share of the week and how it compares to my usual training. It makes it easy to see an imbalance, for example a week heavy on lats and upper back.
Weekly muscle groups compared to usual
Why I built it
It started with my partner and me always struggling to manage our weightlifting weights, and having some calculator helper to figure out how to load our bars during our crossfit workouts.
I also wanted to be able to track independently my Hyrox preparation workout, my crossfit workouts and my occasional gym or spinning classes in one single place. And not having to download 3 or 4 different applications.
Architecture
I decided to build a cheap, close to 0 cost, mobile friendly application. As I am an iphone user, and did not want to pay for the developer program just for this experiment, I decided to use the PWA (Progressive Web Application). Easy to implement, web friendly, work on android and iphone with no issue besides some minor differences and limitations.
The application was build on top of Firebase, sufficient for most of the features, free tier is clearly enough for the load and information.
- Firebase Authentication was taking care of the basic user registration and login. This was important for me to have a 1 step registration, no password to manage. Google SSO was simple to put inplace in minutes.
- Firestore for data storage. Daily workouts and Personal Records are stored in Firestore.
Sharing workouts on social media was also an important place as I was always screenshoting workouts to share on my instagram account, I wanted to have an easy experience to be able to share information on social media. This is also fully done in the application, rendered on the fly and uses the Web Share API. No backend at all.