Fastify + TypeScript (strict), ESLint (flat), Prettier, Vitest, Playwright (API), Husky pre-commit, Qodana.
pnpm i
pnpm dlx husky install
pnpm dlx playwright install --with-deps
make devmake install | dev | build | preview | lint | typecheck | test | e2e | format | ci
dev: run in watch mode viatsxbuild: compile todistviatscpreview: run compiled server (node dist/index.js)test: unit tests via Viteste2e: API tests via Playwright (/e2e)ci: lint → typecheck → unit → e2e
- Server: Fastify
- Lang: TypeScript (ESM, NodeNext)
- Test: Vitest (+ coverage-v8), Playwright (API)
- Quality: ESLint (flat, TS-aware), Prettier, Husky + lint-staged, Qodana
- Pkg: pnpm
.
├─ src/
│ ├─ app.ts # buildApp(): FastifyInstance
│ └─ index.ts # bootstrap server (PORT=3000)
├─ tests/ # unit tests (Vitest)
├─ e2e/ # e2e (Playwright API)
├─ .husky/ # git hooks
├─ .github/workflows/ # CI
└─ ...