- 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.