finds.dev← search

// the find

avo-hq/avo

★ 1,789 · Ruby · NOASSERTION · updated Jul 2026

The Essential Toolkit for building Internal Tools and admin panels with Ruby on Rails

Avo is a Rails engine that generates admin panels from code-driven resource definitions — you describe your models and it builds the CRUD UI, associations, filters, and actions. It's aimed at Rails shops that want a solid internal tool without writing controllers and views from scratch. The free tier covers the basics; more advanced features (dashboards, authorization roles, audit logging) sit behind a paid license.

The resource DSL is genuinely well thought-out — defining a resource is a few lines of Ruby that correctly handles index, show, edit, and destroy without boilerplate. Hotwire integration is native, so interactions feel snappy without reaching for custom JavaScript. Association handling (belongs_to, has_many, polymorphic) works out of the box and includes searchable dropdowns for large tables, which is the thing most hand-rolled admins get wrong. The test suite has both feature and system test workflows in CI, which is unusual discipline for an admin gem.

The licensing split is a real friction point — you won't know which features you need until you're already building, and hitting a paywalled feature mid-project is annoying. The component tree is enormous (hundreds of ERB/Ruby pairs) which makes overriding behavior non-trivial; you're not tweaking a template, you're tracing through a component hierarchy. Customizing the UI beyond what the DSL exposes requires understanding Avo internals that aren't well documented, so you end up reading source rather than docs. At 1.7k stars it's not widely adopted enough that Stack Overflow or LLMs will reliably know the edge cases — you're on your own when things get weird.

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 →