A modern Node.js boilerplate for building APIs with TypeScript, Vitest, Supertest and BiomeJS following best practices for code organization and testing.
- 🚀 Modern Node.js & TypeScript: Built with Node.js and TypeScript, utilizing the latest features and type safety
- 🧩 Colocated Code: Following Kent C. Dodds' article on colocation, keeping related code together
- 🧹 Code Quality:
- Biome for linting and formatting
- Pre-commit hooks with lefthook
- Commit message validation with commitlint
- 🧪 Testing:
- Vitest for unit testing
- Vitest UI for visual test feedback
- Test files colocated with source files
src/
├── api/ # API routes and controllers
│ └── item/ # Item-related features
│ ├── item.controller.ts # Business logic
│ ├── item.model.ts # Data models
│ ├── item.router.ts # Route definitions
│ └── __tests__/
│ └── item.test.ts # Tests for item feature
├── config/ # Configuration files
├── testHelpers/ # Test utilities
└── app.ts # Application entry point
-
Install Dependencies
yarn install
-
Development Server
yarn dev
-
Testing
# Run tests in CLI yarn test # Run tests with UI yarn test:ui
-
Code Quality
# Lint yarn lint # Format yarn format # Type checking yarn typecheck
The project uses path aliases for cleaner imports:
import { something } from '#src/something'
import { testHelper } from '#testHelpers/testHelper'
import { config } from '#config/config'
- Create a feature branch
- Make your changes
- Run tests and linting
- Commit with a conventional commit message
- Push and create a pull request
MIT