Architecture-agnostic Go backend scaffolding and package management system
Vandor is a comprehensive ecosystem for building production-ready Go backends with a focus on:
- ποΈ Architecture Flexibility - Support for multiple architecture patterns (Hexagonal, EDA, Clean, Minimal)
- π¦ Package Management - VPKG system for reusable components
- π¨ Interactive CLI - Beautiful TUI with Catppuccin themes
- π§© Domain-Driven Design - Business capability-focused domain organization
- π Developer Experience - Code generation, hot reload, comprehensive tooling
Using curl:
curl -fsSL https://raw.githubusercontent.com/alfariiizi/vandor/main/install.sh | bashUsing wget:
wget -qO- https://raw.githubusercontent.com/alfariiizi/vandor/main/install.sh | bashCustom installation directory:
INSTALL_DIR=/usr/local/bin curl -fsSL https://raw.githubusercontent.com/alfariiizi/vandor/main/install.sh | bash# Interactive wizard (recommended)
vandor init my-project
# Or use presets for quick setup
vandor init my-api --preset=web-api --non-interactiveIf you prefer to build from source:
# Clone the repository
git clone https://github.com/alfariiizi/vandor.git
cd vandor
# Build the CLI
cd cli
go build -o vandor main.go
# Install (optional)
sudo mv vandor /usr/local/bin/New to Vandor? Start with our comprehensive documentation navigation system:
| Document | Purpose | Audience |
|---|---|---|
| Documentation Index | π Master index of all files | Everyone |
| Quick Reference | β‘ Quick reference card | Developers |
| Structure Guide | π³ Visual tree structure | Explorers |
| Getting Started | π Complete tutorial | Beginners |
| Installation Guide | πΏ Installation guide | New users |
| VPKG Quick Start | π¦ Package system guide | Developers |
For Users:
For Contributors:
- CLAUDE.md - Project overview
- TODO.md - Implementation roadmap
- Architecture Decisions
For Architects:
vandor/ # Repository root
βββ cli/ # π οΈ Vandor CLI Tool (main component)
β βββ cmd/ # CLI commands
β βββ internal/ # Generators, TUI, VPKG
β βββ README.md # CLI documentation
β
βββ templates/ # π Project Templates
β βββ base/ # Minimal base template
β βββ hexagonal/ # Hexagonal architecture template
β
βββ test/ # π§ͺ Test Suite
β βββ fixtures/ # Generated test projects
β βββ scripts/ # Validation scripts
β βββ manual/ # Manual test files
β
βββ discussion/ # π Design Discussions
β βββ architecture/ # 11 architecture decision docs
β βββ design/ # VPKG and design philosophy
β
βββ docs/ # β
Project Documentation
β βββ completed/ # Completion reports
β βββ current/ # Active development docs
β βββ archive/ # Historical decisions
β
βββ guide/ # π User Guides
βββ getting-started.md # Complete beginner tutorial
βββ installation.md # Installation instructions
βββ interactive-mode-guide.md # TUI wizard guide
Note: The reference backend implementation has been moved to a separate repository: github.com/alfariiizi/vandor-backend-template
- Interactive Project Init - Beautiful TUI wizard with Catppuccin themes
- Multiple Architecture Templates - Hexagonal, EDA, Clean, Minimal (v0.1 focuses on Hexagonal)
- VPKG Package System - Install infrastructure components on-demand
- Code Generators - Domain, use case, service, handler generators
- Domain Discovery - AI-powered and rule-based domain suggestions
- Task Runner - Integrated Taskfile support
- Theme System - Auto-detecting Catppuccin themes
- Reference Implementation - Available at vandor-backend-template
- Complete Stack - Ent.go, Huma v2, Chi, FX dependency injection
- Database Tools - Atlas migrations, Ent code generation
- Background Jobs - Asynq task queue integration
- Observability - OpenTelemetry, structured logging
- Extension Mechanism - Add HTTP, database, cache, messaging on-demand
- Two Package Types -
fx-module(libraries) andcli-command(tools) - Registry Support - Remote package discovery and installation
- Dependency Resolution - Automatic dependency management
All projects share the same top-level structure:
internal/
βββ domain/ # Business capabilities
βββ adapter/ # Infrastructure & transport
βββ pkg/ # Logger + config only
βββ vpkg/ # Installed packages
Only the internal domain structure changes per architecture.
β Wrong: Table-based domains (user/, product/, order_item/)
β
Right: Business capability domains (identity/, catalog/, order/)
Use Event Storming or business capability analysis to discover domains.
Base template includes ONLY:
- Logger
- Configuration
- Project structure
Everything else (HTTP, database, cache) is added via VPKG.
This supports:
- β Web APIs
- β CLI tools
- β Event processors
- β API gateways
- β Background workers
Now (v0.1 Development):
- π― Monorepo for easy coordination
- Single
git clone - Atomic commits across components
Current Organization:
- β
github.com/alfariiizi/vandor- CLI tool and templates - β
github.com/alfariiizi/vandor-backend-template- Reference implementation
Future:
- Additional specialized templates in separate repositories
See REPOSITORY_STRATEGY.md for details.
Command-line tool for project scaffolding and management.
Key Commands:
vandor init <name> # Initialize new project
vandor add domain <name> # Add business capability domain
vandor add handler <path> # Add HTTP handler
vandor vpkg add <package> # Install VPKG package
vandor tui # Launch interactive mode
vandor sync all # Regenerate codeHexagonal architecture reference implementation available at: github.com/alfariiizi/vandor-backend-template
Tech Stack:
- Go 1.24.1+
- Uber FX (dependency injection)
- Ent.go (database ORM)
- Huma v2 (HTTP framework)
- Asynq (background jobs)
- OpenTelemetry (observability)
Project templates for different architectures.
Available:
- Base (
templates/base/) - Minimal foundation - Hexagonal (
templates/hexagonal/) - Ports & adapters
Planned (v0.2+):
- Event-Driven Architecture
- Clean Architecture
- Custom templates
- Go 1.24.1+
- Task (task runner)
- Air (hot reload - optional)
- Docker (for examples - optional)
# Build Vandor CLI
cd cli
go build -o vandor main.go
./vandor --version# Test Vandor CLI
cd cli
go test ./...
# Run validation scripts
./test/scripts/validate_priority5.sh- β Hexagonal architecture template
- β Interactive init wizard
- β VPKG ecosystem
- β Domain generators
- β Testing infrastructure
- β All 5 registry generators
- β CLI bug fixes (8 critical issues)
- β Architecture alignment (100%)
- β Integration testing (100% success)
- β Documentation (comprehensive quality reports)
- π² Separate template repositories
- π² Template discovery system
- π² Custom template support
- π² API Gateway template
- π² CLI tool template
- π² Event processor template
- π² Worker template
- π² Architecture migration tools
- π² Multi-template monorepo
- π² Cloud deployment integrations
See TODO.md for detailed progress tracking.
- Final Architecture Decisions βββ
- Architecture-Agnostic Structure ββ
- Domain Granularity Strategy ββ
- Minimal Base Template ββ
- VPKG Design Philosophy β
- CLAUDE.md - Project overview for AI assistants
- TODO.md - Implementation roadmap and progress
- REPOSITORY_STRATEGY.md - Monorepo strategy
- CLEANUP_PLAN.md - Repository organization
- Getting Started - Complete beginner tutorial
- Installation - Installation instructions
- Interactive Mode - TUI wizard guide
- VPKG Quick Start - Package system reference
Latest Reports (2025-11-02): See docs/quality/2025-11-02/
- Architecture Alignment - 100% compliance verification
- Integration Test Report - End-to-end testing results
- Fix Verification - Integration test fixes (100% success)
- Registry Generator Fixes - Handler & job registry fixes
- Daily Summary - Complete work overview
- Final Verification - System verification (23/23 tests)
We welcome contributions! Here's how to get started:
-
Understand the Architecture
- Read CLAUDE.md
- Read Architecture Decisions
- Review TODO.md for current priorities
-
Pick a Task
- Check TODO.md for open tasks
- Look for Priority 1-2 tasks for v0.1
- Check
docs/current/for active development
-
Make Your Changes
- Follow Go best practices
- Add tests for new features
- Update documentation
- Use conventional commits
-
Submit a PR
- Ensure tests pass
- Update TODO.md if needed
- Add to docs/completed/ when done
Current Phase: v0.1.0 Released (100% complete - Production Ready)
What's Working:
- β Hexagonal template generation
- β Interactive init wizard
- β VPKG package system
- β Domain discovery
- β Code synchronization
- β Testing infrastructure
- β Registry generators (all 5 working perfectly)
- β Architecture alignment (100% compliance)
- β Integration testing (100% success rate)
- β CLI bug fixes (all 8 critical issues resolved)
- β Complete end-to-end workflow verified
v0.1.0 Released:
- β All core features implemented
- β All critical bugs fixed
- β Comprehensive testing complete (23/23 tests passed)
- β Quality documentation (6 reports, 3,900+ lines)
- β CHANGELOG.md and RELEASE_NOTES.md created
- β FAQ and Troubleshooting guides added
Recent Improvements (2025-11-02):
- β Fixed 8 critical CLI bugs
- β Achieved 100% architecture alignment
- β Fixed integration test issues (89% β 100% success)
- β Fixed registry generator bugs (all 5 registries working)
- β Complete system verification (23/23 tests passed)
See: Quality Reports for detailed documentation
See TODO.md for detailed status and roadmap.
- Documentation Hub: Documentation Index
- Architecture Decisions: discussion/architecture/
- User Guides: guide/
- Quality Reports: docs/
- Issue Tracker: GitHub Issues (coming soon)
- Discussions: GitHub Discussions (coming soon)
MIT License - See LICENSE file for details
Design Inspiration:
- shadcn/ui - Component ownership philosophy
- DDD Community - Domain-driven design patterns
- Go Community - Best practices and idioms
Technologies:
- Cobra - CLI framework
- Bubble Tea - TUI framework
- Catppuccin - Beautiful color themes
- Ent - Database ORM
- Huma - HTTP framework
Made with β€οΈ for the Go community
- π Documentation: Start with Documentation Index
- π Tutorial: Follow Getting Started Guide
- β‘ Quick Ref: Check Quick Reference
- π Issues: GitHub Issues (coming soon)
- π¬ Discussions: GitHub Discussions (coming soon)
Happy coding! π