@kamdz/dx is an opinionated developer experience (DX) template designed to set up TypeScript projects with best practices baked in. It comes pre-configured with tools for streamlined development, including building, linting, formatting, testing, and CI/CD. Every file and configuration included in this project acts as a blueprint for other projects.
🚀 Quick start:
npx @kamdz/dx
# or
npx @kamdz/dx [path]
- TypeScript for static typing, with tsup & tsx for builds and development
- ESLint 9 for code linting and quality checks
- Prettier for consistent code formatting
- Husky & lint-staged for Git hooks to ensure code quality
- Commitlint & Commitizen for conventional commit messages
- Semantic Release for automated versioning and changelogs
- Jest for unit testing with coverage
- GitHub Actions for CI/CD
yarn build
: Bundle your code to ES Module and CommonJS with tsupyarn cli
: Run the custom CLI inbin/cli.ts
yarn commit
: Use commitizen for conventional commitsyarn dev
: Start development mode with tsxyarn dx
: Update your project with the latest @kamdz/dxyarn format
: Format code with Prettieryarn lint
: Lint and auto-fix issues with ESLintyarn start
: Run the project with tsxyarn test
: Run tests with Jest with coverageyarn type-check
: Type-check your project using TypeScript
While monorepos with shared configs (ESLint, Prettier, TypeScript) are helpful, they still involve setting up boilerplate files for every project. @kamdz/dx simplifies this by providing a template repository. You can modify rules or tools, and propagate those changes to all your projects with a single command, ensuring a consistent developer experience across them.
To create your own @user/dx
, fork this repository, modify whatever you need (except for the bin
and src
directories), and update the name
, bugs
, repository
, author
, scripts.dx
in package.json
. Done!
If you enjoy this project, please ⭐️ it!