Un sitio web corporativo tiene dos objetivos: ayudar a las personas a entender qué hacemos y facilitar que la información se encuentre, se reutilice y se mantenga. Al renovar la web de Jaraco, tuvimos en cuenta ambos.
El resultado es un sitio ligero y multilingüe para Jaraco GmbH, con un flujo editorial práctico, un entorno de preproducción y un servidor MCP que permite a los clientes de IA acceder a nuestra información pública. El proyecto también muestra cómo abordamos el desarrollo y la operación de software: mantener el sistema comprensible, automatizar las tareas repetitivas y revisar los cambios antes de que lleguen a producción.
Una experiencia sencilla para quienes visitan el sitio
La web reúne nuestros servicios, historias de proyectos, artículos, información sobre la empresa y páginas de producto de Jarakube. El menú principal permite recorrer estas secciones, consultar el blog y las historias, y encontrar respuestas a preguntas frecuentes. El selector de idioma ofrece contenido en inglés, alemán, francés, español y neerlandés cuando hay traducciones disponibles. Las páginas de servicios y las opciones de contacto facilitan iniciar una conversación con nosotros.
También publicamos versiones Markdown de las páginas. Son prácticas para herramientas centradas en texto y ofrecen a los buscadores y a los sistemas de IA una representación clara del contenido. Los metadatos estructurados y los archivos de descubrimiento generados automáticamente persiguen el mismo fin: que el sitio sea comprensible para las personas, los rastreadores y los asistentes.
Low-tech por diseño
El sitio público se construye con HTML estático, CSS y una pequeña cantidad de JavaScript. Los scripts de Python preparan las páginas y los índices de contenido durante la compilación. Después, un servidor web entrega los archivos generados. Para mostrar el sitio no hace falta un framework de aplicaciones complejo ni renderizado del lado del servidor en tiempo de ejecución.
Así, la operación sigue siendo sencilla y el resultado fácil de inspeccionar. Las páginas estáticas se sirven rápidamente y se pueden almacenar en caché. No necesitamos una base de datos solo para mostrar información de la empresa. JavaScript se ocupa de interacciones concretas, como cambiar de idioma y mostrar el listado del blog, mientras que el contenido sigue disponible como HTML generado y Markdown.
Para nosotros, «low-tech» significa evitar componentes innecesarios cuando no mejoran la solución. No significa renunciar a la automatización: el proceso de compilación valida el contenido, genera páginas e índices localizados, crea archivos de descubrimiento para IA y documentación MCP, y empaqueta el resultado como una imagen de contenedor.
Añadir contenido en Markdown y revisarlo en preproducción
Los artículos y otras colecciones usan archivos Markdown para el texto y pequeños manifiestos JSON para los títulos, resúmenes, fechas de publicación y referencias a cada idioma. Para añadir una entrada al blog, la persona responsable del contenido crea el artículo y su manifiesto, añade el manifiesto al índice del blog y propone el cambio mediante Git. La compilación comprueba que las referencias estén completas y genera las páginas y los índices del sitio.
Los cambios pueden debatirse y revisarse en una pull request antes de fusionarlos. Sin embargo, el flujo de trabajo del sitio empieza cuando se envían cambios a develop o main, no al abrir una pull request. Un push a develop genera y despliega el sitio de demostración jaraco-demo.jarakube.eu, donde podemos revisar el despliegue real. Un push a main sigue la ruta de producción hacia jarakube.eu. El flujo comprueba que el sitio desplegado indique la revisión de código esperada.
Controles de calidad desde el código hasta el sitio publicado
Las comprobaciones se realizan por etapas. Antes de crear la imagen, el flujo valida los manifiestos de contenido, genera las páginas estáticas y los archivos de descubrimiento, y ejecuta con cobertura un test harness de Python centrado en los scripts de generación del sitio. SonarQube analiza estáticamente las áreas de código configuradas y aplica una puerta de calidad antes de continuar con la creación de la imagen.
Una vez creada, la imagen del contenedor se sube al registro y Trivy la analiza en busca de vulnerabilidades conocidas y corregibles de nivel crítico y alto en el sistema operativo y las bibliotecas. El despliegue solo se inicia si el análisis se supera. Después del despliegue, el flujo verifica la revisión de Git que sirve el sitio y ejecuta pruebas end-to-end con Playwright en configuraciones de navegador de escritorio y móvil. La suite comprueba la navegación, las páginas estáticas, el cambio de idioma, los enlaces de contenido, los metadatos, las preguntas frecuentes y otros recorridos clave. develop se valida en el sitio de demostración; main, en producción.
Después, OWASP ZAP ejecuta un análisis de seguridad de referencia, seguido por un análisis automatizado de calidad y seguridad con Nikito sobre el entorno desplegado. Estas comprobaciones aportan cobertura útil, pero un análisis de referencia no sustituye una prueba de penetración completa. El contenedor de ejecución también funciona con un usuario sin privilegios y configura cabeceras de seguridad del navegador, como Content Security Policy, protección contra la carga en marcos y contra el MIME sniffing. Los desarrolladores pueden usar test-local-website.sh <theme> para generar las páginas, crear el contenedor y previsualizar una instancia local antes de enviar los cambios.
El mismo método sirve para las páginas de servicios, las historias de proyectos y otras colecciones. Quienes escriben pueden centrarse en Markdown mientras la compilación se encarga de la localización, la generación de páginas estáticas, los índices de contenido y los artefactos de descubrimiento relacionados.
Cambiar el tema sin rehacer el modelo de contenido
El sistema de temas separa las decisiones visuales de las fuentes de contenido. La configuración del tema, el CSS y los componentes de página reutilizables definen la apariencia. Los generadores aplican esas decisiones a las páginas principales y a las páginas de detalle. El sitio cuenta con varios temas, por lo que el personal administrador puede ajustar variables de diseño y estilos sin reescribir cada artículo o descripción de servicio.
Las skills del repositorio facilitan estas tareas cuando se trabaja con un agente de programación basado en IA. jaraco-website-css explica el sistema de temas y dónde se definen los estilos; jaraco-website-detail-layout orienta los cambios en las páginas de detalle generadas; y jaraco-website-categorized-navigation documenta la estructura, la localización y el comportamiento de la navegación. Estas instrucciones prácticas se guardan junto al código, para que un asistente pueda seguir las convenciones del sitio en vez de tener que adivinar cómo hacer cada cambio.
La documentación del proyecto y de los flujos de trabajo también explica cómo las fuentes se convierten en un sitio desplegado. En conjunto, los pasos de compilación documentados y las skills específicas ofrecen al personal administrador una ruta más clara desde el cambio de contenido o presentación hasta su revisión.
Un servidor MCP para interactuar de forma estructurada
El sitio incluye un servidor de Model Context Protocol (MCP) de solo lectura. Los clientes de IA compatibles pueden descubrir y consultar de forma estructurada el contenido de la web de Jaraco, incluidos artículos e información sobre servicios. El servidor también ofrece una herramienta para redactar correos de consulta sobre servicios. Así, un asistente puede consultar nuestras fuentes o preparar un primer borrador sin tener que extraer manualmente el marcado de las páginas.
El sitio sigue siendo útil por sí mismo. MCP añade otra interfaz para quienes trabajan con asistentes de IA y aplicaciones compatibles con MCP. Los cambios de contenido pasan por el mismo proceso de compilación, de modo que la web y el servidor MCP pueden mantenerse sincronizados.
Perspectivas: A2A y WebMCP
MCP es una parte de un panorama cambiante de interacción entre agentes. El protocolo Agent2Agent (A2A) se centra en la comunicación y coordinación entre agentes independientes. A2A podría facilitar mucho la conexión entre servicios: agentes creados por equipos distintos podrían descubrir las capacidades de los demás y colaborar mediante una comunicación estandarizada. WebMCP explora una forma nativa del navegador para que los sitios web ofrezcan herramientas estructuradas a los agentes. Así, estos pueden utilizar acciones claramente descritas en lugar de tener que deducir cómo funciona la interfaz. Su contexto de navegador resulta especialmente interesante porque un agente puede interactuar mediante la sesión ya abierta de la persona usuaria, conservando su identidad y los permisos existentes. WebMCP sigue evolucionando, pero ya plantea una pregunta útil para quienes gestionan sitios: ¿cómo debería explicar un sitio su contenido y sus funciones a un agente?
Nuestro servidor MCP ya ofrece a los asistentes una forma directa de descubrir y leer contenido de Jaraco. A medida que evolucionen A2A y WebMCP, queremos explorar cómo pueden complementarse estas interfaces y cómo los sitios pueden orientar a los modelos de lenguaje hacia el contenido adecuado y fiable de sus páginas. ¿Cómo guías a los LLM hacia el contenido correcto de tu sitio web?
Prueba el sitio y consulta a un buscador con IA
Visita jarakube.eu, explora los servicios y las historias de proyectos, cambia de idioma o lee un artículo en Markdown. Después, prueba estas preguntas en Perplexity o en el Modo IA de Google: ¿A qué se dedica Jaraco GmbH? · ¿Cómo ayuda Jarakube con la ingeniería de plataformas? · ¿Qué ejemplos de automatización de flujos de trabajo ha publicado Jaraco?. Para hacer las mismas preguntas en el Modo IA de Google, elige Jaraco GmbH, Jarakube e ingeniería de plataformas o automatización de flujos de trabajo en Jaraco. Sigue las fuentes de las respuestas hasta el sitio y comprueba cómo presentamos la información.
Ese es uno de nuestros objetivos: que nuestro trabajo se pueda encontrar y verificar tanto si alguien llega desde un navegador como desde un buscador o un cliente de IA. El sitio demuestra, a pequeña escala, las mismas capacidades que ayudamos a desarrollar a nuestros clientes: software mantenible, automatización útil y procesos de despliegue que hacen que los cambios sean más fáciles de confiar.
Si estás planificando tu propio sitio web, plataforma de contenidos o servicio de información con IA, ponte en contacto con Jaraco. Estaremos encantados de hablar sobre un primer paso práctico.
Este artículo se creó con la ayuda de modelos de lenguaje de gran tamaño (LLM).