Skip to content

Development

Always use Bun (never npm/yarn/pnpm). Bun auto-loads .env files. Run from the root directory.

Terminal window
bun run dev # Dev server - web (localhost:3000)
bun run dev:mobile # Dev server - mobile (Expo)
bun run build # Production build (web)
Terminal window
bun run lint # TypeScript + ESLint (all apps & packages)
bun run lint:web # Lint web app only
bun run lint:mobile # Lint mobile app only
bun run lint:db # Lint @life-manager/db package only
bun run lint:shared # Lint @life-manager/shared package only
bun run lint:fix # Auto-fix (all apps & packages)
Terminal window
bun test # Bun test runner (web)
Terminal window
bun run generate-types # Regenerate Supabase types into packages/db/
bun run generate-types:local # Same but against local Supabase
bun run db:start # Start Supabase + Docker
bun run db:stop # Stop Supabase + Docker
bun run db:diff # Generate migration diff
bun run db:reset # Reset database (destructive!)
bun run db:pull # Pull remote schema
bun run db:seed # Run seed scripts
Terminal window
bun run knip # Find unused exports (web)
bun run count:lines # Count lines of code (cloc)

@/* maps to ./src/* within each app. Import shared packages by their workspace name:

import { AppSchema } from "@life-manager/db/schema";
import { mantineColors } from "@life-manager/shared/constants/colors";