Skip to content
Back to Project Archive

Vireo Wellness

An offline-first health journal and meditation timer — your habits stay in your browser, not on my server.

Vireo Wellness Logo
// PROJECT_ID
vireo-wellness
// AUTHOR
DHAATRIK CHOWDHURY
// SUBJECT
CASE STUDY
// CLASSIFICATION
PUBLIC // OPEN
// TELEMETRY
STATUS: SHIPPED // PWA: INSTALLABLE // OFFLINE: 100PCT
// IMPACT.LOG
// FUCKUP_LOG
RECORDED
[ FUCKUP LOG ]  I assumed IndexedDB was always available, unaware that private browsers block storage access—meaning private tabs silently threw errors and lost user data.

SYS.STATUS: PWA installable — 100% offline, IndexedDB persistence, export works

Wellness apps want your sleep data on their cloud. Vireo is the opposite: a private journal and meditation timer that never phones home.

Why I started this

I wanted to track habits and meditation without creating another account full of sensitive health notes. Data sovereignty wasn’t a marketing angle — it was the requirement. If I’m logging mood and routines, that stays on my device.

What I tried (and what broke)

Built as a PWA with service workers caching assets for instant load. Entries persist in IndexedDB through a thin transactional wrapper — same offline-first muscle memory as Vellor, applied to wellness instead of grades.

Dark-mode-first Tailwind UI; meditation timers and log modules as React components. Offline install works; airplane-mode sessions work. Local backup export exists because no server means you own disaster recovery.

IndexedDB schema changes mid-development broke early installs until I treated migrations seriously — lesson imported from other local-first projects.

Meditation timer logic sounds trivial until you handle background tabs, missed intervals, and “I locked my phone mid-session.” I kept timer state in memory with periodic IndexedDB checkpoints so a refresh doesn’t erase a 20-minute sit.

Fuckups & learnings

  • Wellness UI should be calm, not gamified streak hell. I biased toward simple logs over dopamine traps.
  • PWAs still fight iOS quirks. Test on real devices, not just Chrome desktop.
  • Export isn’t optional for local-only apps. Users will clear site data eventually.
  • Habit streaks can guilt-trip. I logged patterns without punishing broken streaks — wellness apps don’t need rage-quit energy.

Where it stands now

Vireo Wellness is PWA-ready: offline entry, cached assets, local database wrappers, backup export. Habit journal and meditation timer modules both run without network. No accounts, no sync service, no analytics pipeline on sensitive health notes.

Closing transmission

Small, private, intentional. If you want a health journal that doesn’t rent your data back to you, it’s on GitHub.