5 pontos por GN⁺ 2025-07-31 | Ainda não há comentários. | Compartilhar no WhatsApp
  • Um framework web simples e poderoso para o ecossistema Ruby, com base em “baixa abstração” e “baixo ceremony (low-ceremony)”, oferecendo uma estrutura centrada em página, formulário e ação única sem o conceito de controller e recurso REST
  • Renderização HTML no servidor, escrita direta de JS/CSS, integração com OpenTelemetry, e ferramentas Ruby modernas como Sequel e OptionParser embutidas, com instalação e desenvolvimento em poucos minutos
  • Estrutura baseada em classes, com gerenciamento de sessão, formulário e parâmetro orientado a tipos reais, minimizando o uso de métodos dinâmicos e hashes para alcançar código mais claro e documentação automática
  • Aproveitamento da plataforma web moderna: validação integrada entre servidor e cliente, BrutJS (Web Components), hash e bundling de CSS com esbuild, e reforço de políticas de segurança e de fundamentos de design de banco de dados
  • Configuração em YAML minimizada e baseada em Ruby/Hash, com nomenclatura e separação de responsabilidades claras, com objetivo de usar Ruby e tecnologias de navegador de forma divertida sem impor abstrações ou padrões desnecessários

Principais recursos do framework Brut

Estrutura totalmente nova – centrada em páginas, sem controllers

  • No lugar de controller, recurso REST e ações de rota, é composto por páginas baseadas em classes, formulários e handlers de ação única
  • HTML é gerado diretamente no servidor, enquanto JS/CSS podem ser escritos como você quiser
  • Exemplo: uma página de exibição de horário pode ser definida diretamente como TimePage < AppPage

Forte adoção da plataforma web moderna

  • UX de formulário com validação integrada server-side e client-side
  • Suporte a extensão progressiva de HTML com BrutJS (biblioteca de web components)
  • Processamento de bundle de CSS e hash com esbuild, de forma simples, sem PostCSS ou SASS

Produtividade de desenvolvimento e fundamentos incluídos

  • Instrumentação baseada em OpenTelemetry, acesso a dados com Sequel, automação de linha de comando com OptionParser
  • Políticas de segurança padrão, valores padrão de colunas/foreign keys do banco, timezone-aware sempre, e localização (Localization) simplificada
  • Testes com RSpec, geração de dados com Faker/FactoryBot, geração de HTML com Phlex

Exclusão de YAML, estrutura de configuração clara

  • I18n baseado em Hash de Ruby, configuração dinâmica gerenciada por dotenv (YAML usado quase nunca)
  • Exceção de uso de YAML: apenas docker-compose

Sem abstrações ou padrões desnecessários

  • Nomenclatura e estrutura claras (ex.: WidgetsPage é acessada por /widgets)
  • Camada de dados (DB::Widget) e camada de domínio (Widget) podem ser separadas completamente
  • Sem conceito de controller, lógica de negócio pode ser implementada do jeito que quiser
  • Sem imposição de padrões funcionais complexos, mônadas, Proc etc.

Experiência de desenvolvimento e flexibilidade

  • Ferramentas modernas do ecossistema Ruby, como RSpec, já incluídas por padrão
  • Uso ativo de bibliotecas principais como Phlex (HTML), Faker/FactoryBot, Sequel e OpenTelemetry
  • Em vez de repetitiva boilerplate/configuração/decisões, o foco é aproveitar a “diversão” de Ruby e das tecnologias do navegador

Por que Brut?

  • Em vez da configuração repetitiva de frameworks existentes como Rails, das discussões constantes sobre arquitetura e estrutura e de flexibilidade desnecessária, busca-se a diversão no próprio código
  • Como um framework de web app baseado em Ruby para construir e fazer deploy rapidamente, foca em produtividade e clareza

Início e roadmap futuro

  • Imagem Docker oficial do Brut com suporte a criação e execução rápidas por comandos
  • Exemplo de apps reais em produção como ADRs.cloud
  • Previsão de atualizações contínuas para a versão 1.0 e para o roadmap oficial

Ainda não há comentários.

Ainda não há comentários.