Skip to content

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.

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/
PackageNameDescription
apps/web@life-manager/webTanStack Start web application
apps/mobile@life-manager/mobileExpo mobile application
apps/docs@life-manager/docsDocumentation site (Starlight)
packages/db@life-manager/dbDatabase layer (PowerSync schema, types, mutations, hooks)
packages/shared@life-manager/sharedShared constants, helpers, hooks, utils
  • 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