Besoin ponctuel
Résoudre un problème précis
Outil métier, automatisation, IA, cloud ou web : nous cadrons une réponse adaptée à votre contexte.
Open source
Une librairie TypeScript open source qui transforme la gestion du JSON-LD en un workflow typé, validé et composable, avec intégrations Astro et Svelte.

Johan Ledoux
Projet open source porté par Johan Ledoux et soutenu par Rootage pour fiabiliser la création, la validation et la composition de données structurées Schema.org en JSON-LD.
Ce projet open source est développé et partagé par Rootage, hors mission client.
Expertises mobilisées : Développement TypeScript · Architecture de librairie · Schema.org / JSON-LD · Intégration Astro · Intégration Svelte · Documentation technique
Secteur
Open source / web sémantique
Publication
3 octobre 2026
Le projet en détail
Les données structurées Schema.org permettent de décrire les entités et les relations d’une page dans un format lisible par les moteurs de recherche et d’autres systèmes capables d’exploiter du JSON-LD.
En pratique, leur mise en place devient vite difficile à maintenir dès qu’un site dépasse quelques blocs isolés : les entités se répètent, les références entre objets deviennent fragiles, les erreurs de structure sont faciles à introduire et les données dynamiques nécessitent une validation plus solide qu’un simple typage TypeScript.
unschema-graph est né de ce constat.
Le projet est conçu et développé par Johan Ledoux comme un projet open source personnel. Rootage soutient sa mise en avant et son développement dans le cadre de ses initiatives open source, tout en laissant la conception et la maintenance technique du projet à son auteur.
Écrire du JSON-LD à la main fonctionne sur des cas simples, mais devient rapidement difficile à fiabiliser à l’échelle d’un site ou d’une application.
Plusieurs problèmes reviennent régulièrement :
@id et les graphes deviennent fastidieux à maintenir
manuellement ;<script> peut introduire des
risques de sortie de contexte HTML.L’objectif d’unschema-graph est donc de proposer une couche suffisamment structurée pour rendre ces usages plus sûrs et prévisibles, sans transformer Schema.org en abstraction opaque.
unschema-graph a été construit comme un ensemble de packages complémentaires autour d’un moteur commun.
Le projet comprend aujourd’hui :
@unschema-graph/core, le moteur indépendant de tout framework ;@unschema-graph/astro, une intégration native pour Astro ;@unschema-graph/svelte, une intégration dédiée à Svelte 5 et SvelteKit.Le cœur du projet fournit 51 builders Schema.org typés et validés à l’exécution avec Zod.
Les entités peuvent être composées directement entre elles ou reliées grâce à
des références @id. Le moteur parcourt ensuite les relations, remonte les
entités partagées et construit automatiquement un @graph unifié.
Le projet comprend également :
<script> ;@id ;Le projet a atteint la version 0.10.0, qui fige la surface d’API prévue avant la préparation de la version 1.0.
unschema-graph propose désormais une base cohérente pour produire et auditer des graphes Schema.org dans plusieurs environnements JavaScript, sans imposer de runtime client supplémentaire dans Astro.
À ce stade, le projet fournit notamment :
Le projet reste volontairement centré sur un périmètre précis : rendre la production de JSON-LD structurée, contrôlable et agréable à maintenir pour les développeurs.
La logique principale vit dans @unschema-graph/core.
Ce découpage permet de conserver un moteur indépendant d’Astro ou de Svelte et de faire des intégrations framework de simples couches d’adaptation.
Le projet s’appuie notamment sur :
Cette séparation évite de lier le modèle de données à un composant ou à un framework particulier.
L’un des choix structurants du projet est de traiter les données Schema.org comme un graphe d’entités reliées entre elles.
Une organisation, un site, un auteur ou un article peuvent ainsi être définis une seule fois puis référencés ailleurs.
Le moteur :
@graph unique ;#id à partir de l’URL de base ;Cette logique réduit les duplications et rend les relations entre objets plus explicites dans le code.
Le projet ne se limite pas à fournir des types.
Les données sont validées à l’exécution afin de pouvoir contrôler des valeurs issues de sources dynamiques, puis sérialisées avec des protections adaptées à leur injection dans le HTML.
La CLI d’audit complète cette approche en analysant les fichiers générés pour repérer notamment :
L’objectif est de déplacer un maximum d’erreurs vers le développement ou la CI, plutôt que de les découvrir une fois le site déployé.
L’intégration Astro reste server-first : le composant <Schema /> produit du
HTML statique et n’ajoute pas de JavaScript côté client.
Pour Svelte 5, l’intégration exploite au contraire la réactivité native du framework pour permettre aux données structurées de suivre les changements d’état lorsqu’un cas d’usage le nécessite.
Cette séparation permet de respecter les conventions de chaque écosystème sans dupliquer la logique métier du moteur.
unschema-graph n’est pas un produit client Rootage : il s’agit d’un projet open source personnel de Johan Ledoux.
Rootage le soutient comme une initiative open source cohérente avec les sujets que nous travaillons au quotidien : qualité logicielle, architecture web, outillage développeur et mise en production fiable.
Cette distinction est volontaire. Elle permet de valoriser le travail technique réalisé sans présenter le projet comme une mission commerciale de l’agence.
unschema-graph est un bon exemple de projet où un problème apparemment très spécialisé conduit à travailler plusieurs sujets d’ingénierie en profondeur :
Le projet montre aussi l’intérêt de construire une abstraction ciblée : ne pas cacher Schema.org, mais fournir suffisamment de structure pour rendre son usage plus fiable, plus lisible et plus maintenable.
Expliquez-nous la situation, même si vous ne savez pas encore quelle solution technique il faut.
Besoin ponctuel
Outil métier, automatisation, IA, cloud ou web : nous cadrons une réponse adaptée à votre contexte.
Dans la durée
Maintenance, supervision et petites évolutions pour garder vos outils fiables dans la durée.