{
  "metadata": {
    "title": "Le Grand Atlas du Fédiverse",
    "version": "4.0",
    "year": 2026,
    "language": "fr",
    "licence": "CC BY-SA 4.0",
    "lastUpdated": "2026-07-12",
    "statistics": {
      "totalSoftwares": 105,
      "totalProtocols": 12,
      "totalCategories": 14,
      "activeSoftwares": 93,
      "maintenanceSoftwares": 4,
      "experimentalSoftwares": 5,
      "historicalSoftwares": 3,
      "fullAPCompatibility": 45,
      "partialAPCompatibility": 4,
      "extensionAPCompatibility": 9
    },
    "attribution": {
      "inspiredBy": "Per Axbom (axbom.com/fediverse)",
      "originalVersion": "3.0 (January 2023)",
      "maintainers": [
        "Community"
      ]
    }
  },
  "softwares": [
    {
      "id": "mastodon",
      "name": "Mastodon",
      "description": "Le réseau social fédéré le plus populaire. Microblogging avec une audience mondiale.",
      "category": "social",
      "protocols": [
        "ActivityPub"
      ],
      "licence": "AGPL-3.0",
      "language": "Ruby on Rails",
      "site": "https://joinmastodon.org/",
      "github": "https://github.com/mastodon/mastodon",
      "etat": "Actif",
      "compatibiliteAP": "Pleine",
      "createdYear": 2016,
      "version": "4.3"
    },
    {
      "id": "gotosocial",
      "name": "GoToSocial",
      "description": "Serveur ActivityPub léger et rapide écrit en Go. Approche minimaliste et efficace.",
      "category": "social",
      "protocols": [
        "ActivityPub"
      ],
      "licence": "AGPL-3.0",
      "language": "Go",
      "site": "https://gotosocial.org/",
      "github": "https://github.com/superseriousbusiness/gotosocial",
      "etat": "Actif",
      "compatibiliteAP": "Pleine",
      "createdYear": 2021,
      "version": "0.17"
    },
    {
      "id": "akkoma",
      "name": "Akkoma",
      "description": "Fork de Pleroma avec des fonctionnalités enrichies et une personnalisation avancée.",
      "category": "social",
      "protocols": [
        "ActivityPub"
      ],
      "licence": "AGPL-3.0",
      "language": "Elixir",
      "site": "https://akkoma.social/",
      "github": "https://akkoma.dev/AkkomaGang/akkoma",
      "etat": "Actif",
      "compatibiliteAP": "Pleine",
      "createdYear": 2022,
      "version": "3.15"
    },
    {
      "id": "pleroma",
      "name": "Pleroma",
      "description": "Serveur ActivityPub léger et hautement configurable. Alternative rapide à Mastodon.",
      "category": "social",
      "protocols": [
        "ActivityPub"
      ],
      "licence": "AGPL-3.0",
      "language": "Elixir",
      "site": "https://pleroma.social/",
      "github": "https://git.pleroma.social/pleroma/pleroma",
      "etat": "Actif",
      "compatibiliteAP": "Pleine",
      "createdYear": 2017,
      "version": "2.7"
    },
    {
      "id": "misskey",
      "name": "Misskey",
      "description": "Plateforme sociale japonaise avec des fonctionnalités créatives (notes, réactions, drive).",
      "category": "social",
      "protocols": [
        "ActivityPub"
      ],
      "licence": "AGPL-3.0",
      "language": "Node.js",
      "site": "https://misskey-hub.net/",
      "github": "https://github.com/misskey-dev/misskey",
      "etat": "Actif",
      "compatibiliteAP": "Pleine",
      "createdYear": 2014,
      "version": "2024"
    },
    {
      "id": "sharkey",
      "name": "Sharkey",
      "description": "Fork de Misskey avec des améliorations de performance et de nouvelles fonctionnalités.",
      "category": "social",
      "protocols": [
        "ActivityPub"
      ],
      "licence": "AGPL-3.0",
      "language": "Node.js",
      "site": "https://sharkey.keyber.net/",
      "github": "https://activitypub.software/TransFem-org/Sharkey",
      "etat": "Actif",
      "compatibiliteAP": "Pleine",
      "createdYear": 2023
    },
    {
      "id": "friendica",
      "name": "Friendica",
      "description": "Réseau social décentralisé avec interopérabilité étendue (ActivityPub, Diaspora*, RSS).",
      "category": "social",
      "protocols": [
        "ActivityPub",
        "Diaspora* Protocol"
      ],
      "licence": "AGPL-3.0",
      "language": "PHP",
      "site": "https://friendi.ca/",
      "github": "https://github.com/friendica/friendica",
      "etat": "Actif",
      "compatibiliteAP": "Pleine",
      "createdYear": 2010,
      "version": "2024.03"
    },
    {
      "id": "hubzilla",
      "name": "Hubzilla",
      "description": "Plateforme de communications décentralisées avec contrôle d'accès avancé et nomadisme d'identité.",
      "category": "social",
      "protocols": [
        "Zot",
        "ActivityPub"
      ],
      "licence": "MIT",
      "language": "PHP",
      "site": "https://hubzilla.org/",
      "github": "https://framagit.org/hubzilla/core",
      "etat": "Actif",
      "compatibiliteAP": "Partielle",
      "createdYear": 2012
    },
    {
      "id": "streams",
      "name": "Streams",
      "description": "Fork de Hubzilla axé sur la privacy et le contrôle granulaire des permissions.",
      "category": "social",
      "protocols": [
        "Nomad",
        "ActivityPub"
      ],
      "licence": "MIT",
      "language": "PHP",
      "site": "https://codeberg.org/streams/streams",
      "github": "https://codeberg.org/streams/streams",
      "etat": "Actif",
      "compatibiliteAP": "Partielle",
      "createdYear": 2022
    },
    {
      "id": "iceshrimp",
      "name": "Iceshrimp",
      "description": "Fork de Misskey optimisé pour la performance et la stabilité.",
      "category": "social",
      "protocols": [
        "ActivityPub"
      ],
      "licence": "AGPL-3.0",
      "language": "Node.js",
      "site": "https://iceshrimp.dev/",
      "github": "https://iceshrimp.dev/iceshrimp/iceshrimp",
      "etat": "Actif",
      "compatibiliteAP": "Pleine",
      "createdYear": 2023
    },
    {
      "id": "gnusocial",
      "name": "GNU social",
      "description": "Pionnier des réseaux sociaux fédérés. Précurseur historique du Fédiverse.",
      "category": "social",
      "protocols": [
        "ActivityPub",
        "OStatus"
      ],
      "licence": "AGPL-3.0",
      "language": "PHP",
      "site": "https://www.gnu.io/social/",
      "github": "https://codeberg.org/GNUsocial/gnu-social",
      "etat": "Maintenance",
      "compatibiliteAP": "Pleine",
      "createdYear": 2010
    },
    {
      "id": "bonfire",
      "name": "Bonfire",
      "description": "Réseau social modulaire écrit en Elixir axé sur la gouvernance communautaire.",
      "category": "social",
      "protocols": [
        "ActivityPub"
      ],
      "licence": "AGPL-3.0",
      "language": "Elixir",
      "site": "https://bonfirenetworks.org/",
      "github": "https://github.com/bonfire-networks/bonfire",
      "etat": "Actif",
      "compatibiliteAP": "Pleine",
      "createdYear": 2020
    },
    {
      "id": "microblogpub",
      "name": "microblog.pub",
      "description": "Serveur ActivityPub minimaliste et auto-hébergeable pour le microblogging.",
      "category": "microblog",
      "protocols": [
        "ActivityPub"
      ],
      "licence": "AGPL-3.0",
      "language": "Python",
      "site": "https://docs.microblog.pub/",
      "github": "https://github.com/tsileo/microblog.pub",
      "etat": "Actif",
      "compatibiliteAP": "Pleine",
      "createdYear": 2018
    },
    {
      "id": "pixelfed",
      "name": "PixelFed",
      "description": "Plateforme de partage de photos fédérée. Alternative à Instagram.",
      "category": "photo",
      "protocols": [
        "ActivityPub"
      ],
      "licence": "AGPL-3.0",
      "language": "PHP",
      "site": "https://pixelfed.org/",
      "github": "https://github.com/pixelfed/pixelfed",
      "etat": "Actif",
      "compatibiliteAP": "Pleine",
      "createdYear": 2018,
      "version": "0.12"
    },
    {
      "id": "vernissage",
      "name": "Vernissage",
      "description": "Application de galerie photo fédérée pour le Fédiverse.",
      "category": "photo",
      "protocols": [
        "ActivityPub"
      ],
      "licence": "EUPL-1.2",
      "language": "Swift",
      "site": "https://vernissage.photos/",
      "github": "https://github.com/VernissageApp/Vernissage",
      "etat": "Actif",
      "compatibiliteAP": "Pleine",
      "createdYear": 2023
    },
    {
      "id": "peertube",
      "name": "PeerTube",
      "description": "Plateforme vidéo fédérée décentralisée. Alternative à YouTube.",
      "category": "video",
      "protocols": [
        "ActivityPub"
      ],
      "licence": "AGPL-3.0",
      "language": "Node.js",
      "site": "https://joinpeertube.org/",
      "github": "https://github.com/Chocobozzz/PeerTube",
      "etat": "Actif",
      "compatibiliteAP": "Pleine",
      "createdYear": 2015,
      "version": "6.3"
    },
    {
      "id": "owncast",
      "name": "Owncast",
      "description": "Serveur de streaming live auto-hébergeable. Alternative à Twitch.",
      "category": "video",
      "protocols": [
        "ActivityPub",
        "RSS"
      ],
      "licence": "MIT",
      "language": "Go",
      "site": "https://owncast.online/",
      "github": "https://github.com/owncast/owncast",
      "etat": "Actif",
      "compatibiliteAP": "Extension",
      "createdYear": 2020,
      "version": "0.2"
    },
    {
      "id": "tube",
      "name": "Tube (Framasoft)",
      "description": "Ancien nom du projet ayant mené à PeerTube.",
      "category": "video",
      "protocols": [
        "ActivityPub"
      ],
      "licence": "AGPL-3.0",
      "language": "Node.js",
      "site": "https://framatube.org/",
      "github": "https://github.com/Chocobozzz/PeerTube",
      "etat": "Historique",
      "compatibiliteAP": "Pleine",
      "createdYear": 2015
    },
    {
      "id": "castopod",
      "name": "Castopod",
      "description": "Plateforme de podcasting fédérée avec ActivityPub. Alternative à Spotify/Apple Podcasts.",
      "category": "audio",
      "protocols": [
        "ActivityPub"
      ],
      "licence": "AGPL-3.0",
      "language": "PHP",
      "site": "https://castopod.org/",
      "github": "https://codeberg.org/adaur/castopod",
      "etat": "Actif",
      "compatibiliteAP": "Pleine",
      "createdYear": 2020,
      "version": "1.12"
    },
    {
      "id": "funkwhale",
      "name": "Funkwhale",
      "description": "Plateforme musicale fédérée pour écouter et partager de la musique.",
      "category": "audio",
      "protocols": [
        "ActivityPub"
      ],
      "licence": "AGPL-3.0",
      "language": "Python",
      "site": "https://funkwhale.audio/",
      "github": "https://dev.funkwhale.audio/funkwhale/funkwhale",
      "etat": "Actif",
      "compatibiliteAP": "Pleine",
      "createdYear": 2018,
      "version": "1.4"
    },
    {
      "id": "loops",
      "name": "Loops",
      "description": "Plateforme de vidéos courtes fédérée. Alternative à TikTok/Instagram Reels.",
      "category": "video",
      "protocols": [
        "ActivityPub"
      ],
      "licence": "AGPL-3.0",
      "language": "PHP",
      "site": "https://loops.video/",
      "github": "https://github.com/MozillaSocial/loops",
      "etat": "Actif",
      "compatibiliteAP": "Pleine",
      "createdYear": 2024
    },
    {
      "id": "ghost",
      "name": "Ghost",
      "description": "Plateforme de publication professionnelle avec support ActivityPub.",
      "category": "blog",
      "protocols": [
        "ActivityPub"
      ],
      "licence": "MIT",
      "language": "Node.js",
      "site": "https://ghost.org/",
      "github": "https://github.com/TryGhost/Ghost",
      "etat": "Actif",
      "compatibiliteAP": "Extension",
      "createdYear": 2013,
      "version": "5.0+"
    },
    {
      "id": "writefreely",
      "name": "WriteFreely",
      "description": "Plateforme de blogging minimaliste et fédérée axée sur l'écriture.",
      "category": "blog",
      "protocols": [
        "ActivityPub"
      ],
      "licence": "AGPL-3.0",
      "language": "Go",
      "site": "https://writefreely.org/",
      "github": "https://github.com/writefreely/writefreely",
      "etat": "Actif",
      "compatibiliteAP": "Pleine",
      "createdYear": 2018,
      "version": "0.15"
    },
    {
      "id": "plume",
      "name": "Plume",
      "description": "Moteur de blog fédéré axé sur la collaboration et la publication longue.",
      "category": "blog",
      "protocols": [
        "ActivityPub"
      ],
      "licence": "AGPL-3.0",
      "language": "Rust",
      "site": "https://joinplu.me/",
      "github": "https://github.com/Plume-org/Plume",
      "etat": "Maintenance",
      "compatibiliteAP": "Pleine",
      "createdYear": 2018
    },
    {
      "id": "wordpress-ap",
      "name": "WordPress + ActivityPub",
      "description": "Plugin ActivityPub pour WordPress permettant de fédérer les publications.",
      "category": "blog",
      "protocols": [
        "ActivityPub"
      ],
      "licence": "MIT",
      "language": "PHP",
      "site": "https://activitypub.plugin.wordpress.com/",
      "github": "https://github.com/Automattic/wordpress-activitypub",
      "etat": "Actif",
      "compatibiliteAP": "Extension",
      "createdYear": 2019
    },
    {
      "id": "drupal-ap",
      "name": "Drupal + ActivityPub",
      "description": "Module ActivityPub pour Drupal permettant la fédération des contenus.",
      "category": "blog",
      "protocols": [
        "ActivityPub"
      ],
      "licence": "GPL-2.0",
      "language": "PHP",
      "site": "https://www.drupal.org/project/activitypub",
      "github": "https://git.drupalcode.org/project/activitypub",
      "etat": "Actif",
      "compatibiliteAP": "Extension",
      "createdYear": 2023
    },
    {
      "id": "lemmy",
      "name": "Lemmy",
      "description": "Agrégateur de liens et forum fédéré. Alternative à Reddit.",
      "category": "forum",
      "protocols": [
        "ActivityPub"
      ],
      "licence": "AGPL-3.0",
      "language": "Rust",
      "site": "https://join-lemmy.org/",
      "github": "https://github.com/LemmyNet/lemmy",
      "etat": "Actif",
      "compatibiliteAP": "Pleine",
      "createdYear": 2019,
      "version": "0.19"
    },
    {
      "id": "mbin",
      "name": "Mbin",
      "description": "Successeur de kbin, agrégateur de liens fédéré avec des fonctionnalités améliorées.",
      "category": "forum",
      "protocols": [
        "ActivityPub"
      ],
      "licence": "AGPL-3.0",
      "language": "PHP",
      "site": "https://mbin.org/",
      "github": "https://github.com/MbinOrg/mbin",
      "etat": "Actif",
      "compatibiliteAP": "Pleine",
      "createdYear": 2023
    },
    {
      "id": "nodebb-ap",
      "name": "NodeBB",
      "description": "Forum moderne avec support ActivityPub pour la fédération.",
      "category": "forum",
      "protocols": [
        "ActivityPub"
      ],
      "licence": "GPL-3.0",
      "language": "Node.js",
      "site": "https://nodebb.org/",
      "github": "https://github.com/NodeBB/NodeBB",
      "etat": "Actif",
      "compatibiliteAP": "Extension",
      "createdYear": 2014
    },
    {
      "id": "mobilizon",
      "name": "Mobilizon",
      "description": "Plateforme d\\événements fédérée pour organiser et découvrir des événements.",
      "category": "events",
      "protocols": [
        "ActivityPub"
      ],
      "licence": "AGPL-3.0",
      "language": "Elixir",
      "site": "https://mobilizon.org/",
      "github": "https://framagit.org/framasoft/mobilizon",
      "etat": "Actif",
      "compatibiliteAP": "Pleine",
      "createdYear": 2019,
      "version": "4.1"
    },
    {
      "id": "gancio",
      "name": "Gancio",
      "description": "Agrégateur d\\événements fédéré auto-hébergeable.",
      "category": "events",
      "protocols": [
        "ActivityPub"
      ],
      "licence": "AGPL-3.0",
      "language": "Node.js",
      "site": "https://gancio.org/",
      "github": "https://framagit.org/les/gancio",
      "etat": "Actif",
      "compatibiliteAP": "Pleine",
      "createdYear": 2022
    },
    {
      "id": "forgejo",
      "name": "Forgejo",
      "description": "Forge logicielle libre forkée de Gitea. Support ActivityPub en développement.",
      "category": "dev",
      "protocols": [
        "ActivityPub"
      ],
      "licence": "MIT",
      "language": "Go",
      "site": "https://forgejo.org/",
      "github": "https://codeberg.org/forgejo/forgejo",
      "etat": "Actif",
      "compatibiliteAP": "En développement",
      "createdYear": 2022
    },
    {
      "id": "gitea-ap",
      "name": "Gitea",
      "description": "Forge logicielle légère et rapide avec support ActivityPub via plugin.",
      "category": "dev",
      "protocols": [
        "ActivityPub"
      ],
      "licence": "MIT",
      "language": "Go",
      "site": "https://gitea.com/",
      "github": "https://github.com/go-gitea/gitea",
      "etat": "Actif",
      "compatibiliteAP": "Extension",
      "createdYear": 2016
    },
    {
      "id": "nextcloud",
      "name": "Nextcloud",
      "description": "Suite de collaboration cloud auto-hébergeable avec support ActivityPub.",
      "category": "collab",
      "protocols": [
        "ActivityPub"
      ],
      "licence": "AGPL-3.0",
      "language": "PHP",
      "site": "https://nextcloud.com/",
      "github": "https://github.com/nextcloud/server",
      "etat": "Actif",
      "compatibiliteAP": "Extension",
      "createdYear": 2016,
      "version": "30"
    },
    {
      "id": "owncloud",
      "name": "ownCloud",
      "description": "Plateforme de partage de fichiers et de collaboration en ligne.",
      "category": "collab",
      "protocols": [
        "ActivityPub"
      ],
      "licence": "AGPL-3.0",
      "language": "PHP",
      "site": "https://owncloud.com/",
      "github": "https://github.com/owncloud/core",
      "etat": "Actif",
      "compatibiliteAP": "Extension",
      "createdYear": 2010
    },
    {
      "id": "bookwyrm",
      "name": "BookWyrm",
      "description": "Réseau social de lecture fédéré. Alternative à Goodreads.",
      "category": "books",
      "protocols": [
        "ActivityPub"
      ],
      "licence": "AGPL-3.0",
      "language": "Python",
      "site": "https://joinbookwyrm.com/",
      "github": "https://github.com/bookwyrm-social/bookwyrm",
      "etat": "Actif",
      "compatibiliteAP": "Pleine",
      "createdYear": 2020,
      "version": "0.7"
    },
    {
      "id": "wikidata",
      "name": "Wikidata",
      "description": "Base de connaissances libre et collaborative structurée.",
      "category": "wiki",
      "protocols": [
        "ActivityPub"
      ],
      "licence": "CC0",
      "language": "PHP",
      "site": "https://www.wikidata.org/",
      "github": "https://github.com/wikimedia/wikidata-query-rdf",
      "etat": "Actif",
      "compatibiliteAP": "Partielle",
      "createdYear": 2012
    },
    {
      "id": "diaspora-soft",
      "name": "Diaspora*",
      "description": "Réseau social décentralisé historique. Précurseur du Fédiverse moderne.",
      "category": "social",
      "protocols": [
        "Diaspora* Protocol"
      ],
      "licence": "AGPL-3.0",
      "language": "Ruby",
      "site": "https://diasporafoundation.org/",
      "github": "https://github.com/diaspora/diaspora",
      "etat": "Maintenance",
      "compatibiliteAP": "Aucune",
      "createdYear": 2010
    },
    {
      "id": "matrix-element",
      "name": "Element",
      "description": "Client Matrix pour la messagerie temps réel fédérée.",
      "category": "collab",
      "protocols": [
        "Matrix Protocol"
      ],
      "licence": "Apache-2.0",
      "language": "TypeScript",
      "site": "https://element.io/",
      "github": "https://github.com/element-hq/element-web",
      "etat": "Actif",
      "compatibiliteAP": "Aucune",
      "createdYear": 2016
    },
    {
      "id": "fedify",
      "name": "Fedify",
      "description": "Framework TypeScript/Deno pour construire des serveurs ActivityPub.",
      "category": "dev",
      "protocols": [
        "ActivityPub"
      ],
      "licence": "MIT",
      "language": "TypeScript",
      "site": "https://fedify.dev/",
      "github": "https://github.com/dahlia/fedify",
      "etat": "Actif",
      "compatibiliteAP": "Pleine",
      "createdYear": 2024
    },
    {
      "id": "mitra",
      "name": "Mitra",
      "description": "Serveur ActivityPub écrit en Rust avec support des monnaies complémentaires.",
      "category": "social",
      "protocols": [
        "ActivityPub"
      ],
      "licence": "AGPL-3.0",
      "language": "Rust",
      "site": "https://mitra.social/",
      "github": "https://codeberg.org/silverpill/mitra",
      "etat": "Actif",
      "compatibiliteAP": "Pleine",
      "createdYear": 2022
    },
    {
      "id": "socialhome",
      "name": "Socialhome",
      "description": "Réseau social fédéré avec un flux de contenu personnalisable.",
      "category": "social",
      "protocols": [
        "ActivityPub"
      ],
      "licence": "AGPL-3.0",
      "language": "Python",
      "site": "https://socialhome.network/",
      "github": "https://github.com/jaywink/socialhome",
      "etat": "Maintenance",
      "compatibiliteAP": "Partielle",
      "createdYear": 2016
    },
    {
      "id": "kbin",
      "name": "kbin",
      "description": "Agrégateur de contenu fédéré. Prédécesseur de Mbin.",
      "category": "forum",
      "protocols": [
        "ActivityPub"
      ],
      "licence": "AGPL-3.0",
      "language": "PHP",
      "site": "https://kbin.pub/",
      "github": "https://github.com/ernestws/kbin",
      "etat": "Historique",
      "compatibiliteAP": "Pleine",
      "createdYear": 2023
    },
    {
      "id": "epicyon",
      "name": "Epicyon",
      "description": "Serveur ActivityPub minimaliste avec approche low-tech. Conçu pour les petites instances communautaires.",
      "category": "social",
      "protocols": [
        "ActivityPub"
      ],
      "licence": "AGPL-3.0",
      "language": "Python",
      "site": "https://epicyon.net/",
      "github": "https://gitlab.com/bashrc2/epicyon",
      "etat": "Actif",
      "compatibiliteAP": "Pleine",
      "createdYear": 2020
    },
    {
      "id": "takahe",
      "name": "Takahē",
      "description": "Serveur ActivityPub multi-domaine moderne. Permet d'héberger plusieurs domaines sur une seule instance.",
      "category": "social",
      "protocols": [
        "ActivityPub"
      ],
      "licence": "BSD",
      "language": "Python",
      "site": "https://jointakahe.org/",
      "github": "https://github.com/jointakahe/takahe",
      "etat": "Actif",
      "compatibiliteAP": "Pleine",
      "createdYear": 2022
    },
    {
      "id": "smithereen",
      "name": "Smithereen",
      "description": "Serveur ActivityPub axé sur les réseaux sociaux avec interface style VKontakte.",
      "category": "social",
      "protocols": [
        "ActivityPub"
      ],
      "licence": "AGPL-3.0",
      "language": "Java",
      "site": "https://smithereen.software/",
      "github": "https://github.com/grishka/Smithereen",
      "etat": "Actif",
      "compatibiliteAP": "Pleine",
      "createdYear": 2021
    },
    {
      "id": "kroeg",
      "name": "Kroeg",
      "description": "Serveur ActivityPub en Rust avec architecture modulaire et extensible.",
      "category": "social",
      "protocols": [
        "ActivityPub"
      ],
      "licence": "MIT",
      "language": "Rust",
      "site": "https://github.com/puckipedia/Kroeg",
      "github": "https://github.com/puckipedia/Kroeg",
      "etat": "Experimental",
      "compatibiliteAP": "Pleine",
      "createdYear": 2018
    },
    {
      "id": "lotide",
      "name": "Lotide",
      "description": "Agrégateur de liens fédéré léger. Alternative minimaliste à Lemmy.",
      "category": "forum",
      "protocols": [
        "ActivityPub"
      ],
      "licence": "AGPL-3.0",
      "language": "Rust",
      "site": "https://sr.ht/~vpzom/lotide/",
      "github": "https://git.sr.ht/~vpzom/lotide",
      "etat": "Actif",
      "compatibiliteAP": "Pleine",
      "createdYear": 2020
    },
    {
      "id": "sublinks",
      "name": "Sublinks",
      "description": "Plateforme de forums fédérée. Fork moderne de Lemmy avec des améliorations significatives.",
      "category": "forum",
      "protocols": [
        "ActivityPub"
      ],
      "licence": "AGPL-3.0",
      "language": "Rust",
      "site": "https://sublinks.org/",
      "github": "https://github.com/sublinks/sublinks",
      "etat": "Actif",
      "compatibiliteAP": "Pleine",
      "createdYear": 2024
    },
    {
      "id": "roadhouse",
      "name": "RoadHouse",
      "description": "Plateforme de forums fédérée avec une approche communautaire différente.",
      "category": "forum",
      "protocols": [
        "ActivityPub"
      ],
      "licence": "AGPL-3.0",
      "language": "Rust",
      "site": "https://github.com/LemmyNet/lemmy",
      "github": "https://github.com/LemmyNet/lemmy",
      "etat": "Experimental",
      "compatibiliteAP": "Pleine",
      "createdYear": 2024
    },
    {
      "id": "pieoneers",
      "name": "Pieoneers",
      "description": "Plateforme de partage de recettes fédérée avec ActivityPub.",
      "category": "social",
      "protocols": [
        "ActivityPub"
      ],
      "licence": "MIT",
      "language": "Python",
      "site": "https://git.sr.ht/~ Associazione/pieoneers",
      "github": "https://git.sr.ht/~ Associazione/pieoneers",
      "etat": "Experimental",
      "compatibiliteAP": "Pleine",
      "createdYear": 2023
    },
    {
      "id": "wordpress-mu-ap",
      "name": "WordPress MU + ActivityPub",
      "description": "Plugin ActivityPub pour WordPress Multisite. Permet de fédérer des réseaux de blogs.",
      "category": "blog",
      "protocols": [
        "ActivityPub"
      ],
      "licence": "MIT",
      "language": "PHP",
      "site": "https://activitypub.plugin.wordpress.com/",
      "github": "https://github.com/Automattic/wordpress-activitypub",
      "etat": "Actif",
      "compatibiliteAP": "Extension",
      "createdYear": 2023
    },
    {
      "id": "emissary",
      "name": "Emissary",
      "description": "Serveur ActivityPub modulaire avec support de streams et de collections.",
      "category": "social",
      "protocols": [
        "ActivityPub"
      ],
      "licence": "MIT",
      "language": "Go",
      "site": "https://github.com/EmissarySocial/emissary",
      "github": "https://github.com/EmissarySocial/emissary",
      "etat": "Actif",
      "compatibiliteAP": "Pleine",
      "createdYear": 2022
    },
    {
      "id": "hometown",
      "name": "Hometown",
      "description": "Fork de Mastodon avec des fonctionnalités communautaires additionnelles.",
      "category": "social",
      "protocols": [
        "ActivityPub"
      ],
      "licence": "AGPL-3.0",
      "language": "Ruby",
      "site": "https://github.com/hometown-fork/hometown",
      "github": "https://github.com/hometown-fork/hometown",
      "etat": "Actif",
      "compatibiliteAP": "Pleine",
      "createdYear": 2019
    },
    {
      "id": " glitchsoc",
      "name": "GlitchSoc",
      "description": "Fork de Mastodon avec des fonctionnalités expérimentales et une customisation poussée.",
      "category": "social",
      "protocols": [
        "ActivityPub"
      ],
      "licence": "AGPL-3.0",
      "language": "Ruby",
      "site": "https://glitch-soc.github.io/docs/",
      "github": "https://github.com/glitch-soc/mastodon",
      "etat": "Actif",
      "compatibiliteAP": "Pleine",
      "createdYear": 2017
    },
    {
      "id": "akkoma-fe",
      "name": "Akkoma-FE",
      "description": "Frontend alternatif pour Akkoma avec des améliorations UI/UX.",
      "category": "social",
      "protocols": [
        "ActivityPub"
      ],
      "licence": "AGPL-3.0",
      "language": "Vue.js",
      "site": "https://akkoma.social/",
      "github": "https://akkoma.dev/AkkomaGang/akkoma-fe",
      "etat": "Actif",
      "compatibiliteAP": "Pleine",
      "createdYear": 2022
    },
    {
      "id": "postmarks",
      "name": "Postmarks",
      "description": "Système de bookmarks/bookmarques fédéré avec ActivityPub. Partagez vos signets.",
      "category": "social",
      "protocols": [
        "ActivityPub"
      ],
      "licence": "MIT",
      "language": "JavaScript",
      "site": "https://postmarks.glitch.me/",
      "github": "https://github.com/ckolderup/postmarks",
      "etat": "Actif",
      "compatibiliteAP": "Pleine",
      "createdYear": 2023
    },
    {
      "id": "aoderelay",
      "name": "AodeRelay",
      "description": "Relay ActivityPub pour connecter des instances et améliorer la découverte.",
      "category": "dev",
      "protocols": [
        "ActivityPub"
      ],
      "licence": "AGPL-3.0",
      "language": "Rust",
      "site": "https://github.com/Byron/gitoxide",
      "github": "https://github.com/asonix/activitypub-relay",
      "etat": "Actif",
      "compatibiliteAP": "Pleine",
      "createdYear": 2020
    },
    {
      "id": "coracle",
      "name": "Coracle",
      "description": "Client web Nostr haut de gamme avec une interface soignée et des performances optimisées.",
      "category": "nostr",
      "protocols": [
        "Nostr"
      ],
      "licence": "MIT",
      "language": "TypeScript",
      "site": "https://coracle.social/",
      "github": "https://github.com/coracle-social/coracle",
      "etat": "Actif",
      "compatibiliteAP": "Aucune",
      "createdYear": 2023
    },
    {
      "id": "nostrudel",
      "name": "Nostrudel",
      "description": "Client web Nostr avec UX moderne et support avancé des relays.",
      "category": "nostr",
      "protocols": [
        "Nostr"
      ],
      "licence": "MIT",
      "language": "TypeScript",
      "site": "https://nostrudel.ninja/",
      "github": "https://github.com/hzrd149/nostrudel",
      "etat": "Actif",
      "compatibiliteAP": "Aucune",
      "createdYear": 2023
    },
    {
      "id": "lume",
      "name": "Lume",
      "description": "Client desktop Nostr rapide et léger.",
      "category": "nostr",
      "protocols": [
        "Nostr"
      ],
      "licence": "GPL-3.0",
      "language": "Rust",
      "site": "https://lume.nu/",
      "github": "https://github.com/lumehq/lume",
      "etat": "Actif",
      "compatibiliteAP": "Aucune",
      "createdYear": 2023
    },
    {
      "id": "gossip",
      "name": "Gossip",
      "description": "Client desktop Nostr en Rust avec interface native rapide.",
      "category": "nostr",
      "protocols": [
        "Nostr"
      ],
      "licence": "MIT",
      "language": "Rust",
      "site": "https://github.com/mikedilger/gossip",
      "github": "https://github.com/mikedilger/gossip",
      "etat": "Actif",
      "compatibiliteAP": "Aucune",
      "createdYear": 2023
    },
    {
      "id": "current",
      "name": "Current",
      "description": "Client iOS Nostr avec une interface épurée et moderne.",
      "category": "nostr",
      "protocols": [
        "Nostr"
      ],
      "licence": "MIT",
      "language": "Swift",
      "site": "https://getcurrent.io/",
      "github": "https://github.com/current/nostr",
      "etat": "Actif",
      "compatibiliteAP": "Aucune",
      "createdYear": 2023
    },
    {
      "id": "plebstr",
      "name": "Plebstr",
      "description": "Client mobile Nostr pour iOS et Android.",
      "category": "nostr",
      "protocols": [
        "Nostr"
      ],
      "licence": "MIT",
      "language": "TypeScript",
      "site": "https://plebstr.com/",
      "github": "https://github.com/verbiricha/plebstr",
      "etat": "Actif",
      "compatibiliteAP": "Aucune",
      "createdYear": 2023
    },
    {
      "id": "nostrples",
      "name": "Nostrpels",
      "description": "Client Nostr avec support de médias riches et expérience sociale améliorée.",
      "category": "nostr",
      "protocols": [
        "Nostr"
      ],
      "licence": "MIT",
      "language": "TypeScript",
      "site": "https://nostrpels.com/",
      "github": "https://github.com/nostrpels/nostrpels",
      "etat": "Experimental",
      "compatibiliteAP": "Aucune",
      "createdYear": 2024
    },
    {
      "id": "zapstream",
      "name": "ZapStream",
      "description": "Plateforme de streaming live sur Nostr avec Lightning Zaps intégrés.",
      "category": "nostr",
      "protocols": [
        "Nostr"
      ],
      "licence": "MIT",
      "language": "TypeScript",
      "site": "https://zapstream.live/",
      "github": "https://github.com/v0l/zapstream",
      "etat": "Actif",
      "compatibiliteAP": "Aucune",
      "createdYear": 2023
    },
    {
      "id": "nostrcheck",
      "name": "NostrCheck.me",
      "description": "Service de vérification d'identité et de badges pour Nostr.",
      "category": "nostr",
      "protocols": [
        "Nostr"
      ],
      "licence": "MIT",
      "language": "TypeScript",
      "site": "https://nostrcheck.me/",
      "github": "https://github.com/quentintaranpino/nostrcheck-api-ts",
      "etat": "Actif",
      "compatibiliteAP": "Aucune",
      "createdYear": 2023
    },
    {
      "id": "nostrmarket",
      "name": "NostrMarket",
      "description": "Place de marché décentralisée sur Nostr. Commerce P2P avec Lightning.",
      "category": "nostr",
      "protocols": [
        "Nostr"
      ],
      "licence": "MIT",
      "language": "TypeScript",
      "site": "https://github.com/lnbits/nostrmarket",
      "github": "https://github.com/lnbits/nostrmarket",
      "etat": "Actif",
      "compatibiliteAP": "Aucune",
      "createdYear": 2023
    },
    {
      "id": "prosody",
      "name": "Prosody",
      "description": "Serveur XMPP moderne, léger et facile à configurer.",
      "category": "messaging",
      "protocols": [
        "XMPP"
      ],
      "licence": "MIT",
      "language": "Lua",
      "site": "https://prosody.im/",
      "github": "https://github.com/bjc/prosody",
      "etat": "Actif",
      "compatibiliteAP": "Aucune",
      "createdYear": 2008,
      "version": "0.12"
    },
    {
      "id": "ejabberd",
      "name": "ejabberd",
      "description": "Serveur XMPP robuste et scalable utilisé par de grandes plateformes.",
      "category": "messaging",
      "protocols": [
        "XMPP"
      ],
      "licence": "GPL-2.0",
      "language": "Erlang",
      "site": "https://www.ejabberd.im/",
      "github": "https://github.com/processone/ejabberd",
      "etat": "Actif",
      "compatibiliteAP": "Aucune",
      "createdYear": 2002,
      "version": "24.02"
    },
    {
      "id": "openfire",
      "name": "Openfire",
      "description": "Serveur XMPP en Java avec interface d'administration web.",
      "category": "messaging",
      "protocols": [
        "XMPP"
      ],
      "licence": "Apache-2.0",
      "language": "Java",
      "site": "https://www.igniterealtime.org/projects/openfire/",
      "github": "https://github.com/igniterealtime/Openfire",
      "etat": "Actif",
      "compatibiliteAP": "Aucune",
      "createdYear": 2002,
      "version": "4.8"
    },
    {
      "id": "tigase",
      "name": "Tigase",
      "description": "Serveur XMPP en Java avec support avancé de clustering.",
      "category": "messaging",
      "protocols": [
        "XMPP"
      ],
      "licence": "AGPL-3.0",
      "language": "Java",
      "site": "https://tigase.net/",
      "github": "https://github.com/tigase/tigase-server",
      "etat": "Actif",
      "compatibiliteAP": "Aucune",
      "createdYear": 2004
    },
    {
      "id": "conversations",
      "name": "Conversations",
      "description": "Client XMPP Android moderne. Référence du messaging mobile décentralisé.",
      "category": "messaging",
      "protocols": [
        "XMPP"
      ],
      "licence": "GPL-3.0",
      "language": "Java",
      "site": "https://conversations.im/",
      "github": "https://github.com/iNPUTmice/Conversations",
      "etat": "Actif",
      "compatibiliteAP": "Aucune",
      "createdYear": 2014
    },
    {
      "id": "dino",
      "name": "Dino",
      "description": "Client XMPP desktop moderne pour Linux. Interface épurée et moderne.",
      "category": "messaging",
      "protocols": [
        "XMPP"
      ],
      "licence": "GPL-3.0",
      "language": "Vala",
      "site": "https://dino.im/",
      "github": "https://github.com/dino/dino",
      "etat": "Actif",
      "compatibiliteAP": "Aucune",
      "createdYear": 2017
    },
    {
      "id": "gajim",
      "name": "Gajim",
      "description": "Client XMPP desktop complet. Le client de référence historique.",
      "category": "messaging",
      "protocols": [
        "XMPP"
      ],
      "licence": "GPL-3.0",
      "language": "Python",
      "site": "https://gajim.org/",
      "github": "https://dev.gajim.org/gajim/gajim",
      "etat": "Actif",
      "compatibiliteAP": "Aucune",
      "createdYear": 2004
    },
    {
      "id": "monal",
      "name": "Monal",
      "description": "Client XMPP pour iOS et macOS. Le meilleur client Apple pour XMPP.",
      "category": "messaging",
      "protocols": [
        "XMPP"
      ],
      "licence": "BSD",
      "language": "Swift",
      "site": "https://monal-im.org/",
      "github": "https://github.com/monal-im/Monal",
      "etat": "Actif",
      "compatibiliteAP": "Aucune",
      "createdYear": 2010
    },
    {
      "id": "snikket",
      "name": "Snikket",
      "description": "'Le Mastodon du XMPP' — bundle serveur + client qui simplifie XMPP pour le grand public.",
      "category": "messaging",
      "protocols": [
        "XMPP"
      ],
      "licence": "AGPL-3.0",
      "language": "Lua",
      "site": "https://snikket.org/",
      "github": "https://github.com/snikket-im/snikket-server",
      "etat": "Actif",
      "compatibiliteAP": "Aucune",
      "createdYear": 2020
    },
    {
      "id": "movim",
      "name": "Movim",
      "description": "Réseau social basé sur XMPP. Interface web moderne avec microblogging.",
      "category": "messaging",
      "protocols": [
        "XMPP"
      ],
      "licence": "AGPL-3.0",
      "language": "PHP",
      "site": "https://movim.eu/",
      "github": "https://github.com/movim/movim",
      "etat": "Actif",
      "compatibiliteAP": "Aucune",
      "createdYear": 2009
    },
    {
      "id": "jabber",
      "name": "Jabber",
      "description": "Le protocole historique de messagerie instantanée. Ancêtre de XMPP, toujours utilisé.",
      "category": "messaging",
      "protocols": [
        "XMPP"
      ],
      "licence": "Open Standard",
      "language": "Protocol",
      "site": "https://www.jabber.org/",
      "github": "https://www.jabber.org/",
      "etat": "Historique",
      "compatibiliteAP": "Aucune",
      "createdYear": 1999
    },
    {
      "id": "bluesky",
      "name": "Bluesky",
      "description": "Le réseau social décentralisé basé sur AT Protocol. Créé par l'ancienne équipe de Twitter.",
      "category": "social",
      "protocols": [
        "AT Protocol"
      ],
      "licence": "Proprietary",
      "language": "TypeScript",
      "site": "https://bsky.app/",
      "github": "https://github.com/bluesky-social/social-app",
      "etat": "Actif",
      "compatibiliteAP": "Aucune",
      "createdYear": 2023
    },
    {
      "id": "graysky",
      "name": "Graysky",
      "description": "Client alternatif pour Bluesky/AT Protocol. iOS et Android.",
      "category": "social",
      "protocols": [
        "AT Protocol"
      ],
      "licence": "MIT",
      "language": "TypeScript",
      "site": "https://graysky.app/",
      "github": "https://github.com/mozzius/graysky",
      "etat": "Actif",
      "compatibiliteAP": "Aucune",
      "createdYear": 2023
    },
    {
      "id": "tokimeki",
      "name": "Tokimeki",
      "description": "Client web alternatif pour Bluesky avec approche japonaise.",
      "category": "social",
      "protocols": [
        "AT Protocol"
      ],
      "licence": "MIT",
      "language": "TypeScript",
      "site": "https://tokimeki.blue/",
      "github": "https://github.com/spuithori/tokimeki",
      "etat": "Actif",
      "compatibiliteAP": "Aucune",
      "createdYear": 2023
    },
    {
      "id": "briar",
      "name": "Briar",
      "description": "Messagerie P2P via Bluetooth/WiFi/Tor. Fonctionne sans connexion Internet.",
      "category": "messaging",
      "protocols": [
        "Briar Protocol"
      ],
      "licence": "GPL-3.0",
      "language": "Java",
      "site": "https://briarproject.org/",
      "github": "https://code.briarproject.org/briar/briar",
      "etat": "Actif",
      "compatibiliteAP": "Aucune",
      "createdYear": 2018
    },
    {
      "id": "jami",
      "name": "Jami",
      "description": "Communication décentralisée GNU. Messages, appels vidéo, partage d'écran — tout en P2P.",
      "category": "messaging",
      "protocols": [
        "SIP",
        "DHT"
      ],
      "licence": "GPL-3.0",
      "language": "C++",
      "site": "https://jami.net/",
      "github": "https://git.jami.net/savoirfairelinux/ring-project",
      "etat": "Actif",
      "compatibiliteAP": "Aucune",
      "createdYear": 2015
    },
    {
      "id": "cryptpad",
      "name": "CryptPad",
      "description": "Suite bureautique chiffrée de bout en bout. Documents, tableurs, présentations, votes.",
      "category": "collab",
      "protocols": [
        "CryptPad Protocol"
      ],
      "licence": "AGPL-3.0",
      "language": "JavaScript",
      "site": "https://cryptpad.fr/",
      "github": "https://github.com/cryptpad/cryptpad",
      "etat": "Actif",
      "compatibiliteAP": "Aucune",
      "createdYear": 2016,
      "version": "5.3"
    },
    {
      "id": "hedgedoc",
      "name": "HedgeDoc",
      "description": "Édition collaborative de Markdown en temps réel.",
      "category": "collab",
      "protocols": [
        "WebSocket"
      ],
      "licence": "AGPL-3.0",
      "language": "TypeScript",
      "site": "https://hedgedoc.org/",
      "github": "https://github.com/hedgedoc/hedgedoc",
      "etat": "Actif",
      "compatibiliteAP": "Aucune",
      "createdYear": 2016,
      "version": "2.0"
    },
    {
      "id": "immich",
      "name": "Immich",
      "description": "Auto-hébergement de photos et vidéos avec IA. Alternative à Google Photos.",
      "category": "collab",
      "protocols": [
        "REST API"
      ],
      "licence": "AGPL-3.0",
      "language": "TypeScript",
      "site": "https://immich.app/",
      "github": "https://github.com/immich-app/immich",
      "etat": "Actif",
      "compatibiliteAP": "Aucune",
      "createdYear": 2022
    },
    {
      "id": "photoprism",
      "name": "PhotoPrism",
      "description": "Gestion de photos auto-hébergée avec IA. Reconnaissance faciale et classement automatique.",
      "category": "collab",
      "protocols": [
        "REST API"
      ],
      "licence": "AGPL-3.0",
      "language": "Go",
      "site": "https://www.photoprism.app/",
      "github": "https://github.com/photoprism/photoprism",
      "etat": "Actif",
      "compatibiliteAP": "Aucune",
      "createdYear": 2018
    },
    {
      "id": "synapse",
      "name": "Synapse",
      "description": "Serveur Matrix de référence par Element. Le serveur le plus utilisé de l'écosystème Matrix.",
      "category": "collab",
      "protocols": [
        "Matrix Protocol"
      ],
      "licence": "Apache-2.0",
      "language": "Python",
      "site": "https://matrix-org.github.io/synapse/",
      "github": "https://github.com/element-hq/synapse",
      "etat": "Actif",
      "compatibiliteAP": "Aucune",
      "createdYear": 2014
    },
    {
      "id": "dendrite",
      "name": "Dendrite",
      "description": "Serveur Matrix de deuxième génération par Element. Plus léger et performant que Synapse.",
      "category": "collab",
      "protocols": [
        "Matrix Protocol"
      ],
      "licence": "Apache-2.0",
      "language": "Go",
      "site": "https://matrix-org.github.io/dendrite/",
      "github": "https://github.com/element-hq/dendrite",
      "etat": "Actif",
      "compatibiliteAP": "Aucune",
      "createdYear": 2017
    },
    {
      "id": "conduit",
      "name": "Conduit",
      "description": "Serveur Matrix léger en Rust. Alternative rapide et efficace à Synapse.",
      "category": "collab",
      "protocols": [
        "Matrix Protocol"
      ],
      "licence": "Apache-2.0",
      "language": "Rust",
      "site": "https://conduit.rs/",
      "github": "https://gitlab.com/famedly/conduit",
      "etat": "Actif",
      "compatibiliteAP": "Aucune",
      "createdYear": 2020
    },
    {
      "id": "cinny",
      "name": "Cinny",
      "description": "Client web Matrix avec interface moderne et intuitive. Alternative à Element.",
      "category": "collab",
      "protocols": [
        "Matrix Protocol"
      ],
      "licence": "MIT",
      "language": "JavaScript",
      "site": "https://cinny.in/",
      "github": "https://github.com/cinnyapp/cinny",
      "etat": "Actif",
      "compatibiliteAP": "Aucune",
      "createdYear": 2021
    },
    {
      "id": "fluffychat",
      "name": "FluffyChat",
      "description": "Client Matrix pour mobile et desktop. Interface douce et accessible.",
      "category": "collab",
      "protocols": [
        "Matrix Protocol"
      ],
      "licence": "AGPL-3.0",
      "language": "Dart/Flutter",
      "site": "https://fluffychat.im/",
      "github": "https://github.com/krille-chan/fluffychat",
      "etat": "Actif",
      "compatibiliteAP": "Aucune",
      "createdYear": 2019
    },
    {
      "id": "fedibridge",
      "name": "FediBridge",
      "description": "Outil de bridge entre différents réseaux fédérés. Interconnexion multi-protocoles.",
      "category": "dev",
      "protocols": [
        "ActivityPub",
        "XMPP",
        "Matrix"
      ],
      "licence": "MIT",
      "language": "Python",
      "site": "https://github.com/fediverse/fedibridge",
      "github": "https://github.com/fediverse/fedibridge",
      "etat": "Experimental",
      "compatibiliteAP": "Pleine",
      "createdYear": 2023
    },
    {
      "id": "activitypub-relay",
      "name": "ActivityPub Relay",
      "description": "Relay public pour connecter des instances ActivityPub et améliorer la fédération.",
      "category": "dev",
      "protocols": [
        "ActivityPub"
      ],
      "licence": "MIT",
      "language": "Go",
      "site": "https://github.com/yukimochi/ActivityPub-Relay",
      "github": "https://github.com/yukimochi/ActivityPub-Relay",
      "etat": "Actif",
      "compatibiliteAP": "Pleine",
      "createdYear": 2018
    },
    {
      "id": "sepiasearch",
      "name": "Sepia Search",
      "description": "Moteur de recherche fédéré pour PeerTube. Recherche cross-instance.",
      "category": "video",
      "protocols": [
        "ActivityPub"
      ],
      "licence": "AGPL-3.0",
      "language": "TypeScript",
      "site": "https://sepiasearch.org/",
      "github": "https://github.com/framasoft/peertube-plugin-sepiasearch",
      "etat": "Actif",
      "compatibiliteAP": "Pleine",
      "createdYear": 2020
    },
    {
      "id": "simplexchat",
      "name": "SimpleX Chat",
      "description": "Messagerie décentralisée de nouvelle génération sans identifiants d'utilisateur. Protection de la vie privée par défaut avec chiffrement de bout en bout.",
      "category": "messaging",
      "protocols": [
        "SimpleX Messaging Protocol"
      ],
      "licence": "AGPL-3.0",
      "language": "Haskell",
      "site": "https://simplex.chat/",
      "github": "https://github.com/simplex-chat/simplex-chat",
      "etat": "Actif",
      "compatibiliteAP": "Aucune",
      "createdYear": 2020,
      "version": "6.0"
    },
    {
      "id": "nostr-protocol",
      "name": "Nostr Protocol",
      "description": "Protocole simple et ouvert pour créer des réseaux sociaux résistants à la censure, basé sur des relays et des clés cryptographiques.",
      "category": "nostr",
      "protocols": [
        "Nostr"
      ],
      "licence": "Public Domain",
      "language": "Specification",
      "site": "https://nostr.com/",
      "github": "https://github.com/nostr-protocol/nips",
      "etat": "Actif",
      "compatibiliteAP": "Aucune",
      "createdYear": 2019
    },
    {
      "id": "damus",
      "name": "Damus",
      "description": "Client iOS pour Nostr. Le client mobile le plus populaire de l'écosystème Nostr.",
      "category": "nostr",
      "protocols": [
        "Nostr"
      ],
      "licence": "GPL-3.0",
      "language": "Swift",
      "site": "https://damus.io/",
      "github": "https://github.com/damus-io/damus",
      "etat": "Actif",
      "compatibiliteAP": "Aucune",
      "createdYear": 2022
    },
    {
      "id": "amethyst",
      "name": "Amethyst",
      "description": "Client Android pour Nostr. Application native Kotlin avec support complet des NIPs.",
      "category": "nostr",
      "protocols": [
        "Nostr"
      ],
      "licence": "MIT",
      "language": "Kotlin",
      "site": "https://github.com/vitorpamplona/amethyst",
      "github": "https://github.com/vitorpamplona/amethyst",
      "etat": "Actif",
      "compatibiliteAP": "Aucune",
      "createdYear": 2023
    },
    {
      "id": "iris",
      "name": "Iris",
      "description": "Client web pour Nostr. Interface moderne et réactive pour le réseau Nostr.",
      "category": "nostr",
      "protocols": [
        "Nostr"
      ],
      "licence": "MIT",
      "language": "TypeScript",
      "site": "https://iris.to/",
      "github": "https://github.com/irislib/iris-messenger",
      "etat": "Actif",
      "compatibiliteAP": "Aucune",
      "createdYear": 2022
    },
    {
      "id": "primal",
      "name": "Primal",
      "description": "Client Nostr avec un backend optimisé pour des performances ultra-rapides.",
      "category": "nostr",
      "protocols": [
        "Nostr"
      ],
      "licence": "Proprietary",
      "language": "TypeScript",
      "site": "https://primal.net/",
      "github": "https://github.com/PrimalHQ",
      "etat": "Actif",
      "compatibiliteAP": "Aucune",
      "createdYear": 2023
    },
    {
      "id": "habla",
      "name": "Habla.news",
      "description": "Plateforme de publication longue sur Nostr. Alternative à Medium.",
      "category": "nostr",
      "protocols": [
        "Nostr"
      ],
      "licence": "MIT",
      "language": "TypeScript",
      "site": "https://habla.news/",
      "github": "https://github.com/verbiricha/habla.news",
      "etat": "Actif",
      "compatibiliteAP": "Aucune",
      "createdYear": 2023
    },
    {
      "id": "nostrgram",
      "name": "Nostr.band",
      "description": "Moteur de recherche et explorateur pour le réseau Nostr.",
      "category": "nostr",
      "protocols": [
        "Nostr"
      ],
      "licence": "MIT",
      "language": "JavaScript",
      "site": "https://nostr.band/",
      "github": "https://github.com/dtonon/nostr-band",
      "etat": "Actif",
      "compatibiliteAP": "Aucune",
      "createdYear": 2023
    },
    {
      "id": "snort",
      "name": "Snort",
      "description": "Client web Nostr rapide et léger avec support des relays multiples.",
      "category": "nostr",
      "protocols": [
        "Nostr"
      ],
      "licence": "MIT",
      "language": "TypeScript",
      "site": "https://snort.social/",
      "github": "https://github.com/v0l/snort",
      "etat": "Actif",
      "compatibiliteAP": "Aucune",
      "createdYear": 2023
    }
  ],
  "protocols": [
    {
      "id": "activitypub",
      "name": "ActivityPub",
      "description": "Protocole de réseautage social décentralisé recommandé par le W3C. Le standard principal du Fédiverse.",
      "type": "fediverse",
      "statut": "Actif",
      "site": "https://activitypub.rocks/",
      "rfc": "W3C Recommendation"
    },
    {
      "id": "activitystreams",
      "name": "ActivityStreams 2.0",
      "description": "Format de données pour décrire les activités sociales. Base sur laquelle repose ActivityPub.",
      "type": "fediverse",
      "statut": "Actif",
      "rfc": "W3C Recommendation"
    },
    {
      "id": "webfinger",
      "name": "WebFinger",
      "description": "Protocole de découverte d'informations sur les ressources identifiées par des URI web.",
      "type": "fediverse",
      "statut": "Actif",
      "rfc": "RFC 7033"
    },
    {
      "id": "httpsignatures",
      "name": "HTTP Signatures",
      "description": "Mécanisme de signature des requêtes HTTP pour l'authentification entre instances.",
      "type": "fediverse",
      "statut": "Actif",
      "rfc": "IETF Draft"
    },
    {
      "id": "nodeinfo",
      "name": "NodeInfo",
      "description": "Schéma de métadonnées pour décrire les instances fédérées et leurs capacités.",
      "type": "fediverse",
      "statut": "Actif",
      "rfc": "nodeinfo.diaspora.software"
    },
    {
      "id": "zot",
      "name": "Zot / Nomad",
      "description": "Protocole de communications décentralisées avec prise en charge avancée de la privacy et du nomadisme d'identité.",
      "type": "connexe",
      "statut": "Actif",
      "site": "https://zotlabs.org/"
    },
    {
      "id": "diaspora",
      "name": "Diaspora* Protocol",
      "description": "Protocole historique du réseau Diaspora*, précurseur du Fédiverse moderne.",
      "type": "connexe",
      "statut": "Historique"
    },
    {
      "id": "ostatus",
      "name": "OStatus",
      "description": "Suite de protocoles (Atom, Salmon, WebSub) utilisée par les premières plateformes fédérées.",
      "type": "connexe",
      "statut": "Historique"
    },
    {
      "id": "matrix",
      "name": "Matrix Protocol",
      "description": "Protocole ouvert pour la communication temps réel (chat, VoIP). Interopère avec ActivityPub.",
      "type": "connexe",
      "statut": "Actif",
      "site": "https://matrix.org/"
    },
    {
      "id": "xmpp",
      "name": "XMPP",
      "description": "Extensible Messaging and Presence Protocol. Standard historique de messagerie instantanée.",
      "type": "connexe",
      "statut": "Actif",
      "rfc": "RFC 6120"
    },
    {
      "id": "atproto",
      "name": "AT Protocol",
      "description": "Protocole d'identité décentralisé utilisé par Bluesky. Écosystème voisin mais distinct du Fédiverse.",
      "type": "voisin",
      "statut": "En développement",
      "site": "https://atproto.com/"
    },
    {
      "id": "nostr",
      "name": "Nostr",
      "description": "Protocole simple et ouvert pour créer des réseaux sociaux résistants à la censure.",
      "type": "voisin",
      "statut": "En développement",
      "site": "https://nostr.com/"
    }
  ],
  "categories": [
    {
      "id": "social",
      "name": "Réseaux sociaux",
      "icon": "Users",
      "color": "#4CC9F0",
      "description": "Plateformes sociales fédérées"
    },
    {
      "id": "microblog",
      "name": "Microblogging",
      "icon": "MessageSquare",
      "color": "#F9C74F",
      "description": "Micro-blogs et status updates"
    },
    {
      "id": "photo",
      "name": "Photographie",
      "icon": "Camera",
      "color": "#F8961E",
      "description": "Partage de photos et images"
    },
    {
      "id": "video",
      "name": "Vidéo",
      "icon": "Video",
      "color": "#F72585",
      "description": "Streaming et partage vidéo"
    },
    {
      "id": "audio",
      "name": "Audio & Podcast",
      "icon": "Headphones",
      "color": "#B5179E",
      "description": "Musique, podcasts et audio"
    },
    {
      "id": "blog",
      "name": "Blogs",
      "icon": "FileText",
      "color": "#7209B7",
      "description": "Plateformes de blogging"
    },
    {
      "id": "forum",
      "name": "Forums",
      "icon": "MessageCircle",
      "color": "#3A0CA3",
      "description": "Forums et agrégateurs"
    },
    {
      "id": "events",
      "name": "Événements",
      "icon": "Calendar",
      "color": "#4361EE",
      "description": "Gestion d'événements"
    },
    {
      "id": "dev",
      "name": "Développement",
      "icon": "Code",
      "color": "#4CC9F0",
      "description": "Forge et développement logiciel"
    },
    {
      "id": "collab",
      "name": "Collaboration",
      "icon": "FolderOpen",
      "color": "#2EC4B6",
      "description": "Outils collaboratifs et cloud"
    },
    {
      "id": "books",
      "name": "Livres",
      "icon": "BookOpen",
      "color": "#E71D36",
      "description": "Lecture et partage de livres"
    },
    {
      "id": "wiki",
      "name": "Wiki",
      "icon": "Globe",
      "color": "#662E9B",
      "description": "Encyclopédies collaboratives"
    },
    {
      "id": "messaging",
      "name": "Messagerie",
      "icon": "Send",
      "color": "#06D6A0",
      "description": "Messagerie instantanée privée et sécurisée"
    },
    {
      "id": "nostr",
      "name": "Nostr",
      "icon": "Zap",
      "color": "#F7931A",
      "description": "Écosystème Nostr — protocole voisin"
    }
  ],
  "network": {
    "nodes": [
      {
        "id": "Mastodon",
        "group": 1,
        "val": 8,
        "description": "Le réseau social fédéré le plus populaire. Microblogging avec une audience mondiale.",
        "category": "social",
        "color": "#4CC9F0",
        "etat": "Actif",
        "compatibiliteAP": "Pleine",
        "licence": "AGPL-3.0"
      },
      {
        "id": "GoToSocial",
        "group": 1,
        "val": 8,
        "description": "Serveur ActivityPub léger et rapide écrit en Go. Approche minimaliste et efficace.",
        "category": "social",
        "color": "#4CC9F0",
        "etat": "Actif",
        "compatibiliteAP": "Pleine",
        "licence": "AGPL-3.0"
      },
      {
        "id": "Akkoma",
        "group": 1,
        "val": 8,
        "description": "Fork de Pleroma avec des fonctionnalités enrichies et une personnalisation avancée.",
        "category": "social",
        "color": "#4CC9F0",
        "etat": "Actif",
        "compatibiliteAP": "Pleine",
        "licence": "AGPL-3.0"
      },
      {
        "id": "Pleroma",
        "group": 1,
        "val": 8,
        "description": "Serveur ActivityPub léger et hautement configurable. Alternative rapide à Mastodon.",
        "category": "social",
        "color": "#4CC9F0",
        "etat": "Actif",
        "compatibiliteAP": "Pleine",
        "licence": "AGPL-3.0"
      },
      {
        "id": "Misskey",
        "group": 1,
        "val": 8,
        "description": "Plateforme sociale japonaise avec des fonctionnalités créatives (notes, réactions, drive).",
        "category": "social",
        "color": "#4CC9F0",
        "etat": "Actif",
        "compatibiliteAP": "Pleine",
        "licence": "AGPL-3.0"
      },
      {
        "id": "Sharkey",
        "group": 1,
        "val": 8,
        "description": "Fork de Misskey avec des améliorations de performance et de nouvelles fonctionnalités.",
        "category": "social",
        "color": "#4CC9F0",
        "etat": "Actif",
        "compatibiliteAP": "Pleine",
        "licence": "AGPL-3.0"
      },
      {
        "id": "Friendica",
        "group": 1,
        "val": 8,
        "description": "Réseau social décentralisé avec interopérabilité étendue (ActivityPub, Diaspora*, RSS).",
        "category": "social",
        "color": "#4CC9F0",
        "etat": "Actif",
        "compatibiliteAP": "Pleine",
        "licence": "AGPL-3.0"
      },
      {
        "id": "Hubzilla",
        "group": 1,
        "val": 8,
        "description": "Plateforme de communications décentralisées avec contrôle d'accès avancé et nomadisme d'identité.",
        "category": "social",
        "color": "#4CC9F0",
        "etat": "Actif",
        "compatibiliteAP": "Partielle",
        "licence": "MIT"
      },
      {
        "id": "Streams",
        "group": 1,
        "val": 8,
        "description": "Fork de Hubzilla axé sur la privacy et le contrôle granulaire des permissions.",
        "category": "social",
        "color": "#4CC9F0",
        "etat": "Actif",
        "compatibiliteAP": "Partielle",
        "licence": "MIT"
      },
      {
        "id": "Iceshrimp",
        "group": 1,
        "val": 8,
        "description": "Fork de Misskey optimisé pour la performance et la stabilité.",
        "category": "social",
        "color": "#4CC9F0",
        "etat": "Actif",
        "compatibiliteAP": "Pleine",
        "licence": "AGPL-3.0"
      },
      {
        "id": "GNU social",
        "group": 1,
        "val": 5,
        "description": "Pionnier des réseaux sociaux fédérés. Précurseur historique du Fédiverse.",
        "category": "social",
        "color": "#4CC9F0",
        "etat": "Maintenance",
        "compatibiliteAP": "Pleine",
        "licence": "AGPL-3.0"
      },
      {
        "id": "Bonfire",
        "group": 1,
        "val": 8,
        "description": "Réseau social modulaire écrit en Elixir axé sur la gouvernance communautaire.",
        "category": "social",
        "color": "#4CC9F0",
        "etat": "Actif",
        "compatibiliteAP": "Pleine",
        "licence": "AGPL-3.0"
      },
      {
        "id": "microblog.pub",
        "group": 2,
        "val": 8,
        "description": "Serveur ActivityPub minimaliste et auto-hébergeable pour le microblogging.",
        "category": "microblog",
        "color": "#F9C74F",
        "etat": "Actif",
        "compatibiliteAP": "Pleine",
        "licence": "AGPL-3.0"
      },
      {
        "id": "PixelFed",
        "group": 3,
        "val": 8,
        "description": "Plateforme de partage de photos fédérée. Alternative à Instagram.",
        "category": "photo",
        "color": "#F8961E",
        "etat": "Actif",
        "compatibiliteAP": "Pleine",
        "licence": "AGPL-3.0"
      },
      {
        "id": "Vernissage",
        "group": 3,
        "val": 8,
        "description": "Application de galerie photo fédérée pour le Fédiverse.",
        "category": "photo",
        "color": "#F8961E",
        "etat": "Actif",
        "compatibiliteAP": "Pleine",
        "licence": "EUPL-1.2"
      },
      {
        "id": "PeerTube",
        "group": 4,
        "val": 8,
        "description": "Plateforme vidéo fédérée décentralisée. Alternative à YouTube.",
        "category": "video",
        "color": "#F72585",
        "etat": "Actif",
        "compatibiliteAP": "Pleine",
        "licence": "AGPL-3.0"
      },
      {
        "id": "Owncast",
        "group": 4,
        "val": 8,
        "description": "Serveur de streaming live auto-hébergeable. Alternative à Twitch.",
        "category": "video",
        "color": "#F72585",
        "etat": "Actif",
        "compatibiliteAP": "Extension",
        "licence": "MIT"
      },
      {
        "id": "Tube (Framasoft)",
        "group": 4,
        "val": 3,
        "description": "Ancien nom du projet ayant mené à PeerTube.",
        "category": "video",
        "color": "#F72585",
        "etat": "Historique",
        "compatibiliteAP": "Pleine",
        "licence": "AGPL-3.0"
      },
      {
        "id": "Castopod",
        "group": 5,
        "val": 8,
        "description": "Plateforme de podcasting fédérée avec ActivityPub. Alternative à Spotify/Apple Podcasts.",
        "category": "audio",
        "color": "#B5179E",
        "etat": "Actif",
        "compatibiliteAP": "Pleine",
        "licence": "AGPL-3.0"
      },
      {
        "id": "Funkwhale",
        "group": 5,
        "val": 8,
        "description": "Plateforme musicale fédérée pour écouter et partager de la musique.",
        "category": "audio",
        "color": "#B5179E",
        "etat": "Actif",
        "compatibiliteAP": "Pleine",
        "licence": "AGPL-3.0"
      },
      {
        "id": "Loops",
        "group": 4,
        "val": 8,
        "description": "Plateforme de vidéos courtes fédérée. Alternative à TikTok/Instagram Reels.",
        "category": "video",
        "color": "#F72585",
        "etat": "Actif",
        "compatibiliteAP": "Pleine",
        "licence": "AGPL-3.0"
      },
      {
        "id": "Ghost",
        "group": 6,
        "val": 8,
        "description": "Plateforme de publication professionnelle avec support ActivityPub.",
        "category": "blog",
        "color": "#7209B7",
        "etat": "Actif",
        "compatibiliteAP": "Extension",
        "licence": "MIT"
      },
      {
        "id": "WriteFreely",
        "group": 6,
        "val": 8,
        "description": "Plateforme de blogging minimaliste et fédérée axée sur l'écriture.",
        "category": "blog",
        "color": "#7209B7",
        "etat": "Actif",
        "compatibiliteAP": "Pleine",
        "licence": "AGPL-3.0"
      },
      {
        "id": "Plume",
        "group": 6,
        "val": 5,
        "description": "Moteur de blog fédéré axé sur la collaboration et la publication longue.",
        "category": "blog",
        "color": "#7209B7",
        "etat": "Maintenance",
        "compatibiliteAP": "Pleine",
        "licence": "AGPL-3.0"
      },
      {
        "id": "WordPress + ActivityPub",
        "group": 6,
        "val": 8,
        "description": "Plugin ActivityPub pour WordPress permettant de fédérer les publications.",
        "category": "blog",
        "color": "#7209B7",
        "etat": "Actif",
        "compatibiliteAP": "Extension",
        "licence": "MIT"
      },
      {
        "id": "Drupal + ActivityPub",
        "group": 6,
        "val": 8,
        "description": "Module ActivityPub pour Drupal permettant la fédération des contenus.",
        "category": "blog",
        "color": "#7209B7",
        "etat": "Actif",
        "compatibiliteAP": "Extension",
        "licence": "GPL-2.0"
      },
      {
        "id": "Lemmy",
        "group": 7,
        "val": 8,
        "description": "Agrégateur de liens et forum fédéré. Alternative à Reddit.",
        "category": "forum",
        "color": "#3A0CA3",
        "etat": "Actif",
        "compatibiliteAP": "Pleine",
        "licence": "AGPL-3.0"
      },
      {
        "id": "Mbin",
        "group": 7,
        "val": 8,
        "description": "Successeur de kbin, agrégateur de liens fédéré avec des fonctionnalités améliorées.",
        "category": "forum",
        "color": "#3A0CA3",
        "etat": "Actif",
        "compatibiliteAP": "Pleine",
        "licence": "AGPL-3.0"
      },
      {
        "id": "NodeBB",
        "group": 7,
        "val": 8,
        "description": "Forum moderne avec support ActivityPub pour la fédération.",
        "category": "forum",
        "color": "#3A0CA3",
        "etat": "Actif",
        "compatibiliteAP": "Extension",
        "licence": "GPL-3.0"
      },
      {
        "id": "Mobilizon",
        "group": 8,
        "val": 8,
        "description": "Plateforme d\\événements fédérée pour organiser et découvrir des événements.",
        "category": "events",
        "color": "#4361EE",
        "etat": "Actif",
        "compatibiliteAP": "Pleine",
        "licence": "AGPL-3.0"
      },
      {
        "id": "Gancio",
        "group": 8,
        "val": 8,
        "description": "Agrégateur d\\événements fédéré auto-hébergeable.",
        "category": "events",
        "color": "#4361EE",
        "etat": "Actif",
        "compatibiliteAP": "Pleine",
        "licence": "AGPL-3.0"
      },
      {
        "id": "Forgejo",
        "group": 9,
        "val": 8,
        "description": "Forge logicielle libre forkée de Gitea. Support ActivityPub en développement.",
        "category": "dev",
        "color": "#4CC9F0",
        "etat": "Actif",
        "compatibiliteAP": "En développement",
        "licence": "MIT"
      },
      {
        "id": "Gitea",
        "group": 9,
        "val": 8,
        "description": "Forge logicielle légère et rapide avec support ActivityPub via plugin.",
        "category": "dev",
        "color": "#4CC9F0",
        "etat": "Actif",
        "compatibiliteAP": "Extension",
        "licence": "MIT"
      },
      {
        "id": "Nextcloud",
        "group": 10,
        "val": 8,
        "description": "Suite de collaboration cloud auto-hébergeable avec support ActivityPub.",
        "category": "collab",
        "color": "#2EC4B6",
        "etat": "Actif",
        "compatibiliteAP": "Extension",
        "licence": "AGPL-3.0"
      },
      {
        "id": "ownCloud",
        "group": 10,
        "val": 8,
        "description": "Plateforme de partage de fichiers et de collaboration en ligne.",
        "category": "collab",
        "color": "#2EC4B6",
        "etat": "Actif",
        "compatibiliteAP": "Extension",
        "licence": "AGPL-3.0"
      },
      {
        "id": "BookWyrm",
        "group": 11,
        "val": 8,
        "description": "Réseau social de lecture fédéré. Alternative à Goodreads.",
        "category": "books",
        "color": "#E71D36",
        "etat": "Actif",
        "compatibiliteAP": "Pleine",
        "licence": "AGPL-3.0"
      },
      {
        "id": "Wikidata",
        "group": 12,
        "val": 8,
        "description": "Base de connaissances libre et collaborative structurée.",
        "category": "wiki",
        "color": "#662E9B",
        "etat": "Actif",
        "compatibiliteAP": "Partielle",
        "licence": "CC0"
      },
      {
        "id": "Diaspora*",
        "group": 1,
        "val": 5,
        "description": "Réseau social décentralisé historique. Précurseur du Fédiverse moderne.",
        "category": "social",
        "color": "#4CC9F0",
        "etat": "Maintenance",
        "compatibiliteAP": "Aucune",
        "licence": "AGPL-3.0"
      },
      {
        "id": "Element",
        "group": 10,
        "val": 8,
        "description": "Client Matrix pour la messagerie temps réel fédérée.",
        "category": "collab",
        "color": "#2EC4B6",
        "etat": "Actif",
        "compatibiliteAP": "Aucune",
        "licence": "Apache-2.0"
      },
      {
        "id": "Fedify",
        "group": 9,
        "val": 8,
        "description": "Framework TypeScript/Deno pour construire des serveurs ActivityPub.",
        "category": "dev",
        "color": "#4CC9F0",
        "etat": "Actif",
        "compatibiliteAP": "Pleine",
        "licence": "MIT"
      },
      {
        "id": "Mitra",
        "group": 1,
        "val": 8,
        "description": "Serveur ActivityPub écrit en Rust avec support des monnaies complémentaires.",
        "category": "social",
        "color": "#4CC9F0",
        "etat": "Actif",
        "compatibiliteAP": "Pleine",
        "licence": "AGPL-3.0"
      },
      {
        "id": "Socialhome",
        "group": 1,
        "val": 5,
        "description": "Réseau social fédéré avec un flux de contenu personnalisable.",
        "category": "social",
        "color": "#4CC9F0",
        "etat": "Maintenance",
        "compatibiliteAP": "Partielle",
        "licence": "AGPL-3.0"
      },
      {
        "id": "kbin",
        "group": 7,
        "val": 3,
        "description": "Agrégateur de contenu fédéré. Prédécesseur de Mbin.",
        "category": "forum",
        "color": "#3A0CA3",
        "etat": "Historique",
        "compatibiliteAP": "Pleine",
        "licence": "AGPL-3.0"
      },
      {
        "id": "Epicyon",
        "group": 1,
        "val": 8,
        "description": "Serveur ActivityPub minimaliste avec approche low-tech. Conçu pour les petites instances communautaires.",
        "category": "social",
        "color": "#4CC9F0",
        "etat": "Actif",
        "compatibiliteAP": "Pleine",
        "licence": "AGPL-3.0"
      },
      {
        "id": "Takahē",
        "group": 1,
        "val": 8,
        "description": "Serveur ActivityPub multi-domaine moderne. Permet d'héberger plusieurs domaines sur une seule instance.",
        "category": "social",
        "color": "#4CC9F0",
        "etat": "Actif",
        "compatibiliteAP": "Pleine",
        "licence": "BSD"
      },
      {
        "id": "Smithereen",
        "group": 1,
        "val": 8,
        "description": "Serveur ActivityPub axé sur les réseaux sociaux avec interface style VKontakte.",
        "category": "social",
        "color": "#4CC9F0",
        "etat": "Actif",
        "compatibiliteAP": "Pleine",
        "licence": "AGPL-3.0"
      },
      {
        "id": "Kroeg",
        "group": 1,
        "val": 3,
        "description": "Serveur ActivityPub en Rust avec architecture modulaire et extensible.",
        "category": "social",
        "color": "#4CC9F0",
        "etat": "Experimental",
        "compatibiliteAP": "Pleine",
        "licence": "MIT"
      },
      {
        "id": "Lotide",
        "group": 7,
        "val": 8,
        "description": "Agrégateur de liens fédéré léger. Alternative minimaliste à Lemmy.",
        "category": "forum",
        "color": "#3A0CA3",
        "etat": "Actif",
        "compatibiliteAP": "Pleine",
        "licence": "AGPL-3.0"
      },
      {
        "id": "Sublinks",
        "group": 7,
        "val": 8,
        "description": "Plateforme de forums fédérée. Fork moderne de Lemmy avec des améliorations significatives.",
        "category": "forum",
        "color": "#3A0CA3",
        "etat": "Actif",
        "compatibiliteAP": "Pleine",
        "licence": "AGPL-3.0"
      },
      {
        "id": "RoadHouse",
        "group": 7,
        "val": 3,
        "description": "Plateforme de forums fédérée avec une approche communautaire différente.",
        "category": "forum",
        "color": "#3A0CA3",
        "etat": "Experimental",
        "compatibiliteAP": "Pleine",
        "licence": "AGPL-3.0"
      },
      {
        "id": "Pieoneers",
        "group": 1,
        "val": 3,
        "description": "Plateforme de partage de recettes fédérée avec ActivityPub.",
        "category": "social",
        "color": "#4CC9F0",
        "etat": "Experimental",
        "compatibiliteAP": "Pleine",
        "licence": "MIT"
      },
      {
        "id": "WordPress MU + ActivityPub",
        "group": 6,
        "val": 8,
        "description": "Plugin ActivityPub pour WordPress Multisite. Permet de fédérer des réseaux de blogs.",
        "category": "blog",
        "color": "#7209B7",
        "etat": "Actif",
        "compatibiliteAP": "Extension",
        "licence": "MIT"
      },
      {
        "id": "Emissary",
        "group": 1,
        "val": 8,
        "description": "Serveur ActivityPub modulaire avec support de streams et de collections.",
        "category": "social",
        "color": "#4CC9F0",
        "etat": "Actif",
        "compatibiliteAP": "Pleine",
        "licence": "MIT"
      },
      {
        "id": "Hometown",
        "group": 1,
        "val": 8,
        "description": "Fork de Mastodon avec des fonctionnalités communautaires additionnelles.",
        "category": "social",
        "color": "#4CC9F0",
        "etat": "Actif",
        "compatibiliteAP": "Pleine",
        "licence": "AGPL-3.0"
      },
      {
        "id": "GlitchSoc",
        "group": 1,
        "val": 8,
        "description": "Fork de Mastodon avec des fonctionnalités expérimentales et une customisation poussée.",
        "category": "social",
        "color": "#4CC9F0",
        "etat": "Actif",
        "compatibiliteAP": "Pleine",
        "licence": "AGPL-3.0"
      },
      {
        "id": "Akkoma-FE",
        "group": 1,
        "val": 8,
        "description": "Frontend alternatif pour Akkoma avec des améliorations UI/UX.",
        "category": "social",
        "color": "#4CC9F0",
        "etat": "Actif",
        "compatibiliteAP": "Pleine",
        "licence": "AGPL-3.0"
      },
      {
        "id": "Postmarks",
        "group": 1,
        "val": 8,
        "description": "Système de bookmarks/bookmarques fédéré avec ActivityPub. Partagez vos signets.",
        "category": "social",
        "color": "#4CC9F0",
        "etat": "Actif",
        "compatibiliteAP": "Pleine",
        "licence": "MIT"
      },
      {
        "id": "AodeRelay",
        "group": 9,
        "val": 8,
        "description": "Relay ActivityPub pour connecter des instances et améliorer la découverte.",
        "category": "dev",
        "color": "#4CC9F0",
        "etat": "Actif",
        "compatibiliteAP": "Pleine",
        "licence": "AGPL-3.0"
      },
      {
        "id": "Coracle",
        "group": 14,
        "val": 8,
        "description": "Client web Nostr haut de gamme avec une interface soignée et des performances optimisées.",
        "category": "nostr",
        "color": "#F7931A",
        "etat": "Actif",
        "compatibiliteAP": "Aucune",
        "licence": "MIT"
      },
      {
        "id": "Nostrudel",
        "group": 14,
        "val": 8,
        "description": "Client web Nostr avec UX moderne et support avancé des relays.",
        "category": "nostr",
        "color": "#F7931A",
        "etat": "Actif",
        "compatibiliteAP": "Aucune",
        "licence": "MIT"
      },
      {
        "id": "Lume",
        "group": 14,
        "val": 8,
        "description": "Client desktop Nostr rapide et léger.",
        "category": "nostr",
        "color": "#F7931A",
        "etat": "Actif",
        "compatibiliteAP": "Aucune",
        "licence": "GPL-3.0"
      },
      {
        "id": "Gossip",
        "group": 14,
        "val": 8,
        "description": "Client desktop Nostr en Rust avec interface native rapide.",
        "category": "nostr",
        "color": "#F7931A",
        "etat": "Actif",
        "compatibiliteAP": "Aucune",
        "licence": "MIT"
      },
      {
        "id": "Current",
        "group": 14,
        "val": 8,
        "description": "Client iOS Nostr avec une interface épurée et moderne.",
        "category": "nostr",
        "color": "#F7931A",
        "etat": "Actif",
        "compatibiliteAP": "Aucune",
        "licence": "MIT"
      },
      {
        "id": "Plebstr",
        "group": 14,
        "val": 8,
        "description": "Client mobile Nostr pour iOS et Android.",
        "category": "nostr",
        "color": "#F7931A",
        "etat": "Actif",
        "compatibiliteAP": "Aucune",
        "licence": "MIT"
      },
      {
        "id": "Nostrpels",
        "group": 14,
        "val": 3,
        "description": "Client Nostr avec support de médias riches et expérience sociale améliorée.",
        "category": "nostr",
        "color": "#F7931A",
        "etat": "Experimental",
        "compatibiliteAP": "Aucune",
        "licence": "MIT"
      },
      {
        "id": "ZapStream",
        "group": 14,
        "val": 8,
        "description": "Plateforme de streaming live sur Nostr avec Lightning Zaps intégrés.",
        "category": "nostr",
        "color": "#F7931A",
        "etat": "Actif",
        "compatibiliteAP": "Aucune",
        "licence": "MIT"
      },
      {
        "id": "NostrCheck.me",
        "group": 14,
        "val": 8,
        "description": "Service de vérification d'identité et de badges pour Nostr.",
        "category": "nostr",
        "color": "#F7931A",
        "etat": "Actif",
        "compatibiliteAP": "Aucune",
        "licence": "MIT"
      },
      {
        "id": "NostrMarket",
        "group": 14,
        "val": 8,
        "description": "Place de marché décentralisée sur Nostr. Commerce P2P avec Lightning.",
        "category": "nostr",
        "color": "#F7931A",
        "etat": "Actif",
        "compatibiliteAP": "Aucune",
        "licence": "MIT"
      },
      {
        "id": "Prosody",
        "group": 13,
        "val": 8,
        "description": "Serveur XMPP moderne, léger et facile à configurer.",
        "category": "messaging",
        "color": "#06D6A0",
        "etat": "Actif",
        "compatibiliteAP": "Aucune",
        "licence": "MIT"
      },
      {
        "id": "ejabberd",
        "group": 13,
        "val": 8,
        "description": "Serveur XMPP robuste et scalable utilisé par de grandes plateformes.",
        "category": "messaging",
        "color": "#06D6A0",
        "etat": "Actif",
        "compatibiliteAP": "Aucune",
        "licence": "GPL-2.0"
      },
      {
        "id": "Openfire",
        "group": 13,
        "val": 8,
        "description": "Serveur XMPP en Java avec interface d'administration web.",
        "category": "messaging",
        "color": "#06D6A0",
        "etat": "Actif",
        "compatibiliteAP": "Aucune",
        "licence": "Apache-2.0"
      },
      {
        "id": "Tigase",
        "group": 13,
        "val": 8,
        "description": "Serveur XMPP en Java avec support avancé de clustering.",
        "category": "messaging",
        "color": "#06D6A0",
        "etat": "Actif",
        "compatibiliteAP": "Aucune",
        "licence": "AGPL-3.0"
      },
      {
        "id": "Conversations",
        "group": 13,
        "val": 8,
        "description": "Client XMPP Android moderne. Référence du messaging mobile décentralisé.",
        "category": "messaging",
        "color": "#06D6A0",
        "etat": "Actif",
        "compatibiliteAP": "Aucune",
        "licence": "GPL-3.0"
      },
      {
        "id": "Dino",
        "group": 13,
        "val": 8,
        "description": "Client XMPP desktop moderne pour Linux. Interface épurée et moderne.",
        "category": "messaging",
        "color": "#06D6A0",
        "etat": "Actif",
        "compatibiliteAP": "Aucune",
        "licence": "GPL-3.0"
      },
      {
        "id": "Gajim",
        "group": 13,
        "val": 8,
        "description": "Client XMPP desktop complet. Le client de référence historique.",
        "category": "messaging",
        "color": "#06D6A0",
        "etat": "Actif",
        "compatibiliteAP": "Aucune",
        "licence": "GPL-3.0"
      },
      {
        "id": "Monal",
        "group": 13,
        "val": 8,
        "description": "Client XMPP pour iOS et macOS. Le meilleur client Apple pour XMPP.",
        "category": "messaging",
        "color": "#06D6A0",
        "etat": "Actif",
        "compatibiliteAP": "Aucune",
        "licence": "BSD"
      },
      {
        "id": "Snikket",
        "group": 13,
        "val": 8,
        "description": "'Le Mastodon du XMPP' — bundle serveur + client qui simplifie XMPP pour le grand public.",
        "category": "messaging",
        "color": "#06D6A0",
        "etat": "Actif",
        "compatibiliteAP": "Aucune",
        "licence": "AGPL-3.0"
      },
      {
        "id": "Movim",
        "group": 13,
        "val": 8,
        "description": "Réseau social basé sur XMPP. Interface web moderne avec microblogging.",
        "category": "messaging",
        "color": "#06D6A0",
        "etat": "Actif",
        "compatibiliteAP": "Aucune",
        "licence": "AGPL-3.0"
      },
      {
        "id": "Jabber",
        "group": 13,
        "val": 3,
        "description": "Le protocole historique de messagerie instantanée. Ancêtre de XMPP, toujours utilisé.",
        "category": "messaging",
        "color": "#06D6A0",
        "etat": "Historique",
        "compatibiliteAP": "Aucune",
        "licence": "Open Standard"
      },
      {
        "id": "Bluesky",
        "group": 1,
        "val": 8,
        "description": "Le réseau social décentralisé basé sur AT Protocol. Créé par l'ancienne équipe de Twitter.",
        "category": "social",
        "color": "#4CC9F0",
        "etat": "Actif",
        "compatibiliteAP": "Aucune",
        "licence": "Proprietary"
      },
      {
        "id": "Graysky",
        "group": 1,
        "val": 8,
        "description": "Client alternatif pour Bluesky/AT Protocol. iOS et Android.",
        "category": "social",
        "color": "#4CC9F0",
        "etat": "Actif",
        "compatibiliteAP": "Aucune",
        "licence": "MIT"
      },
      {
        "id": "Tokimeki",
        "group": 1,
        "val": 8,
        "description": "Client web alternatif pour Bluesky avec approche japonaise.",
        "category": "social",
        "color": "#4CC9F0",
        "etat": "Actif",
        "compatibiliteAP": "Aucune",
        "licence": "MIT"
      },
      {
        "id": "Briar",
        "group": 13,
        "val": 8,
        "description": "Messagerie P2P via Bluetooth/WiFi/Tor. Fonctionne sans connexion Internet.",
        "category": "messaging",
        "color": "#06D6A0",
        "etat": "Actif",
        "compatibiliteAP": "Aucune",
        "licence": "GPL-3.0"
      },
      {
        "id": "Jami",
        "group": 13,
        "val": 8,
        "description": "Communication décentralisée GNU. Messages, appels vidéo, partage d'écran — tout en P2P.",
        "category": "messaging",
        "color": "#06D6A0",
        "etat": "Actif",
        "compatibiliteAP": "Aucune",
        "licence": "GPL-3.0"
      },
      {
        "id": "CryptPad",
        "group": 10,
        "val": 8,
        "description": "Suite bureautique chiffrée de bout en bout. Documents, tableurs, présentations, votes.",
        "category": "collab",
        "color": "#2EC4B6",
        "etat": "Actif",
        "compatibiliteAP": "Aucune",
        "licence": "AGPL-3.0"
      },
      {
        "id": "HedgeDoc",
        "group": 10,
        "val": 8,
        "description": "Édition collaborative de Markdown en temps réel.",
        "category": "collab",
        "color": "#2EC4B6",
        "etat": "Actif",
        "compatibiliteAP": "Aucune",
        "licence": "AGPL-3.0"
      },
      {
        "id": "Immich",
        "group": 10,
        "val": 8,
        "description": "Auto-hébergement de photos et vidéos avec IA. Alternative à Google Photos.",
        "category": "collab",
        "color": "#2EC4B6",
        "etat": "Actif",
        "compatibiliteAP": "Aucune",
        "licence": "AGPL-3.0"
      },
      {
        "id": "PhotoPrism",
        "group": 10,
        "val": 8,
        "description": "Gestion de photos auto-hébergée avec IA. Reconnaissance faciale et classement automatique.",
        "category": "collab",
        "color": "#2EC4B6",
        "etat": "Actif",
        "compatibiliteAP": "Aucune",
        "licence": "AGPL-3.0"
      },
      {
        "id": "Synapse",
        "group": 10,
        "val": 8,
        "description": "Serveur Matrix de référence par Element. Le serveur le plus utilisé de l'écosystème Matrix.",
        "category": "collab",
        "color": "#2EC4B6",
        "etat": "Actif",
        "compatibiliteAP": "Aucune",
        "licence": "Apache-2.0"
      },
      {
        "id": "Dendrite",
        "group": 10,
        "val": 8,
        "description": "Serveur Matrix de deuxième génération par Element. Plus léger et performant que Synapse.",
        "category": "collab",
        "color": "#2EC4B6",
        "etat": "Actif",
        "compatibiliteAP": "Aucune",
        "licence": "Apache-2.0"
      },
      {
        "id": "Conduit",
        "group": 10,
        "val": 8,
        "description": "Serveur Matrix léger en Rust. Alternative rapide et efficace à Synapse.",
        "category": "collab",
        "color": "#2EC4B6",
        "etat": "Actif",
        "compatibiliteAP": "Aucune",
        "licence": "Apache-2.0"
      },
      {
        "id": "Cinny",
        "group": 10,
        "val": 8,
        "description": "Client web Matrix avec interface moderne et intuitive. Alternative à Element.",
        "category": "collab",
        "color": "#2EC4B6",
        "etat": "Actif",
        "compatibiliteAP": "Aucune",
        "licence": "MIT"
      },
      {
        "id": "FluffyChat",
        "group": 10,
        "val": 8,
        "description": "Client Matrix pour mobile et desktop. Interface douce et accessible.",
        "category": "collab",
        "color": "#2EC4B6",
        "etat": "Actif",
        "compatibiliteAP": "Aucune",
        "licence": "AGPL-3.0"
      },
      {
        "id": "FediBridge",
        "group": 9,
        "val": 3,
        "description": "Outil de bridge entre différents réseaux fédérés. Interconnexion multi-protocoles.",
        "category": "dev",
        "color": "#4CC9F0",
        "etat": "Experimental",
        "compatibiliteAP": "Pleine",
        "licence": "MIT"
      },
      {
        "id": "ActivityPub Relay",
        "group": 9,
        "val": 8,
        "description": "Relay public pour connecter des instances ActivityPub et améliorer la fédération.",
        "category": "dev",
        "color": "#4CC9F0",
        "etat": "Actif",
        "compatibiliteAP": "Pleine",
        "licence": "MIT"
      },
      {
        "id": "Sepia Search",
        "group": 4,
        "val": 8,
        "description": "Moteur de recherche fédéré pour PeerTube. Recherche cross-instance.",
        "category": "video",
        "color": "#F72585",
        "etat": "Actif",
        "compatibiliteAP": "Pleine",
        "licence": "AGPL-3.0"
      },
      {
        "id": "SimpleX Chat",
        "group": 13,
        "val": 8,
        "description": "Messagerie décentralisée de nouvelle génération sans identifiants d'utilisateur. Protection de la vie privée par défaut avec chiffrement de bout en bout.",
        "category": "messaging",
        "color": "#06D6A0",
        "etat": "Actif",
        "compatibiliteAP": "Aucune",
        "licence": "AGPL-3.0"
      },
      {
        "id": "Nostr Protocol",
        "group": 14,
        "val": 8,
        "description": "Protocole simple et ouvert pour créer des réseaux sociaux résistants à la censure, basé sur des relays et des clés cryptographiques.",
        "category": "nostr",
        "color": "#F7931A",
        "etat": "Actif",
        "compatibiliteAP": "Aucune",
        "licence": "Public Domain"
      },
      {
        "id": "Damus",
        "group": 14,
        "val": 8,
        "description": "Client iOS pour Nostr. Le client mobile le plus populaire de l'écosystème Nostr.",
        "category": "nostr",
        "color": "#F7931A",
        "etat": "Actif",
        "compatibiliteAP": "Aucune",
        "licence": "GPL-3.0"
      },
      {
        "id": "Amethyst",
        "group": 14,
        "val": 8,
        "description": "Client Android pour Nostr. Application native Kotlin avec support complet des NIPs.",
        "category": "nostr",
        "color": "#F7931A",
        "etat": "Actif",
        "compatibiliteAP": "Aucune",
        "licence": "MIT"
      },
      {
        "id": "Iris",
        "group": 14,
        "val": 8,
        "description": "Client web pour Nostr. Interface moderne et réactive pour le réseau Nostr.",
        "category": "nostr",
        "color": "#F7931A",
        "etat": "Actif",
        "compatibiliteAP": "Aucune",
        "licence": "MIT"
      },
      {
        "id": "Primal",
        "group": 14,
        "val": 8,
        "description": "Client Nostr avec un backend optimisé pour des performances ultra-rapides.",
        "category": "nostr",
        "color": "#F7931A",
        "etat": "Actif",
        "compatibiliteAP": "Aucune",
        "licence": "Proprietary"
      },
      {
        "id": "Habla.news",
        "group": 14,
        "val": 8,
        "description": "Plateforme de publication longue sur Nostr. Alternative à Medium.",
        "category": "nostr",
        "color": "#F7931A",
        "etat": "Actif",
        "compatibiliteAP": "Aucune",
        "licence": "MIT"
      },
      {
        "id": "Nostr.band",
        "group": 14,
        "val": 8,
        "description": "Moteur de recherche et explorateur pour le réseau Nostr.",
        "category": "nostr",
        "color": "#F7931A",
        "etat": "Actif",
        "compatibiliteAP": "Aucune",
        "licence": "MIT"
      },
      {
        "id": "Snort",
        "group": 14,
        "val": 8,
        "description": "Client web Nostr rapide et léger avec support des relays multiples.",
        "category": "nostr",
        "color": "#F7931A",
        "etat": "Actif",
        "compatibiliteAP": "Aucune",
        "licence": "MIT"
      }
    ],
    "links": [
      {
        "source": "Mastodon",
        "target": "GoToSocial",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Mastodon",
        "target": "Akkoma",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Mastodon",
        "target": "Pleroma",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Mastodon",
        "target": "Misskey",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Mastodon",
        "target": "Sharkey",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Mastodon",
        "target": "Friendica",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Mastodon",
        "target": "Hubzilla",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Mastodon",
        "target": "Streams",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Mastodon",
        "target": "Iceshrimp",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Mastodon",
        "target": "GNU social",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Mastodon",
        "target": "Bonfire",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Mastodon",
        "target": "Castopod",
        "type": "strong"
      },
      {
        "source": "Mastodon",
        "target": "Diaspora*",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Mastodon",
        "target": "Fedify",
        "type": "strong"
      },
      {
        "source": "Mastodon",
        "target": "Mitra",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Mastodon",
        "target": "Socialhome",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Mastodon",
        "target": "Epicyon",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Mastodon",
        "target": "Takahē",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Mastodon",
        "target": "Smithereen",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Mastodon",
        "target": "Kroeg",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Mastodon",
        "target": "Pieoneers",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Mastodon",
        "target": "Emissary",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Mastodon",
        "target": "Hometown",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Mastodon",
        "target": "GlitchSoc",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Mastodon",
        "target": "Akkoma-FE",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Mastodon",
        "target": "Postmarks",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Mastodon",
        "target": "Bluesky",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Mastodon",
        "target": "Graysky",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Mastodon",
        "target": "Tokimeki",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "GoToSocial",
        "target": "Akkoma",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "GoToSocial",
        "target": "Pleroma",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "GoToSocial",
        "target": "Misskey",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "GoToSocial",
        "target": "Sharkey",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "GoToSocial",
        "target": "Friendica",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "GoToSocial",
        "target": "Hubzilla",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "GoToSocial",
        "target": "Streams",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "GoToSocial",
        "target": "Iceshrimp",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "GoToSocial",
        "target": "GNU social",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "GoToSocial",
        "target": "Bonfire",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "GoToSocial",
        "target": "Diaspora*",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "GoToSocial",
        "target": "Mitra",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "GoToSocial",
        "target": "Socialhome",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "GoToSocial",
        "target": "Epicyon",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "GoToSocial",
        "target": "Takahē",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "GoToSocial",
        "target": "Smithereen",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "GoToSocial",
        "target": "Kroeg",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "GoToSocial",
        "target": "RoadHouse",
        "type": "strong"
      },
      {
        "source": "GoToSocial",
        "target": "Pieoneers",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "GoToSocial",
        "target": "Emissary",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "GoToSocial",
        "target": "Hometown",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "GoToSocial",
        "target": "GlitchSoc",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "GoToSocial",
        "target": "Akkoma-FE",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "GoToSocial",
        "target": "Postmarks",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "GoToSocial",
        "target": "Bluesky",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "GoToSocial",
        "target": "Graysky",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "GoToSocial",
        "target": "Tokimeki",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Akkoma",
        "target": "Pleroma",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Akkoma",
        "target": "Misskey",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Akkoma",
        "target": "Sharkey",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Akkoma",
        "target": "Friendica",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Akkoma",
        "target": "Hubzilla",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Akkoma",
        "target": "Streams",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Akkoma",
        "target": "Iceshrimp",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Akkoma",
        "target": "GNU social",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Akkoma",
        "target": "Bonfire",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Akkoma",
        "target": "PeerTube",
        "type": "strong"
      },
      {
        "source": "Akkoma",
        "target": "Funkwhale",
        "type": "strong"
      },
      {
        "source": "Akkoma",
        "target": "Mbin",
        "type": "strong"
      },
      {
        "source": "Akkoma",
        "target": "Diaspora*",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Akkoma",
        "target": "Fedify",
        "type": "strong"
      },
      {
        "source": "Akkoma",
        "target": "Mitra",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Akkoma",
        "target": "Socialhome",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Akkoma",
        "target": "Epicyon",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Akkoma",
        "target": "Takahē",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Akkoma",
        "target": "Smithereen",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Akkoma",
        "target": "Kroeg",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Akkoma",
        "target": "Pieoneers",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Akkoma",
        "target": "Emissary",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Akkoma",
        "target": "Hometown",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Akkoma",
        "target": "GlitchSoc",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Akkoma",
        "target": "Akkoma-FE",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Akkoma",
        "target": "Postmarks",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Akkoma",
        "target": "AodeRelay",
        "type": "strong"
      },
      {
        "source": "Akkoma",
        "target": "Bluesky",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Akkoma",
        "target": "Graysky",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Akkoma",
        "target": "Tokimeki",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Pleroma",
        "target": "Misskey",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Pleroma",
        "target": "Sharkey",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Pleroma",
        "target": "Friendica",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Pleroma",
        "target": "Hubzilla",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Pleroma",
        "target": "Streams",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Pleroma",
        "target": "Iceshrimp",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Pleroma",
        "target": "GNU social",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Pleroma",
        "target": "Bonfire",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Pleroma",
        "target": "Castopod",
        "type": "strong"
      },
      {
        "source": "Pleroma",
        "target": "BookWyrm",
        "type": "strong"
      },
      {
        "source": "Pleroma",
        "target": "Diaspora*",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Pleroma",
        "target": "Mitra",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Pleroma",
        "target": "Socialhome",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Pleroma",
        "target": "Epicyon",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Pleroma",
        "target": "Takahē",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Pleroma",
        "target": "Smithereen",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Pleroma",
        "target": "Kroeg",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Pleroma",
        "target": "Lotide",
        "type": "strong"
      },
      {
        "source": "Pleroma",
        "target": "Pieoneers",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Pleroma",
        "target": "Emissary",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Pleroma",
        "target": "Hometown",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Pleroma",
        "target": "GlitchSoc",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Pleroma",
        "target": "Akkoma-FE",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Pleroma",
        "target": "Postmarks",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Pleroma",
        "target": "Bluesky",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Pleroma",
        "target": "Graysky",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Pleroma",
        "target": "Tokimeki",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Misskey",
        "target": "Sharkey",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Misskey",
        "target": "Friendica",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Misskey",
        "target": "Hubzilla",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Misskey",
        "target": "Streams",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Misskey",
        "target": "Iceshrimp",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Misskey",
        "target": "GNU social",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Misskey",
        "target": "Bonfire",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Misskey",
        "target": "Castopod",
        "type": "strong"
      },
      {
        "source": "Misskey",
        "target": "Funkwhale",
        "type": "strong"
      },
      {
        "source": "Misskey",
        "target": "Diaspora*",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Misskey",
        "target": "Mitra",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Misskey",
        "target": "Socialhome",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Misskey",
        "target": "kbin",
        "type": "strong"
      },
      {
        "source": "Misskey",
        "target": "Epicyon",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Misskey",
        "target": "Takahē",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Misskey",
        "target": "Smithereen",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Misskey",
        "target": "Kroeg",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Misskey",
        "target": "Sublinks",
        "type": "strong"
      },
      {
        "source": "Misskey",
        "target": "Pieoneers",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Misskey",
        "target": "Emissary",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Misskey",
        "target": "Hometown",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Misskey",
        "target": "GlitchSoc",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Misskey",
        "target": "Akkoma-FE",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Misskey",
        "target": "Postmarks",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Misskey",
        "target": "Bluesky",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Misskey",
        "target": "Graysky",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Misskey",
        "target": "Tokimeki",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Sharkey",
        "target": "Friendica",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Sharkey",
        "target": "Hubzilla",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Sharkey",
        "target": "Streams",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Sharkey",
        "target": "Iceshrimp",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Sharkey",
        "target": "GNU social",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Sharkey",
        "target": "Bonfire",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Sharkey",
        "target": "PeerTube",
        "type": "strong"
      },
      {
        "source": "Sharkey",
        "target": "Loops",
        "type": "strong"
      },
      {
        "source": "Sharkey",
        "target": "WriteFreely",
        "type": "strong"
      },
      {
        "source": "Sharkey",
        "target": "BookWyrm",
        "type": "strong"
      },
      {
        "source": "Sharkey",
        "target": "Diaspora*",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Sharkey",
        "target": "Mitra",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Sharkey",
        "target": "Socialhome",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Sharkey",
        "target": "Epicyon",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Sharkey",
        "target": "Takahē",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Sharkey",
        "target": "Smithereen",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Sharkey",
        "target": "Kroeg",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Sharkey",
        "target": "RoadHouse",
        "type": "strong"
      },
      {
        "source": "Sharkey",
        "target": "Pieoneers",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Sharkey",
        "target": "Emissary",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Sharkey",
        "target": "Hometown",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Sharkey",
        "target": "GlitchSoc",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Sharkey",
        "target": "Akkoma-FE",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Sharkey",
        "target": "Postmarks",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Sharkey",
        "target": "Bluesky",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Sharkey",
        "target": "Graysky",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Sharkey",
        "target": "Tokimeki",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Sharkey",
        "target": "FediBridge",
        "type": "strong"
      },
      {
        "source": "Friendica",
        "target": "Hubzilla",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Friendica",
        "target": "Streams",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Friendica",
        "target": "Iceshrimp",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Friendica",
        "target": "GNU social",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Friendica",
        "target": "Bonfire",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Friendica",
        "target": "Funkwhale",
        "type": "strong"
      },
      {
        "source": "Friendica",
        "target": "Loops",
        "type": "strong"
      },
      {
        "source": "Friendica",
        "target": "Diaspora*",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Friendica",
        "target": "Mitra",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Friendica",
        "target": "Socialhome",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Friendica",
        "target": "Epicyon",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Friendica",
        "target": "Takahē",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Friendica",
        "target": "Smithereen",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Friendica",
        "target": "Kroeg",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Friendica",
        "target": "Pieoneers",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Friendica",
        "target": "Emissary",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Friendica",
        "target": "Hometown",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Friendica",
        "target": "GlitchSoc",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Friendica",
        "target": "Akkoma-FE",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Friendica",
        "target": "Postmarks",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Friendica",
        "target": "Bluesky",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Friendica",
        "target": "Graysky",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Friendica",
        "target": "Tokimeki",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Hubzilla",
        "target": "Streams",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Hubzilla",
        "target": "Iceshrimp",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Hubzilla",
        "target": "GNU social",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Hubzilla",
        "target": "Bonfire",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Hubzilla",
        "target": "Diaspora*",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Hubzilla",
        "target": "Mitra",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Hubzilla",
        "target": "Socialhome",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Hubzilla",
        "target": "Epicyon",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Hubzilla",
        "target": "Takahē",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Hubzilla",
        "target": "Smithereen",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Hubzilla",
        "target": "Kroeg",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Hubzilla",
        "target": "Pieoneers",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Hubzilla",
        "target": "Emissary",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Hubzilla",
        "target": "Hometown",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Hubzilla",
        "target": "GlitchSoc",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Hubzilla",
        "target": "Akkoma-FE",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Hubzilla",
        "target": "Postmarks",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Hubzilla",
        "target": "Bluesky",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Hubzilla",
        "target": "Graysky",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Hubzilla",
        "target": "Tokimeki",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Streams",
        "target": "Iceshrimp",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Streams",
        "target": "GNU social",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Streams",
        "target": "Bonfire",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Streams",
        "target": "Diaspora*",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Streams",
        "target": "Mitra",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Streams",
        "target": "Socialhome",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Streams",
        "target": "Epicyon",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Streams",
        "target": "Takahē",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Streams",
        "target": "Smithereen",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Streams",
        "target": "Kroeg",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Streams",
        "target": "Pieoneers",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Streams",
        "target": "Emissary",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Streams",
        "target": "Hometown",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Streams",
        "target": "GlitchSoc",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Streams",
        "target": "Akkoma-FE",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Streams",
        "target": "Postmarks",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Streams",
        "target": "Bluesky",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Streams",
        "target": "Graysky",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Streams",
        "target": "Tokimeki",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Iceshrimp",
        "target": "GNU social",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Iceshrimp",
        "target": "Bonfire",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Iceshrimp",
        "target": "Diaspora*",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Iceshrimp",
        "target": "Mitra",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Iceshrimp",
        "target": "Socialhome",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Iceshrimp",
        "target": "Epicyon",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Iceshrimp",
        "target": "Takahē",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Iceshrimp",
        "target": "Smithereen",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Iceshrimp",
        "target": "Kroeg",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Iceshrimp",
        "target": "Sublinks",
        "type": "strong"
      },
      {
        "source": "Iceshrimp",
        "target": "Pieoneers",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Iceshrimp",
        "target": "Emissary",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Iceshrimp",
        "target": "Hometown",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Iceshrimp",
        "target": "GlitchSoc",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Iceshrimp",
        "target": "Akkoma-FE",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Iceshrimp",
        "target": "Postmarks",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Iceshrimp",
        "target": "AodeRelay",
        "type": "strong"
      },
      {
        "source": "Iceshrimp",
        "target": "Bluesky",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Iceshrimp",
        "target": "Graysky",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Iceshrimp",
        "target": "Tokimeki",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "GNU social",
        "target": "Bonfire",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "GNU social",
        "target": "Diaspora*",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "GNU social",
        "target": "Mitra",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "GNU social",
        "target": "Socialhome",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "GNU social",
        "target": "Epicyon",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "GNU social",
        "target": "Takahē",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "GNU social",
        "target": "Smithereen",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "GNU social",
        "target": "Kroeg",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "GNU social",
        "target": "Pieoneers",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "GNU social",
        "target": "Emissary",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "GNU social",
        "target": "Hometown",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "GNU social",
        "target": "GlitchSoc",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "GNU social",
        "target": "Akkoma-FE",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "GNU social",
        "target": "Postmarks",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "GNU social",
        "target": "Bluesky",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "GNU social",
        "target": "Graysky",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "GNU social",
        "target": "Tokimeki",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Bonfire",
        "target": "PeerTube",
        "type": "strong"
      },
      {
        "source": "Bonfire",
        "target": "Funkwhale",
        "type": "strong"
      },
      {
        "source": "Bonfire",
        "target": "Plume",
        "type": "strong"
      },
      {
        "source": "Bonfire",
        "target": "Diaspora*",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Bonfire",
        "target": "Mitra",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Bonfire",
        "target": "Socialhome",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Bonfire",
        "target": "Epicyon",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Bonfire",
        "target": "Takahē",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Bonfire",
        "target": "Smithereen",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Bonfire",
        "target": "Kroeg",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Bonfire",
        "target": "Pieoneers",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Bonfire",
        "target": "Emissary",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Bonfire",
        "target": "Hometown",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Bonfire",
        "target": "GlitchSoc",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Bonfire",
        "target": "Akkoma-FE",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Bonfire",
        "target": "Postmarks",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Bonfire",
        "target": "Bluesky",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Bonfire",
        "target": "Graysky",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Bonfire",
        "target": "Tokimeki",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Bonfire",
        "target": "Sepia Search",
        "type": "strong"
      },
      {
        "source": "microblog.pub",
        "target": "WriteFreely",
        "type": "strong"
      },
      {
        "source": "microblog.pub",
        "target": "BookWyrm",
        "type": "strong"
      },
      {
        "source": "microblog.pub",
        "target": "Smithereen",
        "type": "strong"
      },
      {
        "source": "microblog.pub",
        "target": "Lotide",
        "type": "strong"
      },
      {
        "source": "microblog.pub",
        "target": "Emissary",
        "type": "strong"
      },
      {
        "source": "PixelFed",
        "target": "Vernissage",
        "type": "weak",
        "category": "photo"
      },
      {
        "source": "PixelFed",
        "target": "PeerTube",
        "type": "strong"
      },
      {
        "source": "PixelFed",
        "target": "Takahē",
        "type": "strong"
      },
      {
        "source": "PixelFed",
        "target": "Kroeg",
        "type": "strong"
      },
      {
        "source": "PixelFed",
        "target": "Hometown",
        "type": "strong"
      },
      {
        "source": "PixelFed",
        "target": "Sepia Search",
        "type": "strong"
      },
      {
        "source": "Vernissage",
        "target": "WriteFreely",
        "type": "strong"
      },
      {
        "source": "Vernissage",
        "target": "Plume",
        "type": "strong"
      },
      {
        "source": "Vernissage",
        "target": "RoadHouse",
        "type": "strong"
      },
      {
        "source": "PeerTube",
        "target": "Owncast",
        "type": "weak",
        "category": "video"
      },
      {
        "source": "PeerTube",
        "target": "Tube (Framasoft)",
        "type": "weak",
        "category": "video"
      },
      {
        "source": "PeerTube",
        "target": "Loops",
        "type": "weak",
        "category": "video"
      },
      {
        "source": "PeerTube",
        "target": "Mbin",
        "type": "strong"
      },
      {
        "source": "PeerTube",
        "target": "Kroeg",
        "type": "strong"
      },
      {
        "source": "PeerTube",
        "target": "Sublinks",
        "type": "strong"
      },
      {
        "source": "PeerTube",
        "target": "Hometown",
        "type": "strong"
      },
      {
        "source": "PeerTube",
        "target": "FediBridge",
        "type": "strong"
      },
      {
        "source": "PeerTube",
        "target": "Sepia Search",
        "type": "weak",
        "category": "video"
      },
      {
        "source": "Owncast",
        "target": "Tube (Framasoft)",
        "type": "weak",
        "category": "video"
      },
      {
        "source": "Owncast",
        "target": "Loops",
        "type": "weak",
        "category": "video"
      },
      {
        "source": "Owncast",
        "target": "Sepia Search",
        "type": "weak",
        "category": "video"
      },
      {
        "source": "Tube (Framasoft)",
        "target": "Loops",
        "type": "weak",
        "category": "video"
      },
      {
        "source": "Tube (Framasoft)",
        "target": "Kroeg",
        "type": "strong"
      },
      {
        "source": "Tube (Framasoft)",
        "target": "Sublinks",
        "type": "strong"
      },
      {
        "source": "Tube (Framasoft)",
        "target": "Sepia Search",
        "type": "weak",
        "category": "video"
      },
      {
        "source": "Castopod",
        "target": "Funkwhale",
        "type": "weak",
        "category": "audio"
      },
      {
        "source": "Castopod",
        "target": "Plume",
        "type": "strong"
      },
      {
        "source": "Castopod",
        "target": "Lemmy",
        "type": "strong"
      },
      {
        "source": "Castopod",
        "target": "BookWyrm",
        "type": "strong"
      },
      {
        "source": "Castopod",
        "target": "Smithereen",
        "type": "strong"
      },
      {
        "source": "Castopod",
        "target": "ActivityPub Relay",
        "type": "strong"
      },
      {
        "source": "Funkwhale",
        "target": "Epicyon",
        "type": "strong"
      },
      {
        "source": "Funkwhale",
        "target": "Lotide",
        "type": "strong"
      },
      {
        "source": "Funkwhale",
        "target": "RoadHouse",
        "type": "strong"
      },
      {
        "source": "Funkwhale",
        "target": "Emissary",
        "type": "strong"
      },
      {
        "source": "Loops",
        "target": "Mitra",
        "type": "strong"
      },
      {
        "source": "Loops",
        "target": "kbin",
        "type": "strong"
      },
      {
        "source": "Loops",
        "target": "Takahē",
        "type": "strong"
      },
      {
        "source": "Loops",
        "target": "RoadHouse",
        "type": "strong"
      },
      {
        "source": "Loops",
        "target": "Postmarks",
        "type": "strong"
      },
      {
        "source": "Loops",
        "target": "Sepia Search",
        "type": "weak",
        "category": "video"
      },
      {
        "source": "Ghost",
        "target": "WriteFreely",
        "type": "weak",
        "category": "blog"
      },
      {
        "source": "Ghost",
        "target": "Plume",
        "type": "weak",
        "category": "blog"
      },
      {
        "source": "Ghost",
        "target": "WordPress + ActivityPub",
        "type": "weak",
        "category": "blog"
      },
      {
        "source": "Ghost",
        "target": "Drupal + ActivityPub",
        "type": "weak",
        "category": "blog"
      },
      {
        "source": "Ghost",
        "target": "WordPress MU + ActivityPub",
        "type": "weak",
        "category": "blog"
      },
      {
        "source": "WriteFreely",
        "target": "Plume",
        "type": "weak",
        "category": "blog"
      },
      {
        "source": "WriteFreely",
        "target": "WordPress + ActivityPub",
        "type": "weak",
        "category": "blog"
      },
      {
        "source": "WriteFreely",
        "target": "Drupal + ActivityPub",
        "type": "weak",
        "category": "blog"
      },
      {
        "source": "WriteFreely",
        "target": "Gancio",
        "type": "strong"
      },
      {
        "source": "WriteFreely",
        "target": "Lotide",
        "type": "strong"
      },
      {
        "source": "WriteFreely",
        "target": "Sublinks",
        "type": "strong"
      },
      {
        "source": "WriteFreely",
        "target": "WordPress MU + ActivityPub",
        "type": "weak",
        "category": "blog"
      },
      {
        "source": "Plume",
        "target": "WordPress + ActivityPub",
        "type": "weak",
        "category": "blog"
      },
      {
        "source": "Plume",
        "target": "Drupal + ActivityPub",
        "type": "weak",
        "category": "blog"
      },
      {
        "source": "Plume",
        "target": "Gancio",
        "type": "strong"
      },
      {
        "source": "Plume",
        "target": "BookWyrm",
        "type": "strong"
      },
      {
        "source": "Plume",
        "target": "Kroeg",
        "type": "strong"
      },
      {
        "source": "Plume",
        "target": "Lotide",
        "type": "strong"
      },
      {
        "source": "Plume",
        "target": "Sublinks",
        "type": "strong"
      },
      {
        "source": "Plume",
        "target": "WordPress MU + ActivityPub",
        "type": "weak",
        "category": "blog"
      },
      {
        "source": "Plume",
        "target": "Hometown",
        "type": "strong"
      },
      {
        "source": "Plume",
        "target": "Akkoma-FE",
        "type": "strong"
      },
      {
        "source": "Plume",
        "target": "AodeRelay",
        "type": "strong"
      },
      {
        "source": "WordPress + ActivityPub",
        "target": "Drupal + ActivityPub",
        "type": "weak",
        "category": "blog"
      },
      {
        "source": "WordPress + ActivityPub",
        "target": "WordPress MU + ActivityPub",
        "type": "weak",
        "category": "blog"
      },
      {
        "source": "Drupal + ActivityPub",
        "target": "WordPress MU + ActivityPub",
        "type": "weak",
        "category": "blog"
      },
      {
        "source": "Lemmy",
        "target": "Mbin",
        "type": "weak",
        "category": "forum"
      },
      {
        "source": "Lemmy",
        "target": "NodeBB",
        "type": "weak",
        "category": "forum"
      },
      {
        "source": "Lemmy",
        "target": "kbin",
        "type": "weak",
        "category": "forum"
      },
      {
        "source": "Lemmy",
        "target": "Takahē",
        "type": "strong"
      },
      {
        "source": "Lemmy",
        "target": "Smithereen",
        "type": "strong"
      },
      {
        "source": "Lemmy",
        "target": "Kroeg",
        "type": "strong"
      },
      {
        "source": "Lemmy",
        "target": "Lotide",
        "type": "weak",
        "category": "forum"
      },
      {
        "source": "Lemmy",
        "target": "Sublinks",
        "type": "weak",
        "category": "forum"
      },
      {
        "source": "Lemmy",
        "target": "RoadHouse",
        "type": "weak",
        "category": "forum"
      },
      {
        "source": "Lemmy",
        "target": "Emissary",
        "type": "strong"
      },
      {
        "source": "Mbin",
        "target": "NodeBB",
        "type": "weak",
        "category": "forum"
      },
      {
        "source": "Mbin",
        "target": "Mitra",
        "type": "strong"
      },
      {
        "source": "Mbin",
        "target": "kbin",
        "type": "weak",
        "category": "forum"
      },
      {
        "source": "Mbin",
        "target": "Takahē",
        "type": "strong"
      },
      {
        "source": "Mbin",
        "target": "Kroeg",
        "type": "strong"
      },
      {
        "source": "Mbin",
        "target": "Lotide",
        "type": "weak",
        "category": "forum"
      },
      {
        "source": "Mbin",
        "target": "Sublinks",
        "type": "weak",
        "category": "forum"
      },
      {
        "source": "Mbin",
        "target": "RoadHouse",
        "type": "weak",
        "category": "forum"
      },
      {
        "source": "Mbin",
        "target": "Pieoneers",
        "type": "strong"
      },
      {
        "source": "Mbin",
        "target": "Emissary",
        "type": "strong"
      },
      {
        "source": "NodeBB",
        "target": "kbin",
        "type": "weak",
        "category": "forum"
      },
      {
        "source": "NodeBB",
        "target": "Lotide",
        "type": "weak",
        "category": "forum"
      },
      {
        "source": "NodeBB",
        "target": "Sublinks",
        "type": "weak",
        "category": "forum"
      },
      {
        "source": "NodeBB",
        "target": "RoadHouse",
        "type": "weak",
        "category": "forum"
      },
      {
        "source": "Mobilizon",
        "target": "Gancio",
        "type": "weak",
        "category": "events"
      },
      {
        "source": "Mobilizon",
        "target": "Fedify",
        "type": "strong"
      },
      {
        "source": "Mobilizon",
        "target": "Sublinks",
        "type": "strong"
      },
      {
        "source": "Mobilizon",
        "target": "AodeRelay",
        "type": "strong"
      },
      {
        "source": "Mobilizon",
        "target": "Sepia Search",
        "type": "strong"
      },
      {
        "source": "Gancio",
        "target": "Epicyon",
        "type": "strong"
      },
      {
        "source": "Gancio",
        "target": "RoadHouse",
        "type": "strong"
      },
      {
        "source": "Gancio",
        "target": "Akkoma-FE",
        "type": "strong"
      },
      {
        "source": "Gancio",
        "target": "AodeRelay",
        "type": "strong"
      },
      {
        "source": "Gancio",
        "target": "ActivityPub Relay",
        "type": "strong"
      },
      {
        "source": "Forgejo",
        "target": "Gitea",
        "type": "weak",
        "category": "dev"
      },
      {
        "source": "Forgejo",
        "target": "Fedify",
        "type": "weak",
        "category": "dev"
      },
      {
        "source": "Forgejo",
        "target": "AodeRelay",
        "type": "weak",
        "category": "dev"
      },
      {
        "source": "Forgejo",
        "target": "FediBridge",
        "type": "weak",
        "category": "dev"
      },
      {
        "source": "Forgejo",
        "target": "ActivityPub Relay",
        "type": "weak",
        "category": "dev"
      },
      {
        "source": "Gitea",
        "target": "Fedify",
        "type": "weak",
        "category": "dev"
      },
      {
        "source": "Gitea",
        "target": "AodeRelay",
        "type": "weak",
        "category": "dev"
      },
      {
        "source": "Gitea",
        "target": "FediBridge",
        "type": "weak",
        "category": "dev"
      },
      {
        "source": "Gitea",
        "target": "ActivityPub Relay",
        "type": "weak",
        "category": "dev"
      },
      {
        "source": "Nextcloud",
        "target": "ownCloud",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "Nextcloud",
        "target": "Element",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "Nextcloud",
        "target": "CryptPad",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "Nextcloud",
        "target": "HedgeDoc",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "Nextcloud",
        "target": "Immich",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "Nextcloud",
        "target": "PhotoPrism",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "Nextcloud",
        "target": "Synapse",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "Nextcloud",
        "target": "Dendrite",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "Nextcloud",
        "target": "Conduit",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "Nextcloud",
        "target": "Cinny",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "Nextcloud",
        "target": "FluffyChat",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "ownCloud",
        "target": "Element",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "ownCloud",
        "target": "CryptPad",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "ownCloud",
        "target": "HedgeDoc",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "ownCloud",
        "target": "Immich",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "ownCloud",
        "target": "PhotoPrism",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "ownCloud",
        "target": "Synapse",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "ownCloud",
        "target": "Dendrite",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "ownCloud",
        "target": "Conduit",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "ownCloud",
        "target": "Cinny",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "ownCloud",
        "target": "FluffyChat",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "BookWyrm",
        "target": "Epicyon",
        "type": "strong"
      },
      {
        "source": "BookWyrm",
        "target": "Smithereen",
        "type": "strong"
      },
      {
        "source": "BookWyrm",
        "target": "Pieoneers",
        "type": "strong"
      },
      {
        "source": "BookWyrm",
        "target": "ActivityPub Relay",
        "type": "strong"
      },
      {
        "source": "BookWyrm",
        "target": "Sepia Search",
        "type": "strong"
      },
      {
        "source": "Diaspora*",
        "target": "Mitra",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Diaspora*",
        "target": "Socialhome",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Diaspora*",
        "target": "Epicyon",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Diaspora*",
        "target": "Takahē",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Diaspora*",
        "target": "Smithereen",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Diaspora*",
        "target": "Kroeg",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Diaspora*",
        "target": "Pieoneers",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Diaspora*",
        "target": "Emissary",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Diaspora*",
        "target": "Hometown",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Diaspora*",
        "target": "GlitchSoc",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Diaspora*",
        "target": "Akkoma-FE",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Diaspora*",
        "target": "Postmarks",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Diaspora*",
        "target": "Bluesky",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Diaspora*",
        "target": "Graysky",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Diaspora*",
        "target": "Tokimeki",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Element",
        "target": "CryptPad",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "Element",
        "target": "HedgeDoc",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "Element",
        "target": "Immich",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "Element",
        "target": "PhotoPrism",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "Element",
        "target": "Synapse",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "Element",
        "target": "Dendrite",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "Element",
        "target": "Conduit",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "Element",
        "target": "Cinny",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "Element",
        "target": "FluffyChat",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "Fedify",
        "target": "Epicyon",
        "type": "strong"
      },
      {
        "source": "Fedify",
        "target": "Pieoneers",
        "type": "strong"
      },
      {
        "source": "Fedify",
        "target": "Emissary",
        "type": "strong"
      },
      {
        "source": "Fedify",
        "target": "Postmarks",
        "type": "strong"
      },
      {
        "source": "Fedify",
        "target": "AodeRelay",
        "type": "weak",
        "category": "dev"
      },
      {
        "source": "Fedify",
        "target": "FediBridge",
        "type": "weak",
        "category": "dev"
      },
      {
        "source": "Fedify",
        "target": "ActivityPub Relay",
        "type": "weak",
        "category": "dev"
      },
      {
        "source": "Mitra",
        "target": "Socialhome",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Mitra",
        "target": "Epicyon",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Mitra",
        "target": "Takahē",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Mitra",
        "target": "Smithereen",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Mitra",
        "target": "Kroeg",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Mitra",
        "target": "Pieoneers",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Mitra",
        "target": "Emissary",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Mitra",
        "target": "Hometown",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Mitra",
        "target": "GlitchSoc",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Mitra",
        "target": "Akkoma-FE",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Mitra",
        "target": "Postmarks",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Mitra",
        "target": "Bluesky",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Mitra",
        "target": "Graysky",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Mitra",
        "target": "Tokimeki",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Socialhome",
        "target": "Epicyon",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Socialhome",
        "target": "Takahē",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Socialhome",
        "target": "Smithereen",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Socialhome",
        "target": "Kroeg",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Socialhome",
        "target": "Pieoneers",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Socialhome",
        "target": "Emissary",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Socialhome",
        "target": "Hometown",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Socialhome",
        "target": "GlitchSoc",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Socialhome",
        "target": "Akkoma-FE",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Socialhome",
        "target": "Postmarks",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Socialhome",
        "target": "Bluesky",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Socialhome",
        "target": "Graysky",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Socialhome",
        "target": "Tokimeki",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "kbin",
        "target": "Epicyon",
        "type": "strong"
      },
      {
        "source": "kbin",
        "target": "Lotide",
        "type": "weak",
        "category": "forum"
      },
      {
        "source": "kbin",
        "target": "Sublinks",
        "type": "weak",
        "category": "forum"
      },
      {
        "source": "kbin",
        "target": "RoadHouse",
        "type": "weak",
        "category": "forum"
      },
      {
        "source": "kbin",
        "target": "Akkoma-FE",
        "type": "strong"
      },
      {
        "source": "kbin",
        "target": "AodeRelay",
        "type": "strong"
      },
      {
        "source": "Epicyon",
        "target": "Takahē",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Epicyon",
        "target": "Smithereen",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Epicyon",
        "target": "Kroeg",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Epicyon",
        "target": "Pieoneers",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Epicyon",
        "target": "Emissary",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Epicyon",
        "target": "Hometown",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Epicyon",
        "target": "GlitchSoc",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Epicyon",
        "target": "Akkoma-FE",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Epicyon",
        "target": "Postmarks",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Epicyon",
        "target": "Bluesky",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Epicyon",
        "target": "Graysky",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Epicyon",
        "target": "Tokimeki",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Epicyon",
        "target": "Sepia Search",
        "type": "strong"
      },
      {
        "source": "Takahē",
        "target": "Smithereen",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Takahē",
        "target": "Kroeg",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Takahē",
        "target": "Pieoneers",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Takahē",
        "target": "Emissary",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Takahē",
        "target": "Hometown",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Takahē",
        "target": "GlitchSoc",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Takahē",
        "target": "Akkoma-FE",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Takahē",
        "target": "Postmarks",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Takahē",
        "target": "Bluesky",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Takahē",
        "target": "Graysky",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Takahē",
        "target": "Tokimeki",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Takahē",
        "target": "FediBridge",
        "type": "strong"
      },
      {
        "source": "Smithereen",
        "target": "Kroeg",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Smithereen",
        "target": "Pieoneers",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Smithereen",
        "target": "Emissary",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Smithereen",
        "target": "Hometown",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Smithereen",
        "target": "GlitchSoc",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Smithereen",
        "target": "Akkoma-FE",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Smithereen",
        "target": "Postmarks",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Smithereen",
        "target": "Bluesky",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Smithereen",
        "target": "Graysky",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Smithereen",
        "target": "Tokimeki",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Smithereen",
        "target": "FediBridge",
        "type": "strong"
      },
      {
        "source": "Kroeg",
        "target": "Pieoneers",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Kroeg",
        "target": "Emissary",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Kroeg",
        "target": "Hometown",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Kroeg",
        "target": "GlitchSoc",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Kroeg",
        "target": "Akkoma-FE",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Kroeg",
        "target": "Postmarks",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Kroeg",
        "target": "Bluesky",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Kroeg",
        "target": "Graysky",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Kroeg",
        "target": "Tokimeki",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Kroeg",
        "target": "ActivityPub Relay",
        "type": "strong"
      },
      {
        "source": "Lotide",
        "target": "Sublinks",
        "type": "weak",
        "category": "forum"
      },
      {
        "source": "Lotide",
        "target": "RoadHouse",
        "type": "weak",
        "category": "forum"
      },
      {
        "source": "Lotide",
        "target": "Akkoma-FE",
        "type": "strong"
      },
      {
        "source": "Sublinks",
        "target": "RoadHouse",
        "type": "weak",
        "category": "forum"
      },
      {
        "source": "Sublinks",
        "target": "Emissary",
        "type": "strong"
      },
      {
        "source": "Sublinks",
        "target": "Postmarks",
        "type": "strong"
      },
      {
        "source": "Sublinks",
        "target": "ActivityPub Relay",
        "type": "strong"
      },
      {
        "source": "RoadHouse",
        "target": "Pieoneers",
        "type": "strong"
      },
      {
        "source": "RoadHouse",
        "target": "Emissary",
        "type": "strong"
      },
      {
        "source": "RoadHouse",
        "target": "AodeRelay",
        "type": "strong"
      },
      {
        "source": "RoadHouse",
        "target": "FediBridge",
        "type": "strong"
      },
      {
        "source": "RoadHouse",
        "target": "Sepia Search",
        "type": "strong"
      },
      {
        "source": "Pieoneers",
        "target": "Emissary",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Pieoneers",
        "target": "Hometown",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Pieoneers",
        "target": "GlitchSoc",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Pieoneers",
        "target": "Akkoma-FE",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Pieoneers",
        "target": "Postmarks",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Pieoneers",
        "target": "Bluesky",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Pieoneers",
        "target": "Graysky",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Pieoneers",
        "target": "Tokimeki",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Pieoneers",
        "target": "FediBridge",
        "type": "strong"
      },
      {
        "source": "Pieoneers",
        "target": "ActivityPub Relay",
        "type": "strong"
      },
      {
        "source": "Emissary",
        "target": "Hometown",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Emissary",
        "target": "GlitchSoc",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Emissary",
        "target": "Akkoma-FE",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Emissary",
        "target": "Postmarks",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Emissary",
        "target": "Bluesky",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Emissary",
        "target": "Graysky",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Emissary",
        "target": "Tokimeki",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Hometown",
        "target": "GlitchSoc",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Hometown",
        "target": "Akkoma-FE",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Hometown",
        "target": "Postmarks",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Hometown",
        "target": "Bluesky",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Hometown",
        "target": "Graysky",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Hometown",
        "target": "Tokimeki",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "GlitchSoc",
        "target": "Akkoma-FE",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "GlitchSoc",
        "target": "Postmarks",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "GlitchSoc",
        "target": "AodeRelay",
        "type": "strong"
      },
      {
        "source": "GlitchSoc",
        "target": "Bluesky",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "GlitchSoc",
        "target": "Graysky",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "GlitchSoc",
        "target": "Tokimeki",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Akkoma-FE",
        "target": "Postmarks",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Akkoma-FE",
        "target": "Bluesky",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Akkoma-FE",
        "target": "Graysky",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Akkoma-FE",
        "target": "Tokimeki",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Postmarks",
        "target": "AodeRelay",
        "type": "strong"
      },
      {
        "source": "Postmarks",
        "target": "Bluesky",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Postmarks",
        "target": "Graysky",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Postmarks",
        "target": "Tokimeki",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "AodeRelay",
        "target": "FediBridge",
        "type": "weak",
        "category": "dev"
      },
      {
        "source": "AodeRelay",
        "target": "ActivityPub Relay",
        "type": "weak",
        "category": "dev"
      },
      {
        "source": "Coracle",
        "target": "Nostrudel",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Coracle",
        "target": "Lume",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Coracle",
        "target": "Gossip",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Coracle",
        "target": "Current",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Coracle",
        "target": "Plebstr",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Coracle",
        "target": "Nostrpels",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Coracle",
        "target": "ZapStream",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Coracle",
        "target": "NostrCheck.me",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Coracle",
        "target": "NostrMarket",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Coracle",
        "target": "Nostr Protocol",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Coracle",
        "target": "Damus",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Coracle",
        "target": "Amethyst",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Coracle",
        "target": "Iris",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Coracle",
        "target": "Primal",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Coracle",
        "target": "Habla.news",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Coracle",
        "target": "Nostr.band",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Coracle",
        "target": "Snort",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Nostrudel",
        "target": "Lume",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Nostrudel",
        "target": "Gossip",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Nostrudel",
        "target": "Current",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Nostrudel",
        "target": "Plebstr",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Nostrudel",
        "target": "Nostrpels",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Nostrudel",
        "target": "ZapStream",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Nostrudel",
        "target": "NostrCheck.me",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Nostrudel",
        "target": "NostrMarket",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Nostrudel",
        "target": "Nostr Protocol",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Nostrudel",
        "target": "Damus",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Nostrudel",
        "target": "Amethyst",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Nostrudel",
        "target": "Iris",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Nostrudel",
        "target": "Primal",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Nostrudel",
        "target": "Habla.news",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Nostrudel",
        "target": "Nostr.band",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Nostrudel",
        "target": "Snort",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Lume",
        "target": "Gossip",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Lume",
        "target": "Current",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Lume",
        "target": "Plebstr",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Lume",
        "target": "Nostrpels",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Lume",
        "target": "ZapStream",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Lume",
        "target": "NostrCheck.me",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Lume",
        "target": "NostrMarket",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Lume",
        "target": "Nostr Protocol",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Lume",
        "target": "Damus",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Lume",
        "target": "Amethyst",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Lume",
        "target": "Iris",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Lume",
        "target": "Primal",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Lume",
        "target": "Habla.news",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Lume",
        "target": "Nostr.band",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Lume",
        "target": "Snort",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Gossip",
        "target": "Current",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Gossip",
        "target": "Plebstr",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Gossip",
        "target": "Nostrpels",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Gossip",
        "target": "ZapStream",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Gossip",
        "target": "NostrCheck.me",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Gossip",
        "target": "NostrMarket",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Gossip",
        "target": "Nostr Protocol",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Gossip",
        "target": "Damus",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Gossip",
        "target": "Amethyst",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Gossip",
        "target": "Iris",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Gossip",
        "target": "Primal",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Gossip",
        "target": "Habla.news",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Gossip",
        "target": "Nostr.band",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Gossip",
        "target": "Snort",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Current",
        "target": "Plebstr",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Current",
        "target": "Nostrpels",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Current",
        "target": "ZapStream",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Current",
        "target": "NostrCheck.me",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Current",
        "target": "NostrMarket",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Current",
        "target": "Nostr Protocol",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Current",
        "target": "Damus",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Current",
        "target": "Amethyst",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Current",
        "target": "Iris",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Current",
        "target": "Primal",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Current",
        "target": "Habla.news",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Current",
        "target": "Nostr.band",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Current",
        "target": "Snort",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Plebstr",
        "target": "Nostrpels",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Plebstr",
        "target": "ZapStream",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Plebstr",
        "target": "NostrCheck.me",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Plebstr",
        "target": "NostrMarket",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Plebstr",
        "target": "Nostr Protocol",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Plebstr",
        "target": "Damus",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Plebstr",
        "target": "Amethyst",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Plebstr",
        "target": "Iris",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Plebstr",
        "target": "Primal",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Plebstr",
        "target": "Habla.news",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Plebstr",
        "target": "Nostr.band",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Plebstr",
        "target": "Snort",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Nostrpels",
        "target": "ZapStream",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Nostrpels",
        "target": "NostrCheck.me",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Nostrpels",
        "target": "NostrMarket",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Nostrpels",
        "target": "Nostr Protocol",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Nostrpels",
        "target": "Damus",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Nostrpels",
        "target": "Amethyst",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Nostrpels",
        "target": "Iris",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Nostrpels",
        "target": "Primal",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Nostrpels",
        "target": "Habla.news",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Nostrpels",
        "target": "Nostr.band",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Nostrpels",
        "target": "Snort",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "ZapStream",
        "target": "NostrCheck.me",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "ZapStream",
        "target": "NostrMarket",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "ZapStream",
        "target": "Nostr Protocol",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "ZapStream",
        "target": "Damus",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "ZapStream",
        "target": "Amethyst",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "ZapStream",
        "target": "Iris",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "ZapStream",
        "target": "Primal",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "ZapStream",
        "target": "Habla.news",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "ZapStream",
        "target": "Nostr.band",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "ZapStream",
        "target": "Snort",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "NostrCheck.me",
        "target": "NostrMarket",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "NostrCheck.me",
        "target": "Nostr Protocol",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "NostrCheck.me",
        "target": "Damus",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "NostrCheck.me",
        "target": "Amethyst",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "NostrCheck.me",
        "target": "Iris",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "NostrCheck.me",
        "target": "Primal",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "NostrCheck.me",
        "target": "Habla.news",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "NostrCheck.me",
        "target": "Nostr.band",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "NostrCheck.me",
        "target": "Snort",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "NostrMarket",
        "target": "Nostr Protocol",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "NostrMarket",
        "target": "Damus",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "NostrMarket",
        "target": "Amethyst",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "NostrMarket",
        "target": "Iris",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "NostrMarket",
        "target": "Primal",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "NostrMarket",
        "target": "Habla.news",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "NostrMarket",
        "target": "Nostr.band",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "NostrMarket",
        "target": "Snort",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Prosody",
        "target": "ejabberd",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Prosody",
        "target": "Openfire",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Prosody",
        "target": "Tigase",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Prosody",
        "target": "Conversations",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Prosody",
        "target": "Dino",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Prosody",
        "target": "Gajim",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Prosody",
        "target": "Monal",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Prosody",
        "target": "Snikket",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Prosody",
        "target": "Movim",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Prosody",
        "target": "Jabber",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Prosody",
        "target": "Briar",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Prosody",
        "target": "Jami",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Prosody",
        "target": "SimpleX Chat",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "ejabberd",
        "target": "Openfire",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "ejabberd",
        "target": "Tigase",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "ejabberd",
        "target": "Conversations",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "ejabberd",
        "target": "Dino",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "ejabberd",
        "target": "Gajim",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "ejabberd",
        "target": "Monal",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "ejabberd",
        "target": "Snikket",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "ejabberd",
        "target": "Movim",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "ejabberd",
        "target": "Jabber",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "ejabberd",
        "target": "Briar",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "ejabberd",
        "target": "Jami",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "ejabberd",
        "target": "SimpleX Chat",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Openfire",
        "target": "Tigase",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Openfire",
        "target": "Conversations",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Openfire",
        "target": "Dino",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Openfire",
        "target": "Gajim",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Openfire",
        "target": "Monal",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Openfire",
        "target": "Snikket",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Openfire",
        "target": "Movim",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Openfire",
        "target": "Jabber",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Openfire",
        "target": "Briar",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Openfire",
        "target": "Jami",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Openfire",
        "target": "SimpleX Chat",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Tigase",
        "target": "Conversations",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Tigase",
        "target": "Dino",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Tigase",
        "target": "Gajim",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Tigase",
        "target": "Monal",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Tigase",
        "target": "Snikket",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Tigase",
        "target": "Movim",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Tigase",
        "target": "Jabber",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Tigase",
        "target": "Briar",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Tigase",
        "target": "Jami",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Tigase",
        "target": "SimpleX Chat",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Conversations",
        "target": "Dino",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Conversations",
        "target": "Gajim",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Conversations",
        "target": "Monal",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Conversations",
        "target": "Snikket",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Conversations",
        "target": "Movim",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Conversations",
        "target": "Jabber",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Conversations",
        "target": "Briar",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Conversations",
        "target": "Jami",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Conversations",
        "target": "SimpleX Chat",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Dino",
        "target": "Gajim",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Dino",
        "target": "Monal",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Dino",
        "target": "Snikket",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Dino",
        "target": "Movim",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Dino",
        "target": "Jabber",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Dino",
        "target": "Briar",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Dino",
        "target": "Jami",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Dino",
        "target": "SimpleX Chat",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Gajim",
        "target": "Monal",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Gajim",
        "target": "Snikket",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Gajim",
        "target": "Movim",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Gajim",
        "target": "Jabber",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Gajim",
        "target": "Briar",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Gajim",
        "target": "Jami",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Gajim",
        "target": "SimpleX Chat",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Monal",
        "target": "Snikket",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Monal",
        "target": "Movim",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Monal",
        "target": "Jabber",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Monal",
        "target": "Briar",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Monal",
        "target": "Jami",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Monal",
        "target": "SimpleX Chat",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Snikket",
        "target": "Movim",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Snikket",
        "target": "Jabber",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Snikket",
        "target": "Briar",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Snikket",
        "target": "Jami",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Snikket",
        "target": "SimpleX Chat",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Movim",
        "target": "Jabber",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Movim",
        "target": "Briar",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Movim",
        "target": "Jami",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Movim",
        "target": "SimpleX Chat",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Jabber",
        "target": "Briar",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Jabber",
        "target": "Jami",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Jabber",
        "target": "SimpleX Chat",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Bluesky",
        "target": "Graysky",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Bluesky",
        "target": "Tokimeki",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Graysky",
        "target": "Tokimeki",
        "type": "weak",
        "category": "social"
      },
      {
        "source": "Briar",
        "target": "Jami",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Briar",
        "target": "SimpleX Chat",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "Jami",
        "target": "SimpleX Chat",
        "type": "weak",
        "category": "messaging"
      },
      {
        "source": "CryptPad",
        "target": "HedgeDoc",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "CryptPad",
        "target": "Immich",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "CryptPad",
        "target": "PhotoPrism",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "CryptPad",
        "target": "Synapse",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "CryptPad",
        "target": "Dendrite",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "CryptPad",
        "target": "Conduit",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "CryptPad",
        "target": "Cinny",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "CryptPad",
        "target": "FluffyChat",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "HedgeDoc",
        "target": "Immich",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "HedgeDoc",
        "target": "PhotoPrism",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "HedgeDoc",
        "target": "Synapse",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "HedgeDoc",
        "target": "Dendrite",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "HedgeDoc",
        "target": "Conduit",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "HedgeDoc",
        "target": "Cinny",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "HedgeDoc",
        "target": "FluffyChat",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "Immich",
        "target": "PhotoPrism",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "Immich",
        "target": "Synapse",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "Immich",
        "target": "Dendrite",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "Immich",
        "target": "Conduit",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "Immich",
        "target": "Cinny",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "Immich",
        "target": "FluffyChat",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "PhotoPrism",
        "target": "Synapse",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "PhotoPrism",
        "target": "Dendrite",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "PhotoPrism",
        "target": "Conduit",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "PhotoPrism",
        "target": "Cinny",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "PhotoPrism",
        "target": "FluffyChat",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "Synapse",
        "target": "Dendrite",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "Synapse",
        "target": "Conduit",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "Synapse",
        "target": "Cinny",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "Synapse",
        "target": "FluffyChat",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "Dendrite",
        "target": "Conduit",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "Dendrite",
        "target": "Cinny",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "Dendrite",
        "target": "FluffyChat",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "Conduit",
        "target": "Cinny",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "Conduit",
        "target": "FluffyChat",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "Cinny",
        "target": "FluffyChat",
        "type": "weak",
        "category": "collab"
      },
      {
        "source": "FediBridge",
        "target": "ActivityPub Relay",
        "type": "weak",
        "category": "dev"
      },
      {
        "source": "Nostr Protocol",
        "target": "Damus",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Nostr Protocol",
        "target": "Amethyst",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Nostr Protocol",
        "target": "Iris",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Nostr Protocol",
        "target": "Primal",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Nostr Protocol",
        "target": "Habla.news",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Nostr Protocol",
        "target": "Nostr.band",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Nostr Protocol",
        "target": "Snort",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Damus",
        "target": "Amethyst",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Damus",
        "target": "Iris",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Damus",
        "target": "Primal",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Damus",
        "target": "Habla.news",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Damus",
        "target": "Nostr.band",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Damus",
        "target": "Snort",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Amethyst",
        "target": "Iris",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Amethyst",
        "target": "Primal",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Amethyst",
        "target": "Habla.news",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Amethyst",
        "target": "Nostr.band",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Amethyst",
        "target": "Snort",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Iris",
        "target": "Primal",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Iris",
        "target": "Habla.news",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Iris",
        "target": "Nostr.band",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Iris",
        "target": "Snort",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Primal",
        "target": "Habla.news",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Primal",
        "target": "Nostr.band",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Primal",
        "target": "Snort",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Habla.news",
        "target": "Nostr.band",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Habla.news",
        "target": "Snort",
        "type": "weak",
        "category": "nostr"
      },
      {
        "source": "Nostr.band",
        "target": "Snort",
        "type": "weak",
        "category": "nostr"
      }
    ]
  }
}