This repository is a production-minded Go backend starter that applies Clean Architecture to keep business logic independent from frameworks, databases, and delivery mechanisms. It organizes code into layers—domain, use cases, interfaces/adapters—so swapping an HTTP framework or database does not ripple through core logic. The template includes well-chosen scaffolding for configuration, logging, dependency injection, error handling, and request validation so teams can focus on business features. It demonstrates practical patterns for repository interfaces, DTOs, and consistent response envelopes that keep APIs predictable. Testing is first-class: ports and adapters are designed for mocking and table-driven tests, which reduces friction when you add features. As a learning resource and a real starter, it helps teams jumpstart services with boundaries that age well.
Features
- Clean Architecture folder layout separating domain, use cases, and adapters
- HTTP server scaffold with middleware, validation, and consistent error mapping
- Repository interfaces and concrete implementations for databases or caches
- Centralized configuration and structured logging ready for production
- Table-driven tests and mocks that make unit and integration testing straightforward
- Makefile/Task and dockerization to run locally or in CI quickly