- Install dependencies:
pnpm install - Copy environment variables (see README)
- Start database:
./start-database.shor Docker - Run migrations:
pnpm db:migrate - (Optional) Seed data:
pnpm tsx prisma/seed.ts - Start dev server:
pnpm dev
- TypeScript - Strict mode enabled
- ESLint - Next.js config with TypeScript rules
- Prettier - Auto-formatting on save
- Tailwind - Utility-first CSS
# Create migration
pnpm db:generate
# Apply migrations
pnpm db:migrate
# Development: push schema changes (no migration)
pnpm db:push
# View database
pnpm db:studio- Database: Update
prisma/schema.prisma, runpnpm db:generate - API: Create/update router in
src/server/api/routers/ - UI: Create components in
src/app/_components/or page insrc/app/ - Types: Types are auto-generated from Prisma and tRPC
- Email:
pnpm test:email(requires SMTP config) - Type checking:
pnpm typecheck - Linting:
pnpm lint - Formatting:
pnpm format:check
- Add model to
schema.prisma - Create router in
server/api/routers/ - Add to
server/api/root.ts - Create dashboard pages in
app/dashboard/ - Create public pages if needed
- Add to
UserRoleenum inschema.prisma - Create procedure helper in
server/api/trpc.ts - Update permission checks in routers
- Update UI role checks
- Templates in
src/server/email/templates/ - Use React Email components
- Test with
pnpm test:email
- tRPC errors: Check browser console and server logs
- Database: Use Prisma Studio (
pnpm db:studio) - Auth issues: Check Better Auth logs and session table
- File uploads: Check
public/uploads/directory andMediatable