Project
Data Engineering / Hardware

Systems integrator and developer · 2026

Local WHOOP Pipeline

Your own WHOOP band’s recovery, strain, and sleep scores, computed on hardware you control. No subscription required.

Overview

A WHOOP band’s headline metrics, recovery, strain, sleep stages, and HRV, are computed in WHOOP’s cloud and gated behind a subscription. This project evaluates the open-source WHOOP 4.0 Bluetooth reverse-engineering ecosystem and assembles a local, self-hosted pipeline that captures a band’s data directly and computes the same metrics offline.

What I Built

  • Evaluated the open-source WHOOP 4.0 reverse-engineering ecosystem (OpenWhoop, whoomp, NOOP) to find the most reliable path forward, then validated it against my own band over Bluetooth.
  • Stood up a self-hosted, Dockerized analysis stack (FastAPI, TimescaleDB) that decodes captured Bluetooth frames into recovery, strain, sleep, and HRV scores using published methods, served on a local dashboard.
  • Deployed the companion iOS collector to my own iPhone via Xcode, configuring code signing and background Bluetooth so the phone holds the band’s link continuously.
  • Found and patched a real bug in the ingest pipeline that was silently dropping the band’s biometric stream (gravity, SpO2, skin temperature), unblocking sleep and recovery scoring.
  • Debugged background BLE reliability through overnight field tests, and automated the Mac-side capture pipeline with a launchd job.
  • Wrote an architecture-alignment reference comparing my pipeline’s protocol framing, storage schema, and scoring against NOOP, a more mature open-source WHOOP client, to guide further work.

Tech

Swift/iOS (Xcode, background BLE), Python/FastAPI, Docker, TimescaleDB, launchd automation, SQLite.

Status

Working end to end on personal hardware; recovery, strain, and sleep compute locally. iOS background-collection reliability remains an active debugging track.

Tech
  • Swift
  • iOS
  • Python
  • FastAPI
  • Bluetooth LE
  • Docker
  • TimescaleDB
  • launchd
  • SQLite

← All projects