5 puntos por GN⁺ 2025-07-31 | Aún no hay comentarios. | Compartir por WhatsApp
  • Para el ecosistema de Ruby, es un framework web simple y potente basado en baja abstracción y bajo low-ceremony, que ofrece una estructura centrada en páginas, formularios y acciones únicas, sin el concepto de controlador ni recursos REST.
  • Incluye nativamente renderizado de HTML en servidor, escritura directa de JS/CSS, integración con OpenTelemetry y herramientas modernas de Ruby como Sequel y OptionParser, y permite instalar y desarrollar en pocos minutos.
  • Con una estructura basada en clases, gestión explícita de sesiones, formularios y parámetros por tipo, y mínimo uso de métodos dinámicos/hash, busca una código claro y documentación automática.
  • Aprovechamiento del stack web moderno: validación integrada entre servidor y cliente, BrutJS (Web Components), hash y empaquetado de CSS con esbuild, y fortalecimiento de políticas de seguridad y bases sólidas de diseño de base de datos.
  • El objetivo es poder usar Ruby y tecnologías de navegador de forma divertida, con configuración Ruby/Hash con mínimo YAML y una nomenclatura y separación de responsabilidades claras, sin imponer abstracciones o patrones innecesarios.

Características principales del framework Brut

Estructura totalmente nueva: centrada en páginas sin controladores

  • En lugar de controladores, recursos REST y acciones de ruta, se organiza con páginas, formularios y manejadores de acción única basados en clases.
  • El HTML se genera directamente en el servidor y JS/CSS se puede escribir libremente.
  • Ejemplo: la página de hora se define directamente como TimePage < AppPage.

Aprovechamiento activo de la plataforma web moderna

  • Experiencia de formularios con validación integrada en servidor y cliente.
  • Soporte de mejora progresiva de HTML con BrutJS (librería de Web Components).
  • Empaquetado y hash de CSS con esbuild, de forma limpia, sin PostCSS ni SASS.

Productividad de desarrollo y fundamentos incluidos

  • Instrumentación basada en OpenTelemetry, acceso a datos con Sequel y automatización de CLI con OptionParser.
  • Políticas de seguridad por defecto, valores por defecto e índices de columnas/foráneas de DB, horario siempre timezone-aware, y localización fácil (Localization).
  • Pruebas con RSpec, generación de datos con Faker/FactoryBot y generación de HTML con Phlex.

Exclusión de YAML y estructura de configuración clara

  • I18n basado en Ruby Hash, configuración dinámica gestionada con dotenv (se usa YAML casi nada).
  • YAML se usa solo de forma excepcional en docker-compose.

Sin imponer abstracciones o patrones innecesarios

  • Nombres y estructura claras (por ejemplo: WidgetsPage se accede desde /widgets).
  • Separación completa entre capa de datos (DB::Widget) y capa de dominio (Widget).
  • Sin concepto de controlador, implementación de la lógica de negocio a tu manera.
  • Sin forzar patrones funcionales complejos, mónadas, Proc, etc.

Experiencia de desarrollo y flexibilidad

  • RSpec y otras herramientas modernas del ecosistema Ruby vienen integradas por defecto.
  • Uso intensivo de librerías clave como Phlex (HTML), Faker/FactoryBot, Sequel y OpenTelemetry.
  • Foco en la “diversión” de Ruby y de las tecnologías de navegador, en lugar del boilerplate repetitivo de configuración y decisiones.

¿Por qué Brut?

  • En vez de la configuración repetitiva de frameworks existentes como Rails, debates constantes sobre diseño y estructura, y flexibilidad innecesaria, busca el placer del propio código.
  • Como framework de aplicaciones web Ruby para construir, desarrollar y desplegar rápido, se enfoca en productividad y claridad.

Inicio y hoja de ruta futura

  • Imágenes oficiales de Docker de Brut, soporte para crear y ejecutar apps rápidamente mediante comandos.
  • Aplicaciones de ejemplo de uso real como ADRs.cloud.
  • Se esperan actualizaciones continuas de la versión 1.0 y del roadmap oficial.

Aún no hay comentarios.

Aún no hay comentarios.