{
"$type": "site.standard.document",
"canonicalUrl": "https://atproto.fr/posts/3mp2iysjoskhq",
"description": "Une nouvelle expérience collaborative",
"path": "/posts/3mp2iysjoskhq",
"publishedAt": "2026-06-26T12:06:53.322Z",
"site": "at://did:web:did.atproto.fr/site.standard.publication/3mozzdjvrnn22",
"tags": [
"atproto",
"wiki"
],
"textContent": "import _img1 from \"./3mp2iysjoskhq-lichen.png\";\nimport _img2 from \"./3mp2iysjoskhq-lichen-3.png\";\nimport _img3 from \"./3mp2iysjoskhq-lichen-4.png\";\nimport _img4 from \"./3mp2iysjoskhq-tangled.png\";\nimport _img5 from \"./3mp2iysjoskhq-tangled-2.png\";\nimport _img6 from \"./3mp2iysjoskhq-tangled-3.png\";\nimport _img7 from \"./3mp2iysjoskhq-wiki.png\";\nimport _img8 from \"./3mp2iysjoskhq-wiki-2.png\";\nimport _img9 from \"./3mp2iysjoskhq-wiki-3.png\";\n\nUne nouvelle section wiki est ajoutée au site atproto.fr, comme les autres\nprojets il s'agit plus d'une expérience technique que réellement une initiative\nd'ampleur pour l'écosystème français. L'auteur de ce site ayant un gros poil\ndans la main pour écrire du contenu, il ne faut pas compter sur lui pour\nremplir ce wiki immédiatement. L'IA peut aider, mais si l'effort d'écriture est absent,\nil est compréhensible que l'effort de lecture le soit aussi.\n\nPourquoi faire un wiki ? Pour mieux comprendre comment atproto peut aider à\nproduire un travail collaboratif. C'était aussi le sujet de l'expérience de\nl'annuaire, où chaque collaborateur peut conserver sur son PDS, une liste de\nsuggestions de comptes à ajouter. Voir les détails ici.\nL'idée du wiki nous fait cette fois ci travailler non pas sur un jeu\nde données mais sur un ensemble de pages en format markdown.\nPour concrétiser cette idée, nous nous sommes appuyés sur l’analyse de\ndeux applications existantes utilisant atproto.\n\nLichen.Wiki: une plateforme collaborative d'édition de Wiki.\n\n<Carousel images={[\n { src: _img1, alt: \"Page d'accueil de Lichen.Wiki\" },\n { src: _img2, alt: \"Exemple de page wiki sur lichen.wiki\" },\n { src: _img3, alt: \"Exemple d'édition d'une note de wiki\" },\n]} />\n\nLichen.wiki, portée par le développeur français\n@juprodh.me, permet de créer et gérer\nun wiki collaboratif utilisant des notes Markdown.\nChaque collaborateur peut créer une note ou modifier celle-ci avec\nune révision sous la forme d'un git diff qui sera stockée sur le PDS du collaborateur.\nLe lexicon <Lex nsid=\"wiki.lichen.noteRevision\" line=\"23\" />\npointe sur la révision précédente et l'ensemble de la chaîne de modification représente l'état du wiki.\nL'application https://lichen.wiki écoute le flux\ndes nouveaux enregistrements de révision, pour proposer au visiteur le rendu final.\n\nL'interface est claire et plutôt facile à utiliser. Le format supporte\nles liens wiki [[]] et l'historique de chaque note est consultable.\nL'application permet aussi de découvrir d'autres wikis, ce qui donne au\nsystème une dimension sociale.\n\nLe choix du chaînage de révision nécessite d'avoir une certaine confiance dans\nl'accessibilité du contenu des collaborateurs. Un collaborateur peut supprimer\nà tout moment ses révisions de son répertoire personnel hébergé sur son PDS,\ncassant ainsi la chaîne. Comme expliqué par son\ncréateur,\nl'application lichen.wiki garde en mémoire l'état du wiki et sert donc de\nsauvegarde. De même un système de reconstruction des révisions depuis cette\nsauvegarde est en cours de développement. Ce qui est un peu contre-intuitif\navec le modèle de flux de données du protocole AT, où la donnée se stocke\nd'abord sur les répertoires des PDS avant de rejoindre les caches et bases de\ndonnées des applications et non l'inverse, mais dans notre contexte il\ns'agirait d'un cas exceptionnel.\n\nPour un wiki qui ne souhaite pas dépendre de la base de données de lichen.wiki\net du bon vouloir de ses collaborateurs de conserver les révisions, la solution\nla plus évidente est d'auto-héberger l'application lichen.wiki dont le code\nsource est disponible à tous sous licence GNU. Mais les solutions évidentes ne\nsont pas très divertissantes et le format git diff des révisions fut une\ninspiration pour une nouvelle expérience d'interopérabilité.\n\nUtiliser Tangled.org\n\nSi le wiki utilise un lexicon enrobant un git diff et ne doit posséder qu'une\nseule source de vérité, un ensemble de fichiers, en amont de la génération du\nsite internet (Atproto.fr utilise le générateur Astro),\nalors pourquoi ne pas réutiliser les lexicons de Tangled ?\n\nTangled.org est une plateforme d'hébergement de code utilisant le protocole AT\npour gérer les interactions sociales autour des répertoires de code. La\nsuggestion de changement de code (nommée Pull Request), la création de tickets\ndécrivant les bugs ou les fonctionnalités futures, sont deux exemples de ces\ninteractions.\n\n<Carousel images={[\n { src: _img4, alt: \"Page de répertoire Tangled\" },\n { src: _img5, alt: \"Page d'une pull request sur la plateforme tangled\" },\n { src: _img6, alt: \"Page de profil sur tangled\" },\n]} />\n\nLe lexicon <Lex nsid=\"sh.tangled.repo.pull\" line=\"72\" /> pointe à la fois sur l'enregistrement\n<Lex nsid=\"sh.tangled.repo\" line=\"62\" /> décrivant l'emplacement du répertoire de code et sur le git\ndiff enregistré sous la forme d'un Blob. Le lien vers le knot à l'origine de la\npull request est facultatif, permettant à n'importe qui de créer une Pull\nrequest sur son PDS sans la nécessité d'héberger une copie entière du\nrépertoire sur un serveur dédié. Cette façon d'envoyer un git diff via le\nprotocole AT rappelle d'une certaine façon l'envoi d'un git patch via e-mail,\npratique toujours en cours pour contribuer au noyau linux par exemple.\n\nEn exploitant ce lexicon, le site atproto.fr peut proposer au\nvisiteur de suggérer une modification de ses propres fichiers en enregistrant\nune Pull request sur le PDS du visiteur.\n\n<Carousel images={[\n { src: _img7, alt: \"Page d'édition du wiki de Atproto.fr\" },\n { src: _img8, alt: \"Page des modifications en cours\" },\n { src: _img9, alt: \"Page de permissions\" },\n]} />\n\nLa Pull request apparaît ensuite sur la plateforme tangled.org dans la liste\ndes Pull requests d'un répertoire. Par l'interface de relecture de la\nplateforme, elle peut être acceptée et son code inclus ou bien refusée. Sur le\nlong terme, ce système de modification du wiki peut profiter des outils de\nmodération développés par l'équipe de tangled, comme le nouveau système\npermettant à un utilisateur d'être garant des bonnes pratiques d'un autre\nutilisateur.\n\nÀ l'inverse de lichen.wiki, ce système ne permet pas de découvrir d'autres wikis\npar l'usage d'un lexicon dédié comme <Lex nsid=\"wiki.lichen.wiki\"/>.\nLes répertoires tangled peuvent être marqués par une étiquette wiki,\nmais c'est à la charge de leurs propriétaires de le faire.\n\nQuel avenir pour ce wiki ?\n\nIl est difficile de prédire l’avenir de ce wiki, qui sert avant tout d’exemple\nd’interopérabilité. Son objectif est d’illustrer le potentiel du protocole dans\nla construction d’applications sociales et collaboratives. L’idée n’est pas\nd’exercer une pression ou de susciter de la culpabilité chez les contributeurs\npour que chaque information soit exhaustive et à jour.",
"title": "Un Wiki Atproto FR"
}