Privacy Policy
The short version.
Last updated: 10 July 2026
Heartily collects no personal data, sends nothing to any server, has no account, no analytics, no tracking pixels, no third-party SDKs that phone home. Everything the app does happens on your iPhone: pairing with your heart rate monitor, recording video, burning the BPM badge into the clip, saving to Photos.
What we don't collect
- Heart rate readings. Never sent off-device.
- Video or audio recordings. Saved to your Photos library, never uploaded.
- Device identifiers, advertising IDs, or any other unique fingerprint.
- Location, contacts, calendar, mic-when-not-recording, anything else iOS asks about.
- Crash reports. There's no backend to send them to.
What we do store, locally
- The unique ID of the last Bluetooth heart rate monitor you paired, so the next launch auto-reconnects. Stored in iOS's UserDefaults inside the app sandbox; cleared if you delete the app.
- Your in-app settings (whether to show the watermark, whether you've purchased Pro). Same storage.
-
A per-clip
.csvwith the BPM samples, saved to Files → On My iPhone → Heartily. You can delete it whenever; nothing else reads it.
In-app purchases
Heartily Pro ($4.99, one-time) is processed by Apple's StoreKit. We get a cryptographic receipt from Apple confirming the purchase. Nothing about who you are, what you bought elsewhere, or anything outside that single Heartily Pro transaction. The receipt is verified on-device; we don't run a receipt-validation server.
Permissions Heartily asks for
All used only for the obvious purpose, none of it tracked or sent anywhere:
- Bluetooth: to talk to your heart rate monitor.
- Camera: to film.
- Microphone: to record audio with the video (toggle off in-app).
- Photos (add only): to save the finished clip.
Contact
Questions? Email hello@heartily.io . Same person who wrote this policy, same person who built the app.
If this policy changes, the date at the top will move forward and the change will be summarised here. We won't materially expand data collection without making it obvious in-app first.