A template for my Go projects.
- Linting and formatting (golangci-lint v2, prettier).
- Reproducible dev environment (devbox), auto-activated with direnv.
- Dagger-based CI: every gate runs through the local
citoolchain (dagger call ci <task>), composing shared toolchains from go.jacobcolvin.com/x (devbox, goreleaser, security, zizmor). - Conventional-commit enforcement (commitlint + lefthook git hooks).
- Build and release automation (goreleaser binaries plus Dagger-native multi-arch images with cosign keyless signing).
- Cobra command-line interface with fang; structured logging and profiling from go.jacobcolvin.com/x.
- Taskfile with format, lint, test, check, and build targets.
task build # cross-compile snapshot binaries to ./dist via Dagger
go install ./cmd/go_templatego_template hello
go_template versiondevbox install # provision the toolchain (or run `direnv allow`)
task check # local gate: lint + test
task check:all # everything CI runs (adds the Dagger-backed gates)