We're living in an exciting time for software development.
With AI, generating code, exploring ideas, and building new projects has never been easier. The old excuse of "that would take too much time" doesn't really hold anymore.
If there's a tool you've always wanted but it doesn't exist yet, this is probably the best time to build it.
That's exactly how RubyUI Admin came to life.
For quite some time I've admired projects like Avo and the developer experience they provide for building Rails admin interfaces. At the same time, I was using RubyUI, powered by Phlex, more and more in my own applications.
Eventually a simple question came to mind:
What if there was an admin dashboard entirely built with RubyUI?
Instead of waiting for someone else to build it, I decided to create it myself.
RubyUI Admin is a Rails engine that turns your Active Record models into a complete administration panel.
With very little configuration, you get:
Everything is rendered server-side using RubyUI + Phlex, with progressive enhancements powered by Hotwire (Turbo + Stimulus).
One of the project's main architectural decisions was to avoid creating yet another isolated UI framework.
Instead, RubyUI Admin renders your application's own RubyUI components.
That means:
The result is an administration panel that truly feels like part of your application.
Following the philosophy that has always made Rails productive, RubyUI Admin embraces server-side rendering.
JavaScript is only there to enhance the experience.
Everything continues to work even without JavaScript.
Turbo and Stimulus simply improve interactions like:
One feature I'm particularly proud of is the built-in documentation.
After mounting the engine, simply visit:
/admin/docs
The gem serves its own documentation as HTML directly inside your application.
No need to leave your admin panel or search through external documentation while you're developing.
It's enabled by default during development and can also be exposed in production behind your application's authentication.
RubyUI Admin already includes:
And it's still growing.
Future versions are expected to include advanced association management and additional index view types.
A few principles guided the project from day one.
Resources, policies, filters, dashboards, and actions are just Ruby classes.
Nothing is hidden behind magic.
Whenever you need to customize something, you simply extend or override it.
The primary goal is to deliver a fully functional application before adding JavaScript.
This keeps the project robust, maintainable, and closely aligned with modern Rails philosophy.
Since the admin uses your own RubyUI components, your application maintains a single source of truth for its UI.
Buttons, dialogs, tables, cards, and every other component are shared across both your application and your admin interface.
Installing RubyUI Admin is straightforward.
gem "ruby_ui_admin"
Then mount the engine:
mount_ruby_ui_admin at: "/admin"
Configure authentication and authorization, create your resources, and you're ready to go.
RubyUI Admin is already usable today, but this is only the beginning.
My goal is to build a modern admin solution for Rails applications using RubyUI, while staying true to the Rails, Hotwire, and Phlex ecosystem.
If you're already using RubyUI, I'd love for you to give it a try.
Feedback, issues, ideas, and contributions are always welcome.
I hope this is only the beginning.
A special thanks to Ítalo Moura for helping me test the gem.