A modular, versioned starting point for building production-grade Go projects.
gobootis a deterministic scaffolding tool that provides a clean, modular foundation for real-world Go projects — including applications, tools, and infrastructure code.It’s not a framework. It’s not an IDE. Instead,
gobootis built for OSS maintainers, contributors, and enterprise teams who care about long-term project hygiene, structure, and reproducibility.This repository focuses on layered, progressive structure scaffolding, not one-click demos or opinionated code generation.
The goal isn’t just to get you started — it’s to help you grow Go projects that remain clean, consistent, and scalable over time.
v0.0.2 is the testing-first iteration with a hardened filesystem model.
- Modular Service Architecture: Logic is split into isolated services
(
baseproject,baselint,basetest) with strict contracts. - Dockerized Tooling: All linters run via Docker by default — no local dependency hell.
- Secure Scaffolding: Built-in protection against path traversal and strict root confinement.
- BDD Testing: Full Ginkgo/Gomega suite covering ~90% of the codebase.
For a detailed breakdown of the file layout, see
PROJECT_STRUCTURE.md.
Even in early stages, goboot is being built with:
- Layered versioning and changelog visibility
- Clear module boundaries (
cmd/,pkg/,configs/, etc.) - Future support for Docker, CI/CD, and template-driven code generation
You can follow the structural milestones in ROADMAP.md.
- Go 1.24+
- Make (optional, for
Makefiletasks) - Task (optional, for
Taskfile.ymltasks) - GolangCI-Lint (for Go linting, see
.golangci.yml) - Yamllint (for YAML linting, see
.yamllint.yaml) - Checkmake (for Makefile linting)
- Docker (for running Markdown linting via container)
- Markdownlint (for Markdown linting, see
.markdownlint.yaml)
git clone https://github.com/it-timo/goboot.git
cd goboot
make lint
make test
# or, using Task
task lint
task test
make testruns the BDD suites (Ginkgo/Gomega) with race detection and coverage, excluding/test/noautoand/templatespackages by default. SeeTESTING.mdfor details.
There’s still no “one-click project generator” here — the goal is deterministic scaffolding with visible layers.
This repository uses:
- ROADMAP.md for planned milestones
- VERSIONING.md for semantic version handling
- WORKFLOW.md to define long-term contribution and CI logic
- PROJECT_STRUCTURE.md to track how the folder layout evolves over time
- doc/adr/ for architecture decisions in ADR format
- doc/img/ for flow visualizations
These documents evolve alongside the project.
Licensed under the MIT License. See LICENSE. Includes attribution in NOTICE (if applicable).
gobootis in pre-alpha. Intended for structural exploration and reproducible project setup. Not yet suitable for generating production-ready projects.
If goboot helps you or saves you time, consider supporting its development:
No pressure — just a small way to say "thanks" if it brought you value.