Overview
Offline-first personal productivity platform (work tracking, finance, calendar, habits). Monorepo with Bun Workspaces: web app (TanStack Start), mobile app (Expo), shared packages, db package.
Monorepo Structure
Section titled “Monorepo Structure”life_manager/├── package.json # Workspace root├── tsconfig.base.json # Shared TS config├── bunfig.toml├── supabase/ # Supabase local folder├── apps/│ ├── web/ # TanStack Start web app│ │ ├── package.json # @life-manager/web│ │ └── src/│ ├── mobile/ # Expo mobile app│ │ ├── package.json # @life-manager/mobile│ │ └── src/│ └── docs/ # This documentation site (Starlight)└── packages/ ├── db/ # @life-manager/db (schema, types, mutations, hooks) │ └── src/ └── shared/ # @life-manager/shared (constants, helpers, hooks, utils) └── src/Workspaces
Section titled “Workspaces”| Package | Name | Description |
|---|---|---|
apps/web | @life-manager/web | TanStack Start web application |
apps/mobile | @life-manager/mobile | Expo mobile application |
apps/docs | @life-manager/docs | Documentation site (Starlight) |
packages/db | @life-manager/db | Database layer (PowerSync schema, types, mutations, hooks) |
packages/shared | @life-manager/shared | Shared constants, helpers, hooks, utils |
Key Design Principles
Section titled “Key Design Principles”- Offline-first: All data flows through PowerSync local SQLite before syncing to Supabase
- Shared data layer: Schema, types, and mutations live in
@life-manager/db, shared between web and mobile - Feature-based organization: Components, hooks, and helpers grouped by feature domain
- Entity architecture: Guards, workflows, actions pattern for safe data operations