Zero-config TypeScript library template with Bun, tsdown, Prettier, ESLint, Vitest, and git-cliff.
- TypeScript 5.x with
@tsconfig/strictestfor maximum type safety - Dual ESM/CJS output via tsdown with automatic type declarations
- Prettier for consistent code formatting
- ESLint with SonarJS, JSDoc enforcement, and import sorting
- Vitest for fast testing with v8 coverage (80% threshold)
- Lefthook for pre-commit hooks (lint + typecheck)
- git-cliff for automated changelog generation
- GitHub Actions for CI/CD with manual release workflow
- VitePress documentation site
-
Click Use this template to create your repository
-
Clone and install:
git clone https://github.com/YOUR_USERNAME/YOUR_REPO.git cd YOUR_REPO bun install -
Configure repository settings:
./scripts/setup-repo.sh
-
Add required secrets in GitHub Settings → Secrets → Actions:
NPM_TOKEN- npm automation tokenGH_PAT- Personal access token withreposcope
-
Update
package.jsonwith your package details and start coding insrc/index.ts
| Script | Description |
|---|---|
bun run build |
Build ESM/CJS bundles to dist/ |
bun run dev |
Build in watch mode |
bun run test |
Run tests |
bun run test:coverage |
Run tests with coverage report |
bun run lint |
Check code quality with ESLint |
bun run lint:fix |
Auto-fix linting issues |
bun run format |
Format code with Prettier |
bun run typecheck |
TypeScript type checking |
bun run knip |
Find unused code and dependencies |
bun run docs:dev |
Start documentation dev server |
├── src/ # Source code
│ └── index.ts # Library entry point
├── tests/ # Test files
├── docs/ # VitePress documentation
├── scripts/ # Utility scripts
│ └── setup-repo.sh # Repository configuration script
├── .github/
│ ├── workflows/ # CI/CD workflows
│ └── dependabot.yml # Dependency updates
├── eslint.config.ts # ESLint configuration
├── tsconfig.json # TypeScript configuration
├── tsdown.config.ts # Build configuration
└── cliff.toml # Changelog configuration
Releases are triggered manually via GitHub Actions:
- Go to Actions → Release
- Click Run workflow
- Select version type (
patch,minor,major)
The workflow automatically:
- Bumps version in
package.json - Generates
CHANGELOG.mdwith git-cliff - Publishes to npm with provenance
- Creates GitHub release
- Bun (latest)
- Node.js >= 20
- GitHub CLI (for setup script)
This project is licensed under the MIT License - free for personal and commercial use.
Copyright © 2026 pyyupsk