Weidong Shi.

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.

SleepCheck player-first sleep experience
Hero product surface: player stays front and center — not a dashboard.

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.

SleepCheck local-first architecture diagram
Local-first PWA: preferences and session state stay on device.

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
SleepCheck scene selection with ambient soundscape
Annotated screen: scene selection keeps the night ritual simple.
SleepCheck mobile player interface
Mobile-first player — installable PWA with on-device preferences.

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.

Human judgment and AI assistant roles in SleepCheck delivery
Engineer owns product and privacy boundaries; AI accelerates delivery inside those rules.

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
SleepCheck bedtime stories with narrator picker
Stories surface with narrator choice — cinematic without becoming a content feed.

Lessons

  1. Decide what never to collect before you design features.
  2. Local-first is a product story, not only a storage detail.
  3. Calm UX is an architecture constraint on information density.
  4. 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.