Batteries
Lemmego is a batteries-included framework.
// cmd/app/main.go
func main() {
app.Configure().
WithProviders(bootstrap.LoadProviders()).
WithRoutes(bootstrap.LoadRoutes()).
WithMiddlewares(bootstrap.LoadMiddlewares()).
Run()
}// bootstrap/providers.go
func LoadProviders() []app.Provider {
return []app.Provider{
&session.Provider{},
&gormconnector.Provider{UseGPA: true},
&inertia.Provider{},
&queue.Provider{},
&auth.Provider{},
}
}Features
- Full-featured HTTP layer — Param-based routing, route grouping, flexible middleware, input validation, typed errors
- Type-safe database layer — GPA provides compile-time type safety across SQL, NoSQL, and KV stores with generic
Repository[T] - Plugin architecture — Extend the framework through providers without modifying core code
- Multiple frontends — Go Templates, Templ, or Inertia.js with React/Vue
- File storage — Unified abstraction for local, S3, and GCS
- CLI tools — Project scaffolding, code generators, migration management
- Background jobs — Distributed queue system with web dashboard
Get Started
What’s Included
| Module | Description |
|---|---|
| API | Core framework: routing, middleware, DI, sessions, config, validation |
| GPA | Type-safe database abstraction with multi-provider support |
| Queue | Distributed background job system with web dashboard |
| CLI | Project scaffolding and code generation |
| Inertia | Server-side adapter for Inertia.js SPAs |
| Templ | Bridge for type-safe Go templates |
| Auth | Session + JWT authentication with middleware |
| Migrations | Bidirectional database schema management |
| File System | Cloud-agnostic storage (local, S3, GCS) |