Adds the unified Body module that merges what would otherwise be two
separate apps (fitness + bodylog) into one. The value lives in their
intersection: tracking lifts alongside bodyweight is what enables
real progressive-overload + recomp insights, and shared primitives
(charts, time series, units, photos) avoid duplicating UI surface.
This commit lands only the data layer + module registration so the
follow-up UI / route / dashboard widget can build on a stable
foundation.
Tables (db.version(2), already in place):
bodyExercises — exercise library (Squat, Bench, Deadlift, OHP,
Row, Pull-Up seeded as presets)
bodyRoutines — saved workout templates
bodyWorkouts — one logged training session
bodySets — set rows inside a workout, indexed [workoutId+order]
bodyMeasurements — weight + measurements over time, indexed [type+date]
bodyChecks — daily energy/sleep/soreness/mood self-rating,
upserted per day
bodyPhases — cut/bulk/maintenance/recomp phase markers, with
auto-close on phase change so the "active phase"
view always has at most one open row
Encryption (registry.ts): all 7 tables flipped to enabled. Health
data is GDPR Art. 9 special-category, so user-typed text + the
sensitive numeric fields (weight, reps, value, startWeight,
targetWeight, energy/sleep/soreness/mood) are wrapped. Indexed
columns (ids, FKs, ordering, dates, kind/type/equipment enums)
stay plaintext so the existing query layer keeps working without
decrypt-on-every-row.
Module wiring:
- bodyModuleConfig added to module-registry.ts
- Body app entry registered in shared-branding mana-apps.ts
(red→orange icon to set it apart from the green health-adjacent
modules and the pink cycles icon)
- APP_ICONS.body added (dumbbell + heart-pulse hybrid SVG)
Also captures the broader module-ideas brainstorm in
docs/future/MODULE_IDEAS.md and marks fitness + bodylog as merged
into the new body module.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
6 KiB
Mana — Module Ideas
Brainstorm of potential new product modules for the unified Mana app
(apps/mana/apps/web/src/lib/modules/). Captured 2026-04-09.
The app currently ships 37 modules. Each idea below is a candidate for a
new modules/{name}/ folder following the standard module pattern
(module.config.ts, collections.ts, queries.ts, stores/*.svelte.ts,
plus a route under (app)/{name}/).
Most user-typed content should default to encrypted (see
apps/mana/apps/web/src/lib/data/crypto/registry.ts). Modules marked (ZK)
are sensitive enough that zero-knowledge mode should be the default
recommendation.
Current modules (for reference)
Productivity: todo, calendar, contacts, notes, habits, times, timeblocks, events Knowledge & learning: cards, zitare, guides, questions, skilltree, memoro, context Health & self: nutriphi, cycles, dreams, moodlit, planta Media & creative: chat, picture, presi, music, photos, storage, uload Data & tools: finance, calc, inventory, places, citycorners, who, news, links, tags, playground
Health & Body
- body — ✅ Built. Combined fitness training + body composition tracking. Workouts/sets with progressive overload, weight + measurements + body fat, daily energy/sleep/soreness checks, cut/bulk/maintenance phases. Lives at
apps/mana/apps/web/src/lib/modules/body/. The fitness/bodylog merger was the right call — the value lives in their intersection (volume vs. bodyweight, lifts inside a cut). - sleep — Sleep phases, link to
dreams, bedtime habit integration - meds — Medications/supplements, reminders, interactions, history log
- therapy (ZK) — Session notes, mood timelines, homework
Mind & Reflection
- journal — Daily freeform entries with mood, tags, "on this day" recap
- gratitude — 3-things-a-day micro-module with streaks
- values — Personal values/principles, monthly check-in, ties to
habits - decisions — Decision journal: assumptions, expected outcome, later review
- letters — Letters to your future self (time-locked unlock)
Knowledge & Creativity
- bookmarks — Read-later with auto-extract via
mana-crawler, tags, highlights - highlights — Book/article quotes + spaced-repetition resurfacing (Readwise-style)
- library — Books/films/games/podcasts: wishlist → in progress → done, ratings
- ideas — Idea inbox with "cooking" status, links to
notesandcards - wiki — Personal Zettelkasten/wiki with backlinks (Obsidian-style), built on
notes - research — Topic-based folders: sources, notes, syntheses, AI summaries
- prompts — LLM prompt library with variables, versions, captured outputs
Lifestyle & Hobbies
- recipes — Recipes (linked to
nutriphi), meal plan, shopping list generator - wardrobe — Catalog clothing, build outfits, "last worn", wash status
- travel — Trips, itineraries, packing lists, travelogue (combines
places+photos) - packing — Reusable packing list templates per trip type
- garage — Car/bike: maintenance, fuel stops, repairs, inspection reminders
- collections — Generic collector (vinyl, sneakers, LEGO, coins) with custom fields
Social & Relationships
- birthdays — Standalone from
contacts: reminders, gift ideas, past gifts - gifts — Gift ideas per person, budget, status (idea → bought → given)
- interactions — CRM-light: last contact, "ping it" reminders for relationship upkeep
- family — Family tree, shared memories, family lore
Money & Stuff
- subscriptions — Track subscriptions, renewal alerts, annual cost overview, cancel links
- budgets — Budget buckets layered on
finance, savings goals - invoices — Issue invoices (freelancer), status, dunning
- warranties — Receipts/warranties, expiry alerts (links to
inventory) - lending — What you've lent / borrowed (books, tools, money)
Home & Living
- home — Household tasks, maintenance plan (filter changes, chimney sweep), contracts
- chores — Recurring household tasks with rotation across roommates
- shopping — Universal shopping lists, stores, price comparisons
- pantry — Pantry stock with expiry, generates shopping list, links to
recipes
Work & Goals
- goals — OKRs/quarterly goals, key results, weekly check-in
- projects — Generic project module (beyond
todo): phases, stakeholders, risks - standup — Daily done/doing/blockers log (works for solos too)
- meetings — Meeting notes with attendees from
contacts, action items →todo - timesheet — Time tracking per project (extension of
times), invoice export - interviews — Interview tracker (as candidate or recruiter)
Playful & Creative
- streaks — Pure streak visualizer across all modules (habits, journal, etc.)
- bucket — Bucket list with status, completion photos
- quests — Gamified self-challenges, RPG-style XP feeding
skilltree - moodboard — Visual inspiration boards (combines
picture/bookmarks) - sketchbook — Quick browser-canvas doodles, dated
- soundbites — Short audio memos, transcribed via
mana-stt - timecapsule — Save content today, unlock in X years
People in your life
- kids (ZK) — Milestones, illnesses, growth, photos
- pets — Vet appointments, vaccinations, feeding, weight
- plants-care — Extension of
planta: watering plan, fertilizing, repotting
Next steps
When picking one to build, the standard scaffolding is:
apps/mana/apps/web/src/lib/modules/{name}/module.config.ts— declareappId+ tables- Add to
apps/mana/apps/web/src/lib/data/module-registry.ts - Add Dexie schema bump in
apps/mana/apps/web/src/lib/data/database.ts - If sensitive: register in
apps/mana/apps/web/src/lib/data/crypto/registry.ts - Route under
apps/mana/apps/web/src/routes/(app)/{name}/ - Register in
packages/shared-branding/src/mana-apps.ts(icon, tier, branding)