Installation
Requirements
- Node.js 22+ and pnpm (the repo pins a pnpm version via
corepack). - A PostgreSQL database (local Docker, Postgres.app, or a hosted instance).
Install and run
Install dependencies and start the dev server:
pnpm install
pnpm dev
The app runs at http://localhost:3000 and redirects to your default locale
(e.g. /en).
Environment
The app validates its environment at boot with Zod (src/env.ts), so it fails
fast with a clear message if something required is missing or malformed. Copy
the example file and fill in the values:
cp .env.example .env.local
At minimum you need a database URL and an auth secret:
DATABASE_URL=postgresql://user:pass@localhost:5432/app
BETTER_AUTH_SECRET=<a real 32+ character random string>
BETTER_AUTH_URL=http://localhost:3000
APP_URL=http://localhost:3000
APP_NAME="Your App"
Every variable in .env.example is documented with a comment. Optional
features (Stripe, Resend, S3, social login) stay off until you provide their
keys — see Configuration.
Database setup
Generate the Prisma client, apply migrations, and seed sample data:
pnpm db:generate # generate the typed Prisma client
pnpm db:migrate # apply migrations (dev)
pnpm db:seed # optional: seed sample data
Useful extras:
pnpm db:studio # browse the database in Prisma Studio
pnpm db:reset # drop, re-migrate, and re-seed (destructive)
Verifying your setup
The kit ships with tests. Run them to confirm everything is wired up:
pnpm test:run # unit + integration tests (Vitest)
pnpm lint # ESLint
pnpm build # production build
See Testing for the full testing story.