Sebastien Rousseau

GENERADOR DE SITIOS ESTÁTICOS

Generador de sitios estáticos (SSG): análisis y hoja de ruta a 1.0

Auditoría arquitectónica y hoja de ruta de un generador de sitios estáticos en Rust concebido como infraestructura segura por defecto: lo que la v0.0.41 entrega realmente frente a lo que promete el README, cinco capacidades empresariales ausentes y un camino por fases hacia una 1.0 alineada con DORA y la EAA.

13 min de lectura
Banner for: Generador de sitios estáticos (SSG): análisis y hoja de ruta a 1.0

Generador de sitios estáticos (SSG): análisis estratégico integral y hoja de ruta arquitectónica de nivel empresarial

Fecha de investigación: 2026-06-22. Basado en la inspección del código de static-site-generator en la v0.0.41 y en investigación web del ecosistema de los SSG en 2026.

Para un editor regulado, un generador de sitios estáticos ya no es una herramienta de diseño; forma parte del perímetro de riesgo operativo. El static-site-generator de código abierto escrito en Rust parte de esa premisa: traslada la seguridad, la accesibilidad, la internacionalización y los pipelines de contenido con IA al momento de compilación, de modo que una comprobación fallida detiene la compilación en lugar de llegar a producción. Este análisis separa lo que la versión 0.0.41 entrega realmente de lo que su documentación todavía solo promete, expone cinco capacidades empresariales de las que aún carece y propone un camino por fases hacia una versión 1.0 alineada con DORA, la Ley Europea de Accesibilidad y los estándares modernos de cadena de suministro.

Resumen ejecutivo

  • La publicación es ahora un perímetro de riesgo operativo. Bajo DORA, la Ley Europea de Accesibilidad y el RGPD, todo activo público es un posible punto de entrada para el compromiso de la cadena de suministro, la desfiguración y la exposición regulatoria. Un modelo en compilación estrecha ese perímetro al rechazar la salida no conforme antes de su publicación.
  • Los factores diferenciales del motor los impone el compilador, no son aspiraciones documentadas. El forbid(unsafe_code) en todo el espacio de trabajo, la SRI SHA-256/384 real, la extracción automática de CSP y una barrera WCAG 2.2 AA en compilación convierten la seguridad y la accesibilidad de auditorías a posteriori en fallos de compilación tajantes.
  • La versión 0.0.41 tiene una brecha entre documentación y código. La minificación nativa, las recompilaciones incrementales mediante un grafo de dependencias y la compatibilidad con AVIF se describen pero no funcionan; el artículo señala cada carencia frente a su ubicación exacta en el código.
  • El camino hacia la 1.0 es una secuencia, no una lista de deseos. Primero la robustez (0.0.42), después la corrección incremental (0.1.0) y por último las capacidades empresariales que exige un comprador regulado: aislamiento WASM, búsqueda semántica local y procedencia SLSA verificable (1.0.0).

Fortalezas actuales

El código de static-site-generator presenta varias decisiones de ingeniería distintivas que lo separan de los motores heredados en JavaScript y Go:


Carencias y realidades prácticas

A pesar de estas fortalezas excepcionales, una inspección rigurosa del código de la v0.0.41 revela varias carencias arquitectónicas, funcionales y de experiencia de desarrollo entre lo que afirma su documentación y el código Rust real:

Carencias arquitectónicas

Carencias funcionales y de experiencia de desarrollo


Carencias arquitectónicas que nos faltan (nuevos hallazgos)

Más allá de las carencias de la v0.0.41, evaluar el proyecto frente a un perfil de riesgo de grado financiero saca a la luz varias capacidades que aún no ofrece pero que un comprador empresarial exigiría:

1. Aislamiento de complementos en WebAssembly (extensión de confianza cero)

Aunque el propio binario del compilador está escrito en Rust seguro, permitir que complementos de terceros arbitrarios se ejecuten de forma nativa en los sistemas host introduce una vulnerabilidad grave en la cadena de suministro. Un complemento de terceros comprometido podría acceder con facilidad al sistema de archivos del host, leer archivos Markdown propietarios o exfiltrar credenciales privadas.

