Skip to content

Development Setup

Development setup must be reproducible and explicit

Section titled “Development setup must be reproducible and explicit”

Leci contribution flow depends on reproducible environment setup because database and migration behavior are central to product correctness.

Required baseline:

  • Node.js >=20
  • npm >=10
  • PostgreSQL connection URL via DATABASE_URL

Recommended command checks:

Terminal window
node -v
npm -v
Terminal window
npm install
cp .env.example .env
# set DATABASE_URL
npx tsx scripts/migrate.ts
npm run lint
npm test
npm run dev

A standard daily loop should include:

  1. pull latest changes;
  2. reinstall only if lockfile changed;
  3. apply migrations;
  4. run lint/test;
  5. run app in dev mode.

When changing schema-related code:

  • update Drizzle schema and/or SQL migrations intentionally;
  • verify migration rerun behavior;
  • document any non-idempotent assumptions.

Any change affecting commands, config, or feature behavior must update corresponding docs pages in the same branch.