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.
This version (v0.0.1) includes:
- CLI entry point:
cmd/goboot/main.go - Configuration logic:
pkg/config/ - Core engine:
pkg/goboot/ - First service example:
pkg/baseProject/ - Shared types:
pkg/types/ - Utility helpers:
pkg/utils/ - Configuration files:
configs/goboot.yml,configs/base_project.yml - Project templates:
templates/project_base/ - Architecture decisions:
doc/adr/ - Visuals:
doc/img/,doc/diagram/ - GitHub funding:
.github/FUNDING.yml - Central docs:
README.md,ROADMAP.md,VERSIONING.md,WORKFLOW.md,LICENSE,NOTICE - Dev files:
.editorconfig,.gitignore,.gitattributes,.env.example,.env.ci,.nvmrc,.version - New in v0.0.1:
Makefilefor common tasksTaskfile.ymlfor task runner support.golangci.ymlfor Go linting configuration.markdownlint.yamlfor Markdown linting.yamllint.yamlfor YAML lintingscripts/directory for developer scripts (e.g., lint)
The project is in an early layout and planning phase. The structure is minimal but already modular and documented.
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
# or, using Task
task lintThere’s not much output yet — but that’s intentional.
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.