Pulse Health
PWAReact NativeMotion Design

Pulse Health

Health Tracking Mobile Web App

Introduction

Progressive web app for personal health tracking with micro-interactions, data visualization, and offline-first architecture.

Details
Project NamePulse Health
Timeframe2024
RoleFull-Stack Developer
ClientPulse Health
The Challenge

Pulse Health is a personal health tracking platform built for people who find existing health apps either too clinical or too gamified. Their target users — primarily 30-55-year-olds managing chronic conditions or proactive wellness routines — wanted something that felt calm, trustworthy, and didn't reward them with badges for drinking water. The existing app was a React Native prototype with basic tracking but no data visualization, no offline support, and no design system.

The brief: build a progressive web app that works everywhere, feels native, syncs reliably, and treats health data with the gravity it deserves.

Health dashboard — daily metrics at a glance
Health dashboard — daily metrics at a glance
Micro-interaction library for health tracking inputs
The Approach

I started with the data model. Health tracking apps live or die by how they handle state — data needs to be available offline, sync without conflicts when connectivity returns, and never, ever lose an entry. I implemented a local-first architecture using IndexedDB with a custom sync engine that uses last-write-wins conflict resolution for simple metrics (weight, blood pressure) and merge strategies for compound entries (meals, medication schedules).

The design language was intentionally clinical in structure but warm in execution. Cards with generous padding, subtle shadows, and rounded corners. The color system uses a low-saturation palette — blues and greens that feel medical without feeling cold. Data entry forms use large touch targets and progressive disclosure: tap to log, swipe to see details, long-press to edit.

Scope
Progressive Web App Architecture01
Offline-First Data Layer02
Health Data Visualization03
Micro-Interaction Design04
Wearable Device Integration05
Push Notification System06
Onboarding — personalized health goal setup
Onboarding — personalized health goal setup
Data visualization — heart rate and activity trends
The Interactions

Every data entry point has custom micro-interactions designed to make logging feel satisfying rather than tedious. Adding a water intake triggers a gentle ripple animation. Logging blood pressure uses a dial interface inspired by actual sphygmomanometers — the familiarity reduces cognitive load for users who measure daily.

The daily dashboard uses a "ring" visualization — concentric arcs that fill as you meet daily targets. Unlike Apple's Activity Rings, Pulse's rings are deliberately understated: thin strokes, muted fills, no celebrations when completed. The goal is awareness, not gamification. Unmet goals don't turn red or shake — they simply remain as they are.

Charts use a custom rendering layer built on Canvas 2D (not SVG, for performance on older devices). Heart rate trends, blood pressure history, and weight tracking all share a consistent visual language: dotted grid lines, rounded data points, gradient fills under curves. Pinch to zoom on mobile reveals finer time granularity.

"Most health apps make me feel guilty. Pulse just shows me the data and lets me decide what it means. That's exactly what I needed."
Offline-first architecture with service worker sync
Offline-first architecture with service worker sync
Push notification system for health reminders
Offline & Performance

The service worker strategy uses a stale-while-revalidate pattern for the app shell and network-first for health data. When offline, the app is fully functional — all CRUD operations write to IndexedDB and queue sync operations. A persistent banner subtly indicates offline status without blocking any functionality.

Push notifications required careful design. Health reminders can be annoying. I implemented a "quiet hours" system with smart scheduling — medication reminders respect the user's typical logging times, adapting over the first two weeks. Users who consistently log at 8am won't get a reminder at 8am — they'll get one at 8:15 only if they missed it.

Wearable device pairing flow
Wearable device pairing flow
Dark mode with OLED-optimized pure black backgrounds
The Outcome

Pulse launched on the web and was later wrapped with Capacitor for App Store distribution. The PWA has a 67% weekly retention rate — exceptional for health apps, where the industry average is 29%. Data entry completion rate is 84% (users who start logging a metric finish the entry). The offline-first architecture means zero data loss reports across 12,000 active users, even in low-connectivity environments where many users track their health.

Want to see more?