Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kamdz/dx
An opinionated developer experience (DX) template for TypeScript projects to ensure consistency across multiple projects.
https://github.com/kamdz/dx
boilerplate conventional-commits developer-experience eslint jest prettier semantic-release template typescript
Last synced: 3 months ago
JSON representation
An opinionated developer experience (DX) template for TypeScript projects to ensure consistency across multiple projects.
- Host: GitHub
- URL: https://github.com/kamdz/dx
- Owner: kamdz
- License: mit
- Created: 2024-10-22T17:12:32.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2024-10-29T21:27:46.000Z (3 months ago)
- Last Synced: 2024-10-29T23:44:57.595Z (3 months ago)
- Topics: boilerplate, conventional-commits, developer-experience, eslint, jest, prettier, semantic-release, template, typescript
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/@kamdz/dx
- Size: 802 KB
- Stars: 2
- 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 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:**
```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
- `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!