Skip to content
/ goboot Public

Modern Go project generator for CLI, REST, and backend tools. Batteries included: clean structure, Docker, CI, and editor presets — ready in seconds.

License

Notifications You must be signed in to change notification settings

it-timo/goboot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

goboot

A modular, versioned starting point for building production-grade Go projects.

License Version


📦 What is goboot?

goboot is 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, goboot is 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.


📁 Current State (v0.0.2)

v0.0.2 is the testing-first iteration with a hardened filesystem model.

Core Capabilities

  • 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.


📐 Intended Design Principles

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.


🛠️ Getting Started (For Contributors Only)

Requirements

  • Go 1.24+
  • Make (optional, for Makefile tasks)
  • Task (optional, for Taskfile.yml tasks)
  • 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)

Clone and Explore

git clone https://github.com/it-timo/goboot.git
cd goboot
make lint
make test
# or, using Task
task lint
task test

make test runs the BDD suites (Ginkgo/Gomega) with race detection and coverage, excluding /test/noauto and /templates packages by default. See TESTING.md for details.

There’s still no “one-click project generator” here — the goal is deterministic scaffolding with visible layers.


📚 Project Planning

This repository uses:

These documents evolve alongside the project.


⚖️ License

Licensed under the MIT License. See LICENSE. Includes attribution in NOTICE (if applicable).


🚧 Status

goboot is in pre-alpha. Intended for structural exploration and reproducible project setup. Not yet suitable for generating production-ready projects.


💖 Support This Project

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.

About

Modern Go project generator for CLI, REST, and backend tools. Batteries included: clean structure, Docker, CI, and editor presets — ready in seconds.

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

  •  

Packages

No packages published

Contributors 2

  •  
  •