Nos últimos anos, o ecossistema Ruby on Rails voltou a mostrar toda a sua força no desenvolvimento de interfaces server-side. Com ferramentas como Phlex, Hotwire e RubyUI, tornou-se possível criar aplicações modernas, reativas e altamente produtivas sem depender de frameworks JavaScript complexos.
O RubyUI oferece uma biblioteca de componentes construída sobre Phlex e Tailwind CSS, proporcionando uma experiência semelhante ao que o shadcn/ui representa para o ecossistema React, mas totalmente integrada à filosofia do Rails.
Entretanto, como toda tecnologia relativamente nova, existe uma curva de aprendizado. É preciso entender como os componentes funcionam, aprender sua API e descobrir boas práticas para estruturar aplicações reais.
Foi justamente pensando nesses desafios que nasceram três gems open source:
- ruby_ui_converter
- ruby_ui_scaffold
- ruby_ui_admin
Cada uma resolve um problema específico e, juntas, tornam a adoção do RubyUI muito mais simples.
Por que escolher RubyUI?
Existem vários motivos para adotar RubyUI em uma aplicação Rails.
Componentes escritos em Ruby
Ao invés de misturar grandes blocos de HTML e ERB, você passa a construir interfaces utilizando componentes Ruby, tornando o código muito mais organizado e reutilizável.
Melhor organização
Cada componente possui sua própria responsabilidade, facilitando manutenção, testes e evolução da aplicação.
Excelente integração com Hotwire
RubyUI foi pensado para trabalhar em conjunto com Hotwire e Stimulus, permitindo criar interfaces extremamente responsivas sem abrir mão da renderização server-side.
Interface moderna
Você obtém componentes com aparência moderna e consistente sem precisar construir tudo do zero.
Produtividade
Depois que você domina o ecossistema, criar novas telas passa a ser significativamente mais rápido do que construir toda a interface manualmente.
O verdadeiro desafio não é usar RubyUI
Na prática, instalar RubyUI leva apenas alguns minutos.
O desafio aparece quando você começa a desenvolver uma aplicação real.
Perguntas como estas são bastante comuns:
- Como converter telas existentes?
- Como escrever componentes corretamente?
- Como montar um CRUD completo?
- Como construir um painel administrativo?
Foi exatamente para responder essas perguntas que essas três gems foram criadas.
ruby_ui_converter
GitHub:
https://github.com/jacksonpires/ruby_ui_converter
Uma das maiores dificuldades ao adotar RubyUI é migrar aplicações Rails já existentes.
Normalmente elas possuem centenas (ou milhares) de templates .erb.
Reescrever tudo manualmente seria um trabalho enorme.
O ruby_ui_converter nasceu justamente para reduzir esse esforço.
A gem converte templates ERB em componentes RubyUI, acelerando o processo de migração e eliminando boa parte do trabalho repetitivo.
Isso é especialmente útil quando você deseja modernizar uma aplicação sem precisar reescrever cada tela manualmente.
ruby_ui_scaffold
GitHub:
https://github.com/jacksonpires/ruby_ui_scaffold
Depois de aprender alguns componentes, surge uma nova necessidade:
Como construir uma aplicação inteira utilizando RubyUI?
A maioria dos exemplos disponíveis mostra apenas componentes isolados.
Na prática, aplicações possuem:
- listagens;
- formulários;
- paginação;
- filtros;
- navegação;
- ações CRUD.
O ruby_ui_scaffold gera exatamente esse tipo de estrutura.
Em poucos minutos você possui um CRUD completo utilizando RubyUI, seguindo boas práticas e servindo como excelente material de estudo.
Além de acelerar novos projetos, ele também ajuda quem está aprendendo a entender como os componentes trabalham em conjunto.
ruby_ui_admin
GitHub:
https://github.com/jacksonpires/ruby_ui_admin
Depois de criar alguns CRUDs, normalmente surge outra necessidade:
E se existisse um painel administrativo inteiro baseado em RubyUI?
Foi dessa ideia que nasceu o ruby_ui_admin.
A proposta é fornecer uma base moderna para aplicações administrativas utilizando RubyUI.
Em vez de começar cada projeto do zero, você passa a contar com uma estrutura pronta contendo elementos como:
- layout administrativo;
- sidebar;
- header;
- navegação;
- páginas padrão;
- componentes reutilizáveis.
Assim, você pode concentrar seus esforços na regra de negócio da aplicação, em vez de gastar tempo recriando a infraestrutura visual de cada projeto.
Um ecossistema pensado para trabalhar em conjunto
Embora cada gem resolva um problema diferente, elas se complementam perfeitamente.
Um fluxo bastante natural seria:
- Utilizar o ruby_ui_converter para migrar templates ERB existentes.
- Gerar novos CRUDs utilizando o ruby_ui_scaffold.
- Organizar toda a aplicação dentro de um painel administrativo criado com o ruby_ui_admin.
Esse fluxo reduz significativamente o tempo necessário para iniciar um novo projeto utilizando RubyUI.
Menos tempo aprendendo, mais tempo construindo
Aprender uma nova biblioteca sempre exige investimento.
Você precisa entender a documentação, conhecer os componentes e descobrir quais padrões funcionam melhor.
Essas três gems reduzem bastante essa curva de aprendizado.
Em vez de começar sempre do zero, você passa a trabalhar com exemplos reais, estruturas prontas e ferramentas que automatizam tarefas repetitivas.
O resultado é uma adoção muito mais rápida do RubyUI e uma experiência de desenvolvimento muito mais produtiva.
Conclusão
RubyUI vem se consolidando como uma excelente opção para quem deseja construir interfaces modernas utilizando Ruby on Rails, Phlex e Hotwire.
As gems ruby_ui_converter, ruby_ui_scaffold e ruby_ui_admin surgiram para facilitar ainda mais essa jornada.
Cada uma resolve um problema específico:
- ruby_ui_converter ajuda na migração de templates ERB para componentes RubyUI.
- ruby_ui_scaffold acelera a criação de CRUDs completos e serve como ferramenta de aprendizado.
- ruby_ui_admin oferece uma base pronta para construção de painéis administrativos modernos.
Se você pretende adotar RubyUI em seus próximos projetos, essas três gems podem economizar muitas horas de trabalho e permitir que você aproveite todo o potencial desse ecossistema desde o primeiro dia.
Repositórios
- ruby_ui_converter — https://github.com/jacksonpires/ruby_ui_converter
- ruby_ui_scaffold — https://github.com/jacksonpires/ruby_ui_scaffold
- ruby_ui_admin — https://github.com/jacksonpires/ruby_ui_admin
Top comments (0)