iOS PWA experiment

Runlog

Runs

Manual entries, GPS sessions (foreground), and JSON imports from an Apple Health bridge.

    Log manually

    Import JSON

    For Apple Health data, use a native bridge or iOS Shortcut β€” see the iOS & Health tab.

    Audio coach

    Interval cues via HTML audio + Media Session β€” designed to keep coaching alive when the screen locks. Matches Daywell’s Run progression.

    0:00Elapsed
    β€”Step
    β€”Plan

    Ready.

    Lock-screen mode

    • Tap Start coach once to unlock audio (required on iOS).
    • A silent loop keeps the media session alive; walk/jog tones mark each phase.
    • Check lock screen for β€œWalk Β· 2:14 left” style progress.
    • GPS is off here β€” log time + prescription, not route.

    Live track

    Uses browser Geolocation while this screen stays open. On iOS, GPS pauses when the app backgrounds or the screen locks β€” not a HealthKit limitation, a web platform one.

    0:00Time
    0.00km
    β€”/km

    Ready.

    While tracking

    • Keep Runlog in the foreground with the screen on.
    • Wake Lock is requested when supported (iOS 16.4+ installed PWA).
    • Route points are stored locally with the run β€” never uploaded.

    This device

    Runtime checks for what a pure PWA can use on iOS without App Store code.

    Apple Health / HealthKit

    Safari and installed PWAs cannot read or write HealthKit. Apple exposes Health data only to native apps with HealthKit entitlements. There is no web API.

    DataPure PWA (iOS)With native bridge
    Workouts (run type, start/end)Manual log or GPS session you record hereHealthKit HKWorkout read
    Distance / paceGPS math while app is open; manual entryWorkout stats + route samples
    Heart rateNot availableHealthKit quantity samples
    Active energyNot availableHealthKit kcal samples
    Steps / cadenceNot available (DeviceMotion is unreliable)HealthKit / Apple Watch
    Background GPS during runNo β€” tracking stops when screen locksCore Location background mode
    Write run back to HealthNoSave HKWorkout from native shell
    Integration paths (ranked)
    1. Stay PWA: manual + foreground GPS + export JSON. Pair with Daywell run bucket items.
    2. iOS Shortcut β†’ import: Shortcut reads recent runs from Health, POSTs or saves JSON you import here. No App Store, but user-built automation.
    3. Capacitor / PWAKit shell: wrap this web app; add HealthKit plugin for read/write. App Store or TestFlight.
    4. Small native Swift app: HealthKit sync only; web UI stays the dashboard.

    Sample Health import JSON