managarten/docs/future/MODULE_IDEAS.md
Till JS a412ccc6fb feat(mana/web/body): new module — combined fitness training + body comp tracking
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>
2026-04-09 16:28:19 +02:00

120 lines
6 KiB
Markdown

# 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 `notes` and `cards`
- **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:
1. `apps/mana/apps/web/src/lib/modules/{name}/module.config.ts` — declare `appId` + tables
2. Add to `apps/mana/apps/web/src/lib/data/module-registry.ts`
3. Add Dexie schema bump in `apps/mana/apps/web/src/lib/data/database.ts`
4. If sensitive: register in `apps/mana/apps/web/src/lib/data/crypto/registry.ts`
5. Route under `apps/mana/apps/web/src/routes/(app)/{name}/`
6. Register in `packages/shared-branding/src/mana-apps.ts` (icon, tier, branding)