finds.dev← search

// the find

go-goyave/goyave

★ 1,771 · Go · MIT · updated Jun 2026

🍐 The enterprise REST API framework

Goyave is an opinionated, batteries-included Go framework for building REST APIs in medium-to-large backend projects. It bundles routing, validation, auth (JWT + Basic), GORM-backed database access, localization, structured logging, WebSockets, and DTO mapping into a single coherent package. The target is teams that want Rails-style structure but in Go, not a micro-framework where you assemble your own stack.

The validation layer is genuinely deep — it covers types, nested objects, arrays, file uploads, cross-field rules, and conditional validation (`only_if`), with localized error messages out of the box, which is something most Go frameworks leave entirely to you. The testutil package ships a full test server harness with session helpers, so you can write proper integration tests without spinning up infrastructure yourself. Database pagination and dynamic query filtering via URL parameters (`goyave.dev/filter`) are first-class features, not afterthoughts — that's a real time-saver for admin and list endpoints. The component and service DI model is coherent; there's an actual architecture pattern here, not just a router with middleware bolted on.

1,771 stars after multiple years and major version bumps is a weak adoption signal for something billing itself as enterprise-grade — compare to Chi, Echo, or Fiber which have 10–30x the community and a much deeper ecosystem of third-party middleware. The opinionated architecture cuts both ways: if your project structure doesn't match Goyave's mental model, you'll spend time fighting it rather than using it. GORM is the only ORM story here, which means the query abstraction layer carries all of GORM's known pain points (N+1 footguns, magic scopes, interface-heavy mocking friction). Documentation lives on an external site rather than the repo, which is a maintenance liability — when docs drift from code, you won't know until you're already stuck.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →