A minimal template for any language or framework. Ships pre-configured with formatting enforcement, pre-commit hooks, and CI.
Create a new repository from this template on GitHub using this link, or clone it locally and point it at your own remote.
Install Lefthook and dprint, then register the pre-commit hook:
lefthook installReplace or extend the template files to fit your project:
.github/workflows/ci.yaml— Extend or replace the CI workflow..github/dependabot.yaml— Adjust update frequency or add more package ecosystems.CLAUDE.md— Replace with guidance specific to your project.dprint.json— Add or remove dprint plugins for your language.lefthook.yaml— Add more pre-commit checks or other Git hooks.LICENSE— Replace with your preferred license, or keep the Unlicense.README.md— Replace with a description of your project.
Before committing, run the pre-commit hook to fix formatting:
lefthook run pre-commitIf any file changes during the run, re-stage the changed files and retry. The hook also runs automatically on each git commit — if it fails, re-stage the changed files and commit again.
After committing, push to main or open a pull request from another branch — CI will run the pre-commit hook across all files.
For a more opinionated starting point in a specific language or framework:
- Action Starter — JavaScript GitHub Action projects.
- C++ Starter — C++ projects.
- CMake Starter — CMake projects.
- Composite Action Starter — Composite GitHub Action projects.
- Discord Bot Starter — Discord bot projects.
- Node.js Starter — Node.js projects.
- Python Starter — Python projects.