Skip to content

Latest commit

 

History

History
45 lines (33 loc) · 2.13 KB

README.md

File metadata and controls

45 lines (33 loc) · 2.13 KB

@kamdz/dx

@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]

✨ Features

  • 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

📜 Available Commands

  • yarn build: Bundle your code to ES Module and CommonJS with tsup
  • yarn cli: Run the custom CLI in bin/cli.ts
  • yarn commit: Use commitizen for conventional commits
  • yarn dev: Start development mode with tsx
  • yarn dx: Update your project with the latest @kamdz/dx
  • yarn format: Format code with Prettier
  • yarn lint: Lint and auto-fix issues with ESLint
  • yarn start: Run the project with tsx
  • yarn test: Run tests with Jest with coverage
  • yarn type-check: Type-check your project using TypeScript

🤔 Why?

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.

🔧 Customization

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!