Un sitio se declara, no se programa
Rutas, tipos de contenido e idiomas viven en la configuración, y Rustelo los convierte en una aplicación web Rust tipada en tiempo de compilación.
Construir. Desplegar. Entregar.
Genera un sitio, declara sus rutas, menús e idiomas en Nickel, escribe el contenido en Markdown y elige su perfil de renderizado: HTMX-SSR o hidratación Leptos.
Aporta recursos y páginas con plugins en tiempo de compilación, o sobrescribe cualquier cosa en la capa local: el código del framework nunca se modifica.
Un núcleo · dos perfiles de renderizado · ninguna bifurcación del framework
Todo configurable, nada fijado en el código.
Declarado, no programado
Todo lo que es un sitio —sus rutas, sus tipos de contenido, sus idiomas— vive en la configuración. Rustelo convierte esa declaración en una aplicación Rust tipada en tiempo de compilación, y el núcleo queda intacto.
Configuración que compila
Rutas, páginas, menús y el registro de Fluent se generan desde la configuración Nickel con build.rs en OUT_DIR y se incluyen al compilar. Una tabla de rutas mal formada es un error de compilación, no una página que da 404 en producción.
Dos perfiles de renderizado, un núcleo
Se elige por sitio o por ruta: HTML renderizado en el servidor con HTMX y sin WebAssembly, o SSR de Leptos con hidratación WASM. Mismo contenido, misma configuración; un sitio sin rutas hidratadas se ahorra por completo la compilación wasm32.
Extender sin bifurcar
Un sistema de capas de sobrescritura —Local sobre Feature sobre Template sobre Framework— y plugins en tiempo de compilación con ResourceContributor y PageContributor permiten a un sitio cambiar cualquier cosa sin modificar el código del framework.
Arquitectura
Tres capas —tu aplicación, los puertos del framework (rustelo_web, rustelo_auth, rustelo_content) y la base— con generación de código en tiempo de compilación desde la configuración Nickel por debajo.
Cómo funciona
Declarar, generar, servir.
Declarar en Nickel
Rutas, menús, tipos de contenido, temas e idiomas se escriben como configuración Nickel tipada. Los idiomas se descubren a partir de la configuración y del contenido; ninguno está fijado en el código.
Generar al compilar
build.rs lee la configuración y genera routes.rs, pages.rs y menus.rs en OUT_DIR; include!() los incorpora. El código generado es de solo lectura: la fuente de verdad es la configuración.
Servir desde un binario
Un servidor Axum renderiza cada ruta en su perfil —fragmentos HTMX o hidratación Leptos— con autenticación, RBAC, contenido, correo e i18n compuestos mediante features de Cargo.
Un sitio que se declara, se revisa y se recompila
Configuración, plantillas y contenido son ficheros normales bajo control de versiones; el framework sigue siendo actualizable porque nada en él se ha editado. Empieza por la visión general del framework o lee cómo está construido.