Local-First Wellness PWA · 2026 · Live
SleepCheck
Wind-down tools often over-collect data; people need calm UX with a privacy-first architecture.
Problem worth solving
The hardest part of building SleepCheck was not generating the code. It was deciding what the application should never collect. Most wind-down tools push accounts, tracking, and content feeds. SleepCheck is a calm, player-first companion with a privacy boundary as a product requirement.
Intended user
People who want a simple night ritual — soundscapes, stories, breathing, a timer — without creating an account or feeding a wellness data platform. Wellness language stays supportive and non-clinical.

Constraints that shaped the solution
- Local-first preferences — no account, no tracking server
- Offline-friendly PWA install on phone and desktop
- Mobile-first calm UX; night use over feature density
- Honest wellness disclaimers; not a medical product
Architecture decision
SleepCheck is a Next.js PWA with on-device preference storage. Audio scenes, stories, and timers are product features; telemetry and identity are intentionally absent. Data minimization is an architecture choice, not a settings afterthought.

Tradeoffs
- Accepted: sync and multi-device accounts are unavailable by design
- Rejected: analytics SDKs, social login, and content recommendation engines
- Delayed: large content libraries until quality and licensing justify them
- Excluded: app-store packaging, subscriptions, and clinical claims


How AI was used — and what stayed human
AI-assisted engineering accelerated UI and scaffolding under a reference architecture. Human judgment owned product boundaries: what never to collect, calm UX, privacy posture, accessibility, and production polish. The case study is judgment under constraints — not code volume.

Privacy, security, accessibility, reliability
- No account; preferences stored on-device
- No tracking server for behavioral analytics
- PWA install path for offline-friendly wind-down
- Wellness disclaimer language kept non-clinical
- Touch targets and player controls sized for night use
What was delivered
- Player-first soundscapes with looping natural scenes
- Bedtime stories with narrator voice picker
- Breathing guide, sleep timer, streaks, shareable mix cards
- Installable PWA with on-device preferences
- Live app at sleepcheck.weidong-shi.com

Lessons
- Decide what never to collect before you design features.
- Local-first is a product story, not only a storage detail.
- Calm UX is an architecture constraint on information density.
- Same series loop as RetireCheck: Build → Validate → Improve → Document → Share.
Limitations and future considerations
SleepCheck is not a medical device and does not diagnose or treat sleep disorders. Cross-device sync, native wrappers, and monetization are out of scope unless evidence clearly justifies them. The public goal is architectural and product credibility — not an app-store launch.
Full delivery narrative: AI in Action #2: From an Idea to SleepCheck.