Grove wires together GORM, fuego, Atlas and gest into a single CLI so you
can go from zero to a production-ready Go API in minutes — without writing
boilerplate, configuring tools or memorizing project conventions.
✦ Generators
Scaffold any layer of your application with one command. Every generator
respects existing files — it prints SKIPPED and exits cleanly if the
target already exists.
| Command | Output |
|---|---|
grove make:model <Name>
| GORM model with UUID PK, soft-delete and typed repository |
grove make:model <Name> -m
| Model + Atlas migration in one shot |
grove make:model <Name> -mc
| Model + migration + controller in one shot |
grove make:controller <Name>
| Full CRUD controller with fuego typed handlers |
grove make:dto <Name>
| Create/Update request structs + response DTO |
grove make:middleware <Name>
| func(http.Handler) http.Handler middleware skeleton
|
grove make:migration <name>
| Atlas migrate diff against live schema
|
grove make:resource <Name>
| Model + controller + DTO in one shot |
🧪 Testing
Built-in support for gest — a
Jest-inspired testing framework for Go with beautiful output and zero
dependencies.
grove make:test UserService # scaffolds internal/tests/user_service_spec.go
grove test # runs all specs (always updates gest to latest)
grove test -c # runs specs + per-suite coverage reportgrove make:test automatically creates internal/tests/main.go (the gest
entrypoint) and runs go get github.com/caiolandgraf/gest@latest on first
use. Every subsequent grove test call keeps gest up to date automatically.
⚙️ Server & Build
grove serve # starts dev server — uses air for hot-reload if available
grove build # compiles to ./bin/app (-o to override output path)🗄️ Database
All migration commands are thin wrappers around the Atlas CLI.
grove migrate # apply all pending migrations
grove migrate:rollback # roll back the last applied migration
grove migrate:status # show applied / pending migrations
grove migrate:fresh # drop all tables and re-apply from scratch ⚠️
grove migrate:hash # rehash atlas.sum after manual edits🚀 Installation
go install github.com/caiolandgraf/grove@latestRequirements: Go 1.22+, Atlas CLI for migration commands.
📖 Documentation
Full docs, architecture guide and configuration reference at
caiolandgraf.github.io/grove.
**Full Changelog**: https://github.com/caiolandgraf/grove/commits/v1.0.0