A heavily customized and opinionated project template, utilizing devenv, custom Git hooks (via
git-hooks.nix), and including formatters and linters for a multitude of different file types and
programming languages (via treefmt and treefmt-nix).
All language environments are disabled by default. They can be toggled in devenv.nix.
- Python
- JavaScript/TypeScript
- Go
- Rust
- Nix
- Solidity
- Shell
| File Type | Tools |
|---|---|
| Python | ruff, docformatter |
| JavaScript/TypeScript, CSS, JSON, GraphQL | biome |
| Golang | golangci-lint (gofumpt, golines, goimports) |
| YAML | yamlfmt |
| TOML | taplo |
| HTML | tidy (HTML Tidy) |
| Markdown | markdownlint-cli2, prettier |
| Shell Scripts | shfmt, shellharden |
| Nix | alejandra |
| Spellcheck | cspell |
| Secrets Detection | trufflehog |
actionlint- Static checker for GitHub Actions workflow filescheck-added-large-files- Prevent large files from being committed (configured with 8MB limit)check-case-conflicts- Check for files with names that would conflict on case-insensitive filesystemscheck-merge-conflicts- Check for files that contain merge conflict markerscheck-symlinks- Check for broken symlinkseditorconfig-checker- Verify that files are in harmony with.editorconfigend-of-file-fixer- Ensure files end with a single newlinemixed-line-endings- Normalize line endings to LFtreefmt- Format workspace files according to Treefmt configurationtrim-trailing-whitespace- Remove trailing whitespacetrufflehog- Detect and prevent committing secretscspell-msg- Spellcheck commit messagescspell-wsp- Spellcheck committed filespyright- Static type checking for Pythonpytest- Run Python tests
- Project setup scripts for different stacks (Python/Python Polylith, Go, Node, Rust, etc.). Python projects will
utilize templates in
_meta/templates/. -
commitizenGit hook and configuration -
git-clifffor automated changelog generation - Rust linters and formatters
-
secretspecconfiguration