Skip to content
Back to Transmissions
// DATE
// AUTHOR
DHAATRIK
// CLEARANCE
PUBLIC
// INTERACTION

Why Vireo — Wellness UI Today vs the Private Journal I Advertised

Vireo Wellness
====================================================================
// TRANSMISSION METADATA // QUICK REFERENCE (AEO/LLMO OBJECTS)
--------------------------------------------------------------------
- ENTITY: Vireo Wellness (github.com/dhaatrik/vireo-wellness)
- VERSION: v2.0.0
- SHIPPED: Wellness UI demo with mock data — meals, glucose chart, simulated Bluetooth
- NOT SHIPPED: PWA plugin, IndexedDB persistence, meditation timer, real health backend
- MOTIVATION: Fragmented wellness UIs vs. a calm single-page health surface
- KEY LESSON: Privacy intent is real; persistence claims on my portfolio were ahead of the repo
====================================================================

Mission Report: The Journal I Promised vs the Demo I Shipped

SYS.STATUS: TRANSMISSION LIVE // CLEARANCE: PUBLIC

Hey. My portfolio described Vireo Wellness as an offline-first PWA with IndexedDB persistence and a meditation timer. The GitHub repo at v2.0.0 is honest about something different: a wellness UI demo powered by comprehensive mock data — dashboard nutrition stats, meal logging from a built-in food database, blood glucose charts, and simulated Bluetooth device pairing.

I am fixing that gap here. The vision is not fake; the shipped scope was mislabeled on this site.


Mission Report: The Why — What Problem Was I Actually Solving?

Three frustrations stacked:

  1. Health tracking UIs feel fragmented. Calories in one app, glucose in another, device pairing screens that look like afterthoughts. I wanted one calm, mobile-optimized surface that feels like a native wellness app.

  2. Privacy matters for health data. I still believe sensitive notes belong on your device, not my server. That intent shaped the design — dark theme, no accounts in the demo, no analytics pipeline. But intent without persistence wiring is vision, not shipped product.

  3. Charts need data before backends exist. Mock data lets me tune Recharts layouts, meal flows, and device pairing animations without waiting for a CGM API or food database service. The README says it plainly: mock data demonstrates a frontend architecture ready for backend integration.

Vireo today is a UI prototype, not the private offline journal I advertised.


Mission Report: What Vireo Ships Today — Concrete Scope

As of v2.0.0, the repo delivers:

SurfaceWhat you do there
DashboardNutrition “Eaten” stats, interactive blood glucose chart (mock-populated)
Daily MealsLog Breakfast/Lunch/Dinner/Snack from built-in food DB with macros
DevicesSimulated Bluetooth scan, pairing animation, battery/status UI
TimelineDate picker to navigate past logs and future goals
ThemePermanent dark mode via Tailwind CSS v4

Stack: React 19.1, TypeScript 5.8, Vite 6, Tailwind 4, Recharts, Framer Motion, React Router 7, Vitest + Playwright in devDependencies.

Not in package.json: vite-plugin-pwa, IndexedDB libraries, meditation timer modules, Web Bluetooth API usage.


Mission Report: Vision vs Shipped (Be Explicit)

Vision (why I care)Shipped (what the repo proves today)
Offline-first private journalClient-side SPA; no PWA install path wired
Data stays on your deviceMock data — nothing persists across refresh unless you add storage
Meditation timerNot implemented in this repo
Real device pairingSimulated pairing UX only
IndexedDB persistenceNot shipped — my portfolio claimed it; README does not

I am not abandoning the vision. I am stopping the lie that v2.0.0 already is the journal.


Mission Report: Fuckups & Learnings

  • I marketed persistence I had not built. IndexedDB, 100% offline, meditation timer — portfolio copy from an earlier mental model. The upstream README correctly leads with mock data. Lesson: grep package.json before claiming PWA or storage.
  • Mock data vs privacy marketing is a credibility trap. Saying “your data never leaves your device” sounds great until users realize entries do not survive a reload. Honest label: UI demo.
  • Simulated Bluetooth is useful anyway. Pairing animations and status chips teach layout before Web Bluetooth permissions get involved.
  • Wellness UI should stay calm. I avoided streak guilt and gamification noise — that design choice survives whether data is mock or real.

Mission Report: Current State & Key Artifacts

Vireo Wellness v2.0.0 runs locally with Vitest and Playwright available.

git clone https://github.com/dhaatrik/vireo-wellness.git
cd vireo-wellness
npm install
npm run dev
# Typically http://localhost:3000
npm run test
npm run lint
npm run build

MIT licensed. No backend required — because there is no backend yet.


Mission Report: Closing Transmission

Explore the dashboard. Log a mock meal. Watch the glucose chart animate. Pair a simulated device. That is Vireo today — a polished wellness surface waiting for persistence and real data pipes.

If you are building health UI before your backend exists, mock data is fine — just do not let your portfolio pretend the journal already shipped. Full Vision vs Shipped tables live on the Vireo project page.