Jaraco GmbH

Un site web conçu pour les personnes et l’IA : comment nous livrons le nouveau site de Jaraco

Un site d’entreprise a deux rôles : aider les visiteurs à comprendre notre activité et rendre les informations faciles à trouver, à réutiliser et à maintenir. Nous avons pris en compte ces deux objectifs en reconstruisant le site de Jaraco.

Un site d’entreprise a deux rôles : aider les visiteurs à comprendre notre activité et rendre les informations faciles à trouver, à réutiliser et à maintenir. Nous avons pris en compte ces deux objectifs en reconstruisant le site de Jaraco.

Le résultat est un site multilingue et léger pour Jaraco GmbH, avec un processus éditorial pratique, un environnement de préproduction et un serveur MCP qui permet aux clients d’IA d’accéder à nos informations publiques. Le projet illustre aussi notre approche du développement et de l’exploitation logicielle : garder un système compréhensible, automatiser les tâches répétitives et examiner les changements avant leur mise en production.

Une navigation simple pour les visiteurs

Le site rassemble nos services, des récits de projets, des articles, des informations sur l’entreprise et des pages consacrées à Jarakube. Le menu principal donne accès à ces rubriques. Les visiteurs peuvent parcourir le blog et les récits, et consulter les réponses aux questions fréquentes. Le sélecteur de langue propose des contenus en anglais, allemand, français, espagnol et néerlandais lorsqu’une traduction est disponible. Les pages de services et les liens de contact permettent de nous joindre facilement.

Nous proposons également des versions Markdown de nos pages. Elles sont pratiques dans les outils orientés texte et fournissent aux moteurs de recherche et aux systèmes d’IA une représentation claire du contenu. Les métadonnées structurées et les fichiers de découverte générés automatiquement répondent au même objectif : rendre le site compréhensible pour les personnes, les robots d’indexation et les assistants.

Une approche low-tech assumée

Le site public repose sur du HTML statique, du CSS et un peu de JavaScript. Des scripts Python préparent les pages et les index de contenu pendant la compilation. Un serveur web distribue ensuite les fichiers générés. L’affichage du site ne nécessite ni framework applicatif complexe ni rendu côté serveur à l’exécution.

L’exploitation reste ainsi simple et le résultat facile à examiner. Les pages statiques sont rapides à distribuer et à mettre en cache. Il n’est pas nécessaire d’avoir une base de données uniquement pour afficher les informations de l’entreprise. JavaScript prend en charge des interactions ciblées, comme le choix de la langue et l’affichage de la liste des articles, tandis que le contenu reste disponible en HTML généré et en Markdown.

Pour nous, « low-tech » signifie éviter les composants superflus lorsqu’ils n’apportent rien de mieux à la solution. Cela ne signifie pas renoncer à l’automatisation : le processus de compilation valide le contenu, génère les pages localisées et leurs index, crée les fichiers de découverte pour l’IA et la documentation MCP, puis assemble le tout dans une image de conteneur.

Ajouter du contenu en Markdown et le vérifier en préproduction

Les articles et les autres collections utilisent des fichiers Markdown pour les textes et de petits manifestes JSON pour les titres, les résumés, les dates de publication et les références aux différentes langues. Pour ajouter un article, la rédaction crée le texte et son manifeste, puis ajoute celui-ci à l’index du blog. La modification est ensuite proposée via Git. La compilation vérifie que les références sont complètes, puis génère les pages et les index du site.

Les changements peuvent être discutés et examinés dans une pull request avant leur fusion. Le workflow du site démarre toutefois lors d’un push sur develop ou main, et non à l’ouverture d’une pull request. Un push sur develop génère et déploie le site de démonstration jaraco-demo.jarakube.eu, où nous pouvons examiner le déploiement réel. Un push sur main suit le parcours de production vers jarakube.eu. Le workflow vérifie que le site déployé indique la révision source attendue.

Des contrôles qualité du code au site en ligne

Les contrôles se déroulent en plusieurs étapes. Avant la création de l’image, le workflow valide les manifestes de contenu, génère les pages statiques et les fichiers de découverte, puis exécute avec couverture un harness de tests Python ciblant les scripts de génération du site. SonarQube analyse statiquement les parties du code configurées et applique un quality gate avant la création de l’image.

Une fois construite, l’image du conteneur est poussée dans le registre. Trivy recherche les vulnérabilités connues, corrigeables, de niveau critique ou élevé dans le système d’exploitation et les bibliothèques. Le déploiement n’est déclenché que si ce scan réussit. Après le déploiement, le workflow vérifie la révision Git servie par le site, puis exécute avec Playwright des tests de bout en bout dans des configurations de navigateur ordinateur et mobile. Les tests couvrent la navigation, les pages statiques, le changement de langue, les liens de contenu, les métadonnées, la FAQ et d’autres parcours clés. develop est vérifiée sur le site de démonstration ; main en production.