2. Análisis de HTML sin copias mediante AST en streaming (lol_html)

Migrar la capa de análisis de HTML a una biblioteca DOM completa en memoria (como Kuchiki o html5ever) introduce una sobrecarga de memoria considerable y pausas de procesamiento al gestionar sitios con más de 100 000 páginas.

3. Búsqueda vectorial semántica local (RAG local)

El índice de búsqueda actual (SearchPlugin) genera un índice JSON pesado y plano que realiza coincidencias de cadenas sencillas del lado del cliente, sin admitir búsqueda difusa, lematización ni consultas semánticas. Pagefind es una mejora, pero sigue dependiendo de la descarga de un índice grande.

4. Traducción determinista y almacenamiento en caché de inferencias

Como la inferencia local con LLM (por ejemplo, mediante Ollama o Llama.cpp) es muy intensiva en CPU/GPU, traducir o generar metadatos para miles de páginas en cada compilación resulta computacionalmente prohibitivo.

5. E/S de archivos asíncrona para el escalado paralelo

Aunque el pipeline de complementos está paralelizado mediante Rayon, las escrituras síncronas estándar en disco bloquean los hilos del sistema operativo de Rayon, creando un cuello de botella de E/S al escribir decenas de miles de páginas.


La hoja de ruta estratégica hacia la 1.0

La siguiente hoja de ruta integra tanto las carencias resueltas como las capacidades de nivel empresarial recién descubiertas en un marco de versiones estructurado y cronológico.

Fase 1: 0.0.42 (el parche de robustez y corrección, de 1 a 2 semanas)

  1. Reconstruir MinifyPlugin: Integración de minify-html, oxc_minifier y lightningcss para una minificación nativa de HTML, JS y CSS consciente de la sintaxis. Asegurar que el complemento recorra recursivamente todos los directorios anidados bajo site_dir.
  2. Asegurar el pipeline de IA: Portar LlmPlugin de las invocaciones nativas de curl desde el shell a ureq (un cliente HTTP en Rust ligero, síncrono y seguro) para garantizar la compatibilidad entre plataformas y eliminar las vulnerabilidades de inyección de shell.
  3. Completar la implementación de AVIF: Conectar ravif directamente al pipeline de activos de imagen, habilitando una codificación AVIF de alto rendimiento junto a WebP y PNG.
  4. Automatizar el HrefLang y el mapeo multilocalización: Detectar automáticamente las páginas traducidas paralelas en las compilaciones multilingües e inyectar etiquetas estándar y conformes con Google <link rel="alternate" hreflang="..." /> en la cabecera de cada archivo HTML compilado.
  5. Compatibilidad con JSON Feed 1.1: Publicar un emisor de JSON Feed 1.1 dedicado junto a los canales de sindicación estándar RSS 2.0 y Atom 1.0.

Fase 2: 0.1.0 (la versión menor de credibilidad e incrementalidad, de 2 a 3 meses)

  1. Rellenar DepGraph y habilitar --incremental: Conectar por completo DepGraph para rastrear las dependencias de plantilla a página y de markdown a página. Implementar una capa de invalidación de caché y conectar el indicador --incremental de la CLI, con el objetivo de recompilaciones inferiores a 200 ms en entornos de caché caliente.
  2. Reescritura del AST en streaming mediante lol_html: Sustituir la frágil reescritura de cadenas en image_plugin.rs, search.rs y las inyecciones de CSP por un reescritor de HTML en streaming y sin copias impulsado por lol_html.
  3. Observador orientado a eventos y HMR de componentes: Portar el módulo de observación del sondeo al crate notify orientado a eventos, e implementar una recarga en caliente solo de CSS y de HTML parcial para actualizaciones del navegador inferiores a 100 ms.
  4. CLI de comandos unificada: Rediseñar la interfaz del compilador para admitir subcomandos estándar: ssg dev, ssg build, ssg check (auditoría de accesibilidad/SEO) y ssg deploy.
  5. Caché de inferencias determinista: Implementar una capa de almacenamiento en caché basada en el hash del contenido para todas las tareas locales de traducción, resumen y extracción de metadatos con LLM.

