https://github.com/kamdz/dx
An opinionated, production-ready boilerplate/starter for TypeScript projects, designed to provide an optimal developer experience (DX). It comes pre-configured with best practices and essential tools for streamlined development, including building, linting, formatting, testing, and CI/CD.
https://github.com/kamdz/dx
boilerplate conventional-commits developer-experience eslint jest prettier semantic-release starter template typescript
Last synced: 27 days ago
JSON representation
An opinionated, production-ready boilerplate/starter for TypeScript projects, designed to provide an optimal developer experience (DX). It comes pre-configured with best practices and essential tools for streamlined development, including building, linting, formatting, testing, and CI/CD.
- Host: GitHub
- URL: https://github.com/kamdz/dx
- Owner: kamdz
- License: mit
- Created: 2024-10-22T17:12:32.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2025-03-20T17:23:52.000Z (about 1 month ago)
- Last Synced: 2025-03-20T18:31:02.416Z (about 1 month ago)
- Topics: boilerplate, conventional-commits, developer-experience, eslint, jest, prettier, semantic-release, starter, template, typescript
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/@kamdz/dx
- Size: 2.14 MB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# @kamdz/dx
**@kamdz/dx** is an opinionated, production-ready boilerplate/starter for TypeScript projects, designed to provide an optimal developer experience (DX). It comes pre-configured with best practices and essential tools for streamlined development, including building, linting, formatting, testing, and CI/CD. Every file and configuration in this project serves as a blueprint for future projects.
🚀 **Quick start:**
```bash
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
| Polecenie | Opis |
|--------------------|------------------------------------------------------|
| `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!