OWASP ZAP lance ensuite un scan de sécurité de base, suivi d’un scan automatisé de qualité et de sécurité Nikito sur l’environnement déployé. Ces contrôles apportent une couverture utile, mais un scan de base ne remplace pas un test d’intrusion complet. Le conteneur d’exécution fonctionne également avec un utilisateur non privilégié et configure des en-têtes de sécurité du navigateur, notamment Content Security Policy, la protection contre l’intégration en frame et contre le MIME sniffing. Les développeurs peuvent utiliser test-local-website.sh <theme> pour générer les pages, construire le conteneur et prévisualiser une instance locale avant de pousser une modification.

La même méthode s’applique aux pages de services, aux récits de projets et aux autres collections. Les auteurs peuvent se concentrer sur le Markdown, tandis que la compilation prend en charge la localisation, la génération des pages statiques, les index et les artefacts de découverte associés.

Faire évoluer le thème sans reconstruire le modèle de contenu

Le système de thèmes sépare les choix visuels des sources de contenu. La configuration du thème, les feuilles de style CSS et les composants de page réutilisables définissent l’apparence. Les générateurs appliquent ces choix aux pages principales et aux pages de détail. Le site propose plusieurs thèmes : les administrateurs peuvent donc modifier les variables de design et les styles sans réécrire chaque article ou description de service.

Les compétences (« skills ») du dépôt facilitent ce travail avec un agent de programmation IA. jaraco-website-css explique le système de thèmes et la responsabilité des fichiers de style ; jaraco-website-detail-layout guide les changements apportés aux pages de détail générées ; jaraco-website-categorized-navigation documente la structure, la localisation et le comportement de la navigation. Ces instructions pratiques sont conservées avec le code du projet. Un assistant peut ainsi suivre les conventions du site au lieu de devoir deviner comment effectuer une modification.

La documentation du projet et des workflows explique également comment les sources deviennent un site déployé. Les étapes de compilation documentées et ces skills ciblés offrent ensemble aux administrateurs un chemin plus clair entre une modification de contenu ou de présentation et sa vérification.

Un serveur MCP pour des interactions structurées

Le site comprend un serveur Model Context Protocol (MCP) en lecture seule. Les clients d’IA compatibles peuvent découvrir et consulter de manière structurée les contenus du site Jaraco, notamment les articles et les informations sur nos services. Le serveur propose également un outil pour préparer des e-mails de demande de service. Un assistant peut ainsi s’appuyer sur nos sources ou rédiger un premier message sans devoir analyser manuellement le code HTML des pages.

Le site reste parfaitement utilisable sans MCP. Ce protocole ajoute une interface pour les personnes qui travaillent avec des assistants d’IA et des applications compatibles MCP. Les contenus passent par le même processus de compilation : le site et le serveur MCP peuvent donc rester synchronisés.

Perspectives : A2A et WebMCP

MCP n’est qu’un élément d’un paysage en évolution pour les interactions entre agents. Le protocole Agent2Agent (A2A) porte sur la communication et la coordination entre agents indépendants. A2A pourrait grandement faciliter les liens entre services : des agents développés par différentes équipes pourraient découvrir leurs capacités respectives et collaborer grâce à un mode de communication standardisé. WebMCP explore une approche native au navigateur qui permettrait aux sites web de proposer des outils structurés aux agents. Ceux-ci pourraient alors utiliser des actions clairement décrites au lieu de devoir deviner comment fonctionne l’interface. Son contexte navigateur est particulièrement intéressant, car un agent peut interagir via la session déjà ouverte par l’utilisateur, en conservant son identité et les autorisations déjà établies. WebMCP est encore en évolution, mais soulève déjà une question utile pour tout responsable de site : comment un site doit-il présenter ses contenus et ses fonctionnalités à un agent ?

Notre serveur MCP permet déjà aux assistants de découvrir et de lire directement les contenus de Jaraco. À mesure qu’A2A et WebMCP évoluent, nous souhaitons comprendre comment ces interfaces peuvent se compléter et comment les propriétaires de sites peuvent orienter les modèles de langage vers les contenus pertinents et faisant autorité sur leurs pages. Comment guidez-vous les LLM vers les bons contenus de votre site ?

Essayez le site, puis interrogez un moteur de recherche IA

Visitez jarakube.eu, découvrez nos services et nos récits de projets, changez de langue ou lisez un article au format Markdown. Essayez ensuite ces questions dans Perplexity ou le mode IA de Google : Que fait Jaraco GmbH ? · Comment Jarakube soutient-il le platform engineering ? · Quels exemples d’automatisation des workflows Jaraco a-t-il publiés ?. Pour poser les mêmes questions dans le mode IA de Google : Jaraco GmbH, Jarakube et le platform engineering ou l’automatisation des workflows chez Jaraco. Consultez les sources des réponses pour revenir au site et voir comment les informations y sont présentées.

C’est l’un de nos objectifs : rendre notre travail facile à trouver et à vérifier, que l’on arrive par un navigateur, un moteur de recherche ou un client d’IA. Le site illustre à petite échelle les mêmes capacités que nous aidons nos clients à développer : des logiciels maintenables, une automatisation utile et des processus de déploiement qui rendent les changements plus faciles à contrôler.

Si vous envisagez de créer votre propre site, plateforme de contenu ou service d’information assisté par l’IA, contactez Jaraco. Nous serons heureux de discuter d’une première étape concrète.

Cet article a été créé avec l’aide de grands modèles de langage (LLM).