Fase 3: 1.0.0 (la versión mayor empresarial y de producción, de 6 a 12 meses)

  1. Aislamiento de complementos WASM de confianza cero: Embeber un entorno de ejecución de WebAssembly (wasmtime o wasmer) para ejecutar complementos de terceros en un entorno totalmente aislado con acceso al sistema de archivos y a la red basado en capacidades.
  2. Búsqueda vectorial semántica local (RAG local): Embeber un modelo de incrustaciones local nativo de Rust (mediante candle u ort) para compilar incrustaciones densas de párrafos en un índice compacto, habilitando una búsqueda semántica privada del lado del cliente.
  3. Islas de servidor y objetivo WASM en el borde: Implementar la ejecución de componentes <ssg-island> en entornos de ejecución en el borde (como Cloudflare Workers, Vercel Edge o Netlify Edge) construidos sobre el núcleo compilado ssg-wasm.
  4. Motor de E/S paralela asíncrona: Rediseñar el módulo de escritura del sistema de archivos para usar grupos de hilos de E/S asíncrona y enlaces io_uring, eliminando los bloqueos de los trabajadores de CPU durante las escrituras en paralelo.
  5. Procedencia de compilación SLSA v1.1 y conformidad con SPDX 3.0: Proporcionar una procedencia de compilación SLSA nivel 3 verificable matemáticamente y generar SBOM conformes con SPDX 3.0, satisfaciendo por completo los estándares modernos de seguridad de la cadena de suministro de software.

Matriz de competidores (ecosistema de 2026)

La siguiente matriz compara static-site-generator (objetivo v1.0) con los principales motores de publicación web de 2026:

Capacidad static-site-generator v1.0 Hugo v0.155+ Zola v0.19+ Astro 5 Eleventy 3
Lenguaje / runtime Rust (cero unsafe) Go Rust JS (Node/V8) JS (Node/V8)
Barrera de accesibilidad en compilación Validación de AST en compilación Ninguna Ninguna Linter posterior a la compilación Linter posterior a la compilación
Endurecimiento de seguridad SRI SHA-384 e inyección de CSP Manual Manual Manual Manual
Seguridad de la cadena de suministro SLSA L3 + SPDX 3.0 + entorno aislado WASM Mínima Mínima Árbol NPM pesado Árbol NPM pesado
Pipeline de contenido con IA Privado, local primero (LLM local) Ninguno Ninguno Solo API pública Solo API pública
Velocidad incremental <200 ms (caché caliente) <100 ms <150 ms ~1,5 s ~140 ms
Interactividad dinámica Islas de servidor (objetivos WASM) Ninguna Ninguna Islas de servidor (JS) Islas (JS)
Motor de búsqueda Búsqueda semántica WASM local Cadenas simples Cadenas simples Pagefind (JS) Pagefind (JS)

Posicionamiento en la 1.0

En la 1.0, el posicionamiento previsto es el de un generador de sitios estáticos diseñado como infraestructura de software segura por defecto: creación de contenido apoyada por pipelines de IA local primero; compilación de más de 100 000 páginas mediante un pipeline paralelo en streaming; WCAG 2.2 AA y una CSP y una SRI estrictas impuestas como barreras de compilación; e islas dinámicas aisladas, todo dentro de un único binario de Rust con seguridad de memoria. Cada cláusula de esa afirmación se corresponde con un elemento concreto de la hoja de ruta anterior y no con una aspiración de marketing.


Integración normativa y de cumplimiento

En los sectores empresariales y financieros de alto riesgo, el software se evalúa a través del prisma del cumplimiento y del capital de riesgo. La hoja de ruta arquitectónica de static-site-generator se alinea directamente con los principales mandatos regulatorios:


Preguntas frecuentes

