DEV Community

skymiller1509-blip
skymiller1509-blip

Posted on Edited on

Pulse Postcards: send your heartbeat to someone you love

What I built

Pulse Postcards turns a 20-second heartbeat reading into a gift.

The sender opens the app, reads a short consent screen in plain words, and looks at the camera for about 20 seconds. The Presage SmartSpectra SDK reads their pulse on the phone. The sender adds a photo and a short message. The app saves the postcard.

When the person they love opens it, the photo softly glows and thumps in time with the sender's real heartbeat, beat for beat.

It is a small, warm use of a serious technology: not a chart, not a diagnosis, just "this is how my heart beat when I thought of you."

How it works

  • Android app (Kotlin) using the Presage SmartSpectra SDK (com.presagetech:smartspectra 3.5.0).
  • Capture uses the front camera and cardio metrics only. The app records the span of pulse readings over about 20 seconds, then stops itself.
  • Playback does not play a generic beat. It replays the sender's measured pulse series: each segment of the recording sets its own beat interval (60 / BPM), with continuous phase, so the glow speeds up and slows down exactly as the sender's heart did.
  • The pulse timing logic is covered by unit tests (6/6 passing). One of those tests caught a real beat-restart bug during the build.
  • The app never invents numbers. If it cannot get a reading in good light after about 45 seconds, it says so plainly and asks the sender to check the light and hold still.

Try it

Consent and Data Handling

This section matters, so here it is in plain words.

  • The app shows a consent screen first, every time it is set up, before the camera ever opens. No consent, no camera.
  • The camera is used only during a reading, for about 20 seconds, and only to measure pulse.
  • No video is ever saved, stored, or sent anywhere. A postcard contains only the pulse numbers, plus the photo and message the sender chooses.
  • Everything stays on the sender's device. Postcards are stored in the app's private storage on that phone.
  • The Presage API key is entered by the user and stored in the app's private storage on the device. It is never in the code or the repository.
  • SmartSpectra SDK telemetry is disabled in code (enableTelemetry = false), so the app sends no session summaries or device diagnostics.
  • Pulse Postcards is not a medical device. It does not diagnose, treat, or monitor any condition, and it makes no health claims. It is a way to send a moment to someone you love.

What I learned

A heartbeat is personal data, even when it is just a number. Building this taught me to design the consent and the data handling first, and the delight second, and that the delight is bigger when the person sending their heartbeat knows exactly what happens to it.

Top comments (0)