Core idea
Iāve been swimming a bunch at Calās Spieker Pool. Dab Bod brings together health and fitness data scattered across Apple Health, Garmin Connect, and Strava in an interface Iāve designed around how I want to use it, with the option to share data with ChatGPT or my local LLM for analysis and feedback.
Photo: Jay Adwere-Boamah
01 Aura
Aura is the appās landing page, bringing HRV, blood pressure, sleep, weight, body composition, and daily activity into one place. Until recently, these measurements relied on daily synchronization between Garmin and Apple Health, introducing delays and unnecessary friction.
Thanks to the open-source garmin-ble project, Iām beginning to retrieve wellness measurements directly from my watch over Bluetooth. What started as days of playing Marco Polo with my Garmin has turned into immediate results, with heart rate, stress, and Body Battery now reporting in-app on launch.
02 Fishmaxx
Fishmaxx presents my Garmin swims in a denser interface, with less jumping between screens than other apps.
Metrics like average pace, stroke count, and consistency are intended to reveal where fatigue begins to affect performance.
Iāve also added a button that copies my swim and daily health data into a format I can paste into ChatGPT or, eventually, feed into my local LLM for text and text-to-speech responses. I plan to reuse my earlier ALL-LLLM work on WebSocket-based voice interaction so I can speak directly to my local machine and get a response. Fun times.
The most interesting finding so far is that my opening 25-yard length is often significantly slower than subsequent lengths. Whether thatās a genuine pacing pattern or an artifact of Garminās lap-detection algorithm remains an open question.
03 Mog Log
Mog Log is a visual journal of how my body changes over time. Before COVID, progress selfies were a surprisingly strong motivation to keep exercising.
The trouble was finding those photos later and figuring out when Iād taken them. Mog Log puts them in one chronological record, alongside my swimming, strength training, and health measurements.
04 LiveWhale
LiveWhale is the calendar platform UC Berkeley uses to coordinate campus events and facility schedules.
UC Berkeley publishes lap swim hours, but those hours donāt always account for other activities taking place in the pool. A facility can technically be open for lap swimming without having much room to swim.
So I integrated the published hours with known swim-team and water-polo schedules, along with facility announcements, to flag potential conflicts before I head over.
Itās a small feature, but it solves a real inconvenienceāand, ironically, itās the one thing that hasnāt broken throughout app development.
05 Technical
Go Fish š ā Direct Garmin Sync
The RSF locker room is a primordial black hole for cellular signal and Wi-Fi. Normally, I have to wait 5ā10 minutes until Iām back inside the gym before I can review my swim logs.
No longer!
Using Garminās BLE file-transfer protocol, Go Fish finds activity files, decodes FIT records, checks for duplicates in SwiftData, and lets me review new swims before importing them.
The BLE connection is still brittle, and thereās plenty of work ahead. Iām also exploring direct access to other Garmin measurements, including heart rate, stress, and Body Battery.