¿Qué entrega realmente la versión 0.0.41 hoy, frente a lo que afirma el README? El modelo de seguridad y accesibilidad es real y está impuesto en código: forbid(unsafe_code) en todo el espacio de trabajo, generación de SRI SHA-256/384, extracción de CSP, versiones firmadas con atestación de Sigstore y un SBOM de CycloneDX, y una barrera WCAG 2.2 AA que detiene la compilación. Tres funciones documentadas no funcionan en la v0.0.41. El MinifyPlugin es un compactador de espacios en blanco en vez de un minificador consciente de la sintaxis; el DepGraph que impulsaría las recompilaciones incrementales se compila pero nunca se rellena en el código de producción; y la codificación AVIF es un esbozo cuyo avif_variants devuelve un vector vacío.

¿La barrera de accesibilidad es una barrera de compilación real o un linter posterior a la compilación? Es una barrera de compilación. Las comprobaciones WCAG 2.2 AA se ejecutan dentro del pipeline de compilación mediante un analizador axe-core en compilación gobernado por Playwright, y una página que falla detiene la compilación con errores que indican el número exacto de línea en lugar de emitir una advertencia a posteriori. Esa es la propiedad que necesita una obligación de la Ley Europea de Accesibilidad: la salida no conforme no puede llegar al despliegue.

¿Por qué importa invocar curl desde el shell en el complemento de LLM? El pipeline local de LLM (src/plugins/llm.rs) invoca el binario curl del host para alcanzar los endpoints locales. Eso acopla la compilación a un ejecutable del host, falla en sistemas sin curl en el PATH, introduce una superficie de inyección de shell y se rompe en la CI aislada de la red. Portar la llamada a un cliente HTTP de Rust como ureq elimina la dependencia externa y el vector de inyección, y por eso es el segundo elemento del parche 0.0.42.

¿Cuál es el elemento más importante en el camino hacia la 1.0? Rellenar el DepGraph y conectar el indicador --incremental. Las recompilaciones incrementales son la brecha de credibilidad entre el motor documentado y el real, y toda afirmación posterior sobre compilaciones inferiores al segundo con más de 100 000 páginas depende de que el grafo de dependencias rastree las aristas de plantilla a página y de markdown a página en lugar de seguir siendo infraestructura solo para pruebas.

Referencias

Última revisión: julio de 2026. Análisis original basado en la inspección del código de static-site-generator en la v0.0.41; las fuentes se citan, no se reproducen. Los números de versión y el estado de las funciones cambian con rapidez; verifíquelos con el repositorio antes de volver a publicar. Bajo licencia CC-BY-4.0.

Última revisión .

Republicar este artículo

Copiar formato para Medium

# Generador de sitios estáticos (SSG): análisis y hoja de ruta a 1.0 — Sebastien Rousseau

> Originally published at [https://sebastienrousseau.com/es/2026-07-22-ssg-enterprise-strategic-deep-dive-architectural-roadmap/](https://sebastienrousseau.com/es/2026-07-22-ssg-enterprise-strategic-deep-dive-architectural-roadmap/)

Análisis a fondo de un generador de sitios estáticos en Rust: seguridad en compilación, barreras WCAG, IA local, carencias de la v0.0.41 y hoja de ruta a 1.0.

Read the full article on sebastienrousseau.com: https://sebastienrousseau.com/es/2026-07-22-ssg-enterprise-strategic-deep-dive-architectural-roadmap/

Copiar formato para Mastodon

Generador de sitios estáticos (SSG): análisis y hoja de ruta a 1.0 — Sebastien Rousseau

Análisis a fondo de un generador de sitios estáticos en Rust: seguridad en compilación, barreras WCAG, IA local, carencias de la v0.0.41 y hoja de ruta a 1.0.

https://sebastienrousseau.com/es/2026-07-22-ssg-enterprise-strategic-deep-dive-architectural-roadmap/

Copiar formateado para LinkedIn

Generador de sitios estáticos (SSG): análisis y hoja de ruta a 1.0 — Sebastien Rousseau

Análisis a fondo de un generador de sitios estáticos en Rust: seguridad en compilación, barreras WCAG, IA local, carencias de la v0.0.41 y hoja de ruta a 1.0.

Estos son los puntos estratégicos clave:

- Fortalezas actuales. El código de static-site-generator presenta varias decisiones de ingeniería distintivas que lo separan de los motores heredados en JavaScript y Go:.
- Carencias y realidades prácticas. A pesar de estas fortalezas excepcionales, una inspección rigurosa del código de la v0.0.41 revela varias carencias arquitectónicas, funcionales y de experiencia de desarrollo entre lo que afirma su documentación y…
- Carencias arquitectónicas que nos faltan (nuevos hallazgos). Más allá de las carencias de la v0.0.41, evaluar el proyecto frente a un perfil de riesgo de grado financiero saca a la luz varias capacidades que aún no ofrece pero que un comprador empresarial exigiría:.
- La hoja de ruta estratégica hacia la 1.0. La siguiente hoja de ruta integra tanto las carencias resueltas como las capacidades de nivel empresarial recién descubiertas en un marco de versiones estructurado y cronológico.

¿Cuál es el enfoque de su organización ante los desafíos descritos en este artículo?

→ https://sebastienrousseau.com/es/2026-07-22-ssg-enterprise-strategic-deep-dive-architectural-roadmap/

#GeneradorDeSitiosEstáticos #Rust #ForbidUnsafeCode #Wcag2.2Aa #ContentSecurityPolicy

Sebastien Rousseau | CC-BY-4.0
Citar este artículo

Generador de sitios estáticos (SSG): análisis y hoja de ruta a 1.0 — Sebastien Rousseau

Análisis a fondo de un generador de sitios estáticos en Rust: seguridad en compilación, barreras WCAG, IA local, carencias de la v0.0.41 y hoja de ruta a 1.0.

BibTeX

@online{rousseau2026generador,
  author  = {Rousseau, Sebastien},
  title   = {{Generador de sitios estáticos (SSG): análisis y hoja de ruta a 1.0 — Sebastien Rousseau}},
  year    = {2026},
  url     = {https://sebastienrousseau.com/es/2026-07-22-ssg-enterprise-strategic-deep-dive-architectural-roadmap/},
  urldate = {2026}
}

RIS

TY  - GEN
AU  - Rousseau, Sebastien
TI  - Generador de sitios estáticos (SSG): análisis y hoja de ruta a 1.0 — Sebastien Rousseau
PY  - 2026
UR  - https://sebastienrousseau.com/es/2026-07-22-ssg-enterprise-strategic-deep-dive-architectural-roadmap/
ER  -

Vancouver

Rousseau S. Generador de sitios estáticos (SSG): análisis y hoja de ruta a 1.0 — Sebastien Rousseau. sebastienrousseau.com. 2026 Jul 22. Available from: https://sebastienrousseau.com/es/2026-07-22-ssg-enterprise-strategic-deep-dive-architectural-roadmap/

Chicago

Rousseau, Sebastien. "Generador de sitios estáticos (SSG): análisis y hoja de ruta a 1.0 — Sebastien Rousseau." sebastienrousseau.com. July 22, 2026. https://sebastienrousseau.com/es/2026-07-22-ssg-enterprise-strategic-deep-dive-architectural-roadmap/.

APA

Rousseau, S. (2026, July 22). Generador de sitios estáticos (SSG): análisis y hoja de ruta a 1.0 — Sebastien Rousseau. sebastienrousseau.com. https://sebastienrousseau.com/es/2026-07-22-ssg-enterprise-strategic-deep-dive-architectural-roadmap/

Volver a publicar este artículo

Generador de sitios estáticos (SSG): análisis y hoja de ruta a 1.0 — Sebastien Rousseau

Análisis a fondo de un generador de sitios estáticos en Rust: seguridad en compilación, barreras WCAG, IA local, carencias de la v0.0.41 y hoja de ruta a 1.0.

Este artículo se publica bajo Creative Commons Attribution 4.0 International. La republicación requiere atribución a la URL canónica.

Generador de sitios estáticos (SSG): análisis y hoja de ruta a 1.0 — Sebastien Rousseau

Análisis a fondo de un generador de sitios estáticos en Rust: seguridad en compilación, barreras WCAG, IA local, carencias de la v0.0.41 y hoja de ruta a 1.0.

Originally published at https://sebastienrousseau.com/es/2026-07-22-ssg-enterprise-strategic-deep-dive-architectural-roadmap/ by Sebastien Rousseau.
Licensed under CC-BY-4.0.