VitalPulse app icon

VitalPulse

One number each morning. Built for one wrist. Not on the App Store.

VitalPulse dashboard on iPhone: recovery score 70 of 100 with HRV, sleep, and resting heart rate

Wake up. Look at your wrist or your phone. Know how recovered you are before the day starts.

The score is weighted from three signals your body already records:

Heart rate variability50%
Sleep35%
Resting heart rate15%

Your baseline, not the average

Most apps compare you to a population. VitalPulse computes your baseline from your own trailing 30 days of data. A score of 70 means you are recovered relative to you.

Bad samples get filtered before they can skew the baseline: unrealistic readings and statistical outliers are excluded. In the live test dataset, 23 of 332 HRV samples were filtered out.

On first run it backfills 30 days of historical scores, so the trend chart is full from day one.

On the wrist

Receipts

First commitOct 2025
Commits90
Shipped epics6
Swift files142
Lines of Swift~23,000
Test functions407
Test suites passing35 / 35
TargetsiPhone, Apple Watch, watch widget
Runs oniPhone 14 Pro, Apple Watch Ultra 2
Server cost€0

Swift, SwiftUI, SwiftData, HealthKit, WatchConnectivity, WidgetKit. Agents wrote most of the code. Data stays on the device: local store, HealthKit read-only, no network calls beyond the watch sync.

Why it is not on the App Store

It never needed to be. It is a personal tool, signed with a free developer profile and installed on two devices at home. Health data stays in my pocket: no accounts, no analytics, no server.

The showcase here is the build, not a business. If you want to talk about either, say hello.