Everything you need to go from a fresh clone to a running service and a green test suite.
Finished these steps?
This milestone is explicit because only you know whether the project runs locally.
cp .env.example .envEvery value in .env.example is fake. GitHub, Tigris, Resend and the password-breach API are intercepted by MSW in development and tests, so no third-party account is needed to start.
npm installnpm run setupRuns `npm run build`, `prisma migrate deploy` (creating prisma/data.db and inserting the admin and user roles), `prisma generate --sql` for the searchUsers query, and `playwright install`.
npx prisma@6 db seedCreates five fake users with notes and the admin user `kody` (password `kodylovesyou`). `npx prisma migrate reset --force` drops the database and reseeds from scratch.
npm run devServes http://localhost:3000, or the next free port, with Vite and MSW intercepting outbound calls. Log in as kody after seeding.
npm run dev:no-mocksPut real credentials in .env first. GitHub login keeps using the built-in mock flow for as long as GITHUB_CLIENT_ID starts with MOCK_.
npm run buildnpm run start:mocksThe same server CI's Playwright job starts. Production mode applies the real rate limits; `npm start` runs without mocks and needs real service credentials.
npm testnpm run test -- --runnpm run coverageTests live next to the code as app/**/*.test.ts(x). The first run builds tests/prisma/base.db, and any console.error or console.warn fails a test unless it is explicitly mocked.
npm run test:e2e:installnpm run test:e2e:devnpm run test:e2e:run`test:e2e:dev` opens the Playwright UI against `npm run dev`; `test:e2e:run` builds first and runs headless with CI=true, as the pipeline does.
npm run lintnpm run typechecknpm run validate`typecheck` runs `react-router typegen` before tsc so route `+types` imports resolve; `validate` runs unit tests, lint, typecheck and the e2e suite in parallel.