Vivemos um momento curioso no desenvolvimento de software.
Com IA, gerar código, estruturar projetos e até explorar novas ideias nunca foi tão rápido. Aquela desculpa de "isso daria muito trabalho" simplesmente deixou de existir. Se existe uma ferramenta que você gostaria de usar e ela ainda não existe, talvez este seja o melhor momento para criá-la.
Foi exatamente assim que nasceu a RubyUI Admin.
Durante algum tempo acompanhei projetos como o Avo e sempre gostei da experiência de construir interfaces administrativas modernas para aplicações Rails. Ao mesmo tempo, comecei a utilizar cada vez mais a RubyUI, baseada em Phlex, para desenvolver interfaces server-side utilizando componentes Ruby.
Então surgiu a pergunta:
E se existisse uma interface administrativa totalmente construída sobre a RubyUI?
A resposta foi criar a minha própria.
O que é a RubyUI Admin?
A RubyUI Admin é uma engine para Ruby on Rails que transforma seus modelos Active Record em uma interface administrativa completa.
Com poucos arquivos você já possui:
- CRUD completo
- Paginação
- Filtros
- Scopes
- Dashboards
- Ações customizadas
- Ações em lote
- Autorização
- Internacionalização (EN e PT-BR)
Tudo isso renderizado no servidor utilizando RubyUI + Phlex, com melhorias progressivas através de Hotwire (Turbo + Stimulus).
A interface faz parte da sua aplicação
Uma das decisões de arquitetura mais importantes do projeto foi não criar mais um framework visual isolado.
Em vez disso, a RubyUI Admin utiliza os próprios componentes RubyUI da aplicação hospedeira.
Isso significa que:
- o admin acompanha o mesmo Design System da aplicação;
- qualquer customização feita em um componente é refletida automaticamente no admin;
- não existe uma cópia dos componentes para manter sincronizada.
Na prática, o painel administrativo deixa de parecer um produto separado e passa a fazer parte da aplicação.
Server-side first
Assim como Rails sempre incentivou, a RubyUI Admin aposta em renderização no servidor.
JavaScript existe apenas para melhorar a experiência.
Sem JavaScript a aplicação continua funcionando normalmente.
Turbo e Stimulus entram apenas para tornar algumas interações mais agradáveis, como:
- modais;
- notificações;
- abas;
- linhas clicáveis;
- pequenas interações da interface.
Documentação dentro da própria aplicação
Uma funcionalidade que gosto bastante é que a própria gem serve sua documentação.
Depois de montar a engine, basta acessar:
/admin/docs
Toda a documentação é renderizada como HTML dentro da própria aplicação.
Isso significa que você pode consultar exemplos sem precisar abrir outra aba do navegador.
Durante o desenvolvimento ela já vem habilitada e, se desejar, também pode ser disponibilizada em produção protegida pela autenticação da aplicação.
Recursos disponíveis
Hoje a RubyUI Admin já oferece:
- CRUD completo
- Recursos configuráveis
- Catálogo completo de campos
- Paginação
- Filtros
- Scopes
- Dashboards
- Cards de métricas
- Ações customizadas
- Ações em lote
- Policies utilizando Action Policy
- Internacionalização
- Diversos generators
- Customização através de classes Ruby
E o projeto continua evoluindo.
Algumas funcionalidades planejadas para versões futuras incluem gerenciamento avançado de associações e novos formatos de visualização.
Filosofia do projeto
Desde o início alguns princípios guiaram o desenvolvimento.
Tudo é Ruby
Recursos, policies, filtros, dashboards e ações são apenas classes Ruby.
Nada fica escondido.
Quando você precisar personalizar algum comportamento, basta sobrescrever ou estender o que desejar.
Progressivamente aprimorado
O foco sempre foi entregar uma aplicação funcional antes de adicionar JavaScript.
Essa abordagem deixa a aplicação mais robusta, simples de manter e muito alinhada com a filosofia atual do Rails.
Sem reinventar seu Design System
Ao utilizar RubyUI, a aplicação inteira compartilha os mesmos componentes.
Você mantém apenas uma implementação de botões, tabelas, diálogos, cards e demais elementos visuais.
Instalação
Adicionar a gem é bastante simples.
gem "ruby_ui_admin"
Depois monte a engine:
mount_ruby_ui_admin at: "/admin"
Configure a autenticação e autorização e você já pode começar a criar seus recursos.
Ainda está no começo
Apesar de já ser perfeitamente utilizável, a RubyUI Admin ainda está em evolução.
Meu objetivo é construir uma alternativa moderna para aplicações Rails que utilizam RubyUI, mantendo toda a experiência alinhada ao ecossistema Rails, Hotwire e Phlex.
Se você utiliza RubyUI, acredito que vale a pena experimentar.
Toda contribuição, feedback e sugestões são muito bem-vindos.
Espero que esse seja apenas o começo.
Um agradecimento especial a Ítalo Moura que me ajudou com os testes da gem.
Top comments (0)