Private, manual life-tracker for one user. Local-first with clean upgrade paths to Supabase, auth, and AI coach later.
- Next.js App Router (TypeScript)
- Prisma ORM
- SQLite (local) → ready for Supabase Postgres later
- Zod validation
- TanStack Query
- TailwindCSS
- Recharts
- Vitest + Playwright
- ESLint + Prettier + Husky + lint-staged
Create .env with:
DATABASE_URL="file:./dev.db"
FEATURE_AUTH=0
FEATURE_CLOUD_SYNC=0
FEATURE_AI_COACH=0
ADMIN_EMAIL=
pnpm dev # run app
pnpm prisma:migrate --name init
pnpm prisma:seed
pnpm test # unit tests
pnpm e2e # e2e tests (Playwright)
pnpm lint # lint
See prisma/schema.prisma.
- Export:
/api/export?year=YYYY&month=MM&format=json|csv - Import:
POST /api/import{ days: [{ date, checks, values, note }] }
- Update
datasource dbinschema.prismato Postgres and changeDATABASE_URL. - Run migrations; keep repository APIs as-is.