<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
    <title>Papyrus - Z29K</title>
    <subtitle>Veille technique indépendante : outils libres, projets auto-hébergeables et notes de terrain sur le numérique, par Z29K.</subtitle>
    <link rel="self" type="application/atom+xml" href="https://papyrus.z29k.com/atom.xml"/>
    <link rel="alternate" type="text/html" href="https://papyrus.z29k.com"/>
    <generator uri="https://www.getzola.org/">Zola</generator>
    <updated>2026-09-09T00:00:00+00:00</updated>
    <id>https://papyrus.z29k.com/atom.xml</id>
    <entry xml:lang="fr">
        <title>anydoc</title>
        <published>2026-09-09T00:00:00+00:00</published>
        <updated>2026-09-09T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/anydoc/"/>
        <id>https://papyrus.z29k.com/gemshelf/anydoc/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/anydoc/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;anydoc est une bibliothèque Rust qui avale un document bureautique et recrache du Markdown GitHub-Flavored. Word, PowerPoint, Excel, OpenDocument, RTF, EPUB, CSV et PDF passent tous par le même modèle de document interne et le même sérialiseur, donc la sortie a la même tête quel que soit le format d&#x27;entrée. Elle existe en crate Rust, en paquet npm, en wheel Python, en WebAssembly et en CLI via &lt;code&gt;npx&lt;&#x2F;code&gt;.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Un seul modèle de document en interne&lt;&#x2F;strong&gt; : chaque parseur de format alimente la même structure de blocs, d&#x27;inlines, de tableaux et de notes. Un correctif d&#x27;échappement de tableau écrit pour le docx bénéficie aussitôt au rtf, à l&#x27;odt et au reste.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Structure conservée pour de vrai&lt;&#x2F;strong&gt; : titres avec ancres, listes imbriquées qui gardent leur numérotation source, tableaux à cellules fusionnées, notes de bas de page, notes de fin et commentaires de présentateur. Les équations OMML, MathML et RTF sortent en LaTeX &lt;code&gt;$...$&lt;&#x2F;code&gt; et &lt;code&gt;$$&lt;&#x2F;code&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Détection de format par le contenu&lt;&#x2F;strong&gt; : en-tête PDF, groupe ouvrant RTF, noms de flux OLE, mimetype du paquet ZIP. Un fichier mal nommé se convertit quand même, sauf le CSV qui n&#x27;a aucun marqueur et réclame son extension.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Local par défaut&lt;&#x2F;strong&gt; : Rust pur, aucun modèle ML, aucun service externe. Le crate Rust ne fait jamais d&#x27;appel réseau. Seuls les PDF scannés, qui échouent en &lt;code&gt;NeedsOcr&lt;&#x2F;code&gt;, partent vers l&#x27;OCR hébergé Firecrawl Parse si tu l&#x27;actives explicitement.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Bindings qui ne bloquent pas&lt;&#x2F;strong&gt; : la conversion Node tourne sur le pool de threads libuv sans bloquer l&#x27;event loop, et le binding Python relâche le GIL. Types TypeScript et stubs Python sont livrés avec les paquets.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Erreurs typées et exploitables&lt;&#x2F;strong&gt; : &lt;code&gt;Unsupported&lt;&#x2F;code&gt;, &lt;code&gt;NeedsOcr&lt;&#x2F;code&gt; avec la liste des pages concernées, &lt;code&gt;Malformed&lt;&#x2F;code&gt;, &lt;code&gt;Encrypted&lt;&#x2F;code&gt;, &lt;code&gt;ResourceLimit&lt;&#x2F;code&gt;, &lt;code&gt;MissingPart&lt;&#x2F;code&gt;. De quoi mettre un fichier de côté et passer au suivant dans un traitement par lot.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Normaliser un lot hétérogène de documents bureautiques avant indexation dans un pipeline RAG&lt;&#x2F;li&gt;
&lt;li&gt;Convertir des fichiers dans le navigateur via le build WebAssembly, sans que rien ne quitte la machine&lt;&#x2F;li&gt;
&lt;li&gt;Donner à un agent la capacité de lire les documents qu&#x27;il croise, via &lt;code&gt;npx skills add firecrawl&#x2F;anydoc&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Extraire des tableaux Excel et OpenDocument en Markdown pour les commiter dans un dépôt&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Kwipu</title>
        <published>2026-09-09T00:00:00+00:00</published>
        <updated>2026-09-09T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/kwipu/"/>
        <id>https://papyrus.z29k.com/gemshelf/kwipu/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/kwipu/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Kwipu transforme un dossier de documents en index RAG à graphe de propriétés, que tu interroges depuis un terminal, une interface web 3D ou un client MCP. Il avale les fichiers &lt;code&gt;.md&lt;&#x2F;code&gt;, &lt;code&gt;.txt&lt;&#x2F;code&gt;, &lt;code&gt;.pdf&lt;&#x2F;code&gt; et &lt;code&gt;.docx&lt;&#x2F;code&gt;, en tire des relations sémantiques via un LLM et des relations structurelles via les wikilinks et le frontmatter YAML. Chaque réponse arrive avec ses citations et le chunk source correspondant.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Deux sources de vérité pour le graphe&lt;&#x2F;strong&gt; : le LLM extrait les triplets entité-relation depuis le texte, tandis que les wikilinks et le frontmatter fournissent les liens que tu as déjà écrits à la main. Le graphe ne dépend donc pas uniquement de ce que le modèle a bien voulu comprendre.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Récupération hybride&lt;&#x2F;strong&gt; : similarité vectorielle, BM25, métadonnées temporelles et un retriever de synonymes appelé à chaque requête. Le mode &lt;code&gt;--fast&lt;&#x2F;code&gt; coupe ce dernier, tout comme le serveur MCP et le bridge API.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Trois interfaces sur le même index&lt;&#x2F;strong&gt; : une CLI interactive qui surveille le dossier source, une API JSON versionnée en FastAPI, et un serveur MCP qui expose &lt;code&gt;query_graph&lt;&#x2F;code&gt; et &lt;code&gt;query_graph_detailed&lt;&#x2F;code&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Modèle de stockage sérieux&lt;&#x2F;strong&gt; : la CLI est le seul processus écrivain, le bridge reste en lecture seule et renvoie 503 tant qu&#x27;aucun index publié n&#x27;existe. Les écritures passent par une génération de staging publiée atomiquement, avec verrou inter-processus et conservation temporaire de la génération précédente.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Local, mais à toi de le décider&lt;&#x2F;strong&gt; : le LLM par défaut est &lt;code&gt;gpt-oss:20b-cloud&lt;&#x2F;code&gt;, qui envoie les chunks au fournisseur du modèle. Le README explique comment basculer sur un modèle Ollama local avant le premier indexage, et impose HTTPS pour tout endpoint non-loopback.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Sources ouvrables depuis le graphe&lt;&#x2F;strong&gt; : l&#x27;endpoint &lt;code&gt;&#x2F;expand&lt;&#x2F;code&gt; lit le document derrière un nœud cité, extraction PDF et DOCX comprise, sans repasser par un LLM.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Interroger un coffre Obsidian en langage naturel tout en gardant ses notes ouvertes dans l&#x27;éditeur&lt;&#x2F;li&gt;
&lt;li&gt;Reconstituer la chronologie d&#x27;un projet à partir de comptes rendus de réunion éparpillés&lt;&#x2F;li&gt;
&lt;li&gt;Brancher un client MCP sur ses propres notes pour que l&#x27;agent réponde en citant les fichiers d&#x27;origine&lt;&#x2F;li&gt;
&lt;li&gt;Explorer visuellement les liens entre entités et documents dans le graphe 3D du frontend&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>LLM Wiki</title>
        <published>2026-09-09T00:00:00+00:00</published>
        <updated>2026-09-09T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/llm-wiki/"/>
        <id>https://papyrus.z29k.com/gemshelf/llm-wiki/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/llm-wiki/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;LLM Wiki est une application desktop qui lit vos documents et en construit un wiki structuré, page par page, avec des liens croisés. Là où le RAG classique repart de zéro à chaque question, ici le LLM compile la connaissance une fois et la met à jour à chaque nouvelle source. Le résultat est un dossier Markdown qui s&#x27;ouvre tel quel dans Obsidian, pas une base vectorielle opaque.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Ingestion en deux passes&lt;&#x2F;strong&gt; : le LLM analyse d&#x27;abord la source (entités, concepts, contradictions avec l&#x27;existant), puis génère les pages. Chaque page porte un champ &lt;code&gt;sources[]&lt;&#x2F;code&gt; dans son frontmatter YAML qui remonte au document d&#x27;origine.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Graphe de connaissances pondéré&lt;&#x2F;strong&gt; : quatre signaux de pertinence, les liens directs (x3), les sources partagées (x4), Adamic-Adar (x1.5) et l&#x27;affinité de type (x1). La détection de communautés Louvain repère ensuite les clusters thématiques et note leur cohésion.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Insights de graphe&lt;&#x2F;strong&gt; : le système remonte les connexions inattendues entre communautés, les pages isolées, les clusters peu cohésifs et les nœuds-ponts. Chaque lacune détectée déclenche une recherche web en un clic via Tavily, SerpApi ou SearXNG.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Formats en vrac&lt;&#x2F;strong&gt; : PDF avec parseur Rust intégré ou MinerU, DOCX, PPTX, XLSX, EPUB&#x2F;MOBI, Org mode, images, clips web. Un cache SHA256 saute les fichiers inchangés, ce qui évite de repayer les tokens.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;API HTTP locale et serveur MCP&lt;&#x2F;strong&gt; : tout est exposé sur &lt;code&gt;127.0.0.1:19828&lt;&#x2F;code&gt; derrière un token. Un skill prêt à l&#x27;emploi branche Claude Code ou Codex sur le wiki en une commande &lt;code&gt;npx skills add&lt;&#x2F;code&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Recherche vectorielle optionnelle&lt;&#x2F;strong&gt; : LanceDB en backend Rust, avec n&#x27;importe quel endpoint compatible OpenAI pour les embeddings. Désactivée par défaut, le pipeline retombe alors sur la recherche tokenisée plus l&#x27;expansion par graphe.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Digérer un corpus de PDF académiques en base documentaire navigable, avec traçabilité vers les sources&lt;&#x2F;li&gt;
&lt;li&gt;Archiver sa veille web via l&#x27;extension Chrome, qui déclenche l&#x27;ingestion automatique de chaque page capturée&lt;&#x2F;li&gt;
&lt;li&gt;Brancher un agent Claude Code sur sa propre base de connaissances par le serveur MCP&lt;&#x2F;li&gt;
&lt;li&gt;Croiser plusieurs rapports internes et repérer les angles morts grâce aux lacunes signalées par le graphe&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>WebToApp</title>
        <published>2026-09-09T00:00:00+00:00</published>
        <updated>2026-09-09T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/web-to-app/"/>
        <id>https://papyrus.z29k.com/gemshelf/web-to-app/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/web-to-app/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;WebToApp est un atelier de build APK qui tourne entièrement sur Android. Tu lui donnes une URL, un dossier HTML ou un projet Node, PHP, Python ou Go, et il te rend un APK signé, sans PC ni serveur de build distant. La signature V1&#x2F;V2&#x2F;V3 et l&#x27;export AAB pour le Play Store se font sur le téléphone, via &lt;code&gt;apksig&lt;&#x2F;code&gt;.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Vrais runtimes serveur embarqués&lt;&#x2F;strong&gt; : Node.js 18.20, PHP 8.4 avec Composer, Python 3.14, Go 1.26 et WordPress 7.x sur SQLite sont lancés en fork+exec comme binaires natifs. L&#x27;APK généré héberge donc un serveur local, là où les wrappers classiques se contentent d&#x27;une WebView pointée sur une URL.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Chaîne de build autonome&lt;&#x2F;strong&gt; : patch binaire AXML&#x2F;ARSC, élagage des permissions inutilisées du manifeste template, signature V1&#x2F;V2&#x2F;V3 activable indépendamment, export AAB avec réécriture du &lt;code&gt;targetSdk&lt;&#x2F;code&gt; au niveau exigé par le Play Store. Rien ne sort du téléphone.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Pile réseau détaillée&lt;&#x2F;strong&gt; : DNS-over-HTTPS chez sept fournisseurs, proxies statiques, PAC et SOCKS5, contournement CORS pour les SPA statiques qui appellent des API externes, et bascule automatique sur des URL miroir quand la cible principale ne répond plus.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Extensible après le build&lt;&#x2F;strong&gt; : modules JS&#x2F;CSS, userscripts façon Tampermonkey avec le pont &lt;code&gt;GM_*&lt;&#x2F;code&gt;, et un runtime d&#x27;extensions Chrome MV3 avec recherche directe dans le Chrome Web Store depuis l&#x27;app.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Deux moteurs de rendu&lt;&#x2F;strong&gt; : la WebView système par défaut, ou GeckoView téléchargé au premier usage pour l&#x27;Encrypted Client Hello.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Durcissement optionnel&lt;&#x2F;strong&gt; : chiffrement PBKDF2 plus AES-256-GCM des ressources packagées, avec anti-debug et vérification d&#x27;intégrité DEX quand le chiffrement est actif. Le déguisement d&#x27;empreinte navigateur couvre plus de 50 vecteurs, et le README précise que ces fonctions ne doivent servir qu&#x27;avec le consentement éclairé de l&#x27;utilisateur final.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Empaqueter un build Vite ou React statique en APK servi depuis un localhost embarqué&lt;&#x2F;li&gt;
&lt;li&gt;Distribuer une démo WordPress installable, avec PHP et SQLite embarqués dans l&#x27;APK&lt;&#x2F;li&gt;
&lt;li&gt;Produire un AAB signé prêt pour le Play Store sans chaîne de build sur poste de travail&lt;&#x2F;li&gt;
&lt;li&gt;Regrouper plusieurs sites dans une seule app, en onglets, cartes, flux ou tiroir latéral&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Commentez et laissez l&#x27;IA faire le reste</title>
        <published>2026-09-03T00:00:00+00:00</published>
        <updated>2026-09-03T00:00:00+00:00</updated>
        
        <author>
          <name>
            Quentin Mathis
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/articles/commentez-laissez-ia/"/>
        <id>https://papyrus.z29k.com/articles/commentez-laissez-ia/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/articles/commentez-laissez-ia/">&lt;p&gt;Voilà à quoi ressemblait ma relecture de spec il y a six mois :&lt;&#x2F;p&gt;
&lt;p&gt;« Dans la section 3, le paragraphe qui commence par &quot;L&#x27;utilisateur doit être connecté&quot;, précise ce qui se passe si la session expire pendant que le formulaire est rempli. Et dans la partie sécurité, la contrainte sur les tokens doit être formulée comme un impératif. Attention aussi au paragraphe juste après, il reprend l&#x27;ancienne formulation… »&lt;&#x2F;p&gt;
&lt;p&gt;Voilà ce qu&#x27;on doit écrire quand on veut faire des retours à l&#x27;IA sur un document. Des dizaines de lignes de ce genre qui ne servent qu&#x27;à dire où regarder, indiquer un contexte.&lt;&#x2F;p&gt;
&lt;p&gt;Aujourd&#x27;hui, la même remarque me prend cinq mots : « et si la session expire ? », posés directement sur la phrase concernée.&lt;&#x2F;p&gt;
&lt;p&gt;C&#x27;est ce que fait notabene. L&#x27;IA s&#x27;adapte, et non l&#x27;inverse.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;on-sait-deja-travailler-ensemble&quot;&gt;On sait déjà travailler ensemble&lt;&#x2F;h2&gt;
&lt;p&gt;Quand plusieurs personnes travaillent sur un même document, personne n&#x27;a attendu l&#x27;IA pour savoir comment faire. On surligne un passage, on laisse un mot dans la marge, quelqu&#x27;un répond, on résout le fil. Ces gestes sont vieux de trente ans, tout le monde les connaît, et il n&#x27;y a jamais besoin de les expliquer à qui que ce soit.&lt;&#x2F;p&gt;
&lt;p&gt;Avec un les llm, tout ça a disparu. Il ne reste qu&#x27;une zone de texte.&lt;&#x2F;p&gt;
&lt;p&gt;Et comme l&#x27;outil ne sait faire que ça, c&#x27;est nous qui nous sommes adaptés. On décrit des emplacements avec des phrases, on recopie des passages pour lever le doute, on empile dix demandes dans un seul message en espérant qu&#x27;elles arrivent entières. On a rajouté de la complexité, pour compenser une interface.&lt;&#x2F;p&gt;
&lt;p&gt;Comme beaucoup d&#x27;outils et de machines au début, c&#x27;est le monde à l&#x27;envers. Une IA censée nous simplifier la vie devrait s&#x27;adapter à nos façons de faire, pas nous obliger à en apprendre une nouvelle, surtout si ce n&#x27;est pas pertinent.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;dans-mon-cas-c-est-la-spec&quot;&gt;Dans mon cas, c&#x27;est la spec&lt;&#x2F;h2&gt;
&lt;p&gt;Quand je construis une fonctionnalité, je n&#x27;écris plus le code, j&#x27;écris la spécification détaillée. En somme, j&#x27;ai juste changé de langage.&lt;&#x2F;p&gt;
&lt;p&gt;C&#x27;est devenu l&#x27;étape qui compte le plus. L&#x27;agent code à partir de mes indications. Si c&#x27;est assez clair, le résultat sort juste du premier coup. Si c&#x27;est flou, il comble le vide tout seul.&lt;&#x2F;p&gt;
&lt;p&gt;Et il le comble bien. C&#x27;est ça, le piège. Une spec floue ne produit pas une erreur visible, elle produit une décision que personne n&#x27;a prise.&lt;&#x2F;p&gt;
&lt;p&gt;Reprenons l&#x27;exemple. J&#x27;écris « l&#x27;utilisateur doit être connecté pour accéder à cette page », et je ne dis rien de la session qui expire en plein formulaire. L&#x27;agent ne me pose pas la question. Il choisit un comportement, l&#x27;implémente proprement, et je découvre son choix à la review, ou pire, en testant.&lt;&#x2F;p&gt;
&lt;p&gt;Donc je relis. Sérieusement, ligne par ligne. Et ce qui suit vaut pour n&#x27;importe quel document produit à quatre mains avec une IA, que ce soit une spec, une note de cadrage ou un contrat.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;la-ou-ca-coince&quot;&gt;Là où ça coince&lt;&#x2F;h2&gt;
&lt;p&gt;Je repère un problème page 2, un autre page 5, un troisième dans un schéma page 8. Et pour gagner du temps, je veux faire traiter tout ça par mon agent.&lt;&#x2F;p&gt;
&lt;p&gt;J&#x27;ouvre le terminal, et il faut tout lui préciser.&lt;&#x2F;p&gt;
&lt;p&gt;Je ne peux pas simplement écrire « ce paragraphe est flou ». Il ne sait pas lequel. Je dois le situer : la page, la section, la phrase qui commence par tel mot. La plupart du temps je finis par recopier le passage, pour être sûr.&lt;&#x2F;p&gt;
&lt;p&gt;C&#x27;est long, et c&#x27;est fragile. Plus j&#x27;empile de remarques, moins l&#x27;ensemble est lisible. L&#x27;agent en traite une partie, en oublie une, en interprète une autre de travers. Je passe ensuite un quart d&#x27;heure à vérifier ce qu&#x27;il a compris.&lt;&#x2F;p&gt;
&lt;p&gt;Le problème ne vient pas de lui. Il vient du fait que je perds toute l&#x27;information en changeant de fenêtre. Quand je lisais, je savais exactement de quel paragraphe je parlais. Dans le terminal, je dois le reconstruire avec des mots. Le prompt est une bonne interface pour demander. C&#x27;en est une médiocre pour désigner.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;l-idee&quot;&gt;L&#x27;idée&lt;&#x2F;h2&gt;
&lt;p&gt;Reprendre les gestes qu&#x27;on connaît déjà. Commenter directement sur le texte, comme dans un Word ou un Google Docs.&lt;&#x2F;p&gt;
&lt;p&gt;Je sélectionne le passage, j&#x27;écris trois mots, je continue ma lecture. Rien à situer, rien à recopier. Le commentaire est accroché à l&#x27;endroit exact.&lt;&#x2F;p&gt;
&lt;p&gt;À la fin, une seule phrase à l&#x27;agent : « traite les commentaires. »&lt;&#x2F;p&gt;
&lt;p&gt;Il récupère chaque remarque avec sa position. Ce que je gagne, ce n&#x27;est pas du temps de frappe. C&#x27;est de ne plus avoir à reconstruire ce que j&#x27;avais déjà sous les yeux. Et je n&#x27;ai rien eu à apprendre pour ça.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;comment-ca-marche&quot;&gt;Comment ça marche&lt;&#x2F;h2&gt;
&lt;p&gt;L&#x27;outil génère un site de documentation à partir des fichiers Markdown. Vos specs, votre doc, tout ce qui vit en markdown. Le .md classique et le .mdx cohabitent, vous pouvez mélanger les deux selon les pages.&lt;&#x2F;p&gt;
&lt;p&gt;Vous ouvrez le site en local et vous lisez. Quand quelque chose cloche, vous sélectionnez le texte et vous commentez. Ça marche aussi sur une page entière, une image, ou un diagramme Mermaid. Chaque commentaire ouvre un fil : on répond, on met en attente, on collabore, on résout. Une page récapitule ce qui reste ouvert.&lt;&#x2F;p&gt;
&lt;p&gt;Ensuite vous passez la main à l&#x27;agent. Il lit les commentaires, modifie les fichiers source, et marque les fils comme résolus.&lt;&#x2F;p&gt;
&lt;p&gt;Certaines corrections sont plus rapides à faire soi-même qu&#x27;à expliquer. Un crayon dans la marge ouvre alors le bloc concerné directement dans la page. On édite au choix en visuel, comme dans un traitement de texte, ou en markdown brut quand on préfère voir la syntaxe. Vous enregistrez, et ça ferme au passage les commentaires auxquels la modification répond.&lt;&#x2F;p&gt;
&lt;p&gt;Le tout est stocké en JSON dans votre repo, avec le reste du code. Vos collègues annotent la même page que vous, et leurs remarques arrivent via git.&lt;&#x2F;p&gt;
&lt;p&gt;La boucle complète tient en trente secondes de démo sur le repo : un commentaire posé, l&#x27;agent qui applique, le diff que je valide.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;verifier-ce-que-l-agent-a-fait&quot;&gt;Vérifier ce que l&#x27;agent a fait&lt;&#x2F;h2&gt;
&lt;p&gt;On a tous changé notre façon d&#x27;écrire du code. Presque personne n&#x27;a changé sa façon de le relire. C&#x27;est pourtant là que se joue la qualité maintenant.&lt;&#x2F;p&gt;
&lt;p&gt;Un agent traite trente commentaires en trois minutes. Sur une spec, ça fait potentiellement trente décisions de conception que personne n&#x27;a validées.&lt;&#x2F;p&gt;
&lt;p&gt;D&#x27;où deux garde-fous.&lt;&#x2F;p&gt;
&lt;p&gt;Un journal. Chaque passage de l&#x27;agent laisse une entrée sur une page dédiée : ce qui a changé, pourquoi, et en réponse à quels commentaires. Le pourquoi sert surtout dans trois semaines, quand vous vous demanderez d&#x27;où sort cette contrainte bizarre.&lt;&#x2F;p&gt;
&lt;p&gt;Un mode « approve ». L&#x27;agent prépare ses modifications au lieu de les appliquer. Vous les validez une par une, avec le vrai diff git sous les yeux. Pas un résumé de ce qu&#x27;il pense avoir fait : le diff.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;ce-qu-il-n-y-a-pas-dedans&quot;&gt;Ce qu&#x27;il n&#x27;y a pas dedans&lt;&#x2F;h2&gt;
&lt;p&gt;Pas de service en ligne, pas de compte, pas de base de données. Tout vit dans le repository. Le jour où vous arrêtez d&#x27;utiliser notabene, vous supprimez un dossier.&lt;&#x2F;p&gt;
&lt;p&gt;Pas de serveur ni de MCP dans la boucle avec l&#x27;agent non plus. Il lit des fichiers et il en écrit, c&#x27;est tout. J&#x27;ai ajouté des skills pour qu&#x27;il sache directement comment utiliser l&#x27;outil, et n&#x27;importe quel agent capable de lire un fichier sait alors faire le travail.&lt;&#x2F;p&gt;
&lt;p&gt;Le serveur d&#x27;écriture ne tourne qu&#x27;en local. L&#x27;éditeur refuse aussi de modifier un fichier que git ne suit pas, parce qu&#x27;une modification non versionnée ne se rattrape pas.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;en-local-puis-en-public&quot;&gt;En local, puis en public&lt;&#x2F;h2&gt;
&lt;p&gt;C&#x27;est par ailleurs un vrai générateur de doc. Espaces, sommaire piloté par le frontmatter, recherche textuelle, multilingue avec des commentaires par langue, thème clair et sombre, diagrammes Mermaid zoomables, export PDF avec signets. On peut le mettre à son image : page d&#x27;accueil, logo, liens de navigation, polices, et un jeu de variables CSS pour reprendre votre charte.&lt;&#x2F;p&gt;
&lt;p&gt;Mais tout ce qui précède se passe chez vous. Vous lancez le site sur votre machine, vous annotez, l&#x27;agent travaille. Personne ne voit rien tant que vous ne poussez pas.&lt;&#x2F;p&gt;
&lt;p&gt;Quand la doc est prête, la même commande produit un site statique à publier. Ce build est en lecture seule et ne contient ni éditeur, ni serveur d&#x27;écriture, ni commentaires. Vos annotations de travail restent de votre côté. Vous pouvez aussi marquer des pages comme privées : elles ne partent pas dans le build public, et le lint vous prévient si un lien publié pointe vers l&#x27;une d&#x27;elles.&lt;&#x2F;p&gt;
&lt;p&gt;Le site publié inclut un llms.txt et une version Markdown de chaque page, pour que les agents le lisent correctement.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;fait-avec-l-ia-et-ameliore-par-lui-meme&quot;&gt;Fait avec l&#x27;IA, et amélioré par lui-même&lt;&#x2F;h2&gt;
&lt;p&gt;notabene a lui aussi été développé en grande partie avec l&#x27;IA. Sans l&#x27;usage intensif d&#x27;agents, je n&#x27;aurais jamais rencontré le problème que l&#x27;outil résout.&lt;&#x2F;p&gt;
&lt;p&gt;Il y a une deuxième boucle, à laquelle je tiens plus. La doc de notabene est écrite, relue et publiée avec notabene. J&#x27;écris la spec d&#x27;une fonctionnalité, je la relis dans le navigateur, je commente, l&#x27;agent applique, je valide les diffs. On code après.&lt;&#x2F;p&gt;
&lt;p&gt;C&#x27;est mon meilleur test. Chaque friction que je rencontre en annotant devient une issue. Le journal du projet est l&#x27;historique de ses propres corrections.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pour-qui&quot;&gt;Pour qui ?&lt;&#x2F;h2&gt;
&lt;p&gt;Si vos specs sont dans Confluence ou Notion, ça ne vous servira à rien. notabene ne lit que des fichiers Markdown versionnés.&lt;&#x2F;p&gt;
&lt;p&gt;Si elles sont déjà dans le repo, à côté du code, l&#x27;installation prend deux minutes. C&#x27;est un projet qui se veut simple dans sa mise en place et son fonctionnement, le but n&#x27;est pas d&#x27;alourdir le projet dans lequel il intervient.&lt;&#x2F;p&gt;
&lt;p&gt;Le code : &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;z29k&#x2F;notabene&quot;&gt;github.com&#x2F;z29k&#x2F;notabene&lt;&#x2F;a&gt;&lt;br &#x2F;&gt;
La doc : &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;z29k.github.io&#x2F;notabene&#x2F;&quot;&gt;z29k.github.io&#x2F;notabene&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>LimeSurvey</title>
        <published>2026-09-02T00:00:00+00:00</published>
        <updated>2026-09-02T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/limesurvey/"/>
        <id>https://papyrus.z29k.com/gemshelf/limesurvey/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/limesurvey/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;LimeSurvey est une plateforme de sondages en ligne à installer sur son propre serveur. On y construit des questionnaires avec plus de 30 types de questions, de la logique de saut et du branchement conditionnel, puis on les diffuse par lien public, QR code ou invitation nominative. L&#x27;éditeur part d&#x27;un questionnaire vierge ou de l&#x27;un des plus de 900 modèles fournis, et l&#x27;habillage descend jusqu&#x27;au CSS et au JavaScript. Une offre hébergée existe chez l&#x27;éditeur pour ceux qui ne veulent pas administrer un serveur PHP.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Questionnaires complexes&lt;&#x2F;strong&gt; : plus de 30 types de questions, logique de saut et branchement selon les réponses. C&#x27;est là que les formulaires simples s&#x27;arrêtent et que LimeSurvey continue.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Multilingue de série&lt;&#x2F;strong&gt; : plus de 80 langues pour l&#x27;interface et pour les sondages eux-mêmes, utile dès qu&#x27;une enquête sort d&#x27;un seul pays.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Contrôle des accès et des données&lt;&#x2F;strong&gt; : mode d&#x27;accès fermé par lien personnel, authentification à deux facteurs, anonymisation des réponses et conformité RGPD.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Pilotable par API&lt;&#x2F;strong&gt; : la RemoteControl API en XML-RPC et JSON-RPC, ainsi qu&#x27;une API REST, pour créer des sondages et récupérer les réponses depuis un autre système.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Intégrations d&#x27;entreprise&lt;&#x2F;strong&gt; : SAML, LDAP et SURFconext côté authentification, avec un système de plugins pour les thèmes, l&#x27;audit log ou les exports vers R et Stata.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Enquête académique ou étude de terrain avec des questionnaires longs et conditionnels.&lt;&#x2F;li&gt;
&lt;li&gt;Sondage interne dans une organisation qui impose LDAP ou SAML pour l&#x27;accès.&lt;&#x2F;li&gt;
&lt;li&gt;Collecte de données personnelles là où l&#x27;hébergement et l&#x27;anonymisation doivent rester sous contrôle.&lt;&#x2F;li&gt;
&lt;li&gt;Questionnaire multilingue diffusé dans plusieurs pays depuis une seule instance.&lt;&#x2F;li&gt;
&lt;li&gt;Export des réponses vers R ou Stata pour l&#x27;analyse statistique.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Côté prérequis, l&#x27;installation demande PHP 8.1.29 au minimum avec mbstring et PDO, un serveur Apache ou nginx, et une base MySQL 8, MariaDB 10.3.38, PostgreSQL 14 ou MSSQL 2019. Le code est publié sous GPL-2.0 ou toute version ultérieure, et l&#x27;interface vise la conformité WCAG 2.0.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>OpnForm</title>
        <published>2026-09-02T00:00:00+00:00</published>
        <updated>2026-09-02T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/opnform/"/>
        <id>https://papyrus.z29k.com/gemshelf/opnform/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/opnform/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;OpnForm est un constructeur de formulaires open source, sans code. On assemble le formulaire dans un éditeur visuel, on le publie sur sa propre URL ou on l&#x27;intègre dans une page existante, et les réponses atterrissent dans un tableau de bord. Le projet existe en service hébergé chez l&#x27;éditeur et en version auto-hébergée, avec une API Laravel, un client Nuxt et PostgreSQL en base.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Formulaires et soumissions illimités&lt;&#x2F;strong&gt; : aucun quota sur le nombre de formulaires créés ni sur les réponses collectées.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Logique de formulaire&lt;&#x2F;strong&gt; : affichage conditionnel des champs et personnalisation du rendu, avec des types d&#x27;entrée variés comme le texte, la date, l&#x27;URL ou l&#x27;upload de fichiers.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Sorties branchées&lt;&#x2F;strong&gt; : notifications par email, webhooks, Slack et Discord pour envoyer les réponses vers l&#x27;outil qui les traite ensuite.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Serveur MCP pour les agents IA&lt;&#x2F;strong&gt; : un agent crée et prévisualise un brouillon de formulaire privé sans authentification. Avec OAuth, il accède à la gestion des formulaires par espace de travail, ainsi qu&#x27;à la recherche, aux statistiques et aux exports de soumissions en lecture seule. Le paquet du plugin, portable et natif, est fourni dans le dépôt sous &lt;code&gt;plugins&#x2F;opnform&#x2F;&lt;&#x2F;code&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Anti-spam et mesure&lt;&#x2F;strong&gt; : protection par captcha sur les formulaires publics, et statistiques de consultation côté administration.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Publier un formulaire de contact ou de retour d&#x27;expérience sur son site sans passer par un service tiers.&lt;&#x2F;li&gt;
&lt;li&gt;Collecter des candidatures ou des pièces jointes grâce aux champs d&#x27;upload de fichiers.&lt;&#x2F;li&gt;
&lt;li&gt;Router les réponses vers un canal Slack ou Discord pour qu&#x27;une équipe les traite au fil de l&#x27;eau.&lt;&#x2F;li&gt;
&lt;li&gt;Laisser un agent IA préparer un brouillon de formulaire via MCP, puis le relire avant publication.&lt;&#x2F;li&gt;
&lt;li&gt;Garder les soumissions dans sa propre base PostgreSQL quand les données sont sensibles.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Le cœur du projet est publié sous AGPL-3.0 ou toute version ultérieure, tandis que les fonctionnalités du dossier &lt;code&gt;api&#x2F;app&#x2F;Enterprise&#x2F;&lt;&#x2F;code&gt; relèvent d&#x27;une licence commerciale séparée. L&#x27;installation auto-hébergée passe par Docker, et les guides de déploiement sont dans la documentation officielle.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Rallly</title>
        <published>2026-09-02T00:00:00+00:00</published>
        <updated>2026-09-02T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/rallly/"/>
        <id>https://papyrus.z29k.com/gemshelf/rallly/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/rallly/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Rallly est un outil de sondage de dates. On propose plusieurs créneaux, une journée entière ou une heure précise, on partage le lien, et chaque participant coche ce qui lui convient. La grille des réponses donne le créneau qui arrange le groupe, sans la série d&#x27;aller-retours par email. Le projet existe en version hébergée sur rallly.co et en image Docker à installer sur son propre serveur.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Rien à créer pour voter&lt;&#x2F;strong&gt; : les participants ouvrent le lien et répondent. Pas de compte, pas d&#x27;invitation à accepter. C&#x27;est ce qui rend l&#x27;outil utilisable avec des gens extérieurs à l&#x27;organisation.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Grille de disponibilités&lt;&#x2F;strong&gt; : toutes les réponses tiennent dans un seul tableau, avec le nombre de participants disponibles en tête de chaque colonne. La lecture se fait d&#x27;un coup d&#x27;œil.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Discussion attachée au sondage&lt;&#x2F;strong&gt; : les commentaires vivent sur la page du sondage, donc les détails d&#x27;organisation ne se dispersent pas dans un fil séparé.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Notifications et finalisation&lt;&#x2F;strong&gt; : l&#x27;organisateur est prévenu à chaque réponse, retient une option, et les participants reçoivent la confirmation depuis l&#x27;outil.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Auto-hébergement documenté&lt;&#x2F;strong&gt; : image Docker officielle, PostgreSQL via Prisma, et une section de documentation dédiée à l&#x27;installation et aux variables de configuration. La version hébergée sur rallly.co reste disponible pour ceux qui ne veulent pas gérer de serveur.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Fixer une réunion avec des personnes dont vous ne voyez pas l&#x27;agenda : clients, prestataires, bénévoles.&lt;&#x2F;li&gt;
&lt;li&gt;Trancher sur un créneau quand les agendas partagés de l&#x27;entreprise ne suffisent plus.&lt;&#x2F;li&gt;
&lt;li&gt;Garder les données de planification sur son infrastructure plutôt que sur un service tiers.&lt;&#x2F;li&gt;
&lt;li&gt;Caler un horaire à la demi-heure près sur une journée déjà arrêtée.&lt;&#x2F;li&gt;
&lt;li&gt;Faire voter un groupe multilingue : l&#x27;interface est traduite dans plus de dix langues via Crowdin.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;La stack est du TypeScript de bout en bout : Next.js, tRPC, Prisma et TailwindCSS, avec Next-Auth pour l&#x27;authentification et react-email pour les notifications. Le dépôt compte plus de 5 200 étoiles et 550 forks, sous AGPL-3.0.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Shlink</title>
        <published>2026-09-02T00:00:00+00:00</published>
        <updated>2026-09-02T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/shlink/"/>
        <id>https://papyrus.z29k.com/gemshelf/shlink/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/shlink/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Shlink est un raccourcisseur d&#x27;URL que l&#x27;on héberge soi-même pour servir ses liens courts sous son propre domaine. Le serveur expose une API REST et une interface en ligne de commande. Par-dessus, un client web officiel gère plusieurs instances depuis un navigateur, à utiliser sur app.shlink.io ou à héberger comme le reste. L&#x27;image Docker officielle se configure par variables d&#x27;environnement.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Vos liens sous votre domaine&lt;&#x2F;strong&gt; : les URLs courtes sortent sous votre nom de domaine, et le mode multi-domaine autorise le même slug sur plusieurs domaines à la fois.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;API d&#x27;abord&lt;&#x2F;strong&gt; : l&#x27;API REST couvre les opérations courantes, avec des clés à rôles qui restreignent l&#x27;accès par domaine. La génération de clés reste réservée à la ligne de commande.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Redirections dynamiques&lt;&#x2F;strong&gt; : un même lien court renvoie vers des destinations différentes selon la géolocalisation, le type d&#x27;appareil ou la langue du visiteur.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Statistiques de visites&lt;&#x2F;strong&gt; : localisation, navigateur et referrer, avec détection des bots pour écarter le trafic automatisé. Les adresses IP sont anonymisées par défaut.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Événements temps réel&lt;&#x2F;strong&gt; : les visites se souscrivent via Mercure ou RabbitMQ, de quoi brancher un tableau de bord maison ou un traitement en aval.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Servir les liens d&#x27;une campagne sous un domaine de marque plutôt que sous un service tiers.&lt;&#x2F;li&gt;
&lt;li&gt;Créer des liens courts depuis un script ou un back-office par appel à l&#x27;API REST.&lt;&#x2F;li&gt;
&lt;li&gt;Limiter un lien à une plage de dates ou à un nombre de visites pour une opération temporaire.&lt;&#x2F;li&gt;
&lt;li&gt;Reprendre l&#x27;existant : Shlink importe les liens de services externes comme bit.ly.&lt;&#x2F;li&gt;
&lt;li&gt;Classer les liens par tags pour suivre les statistiques campagne par campagne.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Côté installation, il faut PHP 8.4 ou 8.5 avec les extensions json, curl, pdo, intl, gd et gmp ou bcmath, puis une base MySQL, MariaDB, PostgreSQL, Microsoft SQL ou SQLite. Un installeur en ligne de commande guide la configuration, et la première clé d&#x27;API se génère avec &lt;code&gt;bin&#x2F;cli api-key:generate&lt;&#x2F;code&gt;. Le projet est sous licence MIT.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>draw-your-font</title>
        <published>2026-08-28T00:00:00+00:00</published>
        <updated>2026-08-28T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/draw-your-font/"/>
        <id>https://papyrus.z29k.com/gemshelf/draw-your-font/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/draw-your-font/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;draw-your-font transforme une photo de votre alphabet manuscrit en police installable (TTF, WOFF, WOFF2). Vous écrivez vos lettres sur papier, vous photographiez, la CLI isole chaque lettre, la vectorise et assemble le fichier - sans upload ni compte. La sortie actuelle est une police à variante unique : crénage, ligatures et randomisation des lettres sont annoncés pour la v2.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Zéro dépendance système&lt;&#x2F;strong&gt; : pur npm, ni FontForge, ni ImageMagick, ni binaire potrace à installer. Node ≥ 18 suffit, sur macOS, Linux ou Windows.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Métriques partagées&lt;&#x2F;strong&gt; : chaque caractère occupe une bande verticale dans un em carré de 1000 unités (hauteur de capitale, hauteur d&#x27;x, profondeur de jambage). Le &lt;code&gt;g&lt;&#x2F;code&gt; descend sous la ligne, le &lt;code&gt;o&lt;&#x2F;code&gt; reste petit.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Vectorisation potrace&lt;&#x2F;strong&gt; : le moteur qu&#x27;embarquent déjà FontForge et Inkscape. L&#x27;IA ne dessine aucune lettre : elle les repère et les étiquette.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Deux modes d&#x27;usage&lt;&#x2F;strong&gt; : une skill Claude Code pour itérer en conversation (« plus rond », « le g est raté »), ou la CLI déterministe seule, sans IA, en listant les caractères avec &lt;code&gt;--chars&lt;&#x2F;code&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Critique intégrée&lt;&#x2F;strong&gt; : la skill note la lisibilité de la police et pointe les deux paires de lettres les plus problématiques. Sur un caractère raté, elle affiche le crop concerné et propose soit une correction, soit une nouvelle photo.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Gabarit imprimable&lt;&#x2F;strong&gt; : la commande &lt;code&gt;template&lt;&#x2F;code&gt; sort une grille PDF A4 (charset &lt;code&gt;minimal&lt;&#x2F;code&gt; ou &lt;code&gt;spanish&lt;&#x2F;code&gt;). Les photos libres passent aussi : carnet à spirale, ombre de page, lumière faible.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Formats web&lt;&#x2F;strong&gt; : &lt;code&gt;--formats ttf,woff,woff2,css&lt;&#x2F;code&gt; livre les fichiers avec le snippet &lt;code&gt;@font-face&lt;&#x2F;code&gt;. La police vous appartient, usage commercial inclus.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Habiller un site perso ou un portfolio avec sa propre écriture.&lt;&#x2F;li&gt;
&lt;li&gt;Numériser l&#x27;écriture de quelqu&#x27;un pour la conserver sous forme de police.&lt;&#x2F;li&gt;
&lt;li&gt;Produire une police manuscrite pour une identité visuelle sans abonnement mensuel.&lt;&#x2F;li&gt;
&lt;li&gt;Ajuster le rendu avec &lt;code&gt;--weight&lt;&#x2F;code&gt; et &lt;code&gt;--smooth&lt;&#x2F;code&gt;, puis vérifier le résultat avec la commande &lt;code&gt;preview&lt;&#x2F;code&gt;.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Bracket</title>
        <published>2026-08-27T00:00:00+00:00</published>
        <updated>2026-08-27T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/bracket/"/>
        <id>https://papyrus.z29k.com/gemshelf/bracket/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/bracket/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Bracket est un système de gestion de tournois à auto-héberger. Tu crées un club, un tournoi dedans, tu déclares les équipes et leurs joueurs, puis tu construis la structure : plusieurs étapes, chacune contenant un ou plusieurs groupes ou tableaux. Le backend est écrit en Python asynchrone avec FastAPI, le frontend en Vite et Mantine, avec PostgreSQL derrière.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Trois formats couverts&lt;&#x2F;strong&gt; : élimination directe, round-robin et suisse. Le suisse est géré dynamiquement : les matchs suivants sont planifiés automatiquement au fil des résultats.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Structure en étapes&lt;&#x2F;strong&gt; : un tournoi enchaîne plusieurs étapes, et chaque étape porte ses propres groupes ou tableaux. Une phase de poules suivie d&#x27;un tableau final se modélise directement, sans bricolage.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Planning au glisser-déposer&lt;&#x2F;strong&gt; : un match se déplace sur un autre terrain ou se recale à une autre heure de départ, sans passer par un formulaire.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Pages publiques&lt;&#x2F;strong&gt; : plusieurs vues dashboard sont prévues pour être projetées ou partagées aux participants, avec un logo au choix.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Multi-clubs&lt;&#x2F;strong&gt; : plusieurs clubs cohabitent sur la même instance, avec plusieurs tournois par club.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Démarrage en une commande&lt;&#x2F;strong&gt; : &lt;code&gt;docker compose up -d&lt;&#x2F;code&gt; monte le backend, le frontend et PostgreSQL, avec des identifiants de test fournis dans le README. Un &lt;code&gt;create-dev-db&lt;&#x2F;code&gt; remplit ensuite la base de données de démonstration.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Organiser un tournoi de club sur un week-end, avec plusieurs terrains à faire tourner.&lt;&#x2F;li&gt;
&lt;li&gt;Enchaîner une phase de poules et un tableau à élimination directe dans le même tournoi.&lt;&#x2F;li&gt;
&lt;li&gt;Afficher les résultats en direct sur un écran à l&#x27;entrée de la salle.&lt;&#x2F;li&gt;
&lt;li&gt;Faire tourner un tournoi au système suisse sans recalculer les appariements à la main.&lt;&#x2F;li&gt;
&lt;li&gt;Héberger les tournois de plusieurs clubs sur une seule instance.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;La langue de l&#x27;interface est détectée depuis les réglages du navigateur, et il n&#x27;existe pas encore de sélecteur manuel ; les traductions passent par Crowdin. Une démo publique tourne sur bracketapp.nl&#x2F;demo, avec les données effacées au bout de trente minutes.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>hucre</title>
        <published>2026-08-27T00:00:00+00:00</published>
        <updated>2026-08-27T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/hucre/"/>
        <id>https://papyrus.z29k.com/gemshelf/hucre/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/hucre/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;hucre est un moteur de tableur écrit en TypeScript pur, sans aucune dépendance. Il lit et écrit du XLSX, du CSV, de l&#x27;ODS, du JSON, du NDJSON et du XML, et lit en plus le XLS legacy et le XLSB. Le core n&#x27;utilise aucune API Node (&lt;code&gt;fs&lt;&#x2F;code&gt;, &lt;code&gt;crypto&lt;&#x2F;code&gt;, &lt;code&gt;Buffer&lt;&#x2F;code&gt;) ni &lt;code&gt;eval&lt;&#x2F;code&gt;, donc le même paquet tourne dans Node 24+, Deno, Bun, un navigateur, un Cloudflare Worker ou une edge function Vercel.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Zéro dépendance et imports tree-shakeable&lt;&#x2F;strong&gt; : chaque format a son sous-chemin. &lt;code&gt;parseCsv&lt;&#x2F;code&gt; + &lt;code&gt;writeCsv&lt;&#x2F;code&gt; depuis &lt;code&gt;hucre&#x2F;csv&lt;&#x2F;code&gt; pèsent 3,7 Ko gzippés, &lt;code&gt;readXlsx&lt;&#x2F;code&gt; seul 34 Ko, la lib entière 129 Ko. Ces tailles sont figées dans un budget que la CI fait échouer dès qu&#x27;une entrée déborde&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Streaming des deux côtés&lt;&#x2F;strong&gt; : &lt;code&gt;streamXlsxRows&lt;&#x2F;code&gt; est un générateur async qui parse le ZIP de bout en bout directement depuis un &lt;code&gt;ReadableStream&lt;&#x2F;code&gt;, avec plafond de lignes et filtre de plage A1. &lt;code&gt;writeXlsxStream&lt;&#x2F;code&gt; consomme n&#x27;importe quel itérable - un curseur de base de données, un autre flux - et la mémoire ne grimpe pas avec le nombre de lignes&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Deux chemins séparés volontairement&lt;&#x2F;strong&gt; : &lt;code&gt;openXlsx&lt;&#x2F;code&gt;&#x2F;&lt;code&gt;saveXlsx&lt;&#x2F;code&gt; recopie octet pour octet chaque partie qu&#x27;il ne régénère pas, donc les graphiques, les macros VBA et les thèmes survivent à une modification. &lt;code&gt;readXlsx&lt;&#x2F;code&gt;&#x2F;&lt;code&gt;writeXlsx&lt;&#x2F;code&gt; est le chemin d&#x27;auteur, qui reconstruit le classeur depuis le modèle&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;L&#x27;écriture couvre les parties pénibles&lt;&#x2F;strong&gt; : styles de cellules, largeurs de colonnes calculées selon la police (caractères CJK double largeur compris), volets figés, filtres automatiques, validation de données, liens, images, commentaires, tableaux, mises en forme conditionnelles avec leurs styles dxf, sparklines et cases à cocher natives Excel 2024&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Validation de schéma intégrée&lt;&#x2F;strong&gt; : &lt;code&gt;validateWithSchema&lt;&#x2F;code&gt; coerce les types et applique &lt;code&gt;required&lt;&#x2F;code&gt;, &lt;code&gt;pattern&lt;&#x2F;code&gt;, &lt;code&gt;min&lt;&#x2F;code&gt;&#x2F;&lt;code&gt;max&lt;&#x2F;code&gt;, &lt;code&gt;enum&lt;&#x2F;code&gt; et des validateurs maison, puis rend les objets propres d&#x27;un côté et la liste des erreurs (ligne, champ, valeur) de l&#x27;autre&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;API unifiée et CLI&lt;&#x2F;strong&gt; : &lt;code&gt;read()&lt;&#x2F;code&gt; détecte le format aux octets magiques ou au premier caractère, &lt;code&gt;write()&lt;&#x2F;code&gt; sort dans neuf formats, et &lt;code&gt;npx hucre convert|inspect|validate&lt;&#x2F;code&gt; fait la même chose depuis un terminal, stdin et stdout compris&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Générer un export Excel stylé depuis une route API ou une edge function, sans ajouter la moindre dépendance&lt;&#x2F;li&gt;
&lt;li&gt;Ingérer un fichier client de plusieurs millions de lignes en flux, avec un schéma qui contrôle chaque ligne au passage&lt;&#x2F;li&gt;
&lt;li&gt;Modifier une cellule dans un classeur métier truffé de graphiques et de macros sans casser le reste du fichier&lt;&#x2F;li&gt;
&lt;li&gt;Convertir un XLS legacy ou un CSV vers du XLSX, du Markdown ou du NDJSON en une seule commande&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>MeshCentral</title>
        <published>2026-08-27T00:00:00+00:00</published>
        <updated>2026-08-27T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/meshcentral/"/>
        <id>https://papyrus.z29k.com/gemshelf/meshcentral/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/meshcentral/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;MeshCentral est un serveur de gestion de parc à auto-héberger, écrit en Node.js. Tu poses un agent sur chaque machine, elle remonte dans la console web, et tu prends la main dessus : bureau à distance, terminal, explorateur de fichiers, journal d&#x27;événements, détails matériels. L&#x27;agent se connecte au serveur en sortie, donc une machine derrière un NAT ou un pare-feu reste joignable sans ouvrir de port chez elle.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Tout dans le navigateur&lt;&#x2F;strong&gt; : bureau à distance, shell, transfert de fichiers et administration du serveur tiennent dans le même onglet. Rien à installer côté opérateur.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Agents multi-OS&lt;&#x2F;strong&gt; : Windows, Linux, macOS et BSD pour le serveur comme pour l&#x27;agent, plus Raspberry Pi et un agent mobile Android.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Intel AMT&lt;&#x2F;strong&gt; : les machines équipées se pilotent hors bande, y compris éteintes ou avec un OS qui ne démarre plus, depuis la même interface que les agents logiciels.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Comptes et permissions sérieux&lt;&#x2F;strong&gt; : groupes d&#x27;appareils, groupes d&#x27;utilisateurs, permissions par groupe, multi-tenant, 2FA, FIDO, LDAP et SSO en OpenID Connect ou ADFS.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;MeshCentral Router&lt;&#x2F;strong&gt; : mappe un port TCP de ton poste vers n&#x27;importe quelle machine du parc. RDP, SSH ou VNC passent dans le tunnel du serveur, sans monter de VPN.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Base de données au choix&lt;&#x2F;strong&gt; : base locale par défaut pour démarrer, puis MongoDB, PostgreSQL, MariaDB ou MySQL quand le parc grossit.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Personnalisable&lt;&#x2F;strong&gt; : branding du serveur, agents signés avec ton propre certificat, système de plugins, notifications par mail, Telegram, Discord ou XMPP.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Faire du support à distance sur des postes utilisateurs répartis chez eux, sans VPN ni redirection de port.&lt;&#x2F;li&gt;
&lt;li&gt;Administrer un homelab depuis un onglet : consoles, transferts de fichiers et réveils de machines au même endroit.&lt;&#x2F;li&gt;
&lt;li&gt;Gérer plusieurs clients sur un seul serveur grâce au multi-tenant, avec des permissions cloisonnées par groupe.&lt;&#x2F;li&gt;
&lt;li&gt;Récupérer une machine dont l&#x27;OS ne démarre plus, via Intel AMT, sans se déplacer.&lt;&#x2F;li&gt;
&lt;li&gt;Suivre un parc de Raspberry Pi ou de machines Linux embarquées avec un agent léger.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;L&#x27;installation se fait par &lt;code&gt;npm install meshcentral&lt;&#x2F;code&gt; sur Node.js 20 ou plus, par conteneur Docker, ou derrière un reverse proxy NGINX avec un certificat Let&#x27;s Encrypt.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>netboot.xyz</title>
        <published>2026-08-27T00:00:00+00:00</published>
        <updated>2026-08-27T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/netbootxyz/"/>
        <id>https://papyrus.z29k.com/gemshelf/netbootxyz/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/netbootxyz/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;netboot.xyz est un petit bootloader basé sur iPXE. Au démarrage, il ouvre un menu classé par familles : installeurs réseau Linux, distributions live et desktop, sécurité et forensic, utilitaires et rescue, hyperviseurs et stockage, Windows (WIM), plus un shell iPXE. Le noyau et les fichiers d&#x27;install sont récupérés en HTTP depuis les miroirs upstream au moment du boot, donc il n&#x27;y a aucune ISO à télécharger, à graver ni à garder à jour.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Une image au lieu d&#x27;un tiroir&lt;&#x2F;strong&gt; : une seule clé USB, une seule ISO ou une seule entrée PXE couvre l&#x27;ensemble du catalogue, au lieu d&#x27;un support par distribution.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Toujours à jour&lt;&#x2F;strong&gt; : les images sont tirées des miroirs officiels à chaque boot. Tu ne réécris pas ta clé USB parce qu&#x27;une nouvelle Debian est sortie.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;BIOS, UEFI, x86_64 et ARM64&lt;&#x2F;strong&gt; : les builds couvrent le legacy PCBIOS, l&#x27;UEFI, les deux architectures, et des variantes universelles multi-arch en ISO comme en image USB.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Plusieurs façons de le lancer&lt;&#x2F;strong&gt; : &lt;code&gt;dd&lt;&#x2F;code&gt; sur une clé, ISO montée dans une VM ou via DRAC&#x2F;iLO, TFTP&#x2F;PXE servi par ton DHCP, ou chainload depuis GRUB, syslinux ou un shell EFI.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Auto-hébergeable&lt;&#x2F;strong&gt; : un playbook Ansible ou un build Docker rendent les templates et compilent les disques iPXE dans &lt;code&gt;&#x2F;var&#x2F;www&#x2F;html&lt;&#x2F;code&gt;, pour servir le menu depuis ton propre réseau.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Personnalisable sans fork&lt;&#x2F;strong&gt; : &lt;code&gt;user_overrides.yml&lt;&#x2F;code&gt; change les miroirs et les paramètres de rendu, et &lt;code&gt;custom&#x2F;custom.ipxe&lt;&#x2F;code&gt; ajoute tes entrées à toi. Tes menus vivent à côté du dépôt amont, qui continue de se mettre à jour de son côté.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Installer un OS sur une machine sans lecteur optique ni clé sous la main : l&#x27;ISO se monte via DRAC, iLO, VMware ou VirtualBox.&lt;&#x2F;li&gt;
&lt;li&gt;Servir un menu de boot interne pour un homelab ou un parc, avec des miroirs locaux configurés dans les overrides.&lt;&#x2F;li&gt;
&lt;li&gt;Dépanner un poste avec Clonezilla, GParted, memtest, un boot repair ou un disque de rescue, tous accessibles depuis le même menu.&lt;&#x2F;li&gt;
&lt;li&gt;Tester une distribution en live avant de décider de l&#x27;installer.&lt;&#x2F;li&gt;
&lt;li&gt;Provisionner du bare metal en PXE sans monter d&#x27;infrastructure de déploiement complète.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Les builds publiés sont accompagnés de checksums SHA256 générés à chaque compilation.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Rota</title>
        <published>2026-08-27T00:00:00+00:00</published>
        <updated>2026-08-27T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/rota/"/>
        <id>https://papyrus.z29k.com/gemshelf/rota/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/rota/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Rota est une plateforme de rotation de proxies à auto-héberger. Le cœur est un serveur proxy écrit en Go qui écoute sur le port 8000 : tes clients s&#x27;y connectent comme sur n&#x27;importe quel proxy, et chaque requête ressort par une IP différente du pool selon la stratégie configurée. Autour, un dashboard Next.js suit l&#x27;état du pool en direct et TimescaleDB garde l&#x27;historique des requêtes pour l&#x27;analyse.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Quatre stratégies de rotation&lt;&#x2F;strong&gt; : aléatoire, round-robin, moins de connexions actives, ou rotation à intervalle fixe. Les pools nommés ajoutent un mode &lt;code&gt;sticky&lt;&#x2F;code&gt; qui garde la même IP sur N requêtes.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Import automatique des listes&lt;&#x2F;strong&gt; : tu déclares des URL pointant vers des listes &lt;code&gt;ip:port&lt;&#x2F;code&gt;, chacune avec son protocole et son intervalle de rafraîchissement en minutes. Un scheduler rattrape les sources en retard toutes les minutes.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Géolocalisation et pools filtrés&lt;&#x2F;strong&gt; : chaque proxy est géolocalisé via ip-api.com, avec pays, région, ville, ISP et coordonnées. Les pools se construisent en mélangeant pays, villes, sous-chaînes d&#x27;ISP et tags maison, en synchronisation auto ou manuelle.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Comptes proxy avec failover&lt;&#x2F;strong&gt; : des utilisateurs à mot de passe bcrypt, chacun rattaché à un pool principal et à des replis ordonnés. &lt;code&gt;http:&#x2F;&#x2F;user:pass@host:8000&lt;&#x2F;code&gt; route dans cette chaîne, et une requête bascule sur le pool suivant quand le premier n&#x27;a plus d&#x27;IP vivante.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Health checks et alertes&lt;&#x2F;strong&gt; : vérifications asynchrones contre l&#x27;URL de ton choix, planification cron par pool (&lt;code&gt;*&#x2F;30 * * * *&lt;&#x2F;code&gt;), et webhook déclenché quand le nombre de proxies actifs tombe sous un seuil, avec cooldown réglable.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Multi-protocole et chaînage&lt;&#x2F;strong&gt; : HTTP, HTTPS, SOCKS4, SOCKS4a et SOCKS5, avec possibilité de chaîner vers un proxy amont type Burp Suite ou OWASP ZAP.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Garde-fous côté auth&lt;&#x2F;strong&gt; : JWT sur toute l&#x27;API, blocage par IP après N échecs de login, verrou global au-delà d&#x27;un seuil de trafic, et validation d&#x27;origine sur les WebSockets. Le drapeau &lt;code&gt;TRUST_PROXY_HEADERS&lt;&#x2F;code&gt; décide si &lt;code&gt;X-Forwarded-For&lt;&#x2F;code&gt; est cru, pour que le rate limit ne se contourne pas avec un en-tête forgé.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Faire tourner des campagnes de collecte web derrière un pool d&#x27;IP qui se renouvelle tout seul.&lt;&#x2F;li&gt;
&lt;li&gt;Répartir des tests de charge sur plusieurs points de sortie.&lt;&#x2F;li&gt;
&lt;li&gt;Router du trafic de recherche en sécurité à travers une chaîne de proxies, avec Burp ou ZAP en amont.&lt;&#x2F;li&gt;
&lt;li&gt;Donner à chaque équipe ou projet son propre compte proxy, avec un pool géographique dédié et des replis.&lt;&#x2F;li&gt;
&lt;li&gt;Surveiller un parc de proxies achetés ou collectés et purger automatiquement les IP mortes.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Le déploiement par défaut tient dans un &lt;code&gt;docker compose up -d&lt;&#x2F;code&gt;, sans fichier de configuration : Caddy sert le dashboard, l&#x27;API et les WebSockets sur une seule origine, prend en charge le certificat TLS dès que &lt;code&gt;SITE_ADDRESS&lt;&#x2F;code&gt; porte un domaine, et le mot de passe admin initial est généré puis écrit dans les logs.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>@signpdf</title>
        <published>2026-08-27T00:00:00+00:00</published>
        <updated>2026-08-27T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/signpdf/"/>
        <id>https://papyrus.z29k.com/gemshelf/signpdf/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/signpdf/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;&lt;code&gt;@signpdf&lt;&#x2F;code&gt; est une famille de paquets npm qui signent électroniquement des PDF depuis Node.js. Le principe tient en deux temps : on insère d&#x27;abord un emplacement de signature dans le document, c&#x27;est-à-dire un objet &lt;code&gt;Sig&lt;&#x2F;code&gt; et un &lt;code&gt;Widget&lt;&#x2F;code&gt; rattachés à un formulaire déclaré dans le &lt;code&gt;Root&lt;&#x2F;code&gt; du PDF, puis &lt;code&gt;@signpdf&#x2F;signpdf&lt;&#x2F;code&gt; remplace les zéros réservés dans le descripteur &lt;code&gt;Contents&lt;&#x2F;code&gt; par la signature réelle. Le projet assume son objectif : montrer ce flux dans du code lisible, parce que le reconstituer depuis la spec prend des heures.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Découpage en petits paquets&lt;&#x2F;strong&gt; : &lt;code&gt;@signpdf&#x2F;signpdf&lt;&#x2F;code&gt; orchestre, un signer fournit la crypto, un helper pose le placeholder. Tu n&#x27;installes que la combinaison qui correspond à ton cas.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Un helper par façon d&#x27;obtenir un PDF&lt;&#x2F;strong&gt; : &lt;code&gt;placeholder-pdfkit&lt;&#x2F;code&gt; pour PDFKit 0.11 et plus, &lt;code&gt;placeholder-pdfkit010&lt;&#x2F;code&gt; pour PDFKit 0.10, &lt;code&gt;placeholder-pdf-lib&lt;&#x2F;code&gt; pour PDF-LIB, &lt;code&gt;placeholder-plain&lt;&#x2F;code&gt; pour un fichier &lt;code&gt;.pdf&lt;&#x2F;code&gt; déjà sur le disque.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Signature détachée&lt;&#x2F;strong&gt; : &lt;code&gt;@signpdf&#x2F;signer-p12&lt;&#x2F;code&gt; signe un buffer avec un bundle P12 via node-forge. En détaché, la longueur de la signature ne dépend pas de la taille du document mais du certificat, donc tu calibres la taille du placeholder une fois pour toutes.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;PAdES&lt;&#x2F;strong&gt; : le sous-filtre &lt;code&gt;ETSI.CAdES.detached&lt;&#x2F;code&gt; se déclare avec l&#x27;option &lt;code&gt;subFilter&lt;&#x2F;code&gt; des helpers, à la place de la valeur Adobe par défaut.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Les limites sont écrites&lt;&#x2F;strong&gt; : &lt;code&gt;placeholder-plain&lt;&#x2F;code&gt; travaille par opérations de chaîne, donc il est fragile, ne gère pas les streams et s&#x27;arrête au PDF 1.3. Le README le dit, tout en précisant que c&#x27;est le helper le plus utilisé.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Types et exemples&lt;&#x2F;strong&gt; : les paquets publient leurs déclarations TypeScript, et le dépôt contient un exemple exécutable par combinaison, en JS comme en TS.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Signer à la volée des factures ou des contrats générés avec PDFKit ou PDF-LIB.&lt;&#x2F;li&gt;
&lt;li&gt;Apposer un certificat d&#x27;entreprise sur des PDF venus de sources variées, dans un job backend.&lt;&#x2F;li&gt;
&lt;li&gt;Produire des signatures conformes PAdES pour un usage réglementaire européen.&lt;&#x2F;li&gt;
&lt;li&gt;Traiter des documents qui arrivent déjà avec leur placeholder, posé par un autre outil, avec &lt;code&gt;@signpdf&#x2F;signpdf&lt;&#x2F;code&gt; et un signer seuls.&lt;&#x2F;li&gt;
&lt;li&gt;Lire une implémentation courte du format de signature PDF avant d&#x27;écrire la sienne.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Le README annonce lui-même son périmètre : seuls les scénarios de base de la signature PDF sont couverts. La signature elle-même passe par &lt;code&gt;node-forge&lt;&#x2F;code&gt;, déclaré en peer dependency du signer P12.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>TastyIgniter</title>
        <published>2026-08-27T00:00:00+00:00</published>
        <updated>2026-08-27T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/tastyigniter/"/>
        <id>https://papyrus.z29k.com/gemshelf/tastyigniter/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/tastyigniter/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;TastyIgniter est un système de commande en ligne et de réservation de tables pour restaurants, auto-hébergé et bâti sur Laravel. Les clients commandent en livraison ou à emporter depuis une page à tes couleurs, et le back-office gère les menus, la file cuisine, les paiements et les rapports. Aucune commission n&#x27;est prélevée sur les commandes, à la différence des marketplaces de livraison.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Commande et réservation dans le même produit&lt;&#x2F;strong&gt; : livraison et pickup avec créneaux, montant minimum et heure de cut-off propres à chaque type de commande, plus des réservations calées sur la capacité réelle des tables, en confirmation manuelle ou automatique&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Gestion de menu pensée cuisine&lt;&#x2F;strong&gt; : menus et catégories illimités, plages horaires par plat (le petit-déjeuner s&#x27;éteint à 11h, le rôti ne sort que le dimanche), rupture de stock qui retire l&#x27;article de la commande immédiatement, tags allergènes et prix spéciaux&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Suivi cuisine et impression&lt;&#x2F;strong&gt; : file de commandes par statut (reçue, en préparation, prête), tickets envoyés directement à l&#x27;imprimante, estimation du temps de préparation selon la charge, et statut poussé au client sans qu&#x27;il ait à appeler&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Paiements et promos d&#x27;origine&lt;&#x2F;strong&gt; : Stripe, PayPal, Mollie, Authorize.net et Square sont livrés dans le core, aux côtés du paiement en espèces ou sur place, du pourboire au checkout et des codes promo limités dans le temps ou par menu&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Multi-établissements sur un seul dashboard&lt;&#x2F;strong&gt; : chaque succursale a ses zones de livraison, ses horaires et ses règles, les comptes staff sont scopés par rôle (cuisine, salle, manager) et les performances se comparent site par site&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Base Laravel extensible&lt;&#x2F;strong&gt; : PHP 8.3+, Laravel 12, Bootstrap 5, API REST et une marketplace d&#x27;extensions pour la fidélité, la caisse ou les intégrations de livraison, avec une interface traduite dans plusieurs langues&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Sortir un restaurant indépendant des 20 à 30 % de commission prélevés par les plateformes de livraison&lt;&#x2F;li&gt;
&lt;li&gt;Faire tourner plusieurs points de vente avec des menus, des zones de livraison et des horaires distincts depuis un seul login&lt;&#x2F;li&gt;
&lt;li&gt;Ajouter un module de réservation de tables à un site vitrine existant, avec vérification de la capacité réelle&lt;&#x2F;li&gt;
&lt;li&gt;Livrer une solution de commande en marque blanche à un client restaurateur, en gardant la main sur le code&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>ToolJet</title>
        <published>2026-08-27T00:00:00+00:00</published>
        <updated>2026-08-27T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/tooljet/"/>
        <id>https://papyrus.z29k.com/gemshelf/tooljet/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/tooljet/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;ToolJet est une plateforme d&#x27;outils internes à auto-héberger. Tu assembles une interface au glisser-déposer depuis un catalogue de composants, tu la branches sur tes bases et tes API, et tu publies l&#x27;app pour tes équipes. Le dépôt correspond à la Community Edition sous AGPL-3.0 : les fonctions IA et la gestion d&#x27;organisation vivent dans une offre commerciale séparée.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Builder visuel à 60+ composants&lt;&#x2F;strong&gt; : tables, graphiques, formulaires, listes, barres de progression. Les apps sont multi-pages et s&#x27;éditent à plusieurs en simultané.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;80+ sources de données&lt;&#x2F;strong&gt; : bases, API, stockage objet et outils SaaS se branchent depuis l&#x27;interface, sans écrire de couche d&#x27;accès maison.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Base de données intégrée&lt;&#x2F;strong&gt; : la ToolJet Database sert de stockage no-code quand tu n&#x27;as pas déjà un backend à connecter.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Du code là où le visuel bloque&lt;&#x2F;strong&gt; : JavaScript et Python s&#x27;exécutent à l&#x27;intérieur des apps, pour les transformations et la logique que les composants ne couvrent pas.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Extensible en interne&lt;&#x2F;strong&gt; : la CLI &lt;code&gt;@tooljet&#x2F;cli&lt;&#x2F;code&gt; sert à écrire tes propres plugins et connecteurs.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Déployable un peu partout&lt;&#x2F;strong&gt; : Docker, Kubernetes, EC2, ECS, EKS, GKE, Cloud Run, AKS, Azure Container, DigitalOcean, OpenShift et Helm, avec en plus une présence sur les marketplaces AWS et Azure.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Base de sécurité&lt;&#x2F;strong&gt; : chiffrement AES-256-GCM, flux de données passant uniquement par le proxy, SSO, commentaires en ligne et contrôle d&#x27;accès granulaire.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;La frontière open source est nette&lt;&#x2F;strong&gt; : la CE couvre le builder, la base, les sources de données et l&#x27;auto-hébergement. La génération d&#x27;app depuis un prompt, l&#x27;agent builder, le RBAC, le GitSync, le multi-environnement, le white-label et les logs d&#x27;audit sont dans l&#x27;offre payante ToolJet AI.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Monter un back-office sur une base existante sans écrire de CRUD à la main.&lt;&#x2F;li&gt;
&lt;li&gt;Donner à une équipe support un écran de consultation et d&#x27;action sur les données client.&lt;&#x2F;li&gt;
&lt;li&gt;Assembler un dashboard opérationnel qui agrège plusieurs API et plusieurs bases.&lt;&#x2F;li&gt;
&lt;li&gt;Remplacer une collection de scripts internes par des apps avec du contrôle d&#x27;accès.&lt;&#x2F;li&gt;
&lt;li&gt;Prototyper un outil métier avant de décider s&#x27;il mérite un développement dédié.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Le dépôt suit git-flow : &lt;code&gt;develop&lt;&#x2F;code&gt; est la branche de base, et les versions stables sont sur &lt;code&gt;main&lt;&#x2F;code&gt; et les tags &lt;code&gt;v1.x.x&lt;&#x2F;code&gt;. Pour une montée de version, la doc recommande la ligne LTS plutôt que la dernière en date.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>VaultS3</title>
        <published>2026-08-27T00:00:00+00:00</published>
        <updated>2026-08-27T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/vaults3/"/>
        <id>https://papyrus.z29k.com/gemshelf/vaults3/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/vaults3/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;VaultS3 est un serveur de stockage objet compatible S3, écrit en Go et livré en un seul binaire. Tu le lances sans fichier de configuration : il crée ses répertoires, imprime un secret admin au premier démarrage, puis expose l&#x27;API S3 et son dashboard web sur le port 9000. Sur le disque, les objets restent des fichiers ordinaires et l&#x27;index tient dans un fichier BoltDB, donc &lt;code&gt;rclone sync&lt;&#x2F;code&gt; ou &lt;code&gt;aws s3 sync&lt;&#x2F;code&gt; suffit à repartir ailleurs.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;API S3 mesurée, pas déclarée&lt;&#x2F;strong&gt; : plus de 80 opérations, SigV4, multipart, requêtes par plage, requêtes conditionnelles, checksums et URLs pré-signées. La compatibilité est testée contre &lt;code&gt;ceph&#x2F;s3-tests&lt;&#x2F;code&gt;, la suite qui sert de référence au reste de l&#x27;écosystème.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Dashboard dans la boîte&lt;&#x2F;strong&gt; : navigateur de fichiers, upload en glisser-déposer, stats, IAM, audit, recherche et sauvegardes, traduit en français, anglais, allemand et chinois.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Contrôle d&#x27;accès complet&lt;&#x2F;strong&gt; : utilisateurs, groupes et policies IAM, SSO OIDC&#x2F;JWT, LDAP, STS, CORS par bucket, listes d&#x27;IP autorisées et journal d&#x27;audit. L&#x27;évaluation des policies est en deny par défaut.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Chiffrement au repos&lt;&#x2F;strong&gt; : AES-256-GCM, SSE-S3, SSE-KMS et SSE-C, avec clés par bucket, rotation et crypto-shredding.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Durabilité et cluster&lt;&#x2F;strong&gt; : erasure coding Reed-Solomon avec healer en tâche de fond, métadonnées répliquées par Raft, réplication active-active dont les conflits se résolvent par horloges vectorielles.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Recherche et intégrations&lt;&#x2F;strong&gt; : full-text sur métadonnées et tags, recherche sémantique et récupération RAG en option sans base vectorielle externe, notifications vers Webhook, Kafka, NATS, Redis, AMQP, PostgreSQL ou Elasticsearch.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Reprise de l&#x27;existant&lt;&#x2F;strong&gt; : les buckets s&#x27;importent depuis MinIO, SeaweedFS, Garage, Ceph, AWS, R2, Wasabi ou B2, avec les dates, métadonnées, policies et tags.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Maturité annoncée par lots&lt;&#x2F;strong&gt; : le mono-nœud, l&#x27;erasure coding et le tiering sont donnés stables, le cluster Raft et l&#x27;active-active en bêta. Le README liste ses cas limites connus au lieu de les taire, et le projet est maintenu par une seule personne.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Remplacer un bucket facturé à la requête et à l&#x27;egress par du stockage sur ta propre machine, quand le trafic pèse plus que le volume.&lt;&#x2F;li&gt;
&lt;li&gt;Servir de cible S3 à Restic, rclone ou n&#x27;importe quel client &lt;code&gt;aws s3&lt;&#x2F;code&gt; pour des sauvegardes.&lt;&#x2F;li&gt;
&lt;li&gt;Donner un backend objet à une appli en dev ou en CI, sans compte cloud ni clé à faire tourner.&lt;&#x2F;li&gt;
&lt;li&gt;Garder des données sur du matériel que tu contrôles, quand la contrainte est réglementaire ou contractuelle.&lt;&#x2F;li&gt;
&lt;li&gt;Poser un stockage objet dans le même réseau que ses clients, sans frais de sortie.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Chaque release publie des paquets &lt;code&gt;.deb&lt;&#x2F;code&gt;, &lt;code&gt;.rpm&lt;&#x2F;code&gt; et &lt;code&gt;.apk&lt;&#x2F;code&gt;, des binaires statiques pour Linux, macOS et Windows, un SBOM SPDX par plateforme et un bundle de provenance Sigstore vérifiable hors ligne. Un audit de sécurité white-box externe d&#x27;août 2026 a remonté 14 findings, tous corrigés en 4.4.56.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>OneURL</title>
        <published>2026-08-21T00:00:00+00:00</published>
        <updated>2026-08-21T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/oneurl/"/>
        <id>https://papyrus.z29k.com/gemshelf/oneurl/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/oneurl/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Une alternative open source à Linktree : une page de profil publique en &lt;code&gt;oneurl.live&#x2F;pseudo&lt;&#x2F;code&gt; qui regroupe tous les liens qu&#x27;on veut partager. La stack est récente : Next.js 16 (App Router) et React 19 côté front, un backend Express séparé, PostgreSQL via Prisma, et Better Auth pour la connexion Google. Le tout sous licence BSD-3-Clause.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Deux façons de l&#x27;utiliser&lt;&#x2F;strong&gt; : réserver son pseudo sur l&#x27;instance publique oneurl.live, ou auto-héberger la stack complète (Node 20+ ou Bun, migrations Prisma, front sur le port 3000 et API sur le 3001).&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Analytics intégrées&lt;&#x2F;strong&gt; : le suivi d&#x27;engagement du profil est dans le produit, avec des graphiques Recharts, sans brancher un outil de mesure externe.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Stack TypeScript actuelle&lt;&#x2F;strong&gt; : Next.js, Express, Prisma, TanStack Query et Tailwind. Pour qui vit déjà dans cet écosystème, le code est facile à lire et à adapter.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Avatars en glisser-déposer&lt;&#x2F;strong&gt; : upload géré par UploadThing et React Dropzone.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Licence permissive&lt;&#x2F;strong&gt; : BSD-3-Clause, donc fork et adaptation possibles sans obligation de republier les modifications.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Le lien unique en bio qui regroupe portfolio, GitHub, newsletter et réseaux.&lt;&#x2F;li&gt;
&lt;li&gt;Une mise en ligne rapide : le pseudo se réserve depuis la page d&#x27;accueil, connexion Google, et le profil est publié.&lt;&#x2F;li&gt;
&lt;li&gt;Auto-héberger son link-in-bio en gardant la main sur les données et les statistiques.&lt;&#x2F;li&gt;
&lt;li&gt;Une base Next.js&#x2F;Prisma à forker pour construire sa propre page profil.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Projet jeune : 431 étoiles et 87 commits sur la branche principale au moment de la rédaction.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>ffmpeg-webCLI</title>
        <published>2026-08-20T00:00:00+00:00</published>
        <updated>2026-08-20T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/ffmpeg-webcli/"/>
        <id>https://papyrus.z29k.com/gemshelf/ffmpeg-webcli/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/ffmpeg-webcli/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Un éditeur vidéo qui tourne entièrement dans le navigateur, construit sur ffmpeg.wasm (FFmpeg compilé en WebAssembly). Les fichiers ne quittent jamais la machine : le traitement s&#x27;exécute dans un Web Worker, sans upload ni backend. Malgré son nom, l&#x27;interface expose plus de 30 opérations prêtes à l&#x27;emploi (conversion, découpe, GIF, sous-titrage automatique...) ; la ligne de commande brute n&#x27;est qu&#x27;un mode parmi d&#x27;autres.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Tout en local&lt;&#x2F;strong&gt; : FFmpeg s&#x27;exécute en WebAssembly dans un Web Worker. Aucune donnée n&#x27;est envoyée à un serveur, rien n&#x27;est collecté, et l&#x27;interface reste réactive pendant l&#x27;encodage.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;30+ opérations&lt;&#x2F;strong&gt; : conversion MP4&#x2F;WebM&#x2F;MKV&#x2F;MOV&#x2F;AVI, compression, découpe, crop, création de GIF, extraction audio, concaténation, picture-in-picture, denoise, normalisation audio, entre autres.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Sous-titres automatiques&lt;&#x2F;strong&gt; : la transcription Whisper tourne aussi dans le navigateur via Transformers.js, avec incrustation (hard-burn) ou piste embarquée au choix.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Mode Stack et batch&lt;&#x2F;strong&gt; : les filtres compatibles s&#x27;enchaînent en une seule passe d&#x27;encodage, donc pas de perte de qualité cumulée entre les étapes. Le mode batch traite plusieurs fichiers à la suite, avec prévisualisation par fichier et export ZIP.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Raw FFmpeg et offline&lt;&#x2F;strong&gt; : un champ libre donne accès à la ligne de commande ffmpeg complète, avec prévisualisation de la commande et bibliothèque d&#x27;exemples. L&#x27;app s&#x27;installe en PWA et fonctionne hors ligne une fois le binaire ffmpeg-core (~31 Mo) mis en cache.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Convertir ou compresser une vidéo sans passer par un convertisseur en ligne qui envoie le fichier on ne sait où.&lt;&#x2F;li&gt;
&lt;li&gt;Traiter des rushes confidentiels (démos clients, captures internes) sans qu&#x27;ils quittent le poste.&lt;&#x2F;li&gt;
&lt;li&gt;Générer un GIF ou un extrait court pour une doc, une PR ou un ticket.&lt;&#x2F;li&gt;
&lt;li&gt;Sous-titrer une vidéo courte sans rien installer sur la machine.&lt;&#x2F;li&gt;
&lt;li&gt;Tester une commande ffmpeg dans le navigateur avant de l&#x27;intégrer à un script.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;La limite est celle du runtime : le heap WebAssembly plafonne à 2 Go, certaines opérations (reverse, boomerang) sont désactivées en batch pour cette raison, et les très gros fichiers restent le terrain du ffmpeg natif.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>LinkStack</title>
        <published>2026-08-20T00:00:00+00:00</published>
        <updated>2026-08-20T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/linkstack/"/>
        <id>https://papyrus.z29k.com/gemshelf/linkstack/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/linkstack/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Une page de liens auto-hébergée, le fameux « link in bio » qu&#x27;on colle dans un profil Instagram ou Twitter, en alternative à Linktree. C&#x27;est une application Laravel (PHP), SQLite par défaut et MySQL si besoin, à déposer sur n&#x27;importe quel hébergement web ou à lancer via l&#x27;image Docker officielle. Au premier accès, un assistant d&#x27;installation configure l&#x27;instance.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Installation sans terminal&lt;&#x2F;strong&gt; : l&#x27;archive de release se dépose à la racine du site, un hébergement mutualisé suffit, et l&#x27;assistant web fait le reste. L&#x27;image Docker &lt;code&gt;linkstackorg&#x2F;linkstack&lt;&#x2F;code&gt; couvre l&#x27;autre scénario.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Multi-utilisateurs&lt;&#x2F;strong&gt; : chaque utilisateur inscrit a sa propre page de liens, et un panneau d&#x27;admin centralise la gestion des comptes. Une seule instance peut donc servir toute une équipe ou une communauté.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Thèmes communautaires&lt;&#x2F;strong&gt; : une galerie de thèmes contribués, à installer par glisser-déposer, sans toucher au code.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Mises à jour en un clic&lt;&#x2F;strong&gt; : l&#x27;updater intégré applique la nouvelle version après une sauvegarde automatique.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;QR codes et vCard&lt;&#x2F;strong&gt; : chaque profil se partage en QR code et s&#x27;exporte en vCard.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Le lien unique en bio Instagram, TikTok ou Twitter qui regroupe tout, sans dépendre de Linktree ni de son branding.&lt;&#x2F;li&gt;
&lt;li&gt;Une page de contact pour un freelance ou une asso : réseaux, site, agenda, dons au même endroit.&lt;&#x2F;li&gt;
&lt;li&gt;Une instance mutualisée pour les membres d&#x27;une équipe, chacun avec sa page.&lt;&#x2F;li&gt;
&lt;li&gt;Une carte de visite numérique : QR code sur un stand ou un CV, vCard à télécharger.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Point d&#x27;attention avant de forker : la licence est AGPL-3.0, donc toute modification doit être publiée, y compris quand l&#x27;instance n&#x27;est utilisée qu&#x27;en service réseau.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Traceway</title>
        <published>2026-08-20T00:00:00+00:00</published>
        <updated>2026-08-20T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/traceway/"/>
        <id>https://papyrus.z29k.com/gemshelf/traceway/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/traceway/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Une plateforme d&#x27;observabilité OpenTelemetry-native qui regroupe dans un seul produit ce qu&#x27;on assemble d&#x27;habitude avec Prometheus, Loki, Tempo et un outil de paging : logs, traces, métriques, exceptions, session replay, suivi LLM et astreintes. Le backend est en Go (Gin), le frontend en SvelteKit, l&#x27;ingestion passe par OTLP&#x2F;HTTP, et la licence est MIT, sans BSL ni open-core.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Tout est corrélé&lt;&#x2F;strong&gt; : waterfalls de spans avec navigation directe vers les logs du trace, métriques par endpoint (P50&#x2F;P95&#x2F;P99, tri par Apdex) et profiling en flame graphs (CPU, heap, goroutines) avec diff entre versions.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Déploiement à la carte&lt;&#x2F;strong&gt; : docker compose avec ClickHouse et PostgreSQL pour une vraie prod, ou conteneur unique en mode embarqué SQLite&#x2F;DuckDB, zéro dépendance externe. Une application Go peut même l&#x27;importer comme librairie.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Exceptions lisibles&lt;&#x2F;strong&gt; : regroupement par fingerprint des stack traces, résolution des source maps (webpack, esbuild, Vite) et symbolication des crashs mobiles, avec un moteur écrit en Go pur.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Front et mobile inclus&lt;&#x2F;strong&gt; : session replay navigateur et Flutter, SDKs React, Vue, Svelte côté web et Android, iOS, React Native côté mobile, en plus de l&#x27;OTel classique côté serveur.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Astreintes intégrées&lt;&#x2F;strong&gt; : rotations, politiques d&#x27;escalade et notifications par email, Slack, SMS, Telegram ou Pushover, sans produit séparé à brancher.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Remplacer un empilement Prometheus + Loki + Tempo + outil de paging par un seul service à opérer.&lt;&#x2F;li&gt;
&lt;li&gt;L&#x27;observabilité d&#x27;un side project ou d&#x27;une petite prod : le mode embarqué SQLite&#x2F;DuckDB tient dans un conteneur.&lt;&#x2F;li&gt;
&lt;li&gt;Suivre les coûts, tokens et latences des appels LLM d&#x27;une app IA au même endroit que ses traces.&lt;&#x2F;li&gt;
&lt;li&gt;Laisser un agent faire le travail : des skills Claude Code&#x2F;Cursor sont fournis, &lt;code&gt;&#x2F;traceway-setup&lt;&#x2F;code&gt; pour instrumenter le projet et &lt;code&gt;&#x2F;traceway&lt;&#x2F;code&gt; pour interroger les données de prod.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Pour qui ne veut pas l&#x27;héberger, une version cloud managée existe sur cloud.tracewayapp.com.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>StudioCMS</title>
        <published>2026-08-19T00:00:00+00:00</published>
        <updated>2026-08-19T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/studiocms/"/>
        <id>https://papyrus.z29k.com/gemshelf/studiocms/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/studiocms/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;StudioCMS est un CMS headless conçu spécifiquement pour Astro. Là où un CMS classique tourne à côté du site et se consomme via une API distante, StudioCMS s&#x27;installe comme une intégration Astro (&lt;code&gt;npx astro add studiocms&lt;&#x2F;code&gt;) et vit à l&#x27;intérieur du projet, en rendu côté serveur. Le contenu part dans sa propre base de données et le tableau de bord d&#x27;administration est servi par le site lui-même. À noter : le projet est encore en 0.x, l&#x27;API bouge d&#x27;une version à l&#x27;autre.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Une intégration, pas un service de plus&lt;&#x2F;strong&gt; : pas de second déploiement à maintenir, pas de clé d&#x27;API entre le CMS et le front. Le dashboard, l&#x27;authentification et les routes de contenu sont générés dans le même build Astro que le site.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Tout passe par des plugins&lt;&#x2F;strong&gt; : le cœur reste minimal et les fonctionnalités s&#x27;ajoutent par paquets. Renderers (&lt;code&gt;@studiocms&#x2F;md&lt;&#x2F;code&gt;, &lt;code&gt;mdx&lt;&#x2F;code&gt;, &lt;code&gt;markdoc&lt;&#x2F;code&gt;, &lt;code&gt;html&lt;&#x2F;code&gt;, &lt;code&gt;wysiwyg&lt;&#x2F;code&gt;), OAuth, service d&#x27;images Cloudinary, front-end blog clé en main, et une API pour écrire les siens, y compris des pages de dashboard custom.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Base de données au choix&lt;&#x2F;strong&gt; : libSQL par défaut (compatible Turso), mais aussi PostgreSQL et MySQL. L&#x27;accès passe par Kysely, avec un système de migrations fourni pour suivre les évolutions de schéma.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Authentification incluse&lt;&#x2F;strong&gt; : login et mot de passe en natif, plus GitHub, Discord, Google et Auth0 via le plugin OAuth. Gestion des utilisateurs, des rôles et des permissions directement dans le dashboard.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Auto-hébergé et sous MIT&lt;&#x2F;strong&gt; : aucune offre SaaS imposée, les données restent sur l&#x27;infrastructure choisie. Le mode SSR fonctionne aussi sur les hébergeurs serverless, avec l&#x27;édition complète.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Ajouter une interface d&#x27;administration à un site Astro existant sans monter un CMS séparé&lt;&#x2F;li&gt;
&lt;li&gt;Site vitrine ou blog géré par des rédacteurs non techniques, en gardant un front Astro sur mesure&lt;&#x2F;li&gt;
&lt;li&gt;Remplacer un headless SaaS par une stack auto-hébergée avec la même base de code&lt;&#x2F;li&gt;
&lt;li&gt;Projet Astro multi-utilisateurs où il faut des rôles et un vrai contrôle d&#x27;accès&lt;&#x2F;li&gt;
&lt;li&gt;Base de contenu SSR sur Turso ou PostgreSQL, déployée en serverless&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Swetrix</title>
        <published>2026-08-19T00:00:00+00:00</published>
        <updated>2026-08-19T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/swetrix/"/>
        <id>https://papyrus.z29k.com/gemshelf/swetrix/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/swetrix/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Swetrix est une plateforme d&#x27;analytics web sans cookie et conforme RGPD, positionnée en alternative à Google Analytics. Elle dépasse le simple comptage de pages vues : suivi d&#x27;erreurs côté client, monitoring de performance réelle, tunnels de conversion, feature flags et A&#x2F;B tests vivent dans le même produit. Côté technique, l&#x27;API tourne sur Nest.js avec ClickHouse pour les données analytiques, MySQL pour les comptes et projets, et Redis pour le cache.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Sans cookie, donc sans bandeau de consentement&lt;&#x2F;strong&gt; : les données sont anonymisées, il n&#x27;y a pas de suivi inter-appareils, et le script de tracking pèse environ 5 Ko. Une contrainte réglementaire en moins et une page qui charge plus vite.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Plusieurs outils regroupés&lt;&#x2F;strong&gt; : trafic, erreurs JavaScript, performance mesurée chez les vrais visiteurs (TTFB, DNS, TLS, rendu), sessions, parcours utilisateurs, tunnels, événements et propriétés custom. De quoi remplacer un empilement analytics + traqueur d&#x27;erreurs + monitoring.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Feature flags et expérimentations&lt;&#x2F;strong&gt; : rare dans un outil d&#x27;analytics orienté vie privée. Les A&#x2F;B tests se pilotent depuis le même tableau de bord que les stats, sans brancher un service tiers.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;ClickHouse sous le capot&lt;&#x2F;strong&gt; : aucun échantillonnage des données, même à volume élevé, et un dashboard qui reste temps réel.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Données récupérables&lt;&#x2F;strong&gt; : export CSV et API statistiques documentée pour rapatrier les chiffres ailleurs. Dashboards partageables en public ou protégés par mot de passe.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Auto-hébergeable, mais édition Community amputée&lt;&#x2F;strong&gt; : le déploiement Docker (API + UI, MySQL, ClickHouse, Redis) embarque bien le cœur analytics. En revanche, les replays de session, les alertes, les rapports email, le GeoIP premium et les fonctions revenue et IA restent réservés au Cloud.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Remplacer Google Analytics sur un site européen sans afficher de bandeau de consentement&lt;&#x2F;li&gt;
&lt;li&gt;Regrouper analytics, suivi d&#x27;erreurs et monitoring de performance dans un seul tableau de bord&lt;&#x2F;li&gt;
&lt;li&gt;Mesurer un tunnel d&#x27;inscription ou d&#x27;achat et repérer l&#x27;étape où les visiteurs décrochent&lt;&#x2F;li&gt;
&lt;li&gt;Piloter des feature flags et des A&#x2F;B tests sur un produit web&lt;&#x2F;li&gt;
&lt;li&gt;Partager des statistiques à un client via un dashboard public ou protégé par mot de passe&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>TinaCMS</title>
        <published>2026-08-19T00:00:00+00:00</published>
        <updated>2026-08-19T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/tinacms/"/>
        <id>https://papyrus.z29k.com/gemshelf/tinacms/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/tinacms/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;TinaCMS est un CMS headless qui stocke le contenu directement dans un dépôt Git, sous forme de fichiers Markdown, MDX, JSON ou YAML. Il ajoute par-dessus une API GraphQL typée et un éditeur visuel optionnel qui affiche le rendu réel du site pendant l&#x27;édition. Aucune base de données propriétaire : les fichiers restent versionnés dans le repo, lisibles et portables même sans Tina.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Le contenu vit dans le repo&lt;&#x2F;strong&gt; : chaque modification produit un commit. Historique, branches, pull requests, rollback, review : l&#x27;outillage Git existant s&#x27;applique tel quel au contenu éditorial.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Éditeur visuel en live preview&lt;&#x2F;strong&gt; : le formulaire d&#x27;édition est affiché à côté du site réel, et les champs sont cliquables directement dans la page rendue. Suffisamment simple pour un rédacteur non technique, sans passer par le code.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Schéma typé et API GraphQL&lt;&#x2F;strong&gt; : les collections et les champs se déclarent dans &lt;code&gt;tina&#x2F;config.ts&lt;&#x2F;code&gt;. Tina génère les types TypeScript correspondants et une API permettant de requêter les relations entre documents avec une notation par points (&lt;code&gt;post.author.firstName&lt;&#x2F;code&gt;).&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Agnostique côté framework&lt;&#x2F;strong&gt; : Next.js, Astro, Hugo, Jekyll et compagnie. Tina se greffe sur le générateur de site existant plutôt que d&#x27;imposer le sien, aussi bien en génération statique qu&#x27;en rendu serveur.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Auto-hébergeable&lt;&#x2F;strong&gt; : le projet est publié sous licence Apache 2.0 et le backend peut tourner sur sa propre infrastructure. TinaCloud existe pour la version managée, mais reste optionnel.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Workflow éditorial&lt;&#x2F;strong&gt; : édition sur branche, prévisualisation et validation par pull request avant publication, pour les équipes qui veulent un vrai circuit de relecture.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Ouvrir l&#x27;édition d&#x27;un site statique à des non-développeurs sans quitter le workflow Git&lt;&#x2F;li&gt;
&lt;li&gt;Documentation produit versionnée, relue et validée par pull request&lt;&#x2F;li&gt;
&lt;li&gt;Blog ou site marketing dont le contenu Markdown doit rester portable et sans verrou&lt;&#x2F;li&gt;
&lt;li&gt;Migration depuis un CMS SaaS où le contenu est enfermé dans une base distante&lt;&#x2F;li&gt;
&lt;li&gt;Site multi-contributeurs où chaque publication doit laisser une trace auditable&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Shelf.nu</title>
        <published>2026-08-12T00:00:00+00:00</published>
        <updated>2026-08-12T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/shelf-nu/"/>
        <id>https://papyrus.z29k.com/gemshelf/shelf-nu/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/shelf-nu/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Shelf est une plateforme de gestion d&#x27;actifs physiques : matériel informatique, outillage, véhicules, équipement de tournage, stock. Chaque actif reçoit une étiquette QR qu&#x27;on scanne avec n&#x27;importe quel téléphone pour consulter sa fiche, le sortir ou signaler un problème. C&#x27;est l&#x27;outil pour les équipes qui doivent savoir en permanence ce qu&#x27;elles possèdent, où c&#x27;est et qui l&#x27;a entre les mains.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Étiquettes QR et scanner intégré&lt;&#x2F;strong&gt; : générez et imprimez les codes, puis scannez depuis un mobile. Le scanner embarqué gère les actions en masse : attribuer la garde, changer l&#x27;emplacement, ajouter à une réservation.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Réservations et suivi de garde&lt;&#x2F;strong&gt; : planifiez les sorties et retours avec intégration calendrier, la double-réservation est bloquée. Chaque actif est assigné à un membre de l&#x27;équipe, donc on sait toujours qui détient quoi.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Kits et emplacements hiérarchiques&lt;&#x2F;strong&gt; : regroupez laptop + chargeur + dock en un kit géré comme une seule unité, et rangez le tout dans une arborescence bâtiment &#x2F; étage &#x2F; salle &#x2F; étagère, avec géolocalisation.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Pensé pour les équipes&lt;&#x2F;strong&gt; : quatre rôles avec permissions granulaires (Owner, Admin, Base, Self Service), multi-workspace pour séparer les inventaires par entité, champs personnalisés, import&#x2F;export CSV et journal d&#x27;activité sur chaque actif.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Open source et auto-hébergeable&lt;&#x2F;strong&gt; : licence AGPL-3.0, stack React Router 7 &#x2F; Prisma &#x2F; PostgreSQL. Le déploiement Docker est maintenu par la communauté et s&#x27;appuie sur une instance Supabase externe pour la base, l&#x27;auth et le stockage.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Parc informatique d&#x27;entreprise : attribution des postes, numéros de série, garanties et dates d&#x27;achat&lt;&#x2F;li&gt;
&lt;li&gt;Matériel de tournage ou de production événementielle prêté entre équipes et entre sites&lt;&#x2F;li&gt;
&lt;li&gt;Outillage d&#x27;atelier ou de chantier réparti sur plusieurs bâtiments&lt;&#x2F;li&gt;
&lt;li&gt;Prêt d&#x27;équipement dans une école, un fablab ou une médiathèque, avec le rôle Self Service pour les emprunteurs&lt;&#x2F;li&gt;
&lt;li&gt;Rappels programmés pour la maintenance, la calibration ou l&#x27;expiration de garantie&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Grocy</title>
        <published>2026-08-11T00:00:00+00:00</published>
        <updated>2026-08-11T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/grocy/"/>
        <id>https://papyrus.z29k.com/gemshelf/grocy/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/grocy/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Grocy est un « ERP au-delà du frigo » : une application web auto-hébergée qui gère les stocks et l&#x27;intendance d&#x27;une maison. Tu scannes tes courses à l&#x27;arrivée, Grocy suit les quantités et les dates de péremption, décrémente le stock quand tu consommes, et te prévient avant que ça périme. Autour de ce noyau viennent les recettes, le planning de repas, les corvées, les tâches, l&#x27;entretien du matériel et même le suivi des piles.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Le stock est le cœur du système&lt;&#x2F;strong&gt; : entrées, sorties, péremptions et emplacements sont suivis unité par unité, avec conversions (acheter au kilo, consommer à la portion).&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Liste de courses automatique&lt;&#x2F;strong&gt; : définis un stock minimum par produit, Grocy remplit la liste tout seul, et le planning de repas y ajoute les ingrédients manquants.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Codes-barres et Open Food Facts&lt;&#x2F;strong&gt; : douchette USB ou caméra du téléphone, avec recherche externe pour pré-remplir la fiche produit au lieu de tout saisir à la main.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Recettes anti-gaspi&lt;&#x2F;strong&gt; : Grocy croise les recettes avec le stock réel et te dit ce que tu peux cuisiner maintenant, en priorisant ce qui périme bientôt.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;API REST complète&lt;&#x2F;strong&gt; : documentée en Swagger, elle permet de brancher Home Assistant, un ESP32 avec lecteur de codes-barres ou tes propres scripts.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Déploiement simple&lt;&#x2F;strong&gt; : PHP plus SQLite, pas de serveur de base de données à côté. Docker, LinuxServer.io ou hébergement PHP classique, au choix.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Arrêter de jeter : savoir ce qui périme cette semaine et cuisiner en conséquence&lt;&#x2F;li&gt;
&lt;li&gt;Générer la liste de courses à partir du planning de repas de la semaine&lt;&#x2F;li&gt;
&lt;li&gt;Suivre l&#x27;entretien récurrent du logement (filtres, détartrage, changement de piles)&lt;&#x2F;li&gt;
&lt;li&gt;Piloter le stock depuis un tableau de bord Home Assistant via l&#x27;API&lt;&#x2F;li&gt;
&lt;li&gt;Gérer le stock d&#x27;une colocation ou d&#x27;un local associatif à plusieurs&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Cachet</title>
        <published>2026-08-07T00:00:00+00:00</published>
        <updated>2026-08-07T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/cachet/"/>
        <id>https://papyrus.z29k.com/gemshelf/cachet/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/cachet/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Cachet est une status page auto-hébergée : la page publique qui annonce à tes clients que le service est dégradé, ce qui casse et quand ce sera réparé. Elle ne surveille rien elle-même - elle communique. Tu déclares tes composants, tu ouvres un incident, tu postes des mises à jour, et les abonnés reçoivent la notification.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Fait une seule chose&lt;&#x2F;strong&gt; : contrairement aux suites de monitoring qui greffent une status page en bout de chaîne, Cachet ne fait que ça. Il se déploie hors de ton infra, sur un autre hébergeur et une autre base, pour rester debout quand le reste tombe.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Modèle d&#x27;incident structuré&lt;&#x2F;strong&gt; : composants regroupés, statuts par composant, incidents rattachés aux composants touchés, et une timeline de mises à jour. Des templates d&#x27;incident évitent de réécrire le même message à chaque panne.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Maintenances planifiées&lt;&#x2F;strong&gt; : les fenêtres de maintenance s&#x27;annoncent à l&#x27;avance et se rattachent aux composants concernés, sans polluer l&#x27;historique des vraies pannes.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Abonnés et webhooks&lt;&#x2F;strong&gt; : notification des abonnés par composant, plus des webhooks sortants avec suivi des tentatives pour brancher Slack, une file ou ton outil interne.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;API JSON en premier&lt;&#x2F;strong&gt; : jetons Sanctum, filtres et tri façon Laravel. Ton système d&#x27;alerting ouvre et ferme les incidents tout seul, sans clic humain.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Métriques affichables&lt;&#x2F;strong&gt; : tu pousses tes propres points de mesure et Cachet les rend en graphiques sur la page publique - latence, débit, ce que tu veux exposer.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Page d&#x27;état publique pour un SaaS, alimentée automatiquement depuis Prometheus ou une sonde maison.&lt;&#x2F;li&gt;
&lt;li&gt;Communication interne d&#x27;incidents pour une DSI, avec abonnements par service métier.&lt;&#x2F;li&gt;
&lt;li&gt;Annonce de fenêtres de maintenance à des clients sous SLA, avec trace écrite horodatée.&lt;&#x2F;li&gt;
&lt;li&gt;Hébergeur qui expose l&#x27;état de ses régions et laisse les clients s&#x27;abonner à ce qui les concerne.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;a-savoir&quot;&gt;À SAVOIR&lt;&#x2F;h2&gt;
&lt;p&gt;Deux points à peser avant adoption. D&#x27;abord la licence : le projet se présente comme open source, mais le fichier &lt;code&gt;LICENSE.md&lt;&#x2F;code&gt; est une licence maison d&#x27;Alt Three Services, et les &lt;code&gt;composer.json&lt;&#x2F;code&gt; de &lt;code&gt;cachet&lt;&#x2F;code&gt; comme de &lt;code&gt;cachet&#x2F;core&lt;&#x2F;code&gt; déclarent &lt;code&gt;proprietary&lt;&#x2F;code&gt;. Usage commercial, modification et auto-hébergement sont autorisés ; la redistribution en produit autonome ne l&#x27;est pas. Ensuite la maturité : la branche &lt;code&gt;3.x&lt;&#x2F;code&gt; est une réécriture complète sur Laravel 13 et Filament 5, toujours en développement actif avec des fonctions incomplètes. Le dépôt bouge, mais ne t&#x27;attends pas à la stabilité de la v2.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>ModernWMS</title>
        <published>2026-08-06T00:00:00+00:00</published>
        <updated>2026-08-06T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/modernwms/"/>
        <id>https://papyrus.z29k.com/gemshelf/modernwms/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/modernwms/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;ModernWMS est un système de gestion d&#x27;entrepôt (WMS) open source, extrait d&#x27;un produit ERP commercial puis ouvert gratuitement. Il couvre la chaîne complète : réception marchandise, gestion des stocks, opérations internes et expédition, avec une interface web et un support QR code pour le terrain. La cible assumée : les PME qui ont de vrais besoins d&#x27;entrepôt mais pas le budget d&#x27;un WMS propriétaire.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Périmètre fonctionnel complet dès l&#x27;install&lt;&#x2F;strong&gt; : réception, mouvements de stock, gel d&#x27;inventaire, ajustements, inventaire tournant et expédition. Pas de modules à acheter séparément.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Flux d&#x27;expédition modélisé par étapes&lt;&#x2F;strong&gt; : facture, pré-expédition, à préparer, préparé, à emballer, emballé, à peser, pesé. Chaque colis suit un statut explicite plutôt qu&#x27;un champ libre.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Multi-base&lt;&#x2F;strong&gt; : MySQL 8.0+, SQL Server 2017+ ou PostgreSQL 12 selon ce que tu as déjà en production. Une base SQLite est fournie pour démarrer sans rien installer.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Stack lisible&lt;&#x2F;strong&gt; : backend .NET 7 côté API, frontend Vue 3 avec Vuetify, TypeScript et Vite. Rien d&#x27;exotique à reprendre pour adapter le métier.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Déploiement souple&lt;&#x2F;strong&gt; : Linux ou Windows, compilation depuis les sources ou image Docker. i18n intégrée, donc l&#x27;interface se traduit sans patch.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Démo publique&lt;&#x2F;strong&gt; : une instance de test est en ligne, ce qui permet de juger l&#x27;ergonomie avant de monter quoi que ce soit.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;PME industrielle qui suit ses stocks sous Excel et veut un vrai référentiel entrepôt sans licence annuelle.&lt;&#x2F;li&gt;
&lt;li&gt;Négoce ou e-commerce ayant besoin de tracer préparation, emballage et pesée des expéditions.&lt;&#x2F;li&gt;
&lt;li&gt;Entrepôt sous-traitant qui doit gérer plusieurs clients et justifier ses inventaires.&lt;&#x2F;li&gt;
&lt;li&gt;Base de départ pour un intégrateur qui développera un WMS métier sur un socle existant.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;a-savoir&quot;&gt;À SAVOIR&lt;&#x2F;h2&gt;
&lt;p&gt;Le dépôt est en Apache-2.0 malgré un badge README qui annonce MIT - le fichier LICENSE fait foi. Le projet est stable mais dormant : dernier commit en juin 2025, aucune publication depuis. La documentation la plus fournie est en chinois, et le miroir principal est sur Gitee. À évaluer comme une base solide à reprendre plutôt que comme un produit activement maintenu.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>RustMailer</title>
        <published>2026-08-06T00:00:00+00:00</published>
        <updated>2026-08-06T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/rustmailer/"/>
        <id>https://papyrus.z29k.com/gemshelf/rustmailer/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/rustmailer/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;RustMailer est un middleware email self-hosted qui encapsule IMAP, SMTP et la Gmail API derrière une seule API REST et gRPC. Il gère la synchronisation multi-comptes, l&#x27;envoi templaté, le tracking d&#x27;ouvertures et la diffusion d&#x27;événements, pour que ton application n&#x27;ait plus à assembler trois bibliothèques mail à la main. Un binaire d&#x27;environ 60 Mo, aucune dépendance externe, pas de Redis.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Une API pour trois protocoles&lt;&#x2F;strong&gt; : IMAP, SMTP et Gmail API derrière la même interface REST et gRPC. Ton code ne change pas selon le provider du compte.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Sync IMAP incrémentale sérieuse&lt;&#x2F;strong&gt; : stratégie basée sur les UID, sélection de dossiers, synchro fenêtrée ou par plage de dates. Pas de re-scan complet à chaque tour.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Événements sortants scriptables&lt;&#x2F;strong&gt; : chaque changement de boîte part en webhook ou dans NATS, avec transformation du payload en VRL pour filtrer et remodeler avant expédition.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;OAuth2 intégré&lt;&#x2F;strong&gt; : flow complet avec UI d&#x27;autorisation web, gestion automatique des access et refresh tokens. Gmail et Outlook branchés sans code maison.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Zéro infra annexe&lt;&#x2F;strong&gt; : écrit en Rust avec un store clé-valeur embarqué, faible empreinte mémoire, déployable en un &lt;code&gt;docker run&lt;&#x2F;code&gt;. Exporter Prometheus inclus.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Webmail de debug intégré&lt;&#x2F;strong&gt; : un client mail léger et un dashboard admin pour inspecter les comptes, les headers et les mails synchronisés sans sortir un client externe.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Plateforme SaaS devant synchroniser les boîtes mail de milliers d&#x27;utilisateurs, en IMAP comme en Gmail.&lt;&#x2F;li&gt;
&lt;li&gt;CRM qui rattache automatiquement les échanges email aux fiches clients via webhooks.&lt;&#x2F;li&gt;
&lt;li&gt;Outil de marketing automation avec templates dynamiques, tracking d&#x27;ouvertures et de clics.&lt;&#x2F;li&gt;
&lt;li&gt;Support client temps réel : les nouveaux messages arrivent dans NATS et alimentent la file de tickets.&lt;&#x2F;li&gt;
&lt;li&gt;Backend d&#x27;envoi transactionnel routé vers un MTA maison ou un provider tiers selon le compte.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;a-savoir&quot;&gt;À SAVOIR&lt;&#x2F;h2&gt;
&lt;p&gt;Le code source est intégralement public et auditable, mais la licence est commerciale : essai gratuit de 14 jours avec comptes illimités, puis clé de licence obligatoire en production. Les Pull Requests ne sont pas acceptées à ce stade du projet.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Unstract</title>
        <published>2026-08-06T00:00:00+00:00</published>
        <updated>2026-08-06T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/unstract/"/>
        <id>https://papyrus.z29k.com/gemshelf/unstract/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/unstract/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Unstract prend des documents non structurés - PDF, scans, images, DOCX, feuilles de calcul - et en sort du JSON propre en s&#x27;appuyant sur des LLM. Tu décris ce que tu veux extraire en langage naturel dans le Prompt Studio, puis tu déploies le résultat en API REST ou en pipeline ETL vers ton entrepôt de données. L&#x27;objectif : remplacer les templates par fournisseur et les regex maison par un prompt unique qui encaisse les variations de mise en page.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Prompt Studio, pas de templates&lt;&#x2F;strong&gt; : le schéma d&#x27;extraction se définit en langage naturel, avec test en direct sur des documents réels. Un nouveau type de facture ne demande plus des jours de dev.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Deux modes de déploiement&lt;&#x2F;strong&gt; : soit une API REST à qui tu postes un fichier et qui te renvoie du JSON, soit un pipeline ETL qui va chercher les documents dans un bucket et charge le résultat en base.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Agnostique au provider LLM&lt;&#x2F;strong&gt; : OpenAI, Anthropic, Bedrock, Gemini, Mistral, Ollama en local. Tu changes de modèle sans réécrire les prompts, et tu peux rester on-premise.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Connectique déjà branchée&lt;&#x2F;strong&gt; : S3, MinIO, GCS, Azure Blob, Google Drive, Dropbox, SFTP en entrée ; Snowflake, BigQuery, Redshift, PostgreSQL, MySQL, SQL Server en sortie.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Serveur MCP et nœud n8n&lt;&#x2F;strong&gt; : l&#x27;extraction s&#x27;expose aux agents IA via Model Context Protocol, ou s&#x27;insère directement dans un workflow n8n existant.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Self-hosted en une commande&lt;&#x2F;strong&gt; : &lt;code&gt;.&#x2F;run-platform.sh&lt;&#x2F;code&gt; monte la stack complète en Docker Compose. Django, Celery, FastAPI, PostgreSQL, Redis et RabbitMQ, sans assemblage manuel.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Extraction automatique de factures fournisseurs hétérogènes vers un ERP, sans template par émetteur.&lt;&#x2F;li&gt;
&lt;li&gt;Traitement de dossiers KYC et de pièces d&#x27;identité en conformité, avec sortie JSON auditable.&lt;&#x2F;li&gt;
&lt;li&gt;Ingestion de contrats et de polices d&#x27;assurance dans un entrepôt de données pour analyse.&lt;&#x2F;li&gt;
&lt;li&gt;Numérisation de comptes rendus médicaux ou de formulaires fiscaux vers une base structurée.&lt;&#x2F;li&gt;
&lt;li&gt;Outillage d&#x27;un agent IA maison qui interroge un corpus documentaire via le serveur MCP.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;a-savoir&quot;&gt;À SAVOIR&lt;&#x2F;h2&gt;
&lt;p&gt;Le cœur est en AGPL-3.0, mais plusieurs fonctions d&#x27;accuracy et d&#x27;exploitation restent réservées aux offres Cloud et Enterprise : vérification par double LLM (LLMChallenge), extraction SinglePass pour réduire les coûts de tokens, interface de revue humaine, SSO et RBAC. Le socle libre reste utilisable en production, il faut juste savoir où passe la ligne. Prévoir 8 Go de RAM minimum.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>notabene</title>
        <published>2026-08-05T00:00:00+00:00</published>
        <updated>2026-08-05T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/notabene/"/>
        <id>https://papyrus.z29k.com/gemshelf/notabene/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/notabene/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;notabene est un outil de collaboration documentaire qui combine un générateur de site statique et un système de commentaires ancrés directement sur la page rendue. On sélectionne un passage, on laisse une note, puis l&#x27;agent IA (Claude Code en tête, via le plugin fourni) lit le dossier &lt;code&gt;.notabene&#x2F;&lt;&#x2F;code&gt;, applique les modifications dans les sources, résout les fils de discussion et journalise chaque changement. Pas de SaaS, pas de base de données : tout est stocké en JSON dans le dépôt git.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Le commentaire est l&#x27;instruction&lt;&#x2F;strong&gt; : ancré sur le passage exact, il est localisé et sans ambiguïté. Plus besoin de citer le texte concerné ni de rédiger un prompt à côté, l&#x27;agent sait précisément quoi modifier et où.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Protocole file-I&#x2F;O&lt;&#x2F;strong&gt; : l&#x27;agent lit et écrit des fichiers, rien d&#x27;autre. Pas de serveur à lancer, pas de MCP à configurer. Un plugin Claude Code avec skill intégrée est fourni, mais n&#x27;importe quel agent capable de manipuler des fichiers fait l&#x27;affaire.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Boucle de revue auditable&lt;&#x2F;strong&gt; : un mode en deux phases permet de valider les diffs avant application, et chaque intervention génère une entrée de journal documentant ce qui a changé et pourquoi. L&#x27;historique complet est consultable sur &lt;code&gt;&#x2F;journal&lt;&#x2F;code&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Générateur complet&lt;&#x2F;strong&gt; : MDX et CommonMark&#x2F;GFM, documentation multi-langue avec commentaires par langue, recherche full-text via Pagefind, diagrammes Mermaid avec lightbox, export PDF avec signets et sommaires cliquables.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Git-natif et auto-hébergé&lt;&#x2F;strong&gt; : commentaires, résolutions et journal sont versionnés avec le code. Le build statique en lecture seule se publie sur GitHub Pages avec le workflow inclus.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Boucle d&#x27;amélioration continue des docs : on annote sur la page rendue, l&#x27;agent corrige les sources&lt;&#x2F;li&gt;
&lt;li&gt;Documentation de projet open source avec piste d&#x27;audit complète des évolutions&lt;&#x2F;li&gt;
&lt;li&gt;Docs multilingues avec retours et corrections localisés par langue&lt;&#x2F;li&gt;
&lt;li&gt;Relecture distribuée en équipe : chacun commente, un agent centralise les modifications&lt;&#x2F;li&gt;
&lt;li&gt;Publication GitHub Pages avec export PDF pour les livrables clients&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>SVG Path Editor</title>
        <published>2026-08-05T00:00:00+00:00</published>
        <updated>2026-08-05T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/svg-path-editor/"/>
        <id>https://papyrus.z29k.com/gemshelf/svg-path-editor/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/svg-path-editor/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;SVG Path Editor est un éditeur de paths SVG qui tourne entièrement dans le navigateur. On colle le contenu d&#x27;un attribut &lt;code&gt;d&lt;&#x2F;code&gt;, l&#x27;outil affiche le tracé avec ses points de contrôle, et chaque commande devient éditable à la souris ou depuis le champ texte, les deux vues restant synchronisées en permanence. L&#x27;app est hébergée sur GitHub Pages, mais se lance aussi en local avec npm ou via le Dockerfile fourni.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Édition bidirectionnelle&lt;&#x2F;strong&gt; : le path brut et la vue graphique sont le même objet. On déplace un point à la souris et le &lt;code&gt;d&lt;&#x2F;code&gt; se met à jour, on modifie le texte et le tracé suit. Idéal pour comprendre ce que fait réellement chaque commande.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Toutes les commandes SVG&lt;&#x2F;strong&gt; : insertion, suppression et conversion de commandes (M, L, C, S, Q, T, A, Z), avec un code couleur qui distingue les coordonnées relatives (orange) des absolues (violet).&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Opérations sur le tracé&lt;&#x2F;strong&gt; : mise à l&#x27;échelle, translation, rotation, arrondi des coordonnées, passage relatif&#x2F;absolu, inversion du sens du path et optimisation de la longueur de la chaîne. De quoi nettoyer un export d&#x27;outil vectoriel avant de le mettre en prod.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Raccourcis clavier&lt;&#x2F;strong&gt; : chaque type de commande a sa touche (m, l, c, q, a, z...), plus undo&#x2F;redo et les contrôles de viewBox au clavier ou à la molette. Passé la prise en main, l&#x27;édition va vite.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Disponible en lib npm&lt;&#x2F;strong&gt; : le moteur d&#x27;édition est extrait dans &lt;code&gt;svg-path-editor-lib&lt;&#x2F;code&gt;, un paquet autonome réutilisable pour intégrer la manipulation de paths dans ses propres projets.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Nettoyer et compresser un path exporté depuis Illustrator, Inkscape ou Figma avant de le commiter&lt;&#x2F;li&gt;
&lt;li&gt;Créer ou retoucher une icône SVG à la main sans ouvrir un éditeur vectoriel complet&lt;&#x2F;li&gt;
&lt;li&gt;Déboguer un attribut &lt;code&gt;d&lt;&#x2F;code&gt; illisible en visualisant chaque commande&lt;&#x2F;li&gt;
&lt;li&gt;Recentrer un tracé dans son viewBox et arrondir les coordonnées pour alléger le fichier&lt;&#x2F;li&gt;
&lt;li&gt;Intégrer l&#x27;édition de paths dans une app web via la lib npm&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Rybbit</title>
        <published>2026-08-03T00:00:00+00:00</published>
        <updated>2026-08-03T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/rybbit/"/>
        <id>https://papyrus.z29k.com/gemshelf/rybbit/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/rybbit/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Rybbit est une plateforme d&#x27;analytics web et produit open source qui se positionne en alternative directe à Google Analytics. Elle combine les métriques de fréquentation classiques - sessions, visiteurs uniques, pages vues, taux de rebond - avec des fonctionnalités habituellement réservées aux outils payants : session replays, funnels, parcours utilisateur et tracking d&#x27;erreurs. Tu colles un script sur ton site, tu déploies l&#x27;instance en Docker sur ton VPS, et tes données restent chez toi. Le stockage s&#x27;appuie sur ClickHouse, donc les requêtes tiennent la charge même avec beaucoup d&#x27;événements.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Session replays inclus&lt;&#x2F;strong&gt; : rejoue la navigation de tes visiteurs pour voir où ça coince, une fonctionnalité que ni GA4 ni Plausible ne proposent&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Sans cookies&lt;&#x2F;strong&gt; : rien à stocker côté client, donc pas de bandeau de consentement et conformité RGPD par défaut&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Cartes à 3 niveaux&lt;&#x2F;strong&gt; : géolocalisation pays → région → ville avec visualisations cartographiques, là où la plupart des concurrents s&#x27;arrêtent au pays&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Filtrage avancé&lt;&#x2F;strong&gt; : plus de 15 dimensions combinables pour segmenter ton trafic sans monter une usine à gaz&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Analytics produit&lt;&#x2F;strong&gt; : funnels, rétention, parcours utilisateur, profils et objectifs personnalisés - pas juste du comptage de pages vues&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Tracking d&#x27;erreurs intégré&lt;&#x2F;strong&gt; : les erreurs JS remontent dans le même dashboard que le reste, pas besoin d&#x27;ajouter un outil dédié&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Multi-sites et multi-orgs&lt;&#x2F;strong&gt; : une seule instance pour un nombre illimité de sites, avec gestion des organisations et dashboards publics&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Remplacer Google Analytics sur un site public sans avoir à afficher de bandeau de consentement&lt;&#x2F;li&gt;
&lt;li&gt;Analytics produit d&#x27;une SaaS : funnels d&#x27;inscription, rétention et parcours utilisateur dans un seul outil&lt;&#x2F;li&gt;
&lt;li&gt;Diagnostiquer un abandon de tunnel en rejouant la session concernée plutôt qu&#x27;en devinant&lt;&#x2F;li&gt;
&lt;li&gt;Exposer un dashboard public pour partager les stats d&#x27;un projet open source ou d&#x27;un blog&lt;&#x2F;li&gt;
&lt;li&gt;Centraliser les analytics de plusieurs clients ou marques sur une instance auto-hébergée&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Easy!Appointments</title>
        <published>2026-07-31T00:00:00+00:00</published>
        <updated>2026-07-31T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/easyappointments/"/>
        <id>https://papyrus.z29k.com/gemshelf/easyappointments/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/easyappointments/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Easy!Appointments est une plateforme de prise de rendez-vous open source que tu héberges sur ton propre serveur. Tes clients réservent un créneau depuis une page de réservation publique, et tu pilotes tout le reste depuis un back-office : services, intervenants, horaires et clients. C&#x27;est une alternative self-hosted aux SaaS type Calendly ou Acuity, avec des données qui restent chez toi.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Stack simple et éprouvée&lt;&#x2F;strong&gt; : PHP 8 + MySQL derrière Apache ou Nginx, ou un &lt;code&gt;docker compose up&lt;&#x2F;code&gt; pour les pressés. Ça tourne sur un mutualisé ou un petit VPS, pas besoin d&#x27;une infra lourde pour encaisser des réservations&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Workflow de réservation complet&lt;&#x2F;strong&gt; : services organisés par catégories, plusieurs prestataires avec chacun son planning, ses pauses et ses règles de disponibilité, plus des rôles distincts (admin, prestataire, secrétaire)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Synchro Google Calendar&lt;&#x2F;strong&gt; : les rendez-vous pris sur la page de réservation se synchronisent avec l&#x27;agenda Google des prestataires, qui gardent leur outil habituel au quotidien&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;API REST documentée&lt;&#x2F;strong&gt; : une spec OpenAPI est incluse dans le repo, pratique pour intégrer la prise de rendez-vous dans un site existant ou automatiser la gestion des créneaux&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Notifications et multilingue&lt;&#x2F;strong&gt; : confirmations et rappels par email pour les clients comme pour les prestataires, avec une interface traduite dans de nombreuses langues&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Prise de rendez-vous en ligne pour un cabinet médical, un salon de coiffure ou un garage&lt;&#x2F;li&gt;
&lt;li&gt;Réservation de créneaux de démo ou de support pour une PME qui ne veut pas payer un SaaS par siège&lt;&#x2F;li&gt;
&lt;li&gt;Planification de consultations ou de permanences dans une association ou une administration&lt;&#x2F;li&gt;
&lt;li&gt;Remplacement d&#x27;un abonnement Calendly par une instance auto-hébergée et maîtrisée&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Lychee</title>
        <published>2026-07-31T00:00:00+00:00</published>
        <updated>2026-07-31T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/lychee/"/>
        <id>https://papyrus.z29k.com/gemshelf/lychee/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/lychee/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Lychee est un gestionnaire de photos open source que tu installes sur ton propre serveur. Tu uploades tes photos, tu les organises en albums et tu les partages via des liens publics ou protégés, le tout dans une interface épurée qui n&#x27;a rien à envier aux services cloud. C&#x27;est l&#x27;alternative self-hosted à Google Photos ou Flickr pour qui veut garder la main sur sa photothèque.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Tes photos, ton serveur&lt;&#x2F;strong&gt; : les originaux restent chez toi, sans compression forcée, sans analyse par un tiers et sans risque de voir le service fermer ou changer ses tarifs&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Partage granulaire&lt;&#x2F;strong&gt; : albums publics, privés, protégés par mot de passe ou accessibles uniquement par lien direct. Tu décides précisément qui voit quoi&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Interface léchée&lt;&#x2F;strong&gt; : navigation fluide, vue plein écran, albums imbriqués et affichage des métadonnées EXIF (objectif, ouverture, ISO). Ça ressemble à un produit fini, pas à un projet de week-end&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Stack Laravel solide&lt;&#x2F;strong&gt; : PHP 8 avec Laravel côté back, Vue.js côté front, et le support de MySQL, MariaDB, PostgreSQL ou SQLite selon ton infra&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Déploiement Docker officiel&lt;&#x2F;strong&gt; : des images maintenues par l&#x27;équipe et un &lt;code&gt;docker compose&lt;&#x2F;code&gt; prêt à l&#x27;emploi, l&#x27;installation se résume à quelques minutes&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Photothèque personnelle ou familiale hébergée sur un NAS ou un VPS&lt;&#x2F;li&gt;
&lt;li&gt;Portfolio de photographe avec des galeries publiques et des livraisons client par lien protégé&lt;&#x2F;li&gt;
&lt;li&gt;Partage de photos d&#x27;événements (mariage, association, club) sans passer par les réseaux sociaux&lt;&#x2F;li&gt;
&lt;li&gt;Sortie de Google Photos avec conservation des originaux en pleine résolution&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>mCaptcha</title>
        <published>2026-07-31T00:00:00+00:00</published>
        <updated>2026-07-31T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/mcaptcha/"/>
        <id>https://papyrus.z29k.com/gemshelf/mcaptcha/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/mcaptcha/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;mCaptcha est un système de CAPTCHA self-hosted qui remplace les grilles d&#x27;images par du proof-of-work : le navigateur du visiteur résout un calcul SHA256 en arrière-plan et le serveur valide la preuve. Pour l&#x27;utilisateur, tout se résume à un clic sur une checkbox ; pour un bot, chaque requête a un coût en calcul qui rend le spam de masse hors de prix.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Zéro friction&lt;&#x2F;strong&gt; : pas de passages piétons à identifier ni de texte déformé à déchiffrer, le calcul est invisible et l&#x27;utilisateur ne fait que cliquer.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Difficulté adaptative&lt;&#x2F;strong&gt; : imperceptible en trafic normal, la preuve monte à environ deux secondes de calcul sous attaque. Attaquer le site coûte plus cher que d&#x27;encaisser les requêtes.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Privacy by design&lt;&#x2F;strong&gt; : pas de cookies, pas de profilage, et le rate-limiting ne s&#x27;appuie pas sur l&#x27;adresse IP, donc les utilisateurs derrière un NAT ne sont jamais pénalisés.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Drop-in reCAPTCHA &#x2F; hCaptcha&lt;&#x2F;strong&gt; : les API sont compatibles avec les deux services, la migration ne demande pas de réécrire l&#x27;intégration existante.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Anti-replay&lt;&#x2F;strong&gt; : tokens à usage unique avec durée de vie de 30 secondes, serveur en Rust (Actix-web) distribué en images Docker officielles. Le cœur est AGPL, les libs clientes sous licences permissives.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Protéger les formulaires sensibles (inscription, connexion, contact) sans dépendre de Google.&lt;&#x2F;li&gt;
&lt;li&gt;Remplacer reCAPTCHA ou hCaptcha sur un site existant grâce aux API compatibles.&lt;&#x2F;li&gt;
&lt;li&gt;Freiner le spam de bots sur une instance publique (forge Git, forum, wiki).&lt;&#x2F;li&gt;
&lt;li&gt;Servir un CAPTCHA conforme RGPD, sans cookie ni collecte de données à déclarer.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Open Web Analytics</title>
        <published>2026-07-31T00:00:00+00:00</published>
        <updated>2026-07-31T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/open-web-analytics/"/>
        <id>https://papyrus.z29k.com/gemshelf/open-web-analytics/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/open-web-analytics/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Open Web Analytics (OWA) est un framework d&#x27;analytics web open source que tu héberges sur ton propre serveur. Un tracker JavaScript first-party remonte les visites, les pages vues et les événements de tes sites, et tout se consulte dans un dashboard de rapports sans qu&#x27;aucune donnée ne parte chez un tiers. C&#x27;est une alternative à Google Analytics pour qui veut garder la propriété complète de ses données d&#x27;usage.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Heatmaps de clics&lt;&#x2F;strong&gt; : OWA génère des cartes de chaleur superposées à tes pages pour visualiser où les visiteurs cliquent réellement, sans outil externe.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Domstream&lt;&#x2F;strong&gt; : l&#x27;enregistrement de sessions rejoue les mouvements de souris et le parcours d&#x27;un visiteur sur la page, façon session replay, intégré de base.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Intégrations WordPress et MediaWiki&lt;&#x2F;strong&gt; : un plugin WordPress officiel et le support MediaWiki permettent d&#x27;instrumenter un site sans écrire une ligne de code.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;API REST et framework modulaire&lt;&#x2F;strong&gt; : administration et accès aux données par API, et une architecture en modules PHP extensible pour ajouter des métriques maison.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Multi-sites&lt;&#x2F;strong&gt; : une seule instance suit autant de sites que nécessaire, avec géolocalisation des visiteurs et suivi des transactions e-commerce inclus.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Remplacer Google Analytics par une solution hébergée chez toi, dont tu contrôles les données de bout en bout.&lt;&#x2F;li&gt;
&lt;li&gt;Analyser l&#x27;ergonomie d&#x27;une page avec les heatmaps et le replay de sessions, sans souscrire à un service type Hotjar.&lt;&#x2F;li&gt;
&lt;li&gt;Suivre l&#x27;audience d&#x27;un blog WordPress ou d&#x27;un wiki MediaWiki via les intégrations natives.&lt;&#x2F;li&gt;
&lt;li&gt;Centraliser l&#x27;analytics de plusieurs sites clients sur une seule instance.&lt;&#x2F;li&gt;
&lt;li&gt;Brancher un dashboard maison sur l&#x27;API REST pour des rapports sur mesure.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>OpenSERP</title>
        <published>2026-07-31T00:00:00+00:00</published>
        <updated>2026-07-31T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/openserp/"/>
        <id>https://papyrus.z29k.com/gemshelf/openserp/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/openserp/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;OpenSERP est une API SERP et un CLI self-hosted qui récupèrent les résultats de recherche en direct de six moteurs (Google, Bing, Yandex, Baidu, DuckDuckGo, Ecosia) sans clé d&#x27;API ni facturation à la requête. Tu le lances en Docker ou en binaire Go, et tu interroges un endpoint HTTP qui renvoie les résultats dans un schéma JSON unifié, quel que soit le moteur derrière.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Six moteurs, un seul schéma&lt;&#x2F;strong&gt; : les réponses de tous les moteurs sont normalisées dans le même format JSON, ton code ne change pas quand tu passes de Google à Bing.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Megasearch&lt;&#x2F;strong&gt; : un endpoint interroge plusieurs moteurs en parallèle, avec déduplication et regroupement des résultats.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Extraction de contenu&lt;&#x2F;strong&gt; : l&#x27;outil peut visiter les pages trouvées et embarquer leur contenu nettoyé en Markdown, prêt à alimenter un LLM ou un pipeline RAG.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Headless avec fallback&lt;&#x2F;strong&gt; : rendu navigateur pour les pages JavaScript, mode HTTP brut en secours, proxies HTTP et SOCKS5, cache intégré.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Pensé pour les agents IA&lt;&#x2F;strong&gt; : serveur MCP, SDKs, intégration n8n et formats de sortie JSON, Markdown, texte ou NdJSON.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Donner un accès au web en direct à un agent LLM sans payer une API de recherche commerciale.&lt;&#x2F;li&gt;
&lt;li&gt;Suivre le positionnement SEO de tes pages sur plusieurs moteurs à la fois.&lt;&#x2F;li&gt;
&lt;li&gt;Alimenter un pipeline RAG avec du contenu frais, déjà extrait en Markdown.&lt;&#x2F;li&gt;
&lt;li&gt;Automatiser une veille concurrentielle multi-moteurs via l&#x27;API HTTP.&lt;&#x2F;li&gt;
&lt;li&gt;Scripter des recherches d&#x27;images avec filtres de langue, de date et de type de fichier.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>authentik</title>
        <published>2026-07-30T00:00:00+00:00</published>
        <updated>2026-07-30T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/authentik/"/>
        <id>https://papyrus.z29k.com/gemshelf/authentik/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/authentik/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;authentik est un fournisseur d&#x27;identité auto-hébergé qui centralise l&#x27;authentification de tout un parc applicatif. Il parle SAML, OAuth2&#x2F;OIDC, LDAP, RADIUS et SCIM, et sait aussi protéger une application qui ne gère aucun de ces protocoles en se plaçant devant elle en reverse proxy. Le cœur est en Python avec un frontend TypeScript et des outposts en Go. Le modèle est open core : le cœur est sous MIT, une édition Enterprise payante vient par-dessus.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Flux d&#x27;authentification composables&lt;&#x2F;strong&gt; : la brique centrale, ce sont les flows, des séquences d&#x27;étapes (identification, mot de passe, MFA, écriture utilisateur) que l&#x27;on assemble soi-même. Sept types de flux couvrent connexion, autorisation, inscription, déconnexion, récupération, configuration et désinscription.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Politiques évaluées à l&#x27;exécution&lt;&#x2F;strong&gt; : les policies se rattachent aux étapes et sont évaluées juste avant l&#x27;affichage, ce qui permet d&#x27;insérer une étape conditionnellement selon l&#x27;utilisateur, son IP ou son contexte.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Proxy d&#x27;application intégré&lt;&#x2F;strong&gt; : les outposts posent du SSO devant une appli legacy sans toucher à son code, et couvrent aussi l&#x27;accès distant en RDP, VNC et SSH.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;MFA et accès conditionnel&lt;&#x2F;strong&gt; : WebAuthn et passkeys, TOTP, plus de la détection GeoIP et impossible travel pour conditionner l&#x27;accès.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Fédération large&lt;&#x2F;strong&gt; : sources OAuth2&#x2F;OIDC, OAuth1, SAML2, LDAP et Kerberos en entrée, provisioning SCIM en sortie pour synchroniser les comptes vers les applications cibles.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Poser un SSO unique devant un homelab hétérogène, du NAS Synology à Grafana&lt;&#x2F;li&gt;
&lt;li&gt;Protéger une appli interne sans support OIDC via le proxy et ses outposts&lt;&#x2F;li&gt;
&lt;li&gt;Ouvrir un portail d&#x27;inscription en self-service avec validation par étapes&lt;&#x2F;li&gt;
&lt;li&gt;Servir de couche LDAP ou RADIUS pour du matériel réseau qui ne sait faire que ça&lt;&#x2F;li&gt;
&lt;li&gt;Provisionner et déprovisionner les comptes des applications cibles via SCIM&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Gatus</title>
        <published>2026-07-30T00:00:00+00:00</published>
        <updated>2026-07-30T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/gatus/"/>
        <id>https://papyrus.z29k.com/gemshelf/gatus/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/gatus/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Gatus est un dashboard de santé auto-hébergé, écrit en Go et piloté par un fichier YAML. Chaque endpoint surveillé est décrit avec sa cible, son intervalle et une liste de conditions à satisfaire pour être considéré comme sain. Le résultat est une page de statut lisible plus un moteur d&#x27;alertes, sans SaaS derrière ni agent à déployer sur les machines surveillées.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Des conditions plutôt qu&#x27;un simple ping&lt;&#x2F;strong&gt; : la validation s&#x27;écrit avec des placeholders, &lt;code&gt;[STATUS] == 200&lt;&#x2F;code&gt;, &lt;code&gt;[RESPONSE_TIME] &amp;lt; 500&lt;&#x2F;code&gt;, &lt;code&gt;[BODY].user.name == john&lt;&#x2F;code&gt; en JSONPath ou &lt;code&gt;len([BODY].data) &amp;lt; 5&lt;&#x2F;code&gt;. On teste le contenu de la réponse, pas seulement le fait qu&#x27;elle arrive.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Beaucoup de protocoles&lt;&#x2F;strong&gt; : HTTP, TCP, UDP, SCTP, ICMP, DNS, SSH, WebSocket et gRPC. Des conditions dédiées couvrent aussi l&#x27;expiration des certificats avec &lt;code&gt;[CERTIFICATE_EXPIRATION] &amp;gt; 48h&lt;&#x2F;code&gt; et celle des noms de domaine.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Tout en YAML&lt;&#x2F;strong&gt; : la config accepte l&#x27;interpolation de variables d&#x27;environnement et le chargement de plusieurs fichiers fusionnés depuis un dossier. Ça se versionne et se déploie comme du code.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Alertes partout&lt;&#x2F;strong&gt; : une quarantaine de providers intégrés, de Slack et Discord à PagerDuty, Opsgenie, ntfy, Gotify ou Home Assistant, plus les webhooks maison pour le reste.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Stockage au choix&lt;&#x2F;strong&gt; : mémoire par défaut, auquel cas rien ne survit au redémarrage, SQLite avec cache write-through, ou PostgreSQL pour une instance partagée.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Exposer une page de statut publique pour ses services&lt;&#x2F;li&gt;
&lt;li&gt;Vérifier qu&#x27;une API renvoie le bon JSON et pas seulement un code 200&lt;&#x2F;li&gt;
&lt;li&gt;Surveiller l&#x27;expiration des certificats TLS et des domaines avant qu&#x27;ils lâchent&lt;&#x2F;li&gt;
&lt;li&gt;Monitorer les services internes d&#x27;un cluster Kubernetes depuis l&#x27;intérieur&lt;&#x2F;li&gt;
&lt;li&gt;Router les alertes d&#x27;un homelab vers ntfy ou Gotify&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Jellyfin</title>
        <published>2026-07-30T00:00:00+00:00</published>
        <updated>2026-07-30T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/jellyfin/"/>
        <id>https://papyrus.z29k.com/gemshelf/jellyfin/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/jellyfin/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Jellyfin est un serveur multimédia auto-hébergé qui indexe une bibliothèque de films, séries, musique, livres et photos, puis la diffuse vers n&#x27;importe quel client. Le serveur tourne sur Windows, Linux, macOS ou en Docker, récupère métadonnées et affiches automatiquement, et transcode à la volée quand le lecteur ne sait pas décoder le fichier source. C&#x27;est un fork d&#x27;Emby 3.5.2, entièrement libre : pas de version payante, pas de fonctionnalité verrouillée derrière un abonnement.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Rien à payer, rien à débloquer&lt;&#x2F;strong&gt; : le serveur et les clients officiels sont complets. Pas de palier premium pour le transcodage matériel ou la lecture hors ligne.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Aucun appel maison&lt;&#x2F;strong&gt; : pas de compte central, pas de télémétrie, pas de service tiers entre le serveur et les clients. Le catalogue et les habitudes de lecture restent sur la machine.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Transcodage matériel large&lt;&#x2F;strong&gt; : jellyfin-ffmpeg exploite QSV côté Intel, NVENC&#x2F;NVDEC côté NVIDIA, AMF côté AMD, plus VA-API sur Linux, Video Toolbox sur macOS et RKMPP sur Rockchip.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Clients partout&lt;&#x2F;strong&gt; : navigateur, applis desktop, Android et Android TV, iOS et tvOS, Fire TV, Roku, plugin Kodi, sans compter les clients tiers.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;API REST documentée&lt;&#x2F;strong&gt; : tout ce que fait l&#x27;interface web passe par une API décrite en Swagger, ce qui rend le scripting et les intégrations maison directs.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Remplacer Plex ou Emby sur un NAS ou un homelab sans dépendre d&#x27;un service en ligne&lt;&#x2F;li&gt;
&lt;li&gt;Diffuser une bibliothèque musicale ou une collection de livres audio sur mobile&lt;&#x2F;li&gt;
&lt;li&gt;Centraliser des enregistrements TV avec un tuner réseau ou un flux m3u, DVR intégré compris&lt;&#x2F;li&gt;
&lt;li&gt;Regarder un film à plusieurs à distance en lecture synchronisée avec SyncPlay&lt;&#x2F;li&gt;
&lt;li&gt;Servir de backend média à un projet maison via l&#x27;API REST&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Krayin</title>
        <published>2026-07-30T00:00:00+00:00</published>
        <updated>2026-07-30T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/krayin/"/>
        <id>https://papyrus.z29k.com/gemshelf/krayin/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/krayin/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Krayin est un CRM open source construit sur Laravel côté serveur et Vue.js côté interface. Il couvre le cycle commercial classique : leads, contacts et organisations, pipelines de deals, devis, catalogue produits et suivi des activités comme les appels, réunions et notes. Le projet se positionne comme un framework CRM plutôt que comme un produit fermé : le code est découpé en packages Laravel que l&#x27;on étend ou remplace, ce qui en fait une base sur laquelle construire un outil métier au lieu de subir un SaaS rigide.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Stack Laravel familière&lt;&#x2F;strong&gt; : si l&#x27;équipe fait déjà du PHP, il n&#x27;y a rien de neuf à apprendre. Migrations, Eloquent, service providers, artisan, tout est standard. Compter PHP 8.3, Composer 2.5 et MySQL 8 au minimum.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Architecture modulaire&lt;&#x2F;strong&gt; : les fonctionnalités sont des packages séparés. Ajouter un module métier ou surcharger une vue se fait sans forker le cœur du projet.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Champs personnalisés illimités&lt;&#x2F;strong&gt; : le système d&#x27;attributs permet d&#x27;ajouter des champs sur les leads, contacts ou deals depuis l&#x27;admin, sans écrire de migration.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;ACL par rôles&lt;&#x2F;strong&gt; : les droits d&#x27;accès aux enregistrements se règlent par rôle, ce qui évite de bricoler un système de permissions à la main.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Extensions et localisation&lt;&#x2F;strong&gt; : le marketplace couvre le multi-tenant SaaS, WhatsApp et le VoIP, avec en plus le parsing des emails entrants. L&#x27;interface est traduite en français, allemand, espagnol, néerlandais et portugais.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Monter un CRM auto-hébergé pour une PME sans partir d&#x27;une feuille blanche&lt;&#x2F;li&gt;
&lt;li&gt;Construire un CRM métier sur mesure en réutilisant l&#x27;ossature Laravel et son admin&lt;&#x2F;li&gt;
&lt;li&gt;Remplacer un CRM SaaS quand le besoin tient dans le suivi du lead jusqu&#x27;au devis&lt;&#x2F;li&gt;
&lt;li&gt;Exposer les données commerciales à d&#x27;autres outils internes via l&#x27;API&lt;&#x2F;li&gt;
&lt;li&gt;Servir plusieurs clients depuis une seule installation avec l&#x27;extension multi-tenant&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>listmonk</title>
        <published>2026-07-30T00:00:00+00:00</published>
        <updated>2026-07-30T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/listmonk/"/>
        <id>https://papyrus.z29k.com/gemshelf/listmonk/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/listmonk/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;listmonk est un gestionnaire de newsletters et de listes de diffusion auto-hébergé, livré en un seul binaire Go avec PostgreSQL comme unique dépendance. Il gère les abonnés, les campagnes, les templates et les statistiques d&#x27;envoi depuis une interface web, et sert aussi de brique d&#x27;envoi transactionnel pour une application via son API. L&#x27;objectif est simple : garder sa liste et ses données d&#x27;envoi chez soi plutôt que chez un prestataire facturé à l&#x27;abonné.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Un binaire, une base Postgres&lt;&#x2F;strong&gt; : pas de Redis, pas de worker externe, pas de broker à surveiller. Le déploiement tient dans un binaire et un fichier de config, ou dans une image Docker.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Segmentation en SQL&lt;&#x2F;strong&gt; : les abonnés se filtrent avec des expressions SQL portant sur leurs attributs JSON arbitraires. On n&#x27;est pas coincé dans un constructeur de segments à trois opérateurs.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Files SMTP multiples&lt;&#x2F;strong&gt; : plusieurs serveurs SMTP en parallèle, en multi-thread, avec limitation de débit en fenêtre glissante pour rester dans les quotas des fournisseurs.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Sobriété assumée&lt;&#x2F;strong&gt; : l&#x27;instance citée en référence par le projet a envoyé plus de 7 millions d&#x27;emails avec un pic à 57 Mo de RAM et une fraction de cœur CPU. Ça tient sur un petit VPS.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Templates Go et éditeurs au choix&lt;&#x2F;strong&gt; : templating Go avec logique et une centaine de fonctions, utilisable jusque dans les objets de mail, plus un éditeur visuel drag-and-drop, du WYSIWYG, du Markdown ou du HTML brut.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Héberger la newsletter d&#x27;un blog ou d&#x27;un produit sans dépendre d&#x27;un service tiers&lt;&#x2F;li&gt;
&lt;li&gt;Envoyer les emails transactionnels d&#x27;une appli via l&#x27;API et des templates prédéfinis&lt;&#x2F;li&gt;
&lt;li&gt;Segmenter une base d&#x27;abonnés à partir d&#x27;attributs métier stockés en JSON&lt;&#x2F;li&gt;
&lt;li&gt;Suivre les bounces et les liens les plus cliqués sur une campagne&lt;&#x2F;li&gt;
&lt;li&gt;Répartir le volume d&#x27;envoi sur plusieurs relais SMTP&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Navidrome</title>
        <published>2026-07-30T00:00:00+00:00</published>
        <updated>2026-07-30T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/navidrome/"/>
        <id>https://papyrus.z29k.com/gemshelf/navidrome/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/navidrome/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Navidrome est un serveur de streaming musical auto-hébergé, écrit en Go et livré en binaire autonome. Il scanne une bibliothèque de fichiers audio, en lit les métadonnées, et expose le tout via une interface web React et l&#x27;API OpenSubsonic. Là où un serveur média généraliste gère tous les types de contenu, Navidrome ne fait que de la musique : la contrepartie, c&#x27;est un traitement correct des compilations, des albums multi-disques et des tags.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Très léger&lt;&#x2F;strong&gt; : le projet revendique un fonctionnement correct sur un Raspberry Pi Zero et du vieux matériel. Un binaire à lancer, pas de base de données externe à provisionner.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;API OpenSubsonic&lt;&#x2F;strong&gt; : c&#x27;est le standard de fait de la musique auto-hébergée. N&#x27;importe quel client Subsonic, Madsonic ou Airsonic se connecte, ce qui ouvre un large choix d&#x27;applis iOS et Android sans que le projet ait à les maintenir lui-même.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Grosses bibliothèques&lt;&#x2F;strong&gt; : testé sur environ 900 000 morceaux, deux tiers de FLAC et un tiers de MP3, avec surveillance automatique du dossier pour détecter les nouveaux fichiers et recharger les métadonnées.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Playlists intelligentes&lt;&#x2F;strong&gt; : des playlists dynamiques dans l&#x27;esprit d&#x27;iTunes, en plus de l&#x27;import automatique des fichiers .m3u.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Multi-utilisateur et multi-bibliothèque&lt;&#x2F;strong&gt; : compteurs d&#x27;écoute, favoris et playlists propres à chaque utilisateur, avec des bibliothèques séparées et des droits d&#x27;accès distincts, par exemple musique d&#x27;un côté et livres audio de l&#x27;autre.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Écouter sa collection de FLAC depuis le téléphone via un client Subsonic, avec transcodage Opus à la volée pour économiser le forfait data&lt;&#x2F;li&gt;
&lt;li&gt;Faire tourner un serveur musical sur un Raspberry Pi ou un NAS d&#x27;entrée de gamme&lt;&#x2F;li&gt;
&lt;li&gt;Séparer musique et livres audio en deux bibliothèques avec des accès différents selon les membres du foyer&lt;&#x2F;li&gt;
&lt;li&gt;Partager un album ou une playlist via un lien public&lt;&#x2F;li&gt;
&lt;li&gt;Envoyer ses écoutes vers Last.fm, ListenBrainz ou Maloja&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Hindsight</title>
        <published>2026-07-27T00:00:00+00:00</published>
        <updated>2026-07-27T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/hindsight/"/>
        <id>https://papyrus.z29k.com/gemshelf/hindsight/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/hindsight/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Hindsight est un système de mémoire pour agents IA développé par Vectorize. Là où la plupart des solutions se contentent de stocker puis retrouver l&#x27;historique de conversation, Hindsight apprend : il extrait faits, entités et relations, les organise en réseaux de mémoire inspirés de la cognition humaine, et génère de nouvelles conclusions par réflexion. Le tout est auto-hébergeable et affiche des résultats state of the art sur le benchmark LongMemEval.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Trois opérations, un modèle mental simple&lt;&#x2F;strong&gt; : retain stocke l&#x27;information avec extraction automatique des faits, entités, relations et données temporelles ; recall retrouve les souvenirs pertinents ; reflect analyse la mémoire existante pour en tirer de nouvelles connexions.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Rappel multi-stratégies&lt;&#x2F;strong&gt; : quatre approches exécutées en parallèle : similarité vectorielle, mots-clés BM25, parcours du graphe d&#x27;entités et filtrage temporel. Pas besoin de trancher entre RAG et knowledge graph, Hindsight combine les deux.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Mémoire structurée façon cognition&lt;&#x2F;strong&gt; : les souvenirs sont rangés en faits sur le monde, expériences, opinions et observations, plutôt qu&#x27;empilés dans un simple index de chunks vectorisés.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Intégration en deux lignes&lt;&#x2F;strong&gt; : un wrapper LLM ajoute la mémoire à un agent existant sans réécriture. OpenAI, Anthropic, Gemini, Groq ou Ollama sont supportés côté fournisseur.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Déploiement flexible&lt;&#x2F;strong&gt; : conteneur Docker adossé à PostgreSQL, ou mode embarqué en Python sans serveur séparé. Clients Python et TypeScript, isolation de la mémoire par utilisateur, licence MIT.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Donner une mémoire de long terme à un chatbot, avec isolation par utilisateur pour la personnalisation&lt;&#x2F;li&gt;
&lt;li&gt;Faire progresser un agent d&#x27;un run à l&#x27;autre (support, revue de code, ops) au lieu de repartir de zéro&lt;&#x2F;li&gt;
&lt;li&gt;Remplacer un pipeline RAG maison quand la simple recherche vectorielle atteint ses limites&lt;&#x2F;li&gt;
&lt;li&gt;Construire des profils utilisateurs persistants alimentés par les conversations&lt;&#x2F;li&gt;
&lt;li&gt;Expérimenter sur la mémoire des agents : un papier de recherche arXiv accompagne le projet&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Pagefind</title>
        <published>2026-07-27T00:00:00+00:00</published>
        <updated>2026-07-27T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/pagefind/"/>
        <id>https://papyrus.z29k.com/gemshelf/pagefind/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/pagefind/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Pagefind est une bibliothèque de recherche full-text entièrement statique, écrite en Rust. Elle s&#x27;exécute après le build de n&#x27;importe quel générateur de site statique, indexe le HTML produit et dépose un bundle de recherche directement dans les fichiers du site. Résultat : une recherche instantanée dans le navigateur, sans serveur, sans base de données et sans le moindre service externe à héberger ou à payer.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Zéro infrastructure&lt;&#x2F;strong&gt; : l&#x27;index n&#x27;est qu&#x27;un ensemble de fichiers statiques servis avec le reste du site. Pas de backend, pas de SaaS, pas de clé API à gérer.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Bande passante minimale&lt;&#x2F;strong&gt; : l&#x27;index est découpé en fragments chargés à la demande via WebAssembly. Une recherche sur un site de 10 000 pages consomme moins de 300 Ko au total, bibliothèque comprise. Pour la plupart des sites, on tourne plutôt autour de 100 Ko.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Compatible avec tout&lt;&#x2F;strong&gt; : Pagefind travaille sur le HTML final, pas sur les sources. Zola, Hugo, Eleventy, Astro, Next.js en export statique... si le build produit du HTML, ça fonctionne.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Multilingue sans configuration&lt;&#x2F;strong&gt; : les sites multilingues sont détectés automatiquement, chaque langue reçoit son propre index avec le stemming adapté.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Filtres, tri et métadonnées&lt;&#x2F;strong&gt; : un vrai moteur de filtres pour la recherche à facettes, un tri par pertinence ou par métadonnées personnalisées, et un système de pondération fine du contenu.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;UI clé en main&lt;&#x2F;strong&gt; : depuis la version 1.5, des web components prêts à l&#x27;emploi (modal de recherche comprise) s&#x27;ajoutent en quelques lignes. Une API JavaScript bas niveau reste disponible pour construire une interface sur mesure.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Ajouter une recherche full-text à un blog ou une documentation générés avec Zola, Hugo, Astro ou Eleventy&lt;&#x2F;li&gt;
&lt;li&gt;Mettre en place une recherche à facettes sur une base de connaissances ou un catalogue statique&lt;&#x2F;li&gt;
&lt;li&gt;Remplacer un service de recherche hébergé (Algolia, Meilisearch) quand un index statique suffit&lt;&#x2F;li&gt;
&lt;li&gt;Indexer des contenus non-HTML (PDF, JSON) via les bibliothèques d&#x27;indexation NodeJS et Python&lt;&#x2F;li&gt;
&lt;li&gt;Proposer une recherche fédérée couvrant plusieurs domaines statiques&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Another</title>
        <published>2026-07-23T00:00:00+00:00</published>
        <updated>2026-07-23T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/another/"/>
        <id>https://papyrus.z29k.com/gemshelf/another/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/another/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Another est une application desktop pour afficher et piloter un appareil Android depuis son ordinateur, en USB ou en WiFi. Elle s&#x27;appuie sur ADB et le serveur scrcpy pour récupérer l&#x27;écran en H.264&#x2F;H.265 et renvoyer les entrées (touch, clavier, navigation). Le tout est packagé en application Tauri : interface React, backend Rust, binaire léger.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Vraie app native, pas juste un fork de scrcpy&lt;&#x2F;strong&gt; : interface soignée avec barre de commandes, raccourcis clavier et détection automatique des appareils via ADB.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Serveur MCP intégré&lt;&#x2F;strong&gt; : un agent LLM peut piloter le téléphone directement (screenshots, saisie de texte, lancement d&#x27;apps, commandes shell, exécution de macros).&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Macros&lt;&#x2F;strong&gt; : enregistrement et rejeu d&#x27;une suite d&#x27;interactions, pratique pour automatiser des parcours répétitifs.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Sans fil et audio&lt;&#x2F;strong&gt; : mirroring en WiFi et transfert de l&#x27;audio de l&#x27;appareil (Android 11+), plus enregistrement d&#x27;écran en .webm.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Bitrate adaptatif&lt;&#x2F;strong&gt; : la qualité vidéo s&#x27;ajuste selon l&#x27;activité à l&#x27;écran pour rester fluide.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Tester une app Android sur grand écran sans lâcher le clavier et la souris.&lt;&#x2F;li&gt;
&lt;li&gt;Faire une démo d&#x27;un téléphone en réunion ou en visio, propre et sans caméra.&lt;&#x2F;li&gt;
&lt;li&gt;Automatiser des parcours de test répétitifs avec les macros.&lt;&#x2F;li&gt;
&lt;li&gt;Laisser un agent IA piloter un appareil Android via le serveur MCP.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Restreamer</title>
        <published>2026-07-23T00:00:00+00:00</published>
        <updated>2026-07-23T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/restreamer/"/>
        <id>https://papyrus.z29k.com/gemshelf/restreamer/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/restreamer/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Restreamer est un serveur de streaming vidéo open source et auto-hébergé. Il reçoit un flux live une seule fois (OBS, caméra IP, fichier ou URL) et le rediffuse vers plusieurs plateformes en simultané, sans frais de licence ni service tiers. Le moteur repose sur FFmpeg, avec une interface web par-dessus pour tout configurer et surveiller.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Un flux entrant, plusieurs sorties&lt;&#x2F;strong&gt; : le stream n&#x27;est envoyé qu&#x27;une fois, puis poussé vers YouTube Live, Twitch, Facebook, Vimeo ou n&#x27;importe quel endpoint RTMP, sans saturer la bande passante montante.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Multi-protocole&lt;&#x2F;strong&gt; : serveurs RTMP&#x2F;S, SRT et HLS intégrés, en entrée comme en sortie.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Transcodage matériel&lt;&#x2F;strong&gt; : accélération Nvidia CUDA, Intel VAAPI et Raspberry Pi (MMAL&#x2F;OMX) pour soulager le CPU.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Interface web complète&lt;&#x2F;strong&gt; : assistant de configuration, lecteur VideoJS embarquable, monitoring des viewers et de la bande passante, HTTPS automatique via Let&#x27;s Encrypt.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;API REST documentée&lt;&#x2F;strong&gt; : toute la configuration est pilotable via une API JSON documentée avec Swagger, donc scriptable et automatisable.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Diffuser un live vers YouTube, Twitch et Facebook en même temps depuis une seule connexion montante.&lt;&#x2F;li&gt;
&lt;li&gt;Héberger son propre serveur RTMP&#x2F;SRT pour recevoir des flux OBS ou de caméras IP.&lt;&#x2F;li&gt;
&lt;li&gt;Embarquer un player live sur son site sans dépendre d&#x27;une plateforme externe.&lt;&#x2F;li&gt;
&lt;li&gt;Faire tourner un relais de streaming sur un Raspberry Pi ou un petit serveur auto-hébergé.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Chandra</title>
        <published>2026-07-20T00:00:00+00:00</published>
        <updated>2026-07-20T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/chandra/"/>
        <id>https://papyrus.z29k.com/gemshelf/chandra/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/chandra/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Chandra est un modèle OCR qui transforme des images et des PDF en Markdown, HTML ou JSON tout en préservant la mise en page. C&#x27;est un modèle vision-langage : au lieu de juste extraire du texte à plat, il détecte la structure (titres, colonnes, tableaux, figures) et reconstruit un document propre. Il vient de Datalab, l&#x27;équipe derrière Marker et Surya.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Sortie structurée&lt;&#x2F;strong&gt; : Markdown, HTML ou JSON avec la disposition conservée, pas un mur de texte désordonné.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Solide sur le compliqué&lt;&#x2F;strong&gt; : tableaux, formules mathématiques, mises en page denses, diagrammes et légendes sont bien reconstruits.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Manuscrit et formulaires&lt;&#x2F;strong&gt; : reconnaissance de l&#x27;écriture cursive et des formulaires, cases à cocher comprises.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Multilingue&lt;&#x2F;strong&gt; : plus de 90 langues, y compris des écritures non latines (arabe, japonais, hindi, russe).&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Plusieurs façons de le lancer&lt;&#x2F;strong&gt; : CLI (&lt;code&gt;pip install chandra-ocr&lt;&#x2F;code&gt;), en local via Hugging Face Transformers, ou sur un serveur vLLM, plus une petite app Streamlit pour tester.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Licence à connaître&lt;&#x2F;strong&gt; : le code est en Apache 2.0, mais les poids du modèle sont sous OpenRAIL-M (usage encadré, licence commerciale dispo). À vérifier avant un usage en prod.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Numériser des scans, PDF ou formulaires manuscrits en documents exploitables.&lt;&#x2F;li&gt;
&lt;li&gt;Récupérer proprement des tableaux financiers ou des papiers scientifiques chargés en maths.&lt;&#x2F;li&gt;
&lt;li&gt;Alimenter un pipeline RAG avec du Markdown propre plutôt que du texte OCR brut.&lt;&#x2F;li&gt;
&lt;li&gt;Traiter des documents multilingues sans changer d&#x27;outil selon la langue.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Openship</title>
        <published>2026-07-20T00:00:00+00:00</published>
        <updated>2026-07-20T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/openship/"/>
        <id>https://papyrus.z29k.com/gemshelf/openship/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/openship/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Openship est une plateforme de déploiement auto-hébergeable avec CI&#x2F;CD intégré. Tu pushes ton code, elle détecte la stack, build l&#x27;appli et lance les conteneurs sur ton propre serveur, façon Heroku mais chez toi. Elle se pilote depuis une CLI, un dashboard web ou une app desktop, au choix.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Push-to-deploy zéro config&lt;&#x2F;strong&gt; : détection automatique de la stack (Node, Python, Go, Rust, PHP, Ruby, Java, .NET, Docker) et build sans écrire de pipeline.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Trois interfaces&lt;&#x2F;strong&gt; : CLI, dashboard web et app desktop pour la même infra, selon ce que tu préfères.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Services backend inclus&lt;&#x2F;strong&gt; : Postgres, MySQL, MongoDB, Redis, stockage et WebSockets provisionnables à côté de l&#x27;appli.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;L&#x27;intendance gérée&lt;&#x2F;strong&gt; : SSL Let&#x27;s Encrypt (wildcard compris), serveur mail avec DKIM&#x2F;SPF&#x2F;DMARC, monitoring temps réel et backups planifiés.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Multi-cibles&lt;&#x2F;strong&gt; : cloud, VPS, serveurs dédiés ou multi-nœuds, avec compatibilité Docker Compose.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Déployer ses side-projects sans payer un PaaS au mois.&lt;&#x2F;li&gt;
&lt;li&gt;Se monter un Heroku maison sur un VPS et garder la main sur l&#x27;infra.&lt;&#x2F;li&gt;
&lt;li&gt;Provisionner appli + base + Redis d&#x27;un coup pour un environnement complet.&lt;&#x2F;li&gt;
&lt;li&gt;Faire tourner des workloads de prod en self-hosted sur plusieurs nœuds.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Probo</title>
        <published>2026-07-20T00:00:00+00:00</published>
        <updated>2026-07-20T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/probo/"/>
        <id>https://papyrus.z29k.com/gemshelf/probo/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/probo/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Probo est une plateforme GRC (gouvernance, risque, conformité) open source, pensée pour les équipes techniques. Elle couvre tout le cycle : registre des risques, suivi des contrôles, risque fournisseurs, vie privée, revues d&#x27;accès, programmes d&#x27;audit et workflows d&#x27;approbation de documents. Le backend est en Go avec PostgreSQL, et l&#x27;ensemble est auto-hébergeable.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Tout le cycle GRC au même endroit&lt;&#x2F;strong&gt; : risques (scoring inhérent et résiduel), contrôles, référentiels custom avec déclaration d&#x27;applicabilité, preuves d&#x27;audit et contrôle documentaire.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Multi-référentiel&lt;&#x2F;strong&gt; : SOC 2, ISO 27001, RGPD et HIPAA, plutôt que de repartir de zéro pour chaque norme.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;AI-native&lt;&#x2F;strong&gt; : Probo expose plus de 270 outils MCP, ce qui permet à un agent LLM de piloter des tâches de conformité (collecte de preuves, revues d&#x27;accès) directement.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Pensé pour les devs&lt;&#x2F;strong&gt; : console web, mais aussi CLI, API GraphQL et MCP, donc automatisable et pas seulement cliquable.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Risque fournisseurs et vie privée&lt;&#x2F;strong&gt; : inventaire des tiers, évaluation automatique de leurs sites, suivi des DPA&#x2F;BAA, DPIA et registres de traitement.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Préparer un SOC 2 ou une ISO 27001 sans partir sur une plateforme SaaS fermée.&lt;&#x2F;li&gt;
&lt;li&gt;Centraliser risques, contrôles et preuves d&#x27;audit pour une équipe sécurité.&lt;&#x2F;li&gt;
&lt;li&gt;Suivre le risque des fournisseurs et prestataires tiers.&lt;&#x2F;li&gt;
&lt;li&gt;Automatiser des workflows de conformité via des agents LLM (MCP) ou n8n.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>AltSendme</title>
        <published>2026-07-15T00:00:00+00:00</published>
        <updated>2026-07-15T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/alt-sendme/"/>
        <id>https://papyrus.z29k.com/gemshelf/alt-sendme/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/alt-sendme/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;AltSendme est une application de transfert de fichiers en pair-à-pair, directement d&#x27;un appareil à l&#x27;autre, sans passer par un cloud. Tu déposes un fichier ou un dossier, ça génère un ticket (un code à usage unique) que le destinataire colle pour lancer le transfert. C&#x27;est une alternative avec interface au CLI &lt;code&gt;sendme&lt;&#x2F;code&gt;, construite sur la lib Iroh pour la partie réseau.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Vraiment pair-à-pair&lt;&#x2F;strong&gt; : connexion directe entre appareils quand c&#x27;est possible, avec un relais chiffré en fallback si le direct ne passe pas.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Chiffré de bout en bout&lt;&#x2F;strong&gt; : QUIC + TLS 1.3, intégrité en BLAKE3, authentification Ed25519. Les relais ne voient que du trafic chiffré.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Sans compte ni limite&lt;&#x2F;strong&gt; : pas d&#x27;inscription, pas de tracking, pas de pub, et ça tient des fichiers énormes (testé jusqu&#x27;à plusieurs centaines de Go).&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Multiplateforme&lt;&#x2F;strong&gt; : Windows, macOS, Linux, Android, plus une version web et le CLI, le tout en Tauri.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Transferts costauds&lt;&#x2F;strong&gt; : reprise après coupure, débit qui sature une connexion gigabit (~125 Mo&#x2F;s mesurés).&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Envoyer un gros fichier à quelqu&#x27;un sans l&#x27;uploader sur un service tiers.&lt;&#x2F;li&gt;
&lt;li&gt;Balader des fichiers entre ses propres appareils, quelle que soit la plateforme.&lt;&#x2F;li&gt;
&lt;li&gt;Partager des données sensibles sans intermédiaire cloud.&lt;&#x2F;li&gt;
&lt;li&gt;Distribuer un très gros dataset ou une archive sans découpage.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Capso</title>
        <published>2026-07-15T00:00:00+00:00</published>
        <updated>2026-07-15T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/capso/"/>
        <id>https://papyrus.z29k.com/gemshelf/capso/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/capso/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Capso est une application macOS native de capture et d&#x27;enregistrement d&#x27;écran, dans l&#x27;esprit de CleanShot X. Une barre d&#x27;outils flottante regroupe les modes (zone, fenêtre, plein écran, défilement, timer, OCR, enregistrement), et l&#x27;annotation se fait juste après la capture. Écrite en Swift&#x2F;SwiftUI, elle vise macOS 15+.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Capture unifiée&lt;&#x2F;strong&gt; : un HUD façon CleanShot avec sélection ajustable, presets de ratio et bascule directe entre screenshot et enregistrement.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Annotation et OCR&lt;&#x2F;strong&gt; : flèches, formes, texte, pixelisation, marqueurs numérotés, plus reconnaissance de texte à l&#x27;écran avec copie dans le presse-papiers et traduction.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Enregistrement soigné&lt;&#x2F;strong&gt; : webcam en incrustation (4 formes), pause&#x2F;reprise, compte à rebours, et un éditeur avec trim, zoom suggéré, lissage du curseur et fond stylisé.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Historique et partage&lt;&#x2F;strong&gt; : bibliothèque de captures filtrable, épinglage à l&#x27;écran (mode click-through), upload cloud via Cloudflare R2.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Licence à connaître&lt;&#x2F;strong&gt; : c&#x27;est du source-available sous BSL 1.1, qui passe automatiquement en Apache 2.0 en avril 2029. Pas de l&#x27;open source classique, à garder en tête.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Documenter une interface avec des captures annotées et des marqueurs numérotés.&lt;&#x2F;li&gt;
&lt;li&gt;Enregistrer un tuto ou une démo avec la webcam en incrustation.&lt;&#x2F;li&gt;
&lt;li&gt;Extraire du texte d&#x27;une zone d&#x27;écran via l&#x27;OCR sans passer par un autre outil.&lt;&#x2F;li&gt;
&lt;li&gt;Garder un historique consultable de ses captures plutôt que de saturer le bureau.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>OpenHive</title>
        <published>2026-07-15T00:00:00+00:00</published>
        <updated>2026-07-15T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/openhive/"/>
        <id>https://papyrus.z29k.com/gemshelf/openhive/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/openhive/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;OpenHive est une messagerie d&#x27;équipe auto-hébergeable, dans l&#x27;esprit de Slack. Tu retrouves les canaux publics et privés, les messages directs, les threads et les appels vidéo, mais sur ta propre instance. Le stack est du Next.js côté front avec un backend Supabase (PostgreSQL), donc tu gardes la main sur tes données sans dépendre d&#x27;un SaaS.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Stack familier&lt;&#x2F;strong&gt; : Next.js + Supabase, avec Row Level Security à fond côté base. Si tu bosses déjà dans cet écosystème, c&#x27;est du terrain connu pour héberger et bricoler.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Appels intégrés&lt;&#x2F;strong&gt; : audio, vidéo et partage d&#x27;écran via LiveKit, directement dans l&#x27;app, pas via un service tiers.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Vraie messagerie, pas un squelette&lt;&#x2F;strong&gt; : threads, réactions emoji, mentions, éditeur riche, pièces jointes, bookmarks et messages programmés.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Extensible&lt;&#x2F;strong&gt; : commandes slash et webhooks entrants&#x2F;sortants pour brancher tes propres intégrations.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Gestion d&#x27;équipe&lt;&#x2F;strong&gt; : invitations par email, rôles owner&#x2F;admin&#x2F;member et un wizard de setup pour provisionner la base.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Monter une messagerie interne sans envoyer les conversations chez un éditeur SaaS.&lt;&#x2F;li&gt;
&lt;li&gt;Garder la souveraineté des données pour une équipe ou une orga sensible au sujet.&lt;&#x2F;li&gt;
&lt;li&gt;Se bâtir une plateforme de communication custom sur une base Next.js&#x2F;Supabase.&lt;&#x2F;li&gt;
&lt;li&gt;Éviter l&#x27;abonnement par siège quand l&#x27;équipe grossit.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>OpenObserve</title>
        <published>2026-07-15T00:00:00+00:00</published>
        <updated>2026-07-15T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/openobserve/"/>
        <id>https://papyrus.z29k.com/gemshelf/openobserve/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/openobserve/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;OpenObserve est une plateforme d&#x27;observabilité auto-hébergeable qui regroupe logs, métriques, traces, RUM, dashboards et alertes au même endroit. Écrite en Rust, elle se positionne comme une alternative à Datadog, Splunk ou Elasticsearch, avec un gros focus sur le coût de stockage. Elle tourne en un seul binaire, du mode standalone jusqu&#x27;au cluster HA.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Stockage sur objet, façonné pour le coût&lt;&#x2F;strong&gt; : les données sont écrites en Parquet colonnaire directement sur S3 (ou compatible), avec du cache intelligent. Le projet annonce jusqu&#x27;à 140x moins cher qu&#x27;Elasticsearch.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Un seul binaire&lt;&#x2F;strong&gt; : tu démarres en standalone pour tester, puis tu passes en cluster distribué sans changer d&#x27;outil.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Natif OpenTelemetry&lt;&#x2F;strong&gt; : ingestion OTLP sans agent propriétaire, donc pas de lock-in côté collecte.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Requêtes en SQL&lt;&#x2F;strong&gt; : SQL pour logs et traces, SQL ou PromQL pour les métriques, pas de langage maison à apprendre.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Plateforme complète&lt;&#x2F;strong&gt; : UI web avec builder de dashboards en drag-and-drop, alerting sur logs&#x2F;métriques&#x2F;traces et session replay côté RUM.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Centraliser les logs d&#x27;une infra sans exploser la facture de stockage.&lt;&#x2F;li&gt;
&lt;li&gt;Suivre des traces distribuées dans une architecture microservices.&lt;&#x2F;li&gt;
&lt;li&gt;Remplacer une stack ELK devenue lourde à opérer.&lt;&#x2F;li&gt;
&lt;li&gt;Brancher ses métriques et garder PromQL sans déployer un Prometheus complet à côté.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Sendune Email Designer</title>
        <published>2026-07-15T00:00:00+00:00</published>
        <updated>2026-07-15T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/sendune-email-designer/"/>
        <id>https://papyrus.z29k.com/gemshelf/sendune-email-designer/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/sendune-email-designer/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Sendune Email Designer est un éditeur WYSIWYG open source pour construire des emails HTML sans écrire de code. Tu glisses tes blocs (colonnes, texte, images, boutons, dividers) sur un canvas et l&#x27;outil génère un HTML propre, prêt à envoyer via n&#x27;importe quel service d&#x27;emailing. Il se distribue en composant Angular (&lt;code&gt;@send-with-ses&#x2F;ng-email-designer&lt;&#x2F;code&gt;) à intégrer dans ton appli.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Pas de couche intermédiaire&lt;&#x2F;strong&gt; : à la différence de MJML, il sort directement du HTML compatible clients mail, sans étape de compilation.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Trois modes&lt;&#x2F;strong&gt; : designer drag-and-drop, éditeur de code HTML et version texte brut, dans la même interface.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Intégrable&lt;&#x2F;strong&gt; : c&#x27;est un composant Angular embarquable dans ton produit, pas juste une app standalone.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;HTML portable&lt;&#x2F;strong&gt; : le rendu marche avec n&#x27;importe quel provider (SES, Postmark, Sendgrid...), tu n&#x27;es lié à personne.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Personnalisable&lt;&#x2F;strong&gt; : thème de l&#x27;UI via variables CSS et gestion d&#x27;images avec stockage cloud.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Offrir un éditeur d&#x27;emails à tes utilisateurs directement dans ton SaaS.&lt;&#x2F;li&gt;
&lt;li&gt;Créer des templates transactionnels propres pour AWS SES ou un autre ESP.&lt;&#x2F;li&gt;
&lt;li&gt;Maquetter une campagne marketing sans passer par un builder propriétaire.&lt;&#x2F;li&gt;
&lt;li&gt;Générer un HTML d&#x27;email réutilisable sans se battre avec les tables et les hacks de compatibilité.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>macshot</title>
        <published>2026-07-13T00:00:00+00:00</published>
        <updated>2026-07-13T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/macshot/"/>
        <id>https://papyrus.z29k.com/gemshelf/macshot/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/macshot/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;macshot est un outil natif de capture et d&#x27;enregistrement d&#x27;écran pour macOS. Un raccourci global, tu sélectionnes une zone, tu annotes, puis tu copies ou tu enregistres, le tout dans le même flux. Écrit en Swift avec AppKit (pas d&#x27;Electron), il couvre aussi bien le screenshot annoté que la vidéo avec éditeur intégré.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Annotation complète&lt;&#x2F;strong&gt; : une vingtaine d&#x27;outils (flèches, formes, texte, marqueurs numérotés, tampons, pixelisation, loupe, mesure).&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Capture avec défilement&lt;&#x2F;strong&gt; : reconstitue une page scrollée verticalement ou horizontalement en une seule image via Apple Vision.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Enregistrement vidéo&lt;&#x2F;strong&gt; : export MP4 jusqu&#x27;à 120 fps ou GIF, avec audio système et micro.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Floutage automatique des données sensibles&lt;&#x2F;strong&gt; : détecte et censure emails, téléphones, cartes bancaires, clés d&#x27;API, visages et personnes.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;OCR et upload cloud&lt;&#x2F;strong&gt; : extraction de texte en 30+ langues, envoi direct vers Google Drive, S3, R2 ou MinIO.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Rédiger de la doc technique avec des captures annotées.&lt;&#x2F;li&gt;
&lt;li&gt;Remonter un bug avec une capture commentée et marquée.&lt;&#x2F;li&gt;
&lt;li&gt;Partager un écran sans fuiter d&#x27;infos sensibles grâce à la redaction auto.&lt;&#x2F;li&gt;
&lt;li&gt;Enregistrer un court screencast et l&#x27;exporter en GIF pour une PR ou un ticket.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Markdownify MCP</title>
        <published>2026-07-13T00:00:00+00:00</published>
        <updated>2026-07-13T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/markdownify-mcp/"/>
        <id>https://papyrus.z29k.com/gemshelf/markdownify-mcp/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/markdownify-mcp/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Markdownify MCP est un serveur Model Context Protocol qui convertit à peu près n&#x27;importe quel format en Markdown. Il expose à un LLM (Claude en tête) des outils pour transformer PDF, images, audio, DOCX, XLSX, PPTX ou pages web en texte propre. L&#x27;idée : donner au modèle des sources lisibles plutôt que des fichiers binaires qu&#x27;il ne sait pas exploiter.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Beaucoup de formats couverts&lt;&#x2F;strong&gt; : PDF, images (avec OCR), audio (avec transcription), DOCX, XLSX, PPTX, en plus des pages web.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Pas que des fichiers&lt;&#x2F;strong&gt; : récupère aussi les transcriptions YouTube, les résultats de recherche Bing et le contenu de pages web arbitraires.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Intégration MCP native&lt;&#x2F;strong&gt; : se branche directement dans un client MCP, les conversions deviennent des outils que le modèle appelle tout seul.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Contrôle d&#x27;accès&lt;&#x2F;strong&gt; : restriction des chemins autorisés via &lt;code&gt;MD_ALLOWED_PATHS&lt;&#x2F;code&gt;, exécution locale, support Docker avec des limites de sécurité.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Exécution locale&lt;&#x2F;strong&gt; : le contenu reste sur ta machine, pas d&#x27;envoi vers un service tiers pour la conversion.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Ingérer une pile de documents (PDF, DOCX, XLSX) dans une base de connaissances pour un LLM.&lt;&#x2F;li&gt;
&lt;li&gt;Extraire le texte d&#x27;un audio ou d&#x27;une vidéo YouTube pour l&#x27;analyser avec Claude.&lt;&#x2F;li&gt;
&lt;li&gt;Donner à un agent le contenu propre d&#x27;une page web sans copier-coller manuel.&lt;&#x2F;li&gt;
&lt;li&gt;Monter un pipeline d&#x27;ingestion de documents en gardant tout en local.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>OpenAdServer</title>
        <published>2026-07-13T00:00:00+00:00</published>
        <updated>2026-07-13T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/openadserver/"/>
        <id>https://papyrus.z29k.com/gemshelf/openadserver/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/openadserver/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;OpenAdServer est une plateforme d&#x27;ad serving open source à auto-héberger. Elle gère un pipeline complet de diffusion de pub : récupération des candidats, filtrage, prédiction du taux de clic (CTR) par machine learning, puis ranking par eCPM en temps réel. Autrement dit, tu montes ton propre réseau publicitaire sans passer par une régie tierce, avec une brique ML pour optimiser les revenus.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Prédiction CTR par ML&lt;&#x2F;strong&gt; : modèles DeepFM, régression logistique et factorization machine implémentés en PyTorch, avec une latence de prédiction annoncée sous les 5 ms.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Ranking eCPM temps réel&lt;&#x2F;strong&gt; : classement automatique des annonces pour maximiser le revenu à chaque requête.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Ciblage fin&lt;&#x2F;strong&gt; : géolocalisation, type d&#x27;appareil, OS, données démographiques et centres d&#x27;intérêt.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Plusieurs modèles de facturation&lt;&#x2F;strong&gt; : CPM, CPC, CPA et oCPM dans le même moteur.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Prêt pour la prod&lt;&#x2F;strong&gt; : FastAPI (P99 &amp;lt; 10 ms), PostgreSQL, Redis, déploiement Docker Compose et observabilité Prometheus&#x2F;Grafana.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Monter un réseau publicitaire maison pour une PME ou un éditeur.&lt;&#x2F;li&gt;
&lt;li&gt;Monétiser le trafic in-app d&#x27;un jeu ou d&#x27;une application.&lt;&#x2F;li&gt;
&lt;li&gt;Gérer des house ads ou des deals directs sans régie externe.&lt;&#x2F;li&gt;
&lt;li&gt;Servir de base d&#x27;étude pour l&#x27;architecture d&#x27;un système d&#x27;ad-tech.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>pdfme</title>
        <published>2026-07-13T00:00:00+00:00</published>
        <updated>2026-07-13T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/pdfme/"/>
        <id>https://papyrus.z29k.com/gemshelf/pdfme/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/pdfme/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;pdfme est une bibliothèque TypeScript pour générer des PDF à partir de templates déclarés en JSON. Tu dessines une mise en page une fois (à la main ou dans le designer WYSIWYG fourni), tu injectes tes données, et la lib produit le PDF. Elle fonctionne aussi bien côté navigateur que dans Node.js, ce qui évite de sortir un service de rendu séparé ou de bricoler avec du HTML-to-PDF.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Template en JSON&lt;&#x2F;strong&gt; : la mise en page est une structure de données, donc versionnable dans Git, diffable et manipulable par programme.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Designer WYSIWYG&lt;&#x2F;strong&gt; : un composant React pour positionner les champs au drag-and-drop, sans coder la mise en page à la main.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Navigateur et Node.js&lt;&#x2F;strong&gt; : le même moteur tourne des deux côtés, pratique pour générer en front comme en back.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Packages découpés&lt;&#x2F;strong&gt; : &lt;code&gt;@pdfme&#x2F;generator&lt;&#x2F;code&gt;, &lt;code&gt;@pdfme&#x2F;ui&lt;&#x2F;code&gt;, &lt;code&gt;@pdfme&#x2F;common&lt;&#x2F;code&gt; et un CLI pour valider et diagnostiquer les templates.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Schémas extensibles&lt;&#x2F;strong&gt; : texte, images, tables, codes-barres, signatures, et la possibilité d&#x27;ajouter ses propres types de champs via des plugins.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Générer des factures, reçus ou attestations à partir de données structurées.&lt;&#x2F;li&gt;
&lt;li&gt;Produire des documents en masse depuis une base ou un tableur.&lt;&#x2F;li&gt;
&lt;li&gt;Laisser un utilisateur non-technique éditer un template via le designer.&lt;&#x2F;li&gt;
&lt;li&gt;Remplir des formulaires PDF dynamiques directement dans le navigateur.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Technitium DNS Server</title>
        <published>2026-07-13T00:00:00+00:00</published>
        <updated>2026-07-13T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/technitium-dns/"/>
        <id>https://papyrus.z29k.com/gemshelf/technitium-dns/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/technitium-dns/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Technitium DNS Server est un serveur DNS open source à auto-héberger, à la fois autoritatif et récursif. Tu le poses sur ton réseau à la place du DNS de ton FAI pour résoudre les requêtes localement, bloquer pub et malwares au niveau DNS, et chiffrer tes requêtes. Il se pilote entièrement depuis une console web, sans toucher à des fichiers de zone à la main.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Autoritatif et récursif&lt;&#x2F;strong&gt; : héberge tes propres zones et résout aussi tout le reste, dans le même serveur.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;DNS chiffré natif&lt;&#x2F;strong&gt; : DNS-over-TLS, DNS-over-HTTPS et DNS-over-QUIC, en client comme en serveur, pour couper la surveillance et l&#x27;injection de contenu.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Blocage pub&#x2F;malware&lt;&#x2F;strong&gt; : gestion de blocklists avec dé-cloaking des CNAME, façon Pi-hole mais intégré.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Cache avancé&lt;&#x2F;strong&gt; : cache persistant, prefetching et service de réponses périmées pour tenir la charge (100 000+ req&#x2F;s annoncées).&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;DNSSEC, DHCP et clustering&lt;&#x2F;strong&gt; : signature RSA&#x2F;ECDSA&#x2F;EdDSA, serveur DHCP intégré et gestion multi-instances depuis une seule console.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Bloquer pub et trackers pour tout le réseau de la maison.&lt;&#x2F;li&gt;
&lt;li&gt;Héberger le DNS autoritatif de ses propres domaines.&lt;&#x2F;li&gt;
&lt;li&gt;Chiffrer les requêtes DNS pour échapper au filtrage du FAI.&lt;&#x2F;li&gt;
&lt;li&gt;Faire du split-horizon ou des réponses géolocalisées sur un réseau d&#x27;entreprise.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Thoth Blueprint</title>
        <published>2026-07-13T00:00:00+00:00</published>
        <updated>2026-07-13T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/thoth-blueprint/"/>
        <id>https://papyrus.z29k.com/gemshelf/thoth-blueprint/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/thoth-blueprint/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Thoth Blueprint est un outil web gratuit pour concevoir des schémas de bases de données. Tu montes ton modèle en drag-and-drop, tu relies tes tables, puis tu exportes en SQL, DBML, JSON ou SVG. Il fonctionne en offline-first : tout est stocké localement, installable comme une PWA, sans compte ni limite d&#x27;usage.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Éditeur visuel offline-first&lt;&#x2F;strong&gt; : conception drag-and-drop dans le navigateur, données stockées en local, installable en PWA.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Export multi-formats&lt;&#x2F;strong&gt; : SQL, DBML, JSON et SVG, avec un workflow DBML complet (import, export et éditeur dédié).&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Génération de migrations&lt;&#x2F;strong&gt; : produit des fichiers de migration pour Laravel, TypeORM et Django directement depuis le schéma.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Organisation par zones&lt;&#x2F;strong&gt; : regroupement des tables en zones verrouillables, copier-coller d&#x27;éléments, raccourcis clavier.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Checkpoints&lt;&#x2F;strong&gt; : snapshots du modèle pour expérimenter sans rien casser.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Prototyper un schéma de base avant de l&#x27;implémenter.&lt;&#x2F;li&gt;
&lt;li&gt;Générer les migrations d&#x27;un projet Laravel, Django ou TypeORM à partir du visuel.&lt;&#x2F;li&gt;
&lt;li&gt;Documenter la structure d&#x27;une base existante en l&#x27;important via DBML.&lt;&#x2F;li&gt;
&lt;li&gt;Partager un design de base en l&#x27;exportant en SVG sans dépendre d&#x27;un service en ligne.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Tunarr</title>
        <published>2026-07-13T00:00:00+00:00</published>
        <updated>2026-07-13T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/tunarr/"/>
        <id>https://papyrus.z29k.com/gemshelf/tunarr/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/tunarr/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Tunarr crée des chaînes de TV en direct à partir de tes propres médias. Tu branches Plex, Jellyfin, Emby ou des fichiers locaux, tu montes une grille de programmes, et Tunarr diffuse le tout comme une vraie chaîne linéaire, avec un flux continu qui tourne 24&#x2F;7. Il se fait passer pour un tuner HDHomeRun, ce qui permet à Plex ou n&#x27;importe quel client IPTV de le consommer comme une source TV classique.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Multi-sources&lt;&#x2F;strong&gt; : agrège Plex, Jellyfin, Emby et fichiers locaux dans les mêmes chaînes, avec recherche et filtres pour construire les lineups.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Éditeur de grille visuel&lt;&#x2F;strong&gt; : montage des programmes en drag-and-drop, gestion du contenu de remplissage (filler), planification par créneaux fixes ou aléatoires.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Spoofing HDHomeRun + IPTV&lt;&#x2F;strong&gt; : vu comme un tuner matériel par Plex, ou exposé en M3U pour Tivimate, UHF et autres clients IPTV.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Transcodage accéléré matériel&lt;&#x2F;strong&gt; : NVENC, VAAPI, QuickSync et VideoToolbox, avec plusieurs profils de transcode configurables.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Réglages par chaîne&lt;&#x2F;strong&gt; : logos, préférences de langue audio et sous-titres, sauvegardes automatiques de la config.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Recréer une expérience de zapping en continu à partir de sa médiathèque perso.&lt;&#x2F;li&gt;
&lt;li&gt;Monter des chaînes thématiques mélangeant films, épisodes et clips musicaux.&lt;&#x2F;li&gt;
&lt;li&gt;Diffuser vers des clients IPTV comme Tivimate ou UHF depuis un serveur auto-hébergé.&lt;&#x2F;li&gt;
&lt;li&gt;Intégrer ses médias comme une source TV directement dans l&#x27;interface Plex.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Driver.js</title>
        <published>2026-07-03T00:00:00+00:00</published>
        <updated>2026-07-03T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/driver-js/"/>
        <id>https://papyrus.z29k.com/gemshelf/driver-js/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/driver-js/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Driver.js est une bibliothèque JavaScript pour créer des tours produit, de l&#x27;onboarding et des surbrillances d&#x27;éléments sur une page web. Elle assombrit la page, met en avant l&#x27;élément ciblé et affiche un popover contextuel, étape par étape. Écrite en TypeScript vanilla, elle pèse environ 5 kb gzippé et n&#x27;a aucune dépendance.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Zéro dépendance, ~5 kb&lt;&#x2F;strong&gt; : rien à traîner dans ton bundle, ça marche avec ou sans framework (React, Vue, Angular ou vanilla).&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;API simple mais complète&lt;&#x2F;strong&gt; : un tour multi-étapes se déclare en quelques lignes, avec des hooks (&lt;code&gt;onHighlight&lt;&#x2F;code&gt;, &lt;code&gt;onNext&lt;&#x2F;code&gt;...) pour brancher ta propre logique.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Highlight seul ou tour complet&lt;&#x2F;strong&gt; : tu peux juste mettre en avant un élément pour annoncer une nouveauté, ou enchaîner un walkthrough complet.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Pilotable au clavier&lt;&#x2F;strong&gt; : navigation entre étapes au clavier, accessible, gestion du focus automatique.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Personnalisable&lt;&#x2F;strong&gt; : CSS surchargeable, popovers positionnables, contenu HTML libre dans les bulles.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Onboarding d&#x27;un nouvel utilisateur au premier login&lt;&#x2F;li&gt;
&lt;li&gt;Annonce d&#x27;une nouvelle fonctionnalité via un highlight ciblé&lt;&#x2F;li&gt;
&lt;li&gt;Aide contextuelle sur une interface complexe (dashboard, éditeur)&lt;&#x2F;li&gt;
&lt;li&gt;Visite guidée d&#x27;un produit en démo ou en documentation interactive&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>FingerprintJS</title>
        <published>2026-07-03T00:00:00+00:00</published>
        <updated>2026-07-03T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/fingerprintjs/"/>
        <id>https://papyrus.z29k.com/gemshelf/fingerprintjs/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/fingerprintjs/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;FingerprintJS est une bibliothèque open source qui génère un identifiant de visiteur à partir des attributs du navigateur (canvas, polices, audio, résolution, plugins, etc.). Elle tourne entièrement côté client, sans cookie ni stockage local, et l&#x27;identifiant reste stable même en navigation privée ou après un nettoyage des données du navigateur. À noter : la version open source est volontairement moins précise que l&#x27;offre commerciale (Fingerprint Pro) et reste sensible au spoofing. C&#x27;est un signal de risque, pas une vérité absolue.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Pas de cookie ni de stockage&lt;&#x2F;strong&gt; : l&#x27;identité est recalculée à partir du navigateur lui-même, rien à persister côté client, rien à faire consentir au sens cookie.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Stable en navigation privée&lt;&#x2F;strong&gt; : le fingerprint survit à l&#x27;incognito et à l&#x27;effacement de l&#x27;historique, là où un cookie disparaît.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Intégration en quelques lignes&lt;&#x2F;strong&gt; : import ESM ou CDN, &lt;code&gt;await fp.get()&lt;&#x2F;code&gt; et tu récupères un &lt;code&gt;visitorId&lt;&#x2F;code&gt;. Écrit en TypeScript, typings inclus.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Cross-browser&lt;&#x2F;strong&gt; : fonctionne sur Chrome, Firefox, Safari, Edge et mobile sans aucune config serveur.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;MIT et sans backend&lt;&#x2F;strong&gt; : tout s&#x27;exécute dans le navigateur, tu n&#x27;envoies rien à un tiers si tu ne le veux pas.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Détection de fraude et de multi-comptes : inscriptions en série, abus de période d&#x27;essai&lt;&#x2F;li&gt;
&lt;li&gt;Rate limiting ou anti-abus sans obliger l&#x27;utilisateur à s&#x27;authentifier&lt;&#x2F;li&gt;
&lt;li&gt;Analytics de visiteurs uniques sans poser de cookie&lt;&#x2F;li&gt;
&lt;li&gt;Signal de risque complémentaire dans un flux de login ou de paiement&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Homebox</title>
        <published>2026-07-03T00:00:00+00:00</published>
        <updated>2026-07-03T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/homebox/"/>
        <id>https://papyrus.z29k.com/gemshelf/homebox/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/homebox/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Homebox est un système d&#x27;inventaire auto-hébergé pour tout ce que tu possèdes à la maison. Tu catalogues tes objets avec photos, emplacements, catégories et champs personnalisés, puis tu retrouves n&#x27;importe quoi via la recherche. Backend Go, frontend Vue, base SQLite embarquée : ça tourne dans un seul conteneur Docker et consomme environ 50 Mo de RAM au repos.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Léger et autonome&lt;&#x2F;strong&gt; : un seul binaire Go plus SQLite, pas de base externe à gérer, ~50 Mo de RAM. Parfait pour un Raspberry Pi ou un petit NAS.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Organisation flexible&lt;&#x2F;strong&gt; : emplacements imbriqués, catégories, tags et champs personnalisés pour coller à ta façon de ranger.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Suivi complet&lt;&#x2F;strong&gt; : garanties, documents (factures, manuels), historique d&#x27;achat et de maintenance rattachés à chaque objet.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Recherche et QR codes&lt;&#x2F;strong&gt; : retrouve un objet en quelques lettres, ou imprime des étiquettes QR pour scanner un carton et voir son contenu.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Self-hosted et privé&lt;&#x2F;strong&gt; : tes données restent chez toi, déploiement Docker en une commande, variantes rootless et hardened disponibles.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Inventaire maison pour l&#x27;assurance : photos, valeur et factures en cas de sinistre&lt;&#x2F;li&gt;
&lt;li&gt;Suivi du matériel d&#x27;un homelab ou d&#x27;un atelier (où est quoi, quelle garantie)&lt;&#x2F;li&gt;
&lt;li&gt;Gestion de stock d&#x27;une petite association ou d&#x27;un fablab&lt;&#x2F;li&gt;
&lt;li&gt;Savoir dans quel carton est rangé quoi après un déménagement&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>wg-easy</title>
        <published>2026-07-03T00:00:00+00:00</published>
        <updated>2026-07-03T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/wg-easy/"/>
        <id>https://papyrus.z29k.com/gemshelf/wg-easy/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/wg-easy/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;wg-easy est une interface web qui installe et gère un serveur WireGuard sur n&#x27;importe quel hôte Linux. Tu déploies un seul conteneur Docker, tu ouvres l&#x27;UI, et tu crées&#x2F;révoques tes clients VPN sans jamais éditer un fichier de conf à la main. C&#x27;est la couche d&#x27;administration qui manque à WireGuard quand tu ne veux pas jongler avec &lt;code&gt;wg&lt;&#x2F;code&gt; et des fichiers &lt;code&gt;.conf&lt;&#x2F;code&gt; en ligne de commande.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Onboarding client en QR code&lt;&#x2F;strong&gt; : chaque client a son QR code et son fichier de conf téléchargeable, donc brancher un téléphone prend dix secondes.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Gestion complète depuis l&#x27;UI&lt;&#x2F;strong&gt; : créer, éditer, désactiver ou supprimer un client, avec expiration et liens à usage unique pour partager une conf temporaire.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Stats en temps réel&lt;&#x2F;strong&gt; : graphes Tx&#x2F;Rx par client et état des connexions, sans sortir un outil de monitoring séparé.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;2FA et durcissement&lt;&#x2F;strong&gt; : authentification à deux facteurs sur l&#x27;UI, filtrage firewall par client, support IPv6 et CIDR.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Déploiement Docker&#x2F;Podman&lt;&#x2F;strong&gt; : un &lt;code&gt;docker compose up&lt;&#x2F;code&gt; et c&#x27;est en ligne. Métriques Prometheus exposées si tu veux le brancher à ta stack d&#x27;observabilité.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Accès distant à un homelab ou un réseau privé sans exposer les services directement&lt;&#x2F;li&gt;
&lt;li&gt;VPN d&#x27;équipe auto-hébergé pour une petite structure, sans passer par un service tiers&lt;&#x2F;li&gt;
&lt;li&gt;Tunnel sécurisé vers un serveur cloud pour l&#x27;administration&lt;&#x2F;li&gt;
&lt;li&gt;Fournir un accès temporaire à un prestataire via un lien à usage unique qui expire&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Fleetbase</title>
        <published>2026-06-30T00:00:00+00:00</published>
        <updated>2026-06-30T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/fleetbase/"/>
        <id>https://papyrus.z29k.com/gemshelf/fleetbase/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/fleetbase/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Fleetbase est un « operating system » open source pour la logistique et la supply chain, conçu pour être auto-hébergé. Il regroupe gestion de commandes, suivi de flotte, optimisation d&#x27;itinéraires et zones de service dans une plateforme modulaire pilotable par API. Pensé pour la livraison, le courier, le field service et tout métier qui déplace des choses d&#x27;un point A à un point B.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Architecture modulaire&lt;&#x2F;strong&gt; : un cœur PHP extensible + des add-ons pour adapter la plateforme à ton métier sans forker le projet.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Temps réel natif&lt;&#x2F;strong&gt; : carte de flotte live, suivi de commandes et serveur WebSocket intégré pour pousser les mises à jour à la volée.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;API-first&lt;&#x2F;strong&gt; : tout passe par une API REST documentée, avec webhooks et WebSocket - idéal pour brancher tes propres apps ou tes systèmes existants.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Apps mobiles incluses&lt;&#x2F;strong&gt; : Storefront (commande côté client) et Navigator (côté chauffeur) accompagnent la console web.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Self-hosted et open source&lt;&#x2F;strong&gt; : déploiement Docker Compose &#x2F; Kubernetes (Helm), licence AGPL-3.0, tes données restent chez toi.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Plateforme de livraison ou de courier avec dispatch et suivi en temps réel&lt;&#x2F;li&gt;
&lt;li&gt;Optimisation d&#x27;itinéraires via OSRM pour réduire les kilomètres à vide&lt;&#x2F;li&gt;
&lt;li&gt;Gestion de field service (techniciens, interventions sur le terrain)&lt;&#x2F;li&gt;
&lt;li&gt;Backend logistique pour e-commerce ou food delivery&lt;&#x2F;li&gt;
&lt;li&gt;Socle extensible pour construire son propre TMS sur mesure&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>ISMS Builder</title>
        <published>2026-06-22T00:00:00+00:00</published>
        <updated>2026-06-22T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/isms-builder/"/>
        <id>https://papyrus.z29k.com/gemshelf/isms-builder/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/isms-builder/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;ISMS Builder est une plateforme web self-hosted pour piloter un Système de Management de la Sécurité de l&#x27;Information (SMSI). Elle couvre tout le cycle de conformité, de la rédaction des politiques jusqu&#x27;aux preuves d&#x27;audit, sur plusieurs référentiels (ISO 27001:2022, NIS2, RGPD, BSI IT-Grundschutz, EUCS, ISO 9001). L&#x27;objectif : offrir aux PME une alternative aux logiciels de conformité hors de prix qui gardent vos données sur leurs serveurs.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Multi-référentiels&lt;&#x2F;strong&gt; : ISO 27001:2022, NIS2, RGPD, BSI IT-Grundschutz, EUCS et ISO 9001 dans un seul outil, avec applicabilité par entité.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Modules complets&lt;&#x2F;strong&gt; : politiques, déclaration d&#x27;applicabilité (313 contrôles), gestion des risques, des actifs, des fournisseurs, continuité d&#x27;activité, formation, inbox d&#x27;incidents et constats d&#x27;audit.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Self-hosted, vos données chez vous&lt;&#x2F;strong&gt; : déploiement Docker ou Node.js, stockage JSON, SQLite ou MariaDB&#x2F;MySQL, aucune dépendance au cloud.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Traçabilité native&lt;&#x2F;strong&gt; : piste d&#x27;audit sur chaque action, RBAC à six niveaux, authentification JWT et 2FA TOTP optionnelle.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Multilingue + IA optionnelle&lt;&#x2F;strong&gt; : interface en allemand, anglais, français et néerlandais, avec recherche sémantique locale via Ollama.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Bâtir un programme de conformité ISO 27001 dans une PME sans payer un SaaS coûteux.&lt;&#x2F;li&gt;
&lt;li&gt;Documenter sa conformité RGPD ou NIS2 avec une piste d&#x27;audit exploitable.&lt;&#x2F;li&gt;
&lt;li&gt;Permettre à un consultant de déployer un SMSI chez plusieurs clients.&lt;&#x2F;li&gt;
&lt;li&gt;Centraliser politiques, risques, actifs et preuves d&#x27;audit pour une équipe IT interne.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Open Kiosk</title>
        <published>2026-06-22T00:00:00+00:00</published>
        <updated>2026-06-22T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/open-kiosk/"/>
        <id>https://papyrus.z29k.com/gemshelf/open-kiosk/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/open-kiosk/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Open Kiosk est un système de point de vente (POS) à construire soi-même, certifié open source hardware par l&#x27;OSHWA. L&#x27;idée : remplacer les caisses commerciales bardées d&#x27;abonnements mensuels et de vendor lock-in par un kiosk tactile que vous assemblez avec des composants standards (LattePanda MU, ESP32, imprimante thermique, écran tactile) et un boîtier imprimé en 3D. Le tout pilote une app retail moderne en React, avec le firmware matériel en C++.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Zéro abonnement&lt;&#x2F;strong&gt; : un POS complet pour le prix du matériel, sans frais récurrents ni dépendance à un fournisseur.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Open source hardware&lt;&#x2F;strong&gt; : certifié OSHWA (IN000074), fichiers STL du boîtier inclus, schémas et code ouverts de bout en bout.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Stack POS complète&lt;&#x2F;strong&gt; : gestion de stock par catégories, impression de tickets thermiques personnalisables, et analytics de ventes (jour, semaine, mois).&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Pensé pour le retail&lt;&#x2F;strong&gt; : interface tactile optimisée, recherche produit vocale et synchronisation cloud via Firebase.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Reproductible&lt;&#x2F;strong&gt; : guide de montage pas-à-pas sur Hackster et démo vidéo, du soudage à l&#x27;installation logicielle.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Équiper une petite boutique (mode, cadeaux, épicerie spécialisée) sans payer un POS commercial.&lt;&#x2F;li&gt;
&lt;li&gt;Monter une caisse pour un pop-up store ou un stand de marché temporaire.&lt;&#x2F;li&gt;
&lt;li&gt;Doter un commerce de service (salon, atelier de réparation) d&#x27;un encaissement simple.&lt;&#x2F;li&gt;
&lt;li&gt;Servir de base pédagogique pour apprendre l&#x27;intégration hardware&#x2F;logiciel sur un projet concret.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Shotcut</title>
        <published>2026-06-22T00:00:00+00:00</published>
        <updated>2026-06-22T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/shotcut/"/>
        <id>https://papyrus.z29k.com/gemshelf/shotcut/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/shotcut/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Shotcut est un éditeur vidéo de bureau, open source et multiplateforme (Windows, macOS, Linux). Construit sur le framework multimédia MLT et FFmpeg, il offre un montage multipiste complet sans licence propriétaire ni abonnement. C&#x27;est une alternative crédible et gratuite aux éditeurs commerciaux, du montage amateur à des workflows plus sérieux.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Vraiment multiplateforme&lt;&#x2F;strong&gt; : mêmes fonctionnalités sur Windows, macOS et Linux grâce à Qt, avec des binaires publiés régulièrement.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Support de formats massif&lt;&#x2F;strong&gt; : codecs et conteneurs gérés via FFmpeg, donc à peu près tout ce qui existe en vidéo, audio et image.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Montage multipiste complet&lt;&#x2F;strong&gt; : timeline avec pistes vidéo&#x2F;audio, transitions, keyframes, et des résolutions jusqu&#x27;à la 4K.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Effets extensibles&lt;&#x2F;strong&gt; : filtres vidéo et audio intégrés, plus les plugins frei0r pour étendre la palette d&#x27;effets.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Libre et sans contrepartie&lt;&#x2F;strong&gt; : GPL-3.0, aucun watermark, aucune fonctionnalité bridée derrière un paywall.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Monter des vidéos YouTube ou des contenus pour les réseaux sans payer d&#x27;abonnement.&lt;&#x2F;li&gt;
&lt;li&gt;Réaliser des projets vidéo pédagogiques ou associatifs sur du matériel modeste.&lt;&#x2F;li&gt;
&lt;li&gt;Assembler et exporter des rushes dans des dizaines de formats sans souci de codec.&lt;&#x2F;li&gt;
&lt;li&gt;Disposer d&#x27;un éditeur identique sur Linux comme sur Windows&#x2F;macOS dans une équipe hétérogène.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Superlog</title>
        <published>2026-06-22T00:00:00+00:00</published>
        <updated>2026-06-22T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/superlog/"/>
        <id>https://papyrus.z29k.com/gemshelf/superlog/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/superlog/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Superlog est une plateforme d&#x27;observabilité open source qui ingère vos traces, logs et métriques via OpenTelemetry et regroupe les signaux bruyants en incidents exploitables. Sa particularité : elle est agentique. Des agents IA surveillent votre infra, enquêtent automatiquement sur les anomalies et produisent des résumés d&#x27;incidents pendant que vous dormez, au lieu de vous laisser corréler des dashboards à la main à 3h du matin.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Observabilité agentique&lt;&#x2F;strong&gt; : des agents IA enquêtent sur les incidents et en font la synthèse au lieu de se contenter d&#x27;afficher des graphes.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;OpenTelemetry natif&lt;&#x2F;strong&gt; : intake OTLP standard pour traces, logs et métriques, sans vendor lock-in sur l&#x27;instrumentation.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Regroupement automatique&lt;&#x2F;strong&gt; : les signaux bruyants sont corrélés et agrégés en incidents, fini le mur d&#x27;alertes ingérable.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Architecture d&#x27;agents pluggable&lt;&#x2F;strong&gt; : un agent communautaire pour les résumés d&#x27;incidents est fourni, et le runner permet de brancher vos propres agents.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Stack solide&lt;&#x2F;strong&gt; : requêtes télémétrie adossées à Postgres et ClickHouse, avec des workers en arrière-plan pour l&#x27;automatisation.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Détecter et investiguer des incidents en production sans veille humaine permanente.&lt;&#x2F;li&gt;
&lt;li&gt;Centraliser traces, logs et métriques d&#x27;un système distribué dans une seule plateforme.&lt;&#x2F;li&gt;
&lt;li&gt;Réduire le bruit d&#x27;alertes en agrégeant les signaux corrélés en incidents.&lt;&#x2F;li&gt;
&lt;li&gt;Auto-héberger sa stack d&#x27;observabilité pour garder le contrôle sur ses données télémétriques.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Yopass</title>
        <published>2026-06-22T00:00:00+00:00</published>
        <updated>2026-06-22T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/yopass/"/>
        <id>https://papyrus.z29k.com/gemshelf/yopass/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/yopass/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Yopass est un service self-hosted pour partager des secrets (mots de passe, clés d&#x27;API, tokens) sans les balancer en clair dans un Slack, un mail ou un ticket. Le secret est chiffré directement dans le navigateur via OpenPGP avant d&#x27;être envoyé : le serveur ne voit jamais la clé de déchiffrement et ne stocke que du contenu chiffré. Le destinataire reçoit un lien à usage unique qui expire automatiquement.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Chiffrement côté client&lt;&#x2F;strong&gt; : tout se passe dans le navigateur via OpenPGP, la clé de déchiffrement ne transite jamais par le serveur.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Usage unique + expiration&lt;&#x2F;strong&gt; : un secret est détruit après lecture ou à l&#x27;échéance configurée, fini les credentials qui traînent dans un historique de chat.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Zéro compte, zéro tracking&lt;&#x2F;strong&gt; : pas d&#x27;inscription, pas de comptes utilisateurs, pas de suivi. On partage un lien, point.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Self-hosted simple&lt;&#x2F;strong&gt; : déploiement en quelques minutes via Docker Compose ou Kubernetes, backend Memcached (par défaut) ou Redis.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Fichiers et mots de passe&lt;&#x2F;strong&gt; : support du chiffrement en streaming pour les uploads de fichiers et protection optionnelle par mot de passe supplémentaire.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Transmettre un mot de passe ou une clé d&#x27;API à un collègue sans laisser de trace dans un canal de chat.&lt;&#x2F;li&gt;
&lt;li&gt;Partager des credentials temporaires sans créer de compte ni d&#x27;accès permanent.&lt;&#x2F;li&gt;
&lt;li&gt;Distribuer des données sensibles dans un environnement soumis à des contraintes de conformité.&lt;&#x2F;li&gt;
&lt;li&gt;Déployer une instance interne pour garder le contrôle total sur le stockage des secrets.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>PaddleOCR</title>
        <published>2026-06-14T00:00:00+00:00</published>
        <updated>2026-06-14T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/paddleocr/"/>
        <id>https://papyrus.z29k.com/gemshelf/paddleocr/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/paddleocr/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;PaddleOCR est une boîte à outils OCR open source qui transforme images et PDF en données structurées (Markdown, JSON) directement exploitables par un LLM. Au-delà de la simple reconnaissance de texte, elle parse des documents complets : disposition de page, tableaux, formules, graphiques et même documents anciens. C&#x27;est le pont entre vos scans et vos pipelines IA.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Multilingue costaud&lt;&#x2F;strong&gt; : plus de 100 langues prises en charge, et le modèle unifié PP-OCRv6 en couvre 50 d&#x27;un coup.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Parsing de documents complets&lt;&#x2F;strong&gt; : ne se contente pas du texte, il reconnaît tableaux, formules mathématiques, graphiques et structure de page.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;LLM-ready&lt;&#x2F;strong&gt; : sortie directe en Markdown ou JSON, prête à être ingérée dans un pipeline RAG sans retraitement.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Léger et rapide&lt;&#x2F;strong&gt; : modèles compacts (1,5 à 34,5 M de paramètres) et jusqu&#x27;à 5,2× d&#x27;accélération sur l&#x27;inférence CPU.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Écosystème intégré&lt;&#x2F;strong&gt; : connexions natives avec Dify, RAGFlow et d&#x27;autres plateformes IA.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Conversion massive de PDF et de scans en Markdown propre.&lt;&#x2F;li&gt;
&lt;li&gt;Préparation de données pour des pipelines RAG et des bases de connaissances.&lt;&#x2F;li&gt;
&lt;li&gt;Extraction d&#x27;informations depuis des factures, formulaires et documents administratifs.&lt;&#x2F;li&gt;
&lt;li&gt;Reconnaissance de texte dans des scènes naturelles (photos, panneaux, captures).&lt;&#x2F;li&gt;
&lt;li&gt;Numérisation de documents anciens ou manuscrits complexes.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>BrightBean Studio</title>
        <published>2026-06-12T00:00:00+00:00</published>
        <updated>2026-06-12T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/brightbean-studio/"/>
        <id>https://papyrus.z29k.com/gemshelf/brightbean-studio/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/brightbean-studio/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;BrightBean Studio est une plateforme open-source et auto-hébergeable pour gérer ton contenu social sur plusieurs réseaux depuis un seul tableau de bord. Tu planifies, composes, programmes, valides, publies et surveilles tes posts au même endroit. C&#x27;est l&#x27;alternative libre à Buffer, Sendible ou SocialPilot, sans limite de sièges, de canaux ni de workspaces.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Intégrations API natives&lt;&#x2F;strong&gt; : connexion directe aux 10+ plateformes (Facebook, Instagram, LinkedIn, TikTok, YouTube, Pinterest, Threads, Bluesky, Mastodon, Google Business), sans agrégateur intermédiaire.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Workflows de validation&lt;&#x2F;strong&gt; : étapes configurables, historique d&#x27;audit et portail client avec liens magiques pour les approbations externes.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Composer multi-plateforme&lt;&#x2F;strong&gt; : personnalisation par réseau et historique de versions, avec calendrier visuel et créneaux récurrents.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Inbox sociale unifiée&lt;&#x2F;strong&gt; : commentaires, mentions et messages directs centralisés, plus un dashboard analytics par post et par canal.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Conçu pour l&#x27;automatisation&lt;&#x2F;strong&gt; : API REST et serveur MCP intégré pour piloter le tout depuis des scripts ou des agents.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Gérer les réseaux de plusieurs clients depuis des workspaces séparés avec rôles granulaires.&lt;&#x2F;li&gt;
&lt;li&gt;Faire valider des posts par un client externe via un portail dédié avant publication.&lt;&#x2F;li&gt;
&lt;li&gt;Centraliser la publication multi-réseaux sans payer un abonnement par siège.&lt;&#x2F;li&gt;
&lt;li&gt;Automatiser la programmation de contenu via l&#x27;API ou un agent connecté au serveur MCP.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>DocuSeal</title>
        <published>2026-06-12T00:00:00+00:00</published>
        <updated>2026-06-12T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/docuseal/"/>
        <id>https://papyrus.z29k.com/gemshelf/docuseal/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/docuseal/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;DocuSeal est une plateforme open-source de signature électronique et de remplissage de formulaires PDF. Tu crées des formulaires PDF via une interface WYSIWYG, tu les envoies pour signature, et tes signataires les complètent en ligne depuis n&#x27;importe quel appareil. C&#x27;est l&#x27;alternative auto-hébergeable à DocuSign, à déployer en quelques minutes.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Builder de formulaires WYSIWYG&lt;&#x2F;strong&gt; : 12 types de champs (signature, date, cases à cocher, upload de fichier, etc.) à placer directement sur le PDF.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Signataires multiples&lt;&#x2F;strong&gt; : plusieurs personnes peuvent compléter et signer un même document, avec notifications SMTP automatiques.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;eSignature vérifiable&lt;&#x2F;strong&gt; : signature électronique automatique des PDF avec capacités de vérification.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Multilingue&lt;&#x2F;strong&gt; : interface en 7 langues, signature dans 14 langues, optimisé mobile.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Intégrable&lt;&#x2F;strong&gt; : API REST et webhooks, stockage cloud au choix (AWS S3, Google Storage, Azure), déploiement Docker en un clic.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Faire signer des contrats ou des devis en ligne sans dépendre d&#x27;un service propriétaire.&lt;&#x2F;li&gt;
&lt;li&gt;Collecter des formulaires complétés (onboarding RH, baux, consentements) avec champs structurés.&lt;&#x2F;li&gt;
&lt;li&gt;Intégrer la signature de documents dans une app via l&#x27;API et les webhooks.&lt;&#x2F;li&gt;
&lt;li&gt;Héberger en interne un service de signature pour des données sensibles ou réglementées.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Hoodik</title>
        <published>2026-06-12T00:00:00+00:00</published>
        <updated>2026-06-12T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/hoodik/"/>
        <id>https://papyrus.z29k.com/gemshelf/hoodik/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/hoodik/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Hoodik est un serveur de stockage cloud auto-hébergé, léger, avec chiffrement de bout en bout. Tout le chiffrement et le déchiffrement se font dans ton navigateur : le serveur ne voit jamais tes données en clair. Côté technique, c&#x27;est un backend Rust (Actix-web) avec un front Vue 3.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Chiffrement de bout en bout&lt;&#x2F;strong&gt; : schéma hybride RSA-2048 + AEGIS-128L, dérivation de clés via SHA-2&#x2F;Blake2b. Le serveur ne stocke que du chiffré.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Recherche sécurisée&lt;&#x2F;strong&gt; : la recherche opère sur des métadonnées tokenisées et hashées, jamais sur du texte en clair.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Partage sans fuite&lt;&#x2F;strong&gt; : les liens publics gardent la clé du fichier cachée du serveur, encodée dans le fragment de l&#x27;URL.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Flexible côté infra&lt;&#x2F;strong&gt; : SQLite par défaut ou PostgreSQL, stockage local ou compatible S3 (AWS, MinIO, Backblaze B2, Wasabi).&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Complet&lt;&#x2F;strong&gt; : notes chiffrées avec éditeur markdown WYSIWYG, 2FA TOTP, dashboard admin, transferts en chunks pour les uploads&#x2F;downloads concurrents.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Remplacer un Dropbox&#x2F;Google Drive par une instance privée où le serveur n&#x27;a aucun accès au contenu.&lt;&#x2F;li&gt;
&lt;li&gt;Héberger ses fichiers sensibles sur un VPS sans faire confiance à l&#x27;hébergeur.&lt;&#x2F;li&gt;
&lt;li&gt;Partager des documents via des liens publics chiffrés, sans exposer les clés.&lt;&#x2F;li&gt;
&lt;li&gt;Centraliser notes et fichiers chiffrés sur un backend S3 (MinIO) auto-hébergé.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Murmure</title>
        <published>2026-06-12T00:00:00+00:00</published>
        <updated>2026-06-12T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/murmure/"/>
        <id>https://papyrus.z29k.com/gemshelf/murmure/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/murmure/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Murmure est une application de dictée vocale (speech-to-text) axée sur la vie privée, qui transcrit ta voix en texte entièrement sur ta machine. Aucune connexion réseau, aucune collecte de données : tout le traitement se fait en local. C&#x27;est l&#x27;outil idéal pour dicter dans tes applis IA, prendre des notes ou capturer une idée à la volée, sans dépendre du cloud.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;100% local&lt;&#x2F;strong&gt; : tout le traitement se fait sur ton appareil, aucune donnée ne quitte la machine. Zéro télémétrie, zéro tracking.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Modèle moderne&lt;&#x2F;strong&gt; : s&#x27;appuie sur le réseau de neurones Parakeet TDT 0.6B v3 de NVIDIA pour une transcription rapide et précise.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Multilingue&lt;&#x2F;strong&gt; : prise en charge de 25 langues européennes (anglais, français, allemand, espagnol, etc.).&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Faible latence&lt;&#x2F;strong&gt; : transcription quasi instantanée directement sur l&#x27;appareil, sans aller-retour serveur.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Multiplateforme&lt;&#x2F;strong&gt; : disponible sur Windows (MSI&#x2F;WinGet), Linux (Debian&#x2F;AppImage) et macOS (Intel&#x2F;ARM), code open-source inspectable.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Dicter des prompts dans un outil IA sans passer par un service de transcription cloud.&lt;&#x2F;li&gt;
&lt;li&gt;Prendre des notes vocales rapides converties en texte exploitable.&lt;&#x2F;li&gt;
&lt;li&gt;Capturer une idée à la volée sans connexion internet.&lt;&#x2F;li&gt;
&lt;li&gt;Rédiger en plusieurs langues européennes via la dictée, sans exposer le contenu.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Scriberr</title>
        <published>2026-06-12T00:00:00+00:00</published>
        <updated>2026-06-12T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/scriberr/"/>
        <id>https://papyrus.z29k.com/gemshelf/scriberr/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/scriberr/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Scriberr est une application de transcription audio auto-hébergée qui tourne entièrement en local, sans jamais envoyer tes enregistrements dans le cloud. Elle transforme la voix en texte avec un timing au mot près, en s&#x27;appuyant sur des modèles ML modernes (NVIDIA Parakeet, Canary ou Whisper). C&#x27;est l&#x27;alternative privée et gratuite aux services de transcription par abonnement à 100-240 €&#x2F;an.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;100% hors-ligne&lt;&#x2F;strong&gt; : tout le traitement se fait sur ta machine, aucune donnée ne quitte ton serveur. Idéal pour les contenus sensibles ou confidentiels.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Choix des modèles&lt;&#x2F;strong&gt; : Whisper pour la polyvalence, Parakeet et Canary de NVIDIA pour la vitesse et la précision, avec un timing au niveau du mot.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Diarisation des locuteurs&lt;&#x2F;strong&gt; : détection et étiquetage automatique des différentes voix dans une conversation.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Chat IA intégré&lt;&#x2F;strong&gt; : branche Ollama ou un fournisseur compatible OpenAI pour générer des résumés et poser des questions sur tes transcriptions.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Tout-en-un&lt;&#x2F;strong&gt; : enregistreur audio intégré avec prise de notes, surveillance de dossier pour le traitement par lots, et PWA pour une expérience native sur desktop et mobile.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Transcrire des réunions ou des interviews sans exposer leur contenu à un service tiers.&lt;&#x2F;li&gt;
&lt;li&gt;Générer des comptes rendus et des résumés de podcasts ou de webinaires en local.&lt;&#x2F;li&gt;
&lt;li&gt;Automatiser le traitement d&#x27;un dossier d&#x27;enregistrements via le folder watcher.&lt;&#x2F;li&gt;
&lt;li&gt;Prendre des notes vocales et les convertir en texte exploitable directement depuis le navigateur.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Checkmate</title>
        <published>2026-06-09T00:00:00+00:00</published>
        <updated>2026-06-09T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/checkmate/"/>
        <id>https://papyrus.z29k.com/gemshelf/checkmate/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/checkmate/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Checkmate est une application de monitoring auto-hébergée qui surveille la disponibilité et la santé de ton infra en temps réel. Elle couvre l&#x27;uptime des sites, les conteneurs Docker, les certificats SSL, les ports et les serveurs, avec des dashboards visuels et des alertes. C&#x27;est une alternative open source aux services comme Uptime Robot ou Pingdom, sans dépendance à un tiers et sans facturation à la sonde.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Types de monitoring variés&lt;&#x2F;strong&gt; : Uptime HTTP, ping, ports, certificats SSL, conteneurs Docker, serveurs de jeu et requêtes JSON, le tout depuis une seule interface.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Monitoring matériel&lt;&#x2F;strong&gt; : Un agent dédié (Capture) remonte CPU, mémoire, disque et réseau des machines surveillées, au-delà du simple ping.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Alertes multi-canaux&lt;&#x2F;strong&gt; : Email, Discord, Slack, Telegram, PagerDuty, Teams, Matrix, Twilio, Pushover. Tu branches le canal que ton équipe utilise déjà.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Status pages personnalisables&lt;&#x2F;strong&gt; : Pages publiques avec plusieurs thèmes pour communiquer l&#x27;état de tes services aux utilisateurs.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Léger&lt;&#x2F;strong&gt; : Conçu pour tourner sur une petite VM ou même un Raspberry Pi, avec une consommation de ressources minimale.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Surveiller l&#x27;uptime et le temps de réponse d&#x27;un parc de sites et d&#x27;APIs en self-hosted&lt;&#x2F;li&gt;
&lt;li&gt;Recevoir une alerte avant qu&#x27;un certificat SSL n&#x27;expire&lt;&#x2F;li&gt;
&lt;li&gt;Suivre la santé matérielle de serveurs ou de conteneurs Docker en prod&lt;&#x2F;li&gt;
&lt;li&gt;Publier une status page pour informer les utilisateurs lors d&#x27;incidents ou de maintenances planifiées&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Flowsint</title>
        <published>2026-06-05T00:00:00+00:00</published>
        <updated>2026-06-05T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/flowsint/"/>
        <id>https://papyrus.z29k.com/gemshelf/flowsint/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/flowsint/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Flowsint est un outil OSINT open source d&#x27;investigation par graphe. Il permet d&#x27;explorer visuellement les relations entre entités (domaines, IP, emails, comptes sociaux, organisations…) et d&#x27;enrichir automatiquement les données via une cinquantaine d&#x27;enrichers spécialisés. Pensé pour le travail d&#x27;analyste cyber, de chercheur ou d&#x27;enquêteur, il met l&#x27;accent sur un usage éthique et le respect de la vie privée.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Investigation par graphe&lt;&#x2F;strong&gt; : Interface visuelle où chaque entité devient un nœud relié aux autres. On suit les liens à la souris plutôt que de croiser des tableaux à la main.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;40+ enrichers automatisés&lt;&#x2F;strong&gt; : Domaines, IP, ASN, réseaux sociaux, organisations, cryptomonnaies, sites web, emails… l&#x27;écosystème couvre l&#x27;essentiel de la reco.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Privacy by design&lt;&#x2F;strong&gt; : Les données sont stockées localement sur la machine de l&#x27;utilisateur, pas dans un cloud tiers.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Performant à l&#x27;échelle&lt;&#x2F;strong&gt; : Optimisé pour afficher des milliers de nœuds sans lag, ce qui rend les grosses enquêtes exploitables.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Modulaire et extensible&lt;&#x2F;strong&gt; : Architecture découpée (core, types, enrichers, API, frontend) qui facilite l&#x27;ajout de ses propres sources et workflows.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Cartographier l&#x27;infrastructure d&#x27;une cible (domaines, IP, ASN) lors d&#x27;un audit de surface d&#x27;attaque&lt;&#x2F;li&gt;
&lt;li&gt;Relier des comptes, emails et organisations dans une enquête OSINT&lt;&#x2F;li&gt;
&lt;li&gt;Enrichir automatiquement des indicateurs lors d&#x27;une investigation threat intel&lt;&#x2F;li&gt;
&lt;li&gt;Visualiser des chaînes de transactions ou d&#x27;entités liées à des cryptomonnaies&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Open WES</title>
        <published>2026-06-05T00:00:00+00:00</published>
        <updated>2026-06-05T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/open-wes/"/>
        <id>https://papyrus.z29k.com/gemshelf/open-wes/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/open-wes/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Open WES est un Warehouse Execution System (WES) open source qui orchestre les opérations d&#x27;entrepôt en temps réel. Là où un WMS classique se contente de suivre les stocks, Open WES pilote l&#x27;exécution : tâches, flux, automatisation et coordination des machines. Conçu en microservices, il vise les entrepôts fortement automatisés (Industry 4.0) qui doivent synchroniser robots, AGV et capteurs IoT au plus près du terrain.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Orchestration temps réel&lt;&#x2F;strong&gt; : Gestion et priorisation des tâches, monitoring live des stocks et des workflows. L&#x27;accent est mis sur l&#x27;exécution, pas seulement l&#x27;inventaire.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Architecture microservices&lt;&#x2F;strong&gt; : Modulaire et personnalisable, chaque brique peut être adaptée ou remplacée selon les besoins de l&#x27;entrepôt.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Intégration robots &amp;amp; IoT&lt;&#x2F;strong&gt; : Conçu pour piloter des robots, AGV et dispositifs IoT, avec des APIs REST et WebSocket pour les échanges temps réel.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Optimisation par IA&lt;&#x2F;strong&gt; : Prédiction de la demande et automatisation des décisions pour fluidifier les opérations.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Zéro vendor lock-in&lt;&#x2F;strong&gt; : Code ouvert sous licence MIT, transparence totale et développement piloté par la communauté, sans dépendance à un éditeur propriétaire.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Piloter un entrepôt automatisé avec flottes de robots et AGV synchronisés en temps réel&lt;&#x2F;li&gt;
&lt;li&gt;Remplacer ou compléter un WMS propriétaire par une solution ouverte et personnalisable&lt;&#x2F;li&gt;
&lt;li&gt;Construire des workflows d&#x27;exécution sur mesure pour des sites logistiques spécifiques&lt;&#x2F;li&gt;
&lt;li&gt;Centraliser le monitoring des stocks et des tâches dans une plateforme unique&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Receipt OCR</title>
        <published>2026-06-05T00:00:00+00:00</published>
        <updated>2026-06-05T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/receipt-ocr/"/>
        <id>https://papyrus.z29k.com/gemshelf/receipt-ocr/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/receipt-ocr/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Receipt OCR est un moteur OCR Python spécialisé dans le traitement des reçus. Il combine deux approches : Tesseract pour l&#x27;extraction de texte brut, et des LLM (OpenAI, Google Gemini, Groq) pour transformer une image de reçu en données structurées exploitables. L&#x27;objectif : passer d&#x27;une photo de ticket à un JSON propre, prêt à être ingéré.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Double moteur&lt;&#x2F;strong&gt; : Tesseract pour le texte brut, module LLM pour l&#x27;extraction structurée. On choisit selon le besoin et le budget.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Multi-providers LLM&lt;&#x2F;strong&gt; : Support d&#x27;OpenAI, Google Gemini et Groq. Pas de lock-in sur un seul fournisseur d&#x27;IA.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Schéma JSON personnalisable&lt;&#x2F;strong&gt; : On définit le schéma d&#x27;extraction qu&#x27;on veut (marchand, date, lignes, total…) et le LLM remplit la structure.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;CLI + API FastAPI&lt;&#x2F;strong&gt; : Utilisable en ligne de commande pour du one-shot, ou via des REST APIs prêtes pour la prod pour les deux modules.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Dockerisé&lt;&#x2F;strong&gt; : Déploiement conteneurisé fourni, ce qui simplifie la mise en service côté backend.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Automatiser la saisie de notes de frais à partir de photos de tickets&lt;&#x2F;li&gt;
&lt;li&gt;Extraire les lignes d&#x27;achat de reçus pour les pousser dans un outil de compta&lt;&#x2F;li&gt;
&lt;li&gt;Construire un microservice d&#x27;extraction de reçus derrière une API REST&lt;&#x2F;li&gt;
&lt;li&gt;Numériser en masse un historique de tickets papier en données structurées&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>snapDOM</title>
        <published>2026-06-05T00:00:00+00:00</published>
        <updated>2026-06-05T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/snapdom/"/>
        <id>https://papyrus.z29k.com/gemshelf/snapdom/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/snapdom/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;snapDOM est un moteur de capture du DOM en JavaScript qui transforme n&#x27;importe quel élément de page en image. Il se positionne comme une alternative moderne, rapide et sans dépendance à html2canvas et dom-to-image. Tout repose sur des APIs web standard : pas de runtime tiers, pas de dépendances à installer.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Capture fidèle&lt;&#x2F;strong&gt; : Récupère l&#x27;élément avec ses styles embarqués, pseudo-éléments et polices. Le rendu colle à ce que l&#x27;utilisateur voit réellement.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Multi-formats&lt;&#x2F;strong&gt; : Export en SVG, PNG, JPG, WebP, Canvas ou Blob depuis une seule capture. Un clone, plusieurs sorties réutilisables.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Zéro dépendance, ultra-rapide&lt;&#x2F;strong&gt; : Construit uniquement sur les Web APIs, il vise des captures en moins d&#x27;une seconde et surpasse les libs concurrentes sur les benchmarks.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Cas limites gérés&lt;&#x2F;strong&gt; : Iframes same-origin, compteurs CSS, line-clamp… les détails qui font planter les autres outils sont pris en charge.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Système de plugins&lt;&#x2F;strong&gt; : Architecture extensible (en bêta) pour ajouter ses propres exporters et transformations sans toucher au cœur.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Générer une image de partage (Open Graph, réseaux sociaux) à partir d&#x27;un composant rendu côté client&lt;&#x2F;li&gt;
&lt;li&gt;Exporter un graphique, un tableau ou un reçu en PNG&#x2F;PDF directement depuis le navigateur&lt;&#x2F;li&gt;
&lt;li&gt;Créer des aperçus ou vignettes de pages sans serveur de rendu headless&lt;&#x2F;li&gt;
&lt;li&gt;Capturer l&#x27;état d&#x27;une UI pour des rapports de bug ou de la documentation visuelle&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>System Design 101</title>
        <published>2026-06-05T00:00:00+00:00</published>
        <updated>2026-06-05T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/system-design-101/"/>
        <id>https://papyrus.z29k.com/gemshelf/system-design-101/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/system-design-101/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;System Design 101 est un dépôt open source qui explique les concepts de conception de systèmes à travers des diagrammes visuels et des explications courtes. Plutôt que de noyer le lecteur sous des pavés de texte, le projet décompose des sujets complexes (API, bases de données, scalabilité, cloud) en schémas digestes. C&#x27;est devenu une référence pour réviser avant un entretien de system design ou simplement remettre les idées au clair.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;100 % visuel&lt;&#x2F;strong&gt; : Chaque concept est illustré par un diagramme clair. On comprend un load balancer, un message queue ou un pattern de cache en quelques secondes au lieu de lire trois articles.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Couverture énorme&lt;&#x2F;strong&gt; : API (REST, GraphQL, gRPC), protocoles HTTP, bases de données, cache, cloud, DevOps&#x2F;CI-CD, sécurité, patterns d&#x27;architecture, ML… le spectre est large.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Études de cas réelles&lt;&#x2F;strong&gt; : Architectures de Netflix, Twitter, Uber, Discord et autres géants, décortiquées pour montrer comment la théorie s&#x27;applique en production.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Format markdown, lisible partout&lt;&#x2F;strong&gt; : Tout le contenu vit dans un README versionné. Pas de paywall pour l&#x27;essentiel, accessible directement sur GitHub.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Prep entretien efficace&lt;&#x2F;strong&gt; : Le découpage par thème en fait un outil de révision rapide, idéal pour rafraîchir un sujet précis la veille d&#x27;un entretien.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Réviser les fondamentaux de system design avant un entretien technique&lt;&#x2F;li&gt;
&lt;li&gt;Comprendre rapidement un concept précis (CDN, sharding, consistent hashing…) avec un schéma&lt;&#x2F;li&gt;
&lt;li&gt;Servir de support pédagogique pour onboarder une équipe sur des notions d&#x27;archi distribuée&lt;&#x2F;li&gt;
&lt;li&gt;S&#x27;inspirer d&#x27;architectures réelles de grandes plateformes pour ses propres choix de design&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>UnInbox</title>
        <published>2026-06-05T00:00:00+00:00</published>
        <updated>2026-06-05T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/uninbox/"/>
        <id>https://papyrus.z29k.com/gemshelf/uninbox/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/uninbox/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;UnInbox est une plateforme email open source qui repense la boîte de réception pour le travail moderne, distribué et collaboratif. Le constat de départ : l&#x27;email n&#x27;a pas été conçu pour le monde bruyant et asynchrone d&#x27;aujourd&#x27;hui. UnInbox se branche sur ton infrastructure email existante ou la remplace, en se positionnant comme alternative à Hey, Front ou Missive.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Email pensé pour les équipes&lt;&#x2F;strong&gt; : Gestion collaborative des conversations, avec des notes internes attachées aux échanges pour aligner l&#x27;équipe sans polluer le fil.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Filtrage des expéditeurs&lt;&#x2F;strong&gt; : Un screener pour les nouveaux contacts qui décide ce qui entre dans la boîte, façon Hey, pour réduire le bruit.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Compatible ou autonome&lt;&#x2F;strong&gt; : S&#x27;intègre à ton infrastructure email actuelle ou fonctionne en remplacement complet, selon le besoin.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Stack moderne&lt;&#x2F;strong&gt; : Construit sur Next.js, Hono, tRPC, DrizzleORM et Tailwind. Du TypeScript de bout en bout, lisible et contribuable.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Open source et auto-hébergeable&lt;&#x2F;strong&gt; : Sous licence AGPLv3 (option commerciale disponible), avec un mode self-hosting en cours de développement.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Gérer une boîte de support ou de contact partagée en équipe sans outil propriétaire&lt;&#x2F;li&gt;
&lt;li&gt;Réduire le bruit entrant grâce au filtrage des nouveaux expéditeurs&lt;&#x2F;li&gt;
&lt;li&gt;Centraliser les échanges clients avec des notes internes contextuelles&lt;&#x2F;li&gt;
&lt;li&gt;Auto-héberger sa propre infrastructure de communication plutôt que dépendre d&#x27;un SaaS&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Falcon-Perception</title>
        <published>2026-06-01T00:00:00+00:00</published>
        <updated>2026-06-01T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/falcon-perception/"/>
        <id>https://papyrus.z29k.com/gemshelf/falcon-perception/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/falcon-perception/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Falcon-Perception est un moteur d&#x27;inférence PyTorch pour modèles multimodaux vision-langage. Il exécute des tâches de vision par ordinateur - détection d&#x27;objets, segmentation d&#x27;instances, OCR - pilotées par des requêtes en langage naturel. L&#x27;idée : une implémentation minimale et lisible, mais réellement performante, d&#x27;un Transformer autorégressif qui comprend images et texte ensemble.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;KV cache paginé&lt;&#x2F;strong&gt; : gestion mémoire GPU efficace avec batching continu, sans implémentation d&#x27;attention maison.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;CUDA graph capture&lt;&#x2F;strong&gt; : élimine l&#x27;overhead de lancement des kernels pour des inférences plus rapides.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Vision pilotée par le texte&lt;&#x2F;strong&gt; : détection et segmentation à partir d&#x27;une simple requête en langage naturel, plus OCR en mode brut ou conscient de la mise en page.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Backend MLX&lt;&#x2F;strong&gt; : support natif d&#x27;Apple Silicon en plus de CUDA, donc utilisable sur Mac.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Prêt pour la prod&lt;&#x2F;strong&gt; : serveur API REST multi-GPU, préemption en environnement mémoire contraint, tokenisation en arrière-plan via pool de threads CPU.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Code lisible&lt;&#x2F;strong&gt; : pensé pour être étudié et modifié, pas une boîte noire optimisée à outrance.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Extraire du texte structuré de documents scannés ou de captures d&#x27;écran avec OCR conscient de la mise en page.&lt;&#x2F;li&gt;
&lt;li&gt;Détecter et segmenter des objets dans une image en décrivant simplement ce qu&#x27;on cherche.&lt;&#x2F;li&gt;
&lt;li&gt;Servir un modèle vision-langage en production derrière une API REST multi-GPU.&lt;&#x2F;li&gt;
&lt;li&gt;Prototyper rapidement via l&#x27;interface web Streamlit fournie.&lt;&#x2F;li&gt;
&lt;li&gt;Benchmarker des modèles de perception visuelle sur plusieurs échantillons.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>SigNoz</title>
        <published>2026-05-29T00:00:00+00:00</published>
        <updated>2026-05-29T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/signoz/"/>
        <id>https://papyrus.z29k.com/gemshelf/signoz/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/signoz/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;SigNoz est une plateforme d&#x27;observabilité open-source qui réunit logs, métriques et traces dans une seule interface. Construite nativement sur OpenTelemetry et propulsée par ClickHouse, elle se positionne comme une alternative auto-hébergeable à Datadog ou New Relic, sans le coût de licence ni le vendor lock-in.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Trois piliers unifiés&lt;&#x2F;strong&gt; : logs, métriques et traces corrélés au même endroit, pour un contexte de debug bien plus riche qu&#x27;avec des outils éparpillés.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Natif OpenTelemetry&lt;&#x2F;strong&gt; : standard ouvert pour l&#x27;instrumentation, donc aucune dépendance à un agent propriétaire et une portabilité totale de vos données.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;ClickHouse sous le capot&lt;&#x2F;strong&gt; : recherche et agrégation ultra-rapides sur des données à forte cardinalité, le même moteur qu&#x27;utilisent Uber et Cloudflare.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;APM clé en main&lt;&#x2F;strong&gt; : graphes prêts à l&#x27;emploi pour la latence p99, les taux d&#x27;erreur, l&#x27;Apdex et les opérations par seconde.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Auto-hébergeable et économique&lt;&#x2F;strong&gt; : vous gardez le contrôle de vos données et évitez les factures qui explosent avec le volume.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Monitorer une architecture microservices avec du tracing distribué (flamegraphs, diagrammes de Gantt).&lt;&#x2F;li&gt;
&lt;li&gt;Centraliser les logs applicatifs avec recherche et agrégation rapides via ClickHouse.&lt;&#x2F;li&gt;
&lt;li&gt;Mettre en place des alertes et de la détection d&#x27;anomalies sur ses services en production.&lt;&#x2F;li&gt;
&lt;li&gt;Suivre l&#x27;observabilité d&#x27;applications LLM, y compris la consommation de tokens.&lt;&#x2F;li&gt;
&lt;li&gt;Remplacer une stack Datadog&#x2F;New Relic coûteuse par une solution auto-hébergée.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>ntfy</title>
        <published>2026-05-26T00:00:00+00:00</published>
        <updated>2026-05-26T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/ntfy/"/>
        <id>https://papyrus.z29k.com/gemshelf/ntfy/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/ntfy/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;ntfy est un service de notifications push pub-sub basé sur HTTP. Tu envoies une requête PUT&#x2F;POST sur un topic, et le message arrive instantanément sur ton téléphone ou ton desktop. Pas d&#x27;inscription, pas de SDK, pas de clé API obligatoire - juste curl et une URL. Utilisable via le service public ntfy.sh ou auto-hébergé chez toi.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Une requête curl suffit&lt;&#x2F;strong&gt; : &lt;code&gt;curl -d &quot;Backup terminé&quot; ntfy.sh&#x2F;mon-topic&lt;&#x2F;code&gt; et c&#x27;est notifié - n&#x27;importe quel script, cron ou outil capable de faire un appel HTTP devient une source d&#x27;alertes&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Auto-hébergeable&lt;&#x2F;strong&gt; : un seul binaire Go, zéro dépendance externe obligatoire, tu gardes le contrôle total de tes notifications et de tes données&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Apps natives multiplateformes&lt;&#x2F;strong&gt; : Android (Google Play, F-Droid), iOS (App Store), interface web et notifications desktop - tu reçois tes alertes partout&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Pub-sub par topics&lt;&#x2F;strong&gt; : abonne-toi à un topic, tout le monde qui publie dessus te notifie - modèle simple et sans configuration&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Notifications riches&lt;&#x2F;strong&gt; : priorités, tags&#x2F;emojis, titres, actions cliquables, pièces jointes et liens - bien plus qu&#x27;un simple texte&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Auth optionnelle&lt;&#x2F;strong&gt; : ACL par topic, utilisateurs et tokens d&#x27;accès quand tu veux sécuriser ton instance&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Alertes de fin de job : backups, scripts cron, tâches longues qui te préviennent une fois terminées&lt;&#x2F;li&gt;
&lt;li&gt;Statuts de pipelines CI&#x2F;CD poussés directement sur ton téléphone&lt;&#x2F;li&gt;
&lt;li&gt;Monitoring serveur et health checks reliés à ntfy via webhook&lt;&#x2F;li&gt;
&lt;li&gt;Notifications de workflows d&#x27;automatisation (n8n, Home Assistant, scripts maison)&lt;&#x2F;li&gt;
&lt;li&gt;Canal d&#x27;alerte unifié pour un homelab ou une petite équipe, hébergé en interne&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Starlight</title>
        <published>2026-05-21T00:00:00+00:00</published>
        <updated>2026-05-21T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/starlight/"/>
        <id>https://papyrus.z29k.com/gemshelf/starlight/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/starlight/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Starlight est un framework de documentation construit sur Astro. Il fournit tout ce qu&#x27;il faut pour publier un site de docs technique propre - navigation, recherche, i18n, thème clair&#x2F;sombre, coloration syntaxique - sans avoir à recoder à chaque fois la même boilerplate. Tu écris du Markdown, MDX ou Markdoc, Starlight s&#x27;occupe du reste.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Astro sous le capot&lt;&#x2F;strong&gt; : sortie HTML statique, zéro JS côté client par défaut, scores Lighthouse élevés sans effort.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Recherche intégrée&lt;&#x2F;strong&gt; : indexation full-text via Pagefind, raccourci Ctrl+K, aucune configuration externe à brancher.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;i18n natif&lt;&#x2F;strong&gt; : structure multi-langues prête à l&#x27;emploi, fallback automatique sur la langue par défaut, sélecteur de langue inclus.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Frontmatter typé&lt;&#x2F;strong&gt; : schémas de contenu TypeScript pour valider les métadonnées des pages au build, fini les fautes de frappe silencieuses.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Composants multi-framework&lt;&#x2F;strong&gt; : tu peux insérer du React, Vue, Svelte ou Solid dans tes pages MDX, Astro hydrate uniquement ce qui en a besoin.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Personnalisable&lt;&#x2F;strong&gt; : système de plugins, override de composants, design tokens CSS exposés - facile à plier à une charte graphique existante.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Documentation technique d&#x27;un projet open source ou interne&lt;&#x2F;li&gt;
&lt;li&gt;Référence API et guides développeur&lt;&#x2F;li&gt;
&lt;li&gt;Knowledge base produit avec recherche et multi-langue&lt;&#x2F;li&gt;
&lt;li&gt;Migration depuis Docusaurus, MkDocs ou VitePress pour gagner en perf&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Keila</title>
        <published>2026-05-20T00:00:00+00:00</published>
        <updated>2026-05-20T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/keila/"/>
        <id>https://papyrus.z29k.com/gemshelf/keila/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/keila/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Keila est une plateforme open source d&#x27;envoi de newsletters, pensée comme une alternative auto-hébergeable à Mailchimp, Sendinblue ou Substack. Elle gère la création de campagnes, les formulaires d&#x27;inscription, les listes de contacts et l&#x27;envoi via plusieurs providers (AWS SES, Sendgrid, Mailgun, Postmark) ou directement via SMTP.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Auto-hébergement complet&lt;&#x2F;strong&gt; : Image Docker officielle, déploiement maîtrisé, données chez toi - pas de SaaS qui revend tes contacts ou modifie ses tarifs du jour au lendemain.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Multi-provider d&#x27;envoi&lt;&#x2F;strong&gt; : Branche AWS SES pour le volume, Sendgrid&#x2F;Mailgun&#x2F;Postmark pour la délivrabilité, ou ton propre SMTP pour démarrer. Tu n&#x27;es pas verrouillé à un seul fournisseur.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Éditeur WYSIWYG + Markdown&lt;&#x2F;strong&gt; : Composition visuelle des campagnes avec templates personnalisables, ou écriture en Markdown pour aller vite. Templates Liquid pour la personnalisation avancée.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Formulaires d&#x27;inscription intégrés&lt;&#x2F;strong&gt; : Génération de formulaires embarquables avec double opt-in, gestion RGPD-compatible des consentements.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Stack Elixir&#x2F;Phoenix&lt;&#x2F;strong&gt; : Concurrence native du BEAM pour gérer des envois massifs sans saturer le serveur. Robustesse éprouvée de l&#x27;écosystème Erlang.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Licence AGPL-3.0&lt;&#x2F;strong&gt; : Code source ouvert, modifiable et auditable, avec une copyleft forte qui protège l&#x27;écosystème.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Newsletter personnelle ou de blog technique qui veut s&#x27;affranchir de Substack ou Mailchimp&lt;&#x2F;li&gt;
&lt;li&gt;Communication interne d&#x27;association ou d&#x27;ONG qui doit garder la maîtrise de ses listes de contacts&lt;&#x2F;li&gt;
&lt;li&gt;TPE&#x2F;PME qui veut un outil marketing email auto-hébergé pour réduire les coûts récurrents&lt;&#x2F;li&gt;
&lt;li&gt;Communauté open source ou club qui envoie des annonces régulières à ses membres&lt;&#x2F;li&gt;
&lt;li&gt;Plateforme multi-tenant pour proposer un service d&#x27;envoi à plusieurs utilisateurs depuis une même instance&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Meetily</title>
        <published>2026-05-20T00:00:00+00:00</published>
        <updated>2026-05-20T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/meetily/"/>
        <id>https://papyrus.z29k.com/gemshelf/meetily/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/meetily/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Meetily est un assistant de réunion open source qui capture, transcrit et résume tes calls en local, sans rien envoyer dans le cloud. L&#x27;app desktop (Tauri + Next.js) tourne sur macOS, Windows et Linux, fait tourner Whisper ou Parakeet pour la transcription temps réel, et délègue la génération de résumés à Ollama (local) ou à un provider externe si tu acceptes l&#x27;aller-retour réseau.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;100% local par défaut&lt;&#x2F;strong&gt; : Audio, transcription et résumés peuvent rester sur ta machine. Aucune dépendance cloud obligatoire, donc rien à filtrer pour la conformité RGPD ou HIPAA.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Transcription temps réel accélérée&lt;&#x2F;strong&gt; : Modèles Whisper et Parakeet en ONNX avec accélération matérielle (Metal sur Mac, CUDA sur GPU Nvidia, Vulkan ailleurs). Réactivité réelle, pas du batch après coup.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Diarisation des locuteurs&lt;&#x2F;strong&gt; : Identifie qui parle quand. Indispensable dès qu&#x27;on a plus de deux participants et qu&#x27;on veut un résumé exploitable.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Backends IA interchangeables&lt;&#x2F;strong&gt; : Ollama en local pour rester privé, ou Claude &#x2F; Groq &#x2F; OpenRouter &#x2F; endpoint custom quand tu acceptes le compromis. Pas de lock-in.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Re-traitement des audios existants&lt;&#x2F;strong&gt; : Tu peux importer un enregistrement et le repasser avec un autre modèle de transcription ou de résumé. Pratique pour comparer la qualité avant d&#x27;industrialiser.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Stack Rust + Tauri&lt;&#x2F;strong&gt; : Binaire léger, démarrage rapide, gestion fine de l&#x27;audio. Pas de Electron qui mange 1 Go de RAM en idle.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Consultants ou juristes qui ne peuvent pas envoyer le contenu de leurs réunions à un SaaS tiers&lt;&#x2F;li&gt;
&lt;li&gt;Équipes santé soumises à HIPAA ou cabinets RGPD-sensibles qui veulent un assistant sans fuite cloud&lt;&#x2F;li&gt;
&lt;li&gt;Devs et PMs qui veulent un Otter&#x2F;Fireflies-like mais auto-hébergé et auditable&lt;&#x2F;li&gt;
&lt;li&gt;Indépendants qui veulent garder leurs notes de call dans un workflow Ollama local couplé à leur knowledge base&lt;&#x2F;li&gt;
&lt;li&gt;Entreprises qui veulent du meeting intelligence on-premise pour répondre à des exigences de souveraineté des données&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>PptxGenJS</title>
        <published>2026-05-19T00:00:00+00:00</published>
        <updated>2026-05-19T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/pptxgenjs/"/>
        <id>https://papyrus.z29k.com/gemshelf/pptxgenjs/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/pptxgenjs/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;PptxGenJS est une bibliothèque JavaScript&#x2F;TypeScript qui génère des fichiers PowerPoint (&lt;code&gt;.pptx&lt;&#x2F;code&gt;) entièrement programmatiquement, sans avoir besoin d&#x27;installer Office ni aucun outil propriétaire. Le résultat est compatible avec PowerPoint, Keynote, LibreOffice et Google Slides. Elle fonctionne aussi bien dans un navigateur que dans Node.js, et même en environnement serverless.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Zéro dépendance Office&lt;&#x2F;strong&gt; : pas besoin de licence, de COM automation, ni de serveur Windows pour générer un PPTX propre.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;API fluente et complète&lt;&#x2F;strong&gt; : slides, textes, formes, tables, charts, images, SVG, GIF animés, embed YouTube, RTL et fonts asiatiques sont tous gérés.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Slide Masters personnalisés&lt;&#x2F;strong&gt; : tu définis ton template de marque une fois et tu l&#x27;appliques sur toutes les slides pour une cohérence visuelle parfaite.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Multi-environnements&lt;&#x2F;strong&gt; : tourne dans le navigateur, en Node.js, dans React&#x2F;Angular&#x2F;Vite&#x2F;Electron et même dans des Edge Functions ou Lambda.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Sorties multiples&lt;&#x2F;strong&gt; : export en fichier, base64, Blob, Buffer ou Node stream selon ton pipeline (download direct, upload S3, attachement email, etc.).&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Dashboards exportables en PPTX pour des rapports clients automatisés.&lt;&#x2F;li&gt;
&lt;li&gt;Génération côté serveur de présentations data-driven (ventes, marketing, BI).&lt;&#x2F;li&gt;
&lt;li&gt;Conversion de tables HTML d&#x27;une application web en slides téléchargeables.&lt;&#x2F;li&gt;
&lt;li&gt;Outils internes qui produisent des decks formatés à partir de templates corporate.&lt;&#x2F;li&gt;
&lt;li&gt;Pipelines de reporting automatisés branchés sur une base de données ou une API.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>drawDB</title>
        <published>2026-05-15T00:00:00+00:00</published>
        <updated>2026-05-15T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/drawdb/"/>
        <id>https://papyrus.z29k.com/gemshelf/drawdb/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/drawdb/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;drawDB est un éditeur de diagrammes entité-relation (ERD) qui tourne directement dans le navigateur. Tu dessines ton schéma à la souris, et l&#x27;outil génère le SQL correspondant pour MySQL, PostgreSQL, SQLite, MariaDB ou MSSQL. Pas de compte requis, tout fonctionne en local côté client.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Pas de compte, pas de cloud obligatoire&lt;&#x2F;strong&gt; : Tu ouvres drawdb.app, tu modélises, tu exportes. Aucune donnée ne part sur un serveur tiers tant que tu n&#x27;actives pas la fonction de partage.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Génération SQL multi-moteurs&lt;&#x2F;strong&gt; : Le même diagramme exporte vers MySQL, PostgreSQL, SQLite, MariaDB ou MSSQL. Pratique quand tu prototypes avant de figer le choix du SGBD.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Import inverse depuis SQL&lt;&#x2F;strong&gt; : Colle un dump ou un script DDL existant, drawDB reconstruit le diagramme. Utile pour documenter une base héritée que personne n&#x27;a jamais schématisée.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Auto-hébergeable via Docker&lt;&#x2F;strong&gt; : Image officielle, build en quelques commandes. Tu poses ça sur un serveur interne et toute l&#x27;équipe a son éditeur de schéma sans dépendre d&#x27;un SaaS.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Éditeur réellement interactif&lt;&#x2F;strong&gt; : Tables, relations, clés étrangères, types, index, notes. L&#x27;UI est rapide et l&#x27;export PNG&#x2F;JPEG&#x2F;SVG sort propre pour la doc technique.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Stack web classique&lt;&#x2F;strong&gt; : JavaScript&#x2F;Vite, AGPL-3.0. Lisible si tu veux patcher un type custom ou ajouter un dialecte SQL.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Modéliser un schéma avant de l&#x27;écrire en migrations&lt;&#x2F;li&gt;
&lt;li&gt;Reverse-engineerer une base existante à partir de son DDL pour la documenter&lt;&#x2F;li&gt;
&lt;li&gt;Préparer un schéma cible lors d&#x27;une migration entre SGBD&lt;&#x2F;li&gt;
&lt;li&gt;Partager une vue claire du modèle de données dans une review ou un ADR&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Gogs</title>
        <published>2026-05-15T00:00:00+00:00</published>
        <updated>2026-05-15T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/gogs/"/>
        <id>https://papyrus.z29k.com/gemshelf/gogs/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/gogs/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Gogs (Go Git Service) est une forge Git auto-hébergée écrite en Go, pensée pour être déployée en quelques minutes sur n&#x27;importe quelle machine. Tout tient dans un binaire unique, sans dépendance externe lourde, et la consommation mémoire reste ridicule comparée à GitLab. Une alternative minimaliste à GitHub quand on veut juste héberger ses repos, gérer ses issues et ses PR sans surcouche.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Empreinte minuscule&lt;&#x2F;strong&gt; : tourne sur un Raspberry Pi avec 512 Mo de RAM. Idéal pour homelab, NAS ou petit VPS.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Binaire unique&lt;&#x2F;strong&gt; : un seul exécutable cross-platform (Linux, macOS, Windows, ARM). Pas de runtime à installer, pas de stack à maintenir.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Stack flexible&lt;&#x2F;strong&gt; : SQLite, MySQL, PostgreSQL ou TiDB côté base. SSH, HTTP, HTTPS côté accès.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Fonctionnalités essentielles&lt;&#x2F;strong&gt; : issues, pull requests, wiki, webhooks (Slack, Discord, Dingtalk), Git LFS, branches protégées, deploy keys, 2FA.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Authentification flexible&lt;&#x2F;strong&gt; : SMTP, LDAP, OAuth2, PAM, reverse-proxy. S&#x27;intègre à n&#x27;importe quel SSO existant.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Migration et mirroring&lt;&#x2F;strong&gt; : importe tes repos depuis GitHub&#x2F;GitLab et configure des miroirs automatiques.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Forge interne pour une petite équipe ou un projet perso, sans payer GitHub Enterprise ni faire tourner GitLab.&lt;&#x2F;li&gt;
&lt;li&gt;Hébergement de code sur un homelab ou un NAS, avec une consommation de ressources négligeable.&lt;&#x2F;li&gt;
&lt;li&gt;Air-gap ou environnement isolé où le code ne doit jamais sortir du réseau interne.&lt;&#x2F;li&gt;
&lt;li&gt;Miroir local de repos GitHub critiques pour résilience ou conformité.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Hyperswitch</title>
        <published>2026-05-11T00:00:00+00:00</published>
        <updated>2026-05-11T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/hyperswitch/"/>
        <id>https://papyrus.z29k.com/gemshelf/hyperswitch/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/hyperswitch/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Hyperswitch est un &lt;strong&gt;switch de paiement open source&lt;&#x2F;strong&gt; écrit en Rust qui s&#x27;intercale entre ton backend et les processeurs de paiement (PSP). Une seule API à intégrer côté merchant, et derrière le moteur route les transactions vers 120+ acquéreurs (Stripe, Adyen, Braintree, Worldpay, Checkout.com…) avec des stratégies de routage, retry et fallback configurables. L&#x27;idée : casser le lock-in PSP et reprendre la main sur les coûts et les taux d&#x27;autorisation.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Routage intelligent&lt;&#x2F;strong&gt; : Distribue les transactions selon des règles (volumétrie, coût, taux d&#x27;auth, région, BIN) pour maximiser le taux d&#x27;acceptation et minimiser les frais.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Revenue recovery&lt;&#x2F;strong&gt; : Retries automatiques sur les échecs récupérables, avec contrôle fin par méthode, région ou type de carte. Récupération des paiements abandonnés sans intervention manuelle.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Vault PCI-compliant&lt;&#x2F;strong&gt; : Stockage sécurisé des cartes, tokens et wallets, avec support du « bring-your-own-vault » si tu as déjà une infra existante. Tu changes de PSP sans re-tokeniser.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Modulaire et composable&lt;&#x2F;strong&gt; : Chaque brique (routage, vault, réconciliation, observabilité des coûts) est indépendante. Tu prends ce qui t&#x27;intéresse, tu ignores le reste.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Self-hosted, déployable partout&lt;&#x2F;strong&gt; : Docker&#x2F;Podman en local, Helm Charts pour Kubernetes, support AWS&#x2F;GCP&#x2F;Azure. Pas de SaaS forcé, tes données restent chez toi.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Control Center&lt;&#x2F;strong&gt; : UI web pour configurer les règles de routage, tester en sandbox et visualiser la réconciliation 2-way &#x2F; 3-way.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Multi-PSP&lt;&#x2F;strong&gt; : Passer d&#x27;un setup mono-Stripe à du routage multi-acquéreur sans réécrire l&#x27;intégration côté front et back.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Marketplace internationale&lt;&#x2F;strong&gt; : Router par géographie pour utiliser un acquéreur local et booster les taux d&#x27;auth dans chaque pays.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Optimisation des coûts&lt;&#x2F;strong&gt; : Auditer où partent les frais de transaction et bascule du volume sur des acquéreurs moins chers en fonction du panier.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Migration de gateway&lt;&#x2F;strong&gt; : Remplacer un payment gateway propriétaire par une stack en direct avec les acquéreurs, tout en gardant le vault existant.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Réconciliation automatisée&lt;&#x2F;strong&gt; : Aligner les payouts PSP, les transactions internes et les rapports bancaires sans tableur Excel partagé sur Drive.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Metabase</title>
        <published>2026-05-11T00:00:00+00:00</published>
        <updated>2026-05-11T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/metabase/"/>
        <id>https://papyrus.z29k.com/gemshelf/metabase/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/metabase/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Metabase est une plateforme de business intelligence open source qui rend la data accessible aux non-techs. Backend Clojure, frontend React&#x2F;TypeScript, elle propose un query builder visuel, un éditeur SQL natif et des dashboards partageables, le tout déployable en cinq minutes via Docker ou JAR.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Query builder no-code&lt;&#x2F;strong&gt; : interface pas-à-pas pour filtrer, agréger, joindre des tables sans écrire une ligne de SQL. Idéal pour les équipes marketing, produit ou ops qui n&#x27;attendront plus la data team.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;SQL Editor pour les pros&lt;&#x2F;strong&gt; : ceux qui veulent du SQL brut ont un éditeur complet avec variables, paramètres et templating Mustache pour des requêtes dynamiques.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Dashboards interactifs&lt;&#x2F;strong&gt; : filtres globaux, drill-down, plein écran et auto-refresh. Les utilisateurs peuvent partager, planifier ou abonner d&#x27;autres collègues aux résultats.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Embedded analytics&lt;&#x2F;strong&gt; : iframes signées ou SDK officiel pour intégrer charts et dashboards dans une app SaaS, avec contrôle fin de la sécurité par rôle.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Alertes et abonnements&lt;&#x2F;strong&gt; : envoi automatique de tableaux ou graphiques par email&#x2F;Slack quand un seuil est franchi.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Setup express&lt;&#x2F;strong&gt; : un binaire JAR ou un container, support natif pour 20+ bases (PostgreSQL, MySQL, BigQuery, Snowflake, Redshift, MongoDB...) avec drivers communautaires en bonus.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Donner accès aux données métier aux équipes non-techniques sans former tout le monde au SQL.&lt;&#x2F;li&gt;
&lt;li&gt;Construire un portail de reporting interne, partagé entre direction, produit et finance.&lt;&#x2F;li&gt;
&lt;li&gt;Embarquer des dashboards client dans une application SaaS pour offrir un module analytics sans le coder.&lt;&#x2F;li&gt;
&lt;li&gt;Mettre en place des alertes data (drop de KPI, anomalie, seuil business) pour réagir vite sans dashboard à surveiller en continu.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Puter</title>
        <published>2026-05-11T00:00:00+00:00</published>
        <updated>2026-05-11T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/puter/"/>
        <id>https://papyrus.z29k.com/gemshelf/puter/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/puter/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Puter est un &lt;strong&gt;« internet computer » open source&lt;&#x2F;strong&gt; : un OS dans le navigateur, avec bureau, fenêtres, gestionnaire de fichiers et apps intégrées (éditeur de texte, tableur, terminal, lecteur multimédia, peinture…). Le tout s&#x27;auto-héberge via Docker ou Node, et expose des APIs cloud (stockage, KV store, auth, IA) que des apps tierces peuvent consommer depuis le store intégré. C&#x27;est à la fois un Dropbox, un ChromeOS et une plateforme PaaS, sous une seule interface.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Self-hostable et léger&lt;&#x2F;strong&gt; : Docker compose, ou &lt;code&gt;npm start&lt;&#x2F;code&gt; sur Node. Tu reprends le contrôle de tes données plutôt que de dépendre d&#x27;iCloud &#x2F; Google Drive &#x2F; Dropbox.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Apps web natives&lt;&#x2F;strong&gt; : Le SDK Puter.js permet de coder des apps qui tournent dans le bureau, avec accès aux APIs cloud (fichiers, KV, auth) sans backend à déployer.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;AGPL-3.0&lt;&#x2F;strong&gt; : Licence forte qui force les forks SaaS à publier leur code. Garantit que les améliorations restent dans l&#x27;écosystème.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Sandboxing par iframe&lt;&#x2F;strong&gt; : Chaque app tierce tourne dans un iframe isolé avec permissions explicites. Tu peux installer du code tiers sans qu&#x27;il accède au reste du système.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;APIs IA intégrées&lt;&#x2F;strong&gt; : Génération de texte, image et speech-to-text exposées comme des primitives, utilisables depuis n&#x27;importe quelle app du bureau.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Workspace personnel cloud&lt;&#x2F;strong&gt; : Un bureau accessible depuis n&#x27;importe quel navigateur, avec tes fichiers et apps, sans Big Tech au milieu.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Plateforme interne d&#x27;équipe&lt;&#x2F;strong&gt; : Héberger un Puter sur le réseau d&#x27;une boîte pour partager des fichiers et lancer des apps web sans cloud public.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Bac à sable de dev web&lt;&#x2F;strong&gt; : Coder, publier et tester des apps web qui consomment les APIs cloud Puter, sans avoir à monter une stack backend.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Alternative à ChromeOS&lt;&#x2F;strong&gt; : Sur un poste léger, ouvrir Puter en plein écran pour un OS minimal piloté par le navigateur.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Rocket.Chat</title>
        <published>2026-05-11T00:00:00+00:00</published>
        <updated>2026-05-11T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/rocket-chat/"/>
        <id>https://papyrus.z29k.com/gemshelf/rocket-chat/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/rocket-chat/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Rocket.Chat est une plateforme de communication d&#x27;équipe open source, alternative sérieuse à Slack ou Microsoft Teams, écrite en TypeScript. Elle couvre messagerie temps réel, appels audio&#x2F;vidéo, partage de fichiers et collaboration, avec un fort accent sur la souveraineté des données via le self-hosting.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Self-hosted ou cloud&lt;&#x2F;strong&gt; : déploie l&#x27;instance sur tes propres serveurs (Docker, Kubernetes, snap) ou utilise leur offre cloud managée. Les options air-gapped existent pour les environnements ultra-sensibles.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Chiffrement bout-en-bout&lt;&#x2F;strong&gt; : E2EE optionnel par canal, plus la gestion des identités et le SSO (SAML, OAuth, LDAP) pour les besoins entreprise.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Fédération via Matrix&lt;&#x2F;strong&gt; : les utilisateurs Rocket.Chat peuvent discuter avec d&#x27;autres serveurs Matrix, brisant les silos entre plateformes.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Apps-Engine et marketplace&lt;&#x2F;strong&gt; : SDK officiel pour étendre la plateforme avec tes propres apps en TypeScript, plus une marketplace avec des intégrations prêtes à l&#x27;emploi (Jira, GitHub, Zapier, etc.).&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Omnichannel&lt;&#x2F;strong&gt; : agrège messages WhatsApp, Telegram, SMS, Email, Facebook Messenger dans une seule inbox côté support client.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Licence MIT&lt;&#x2F;strong&gt; : code source complet, libre de modification et de redistribution, contrairement à beaucoup de &quot;open core&quot; castrés.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Remplacer Slack ou Teams dans une organisation qui veut héberger ses propres données.&lt;&#x2F;li&gt;
&lt;li&gt;Plateforme de communication interne pour gouvernements, défense, santé, ou tout secteur soumis à des contraintes réglementaires fortes.&lt;&#x2F;li&gt;
&lt;li&gt;Outil de support client unifié multi-canal (omnichannel) avec routage automatique et chatbots.&lt;&#x2F;li&gt;
&lt;li&gt;Communauté open source ou projet qui cherche une alternative à Discord auto-hébergeable.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Apache Superset</title>
        <published>2026-05-11T00:00:00+00:00</published>
        <updated>2026-05-11T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/superset/"/>
        <id>https://papyrus.z29k.com/gemshelf/superset/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/superset/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Apache Superset est une plateforme de business intelligence open source, alternative crédible à Tableau, Power BI ou Looker. Elle permet d&#x27;explorer des données, construire des dashboards interactifs et écrire du SQL directement dans le navigateur, le tout sans surcouche propriétaire et avec une licence Apache-2.0 propre.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;50+ connecteurs SQL natifs&lt;&#x2F;strong&gt; : Snowflake, BigQuery, Redshift, PostgreSQL, MySQL, Trino, ClickHouse, Druid, etc. Tout ce qui parle SQL est branchable via SQLAlchemy.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Constructeur de charts no-code&lt;&#x2F;strong&gt; : interface drag-and-drop avec une cinquantaine de visualisations (heatmaps, sankey, cartes géo, time series, treemaps...) extensibles via plugins.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;SQL Lab&lt;&#x2F;strong&gt; : éditeur SQL avec autocomplétion, historique des requêtes, sauvegarde des résultats et exécution asynchrone via Celery pour les requêtes longues.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Couche sémantique&lt;&#x2F;strong&gt; : on définit dimensions, métriques et calculs une fois côté Superset, et tout le monde tire sur la même version de la vérité.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;API REST et SSO&lt;&#x2F;strong&gt; : intégration via REST API, et authentification LDAP, OAuth, OpenID, SAML pour les besoins entreprise. RBAC fin par dataset, dashboard et action.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Apache Software Foundation&lt;&#x2F;strong&gt; : projet top-level ASF, gouvernance ouverte et communauté large (60k+ stars sur GitHub).&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Outil interne de reporting et dashboards data pour les équipes produit, marketing ou finance.&lt;&#x2F;li&gt;
&lt;li&gt;Exposer du SQL ad-hoc à des analystes sans les laisser bricoler des connexions directes au data warehouse.&lt;&#x2F;li&gt;
&lt;li&gt;Plateforme self-hosted pour remplacer Tableau&#x2F;Power BI et reprendre le contrôle des coûts par utilisateur.&lt;&#x2F;li&gt;
&lt;li&gt;Visualisation embarquée dans une app SaaS via les dashboards iframe ou l&#x27;API REST.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>tun2socks</title>
        <published>2026-05-05T00:00:00+00:00</published>
        <updated>2026-05-05T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/tun2socks/"/>
        <id>https://papyrus.z29k.com/gemshelf/tun2socks/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/tun2socks/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;tun2socks crée une interface TUN sur ta machine et y redirige l&#x27;ensemble du trafic réseau, qu&#x27;il pousse ensuite à travers un proxy SOCKS5, HTTP, Shadowsocks, SSH ou Relay. C&#x27;est la brique réseau bas niveau qui transforme un simple proxy applicatif en tunnel transparent pour tout le système, sans toucher aux applications elles-mêmes.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Transparent pour les applications&lt;&#x2F;strong&gt; : aucune configuration côté apps, aucun support proxy requis dans le logiciel cible. Tout passe par le TUN.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Multi-protocoles&lt;&#x2F;strong&gt; : SOCKS5, HTTP(S), Shadowsocks, SSH et Relay, avec authentification. Tu choisis ton backend selon le contexte.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Multi-plateformes&lt;&#x2F;strong&gt; : Linux, macOS, Windows, FreeBSD et OpenBSD, en un seul binaire Go statique.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Performant&lt;&#x2F;strong&gt; : architecture pensée pour la performance, avec des benchmarks favorables face aux alternatives historiques (badvpn-tun2socks et consorts).&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;IPv6 natif&lt;&#x2F;strong&gt; : tunneling bidirectionnel IPv4&#x2F;IPv6, utile pour les réseaux mixtes ou les passerelles modernes.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Forcer toute une machine à passer par un proxy SOCKS distant (bastion, exit node) sans configurer chaque application.&lt;&#x2F;li&gt;
&lt;li&gt;Construire une passerelle Layer 3 sur un Raspberry Pi pour router un sous-réseau entier à travers un proxy.&lt;&#x2F;li&gt;
&lt;li&gt;Encapsuler du trafic dans un tunnel SSH sans avoir à jongler avec des &lt;code&gt;ssh -D&lt;&#x2F;code&gt; et des règles iptables.&lt;&#x2F;li&gt;
&lt;li&gt;Faire le pont entre IPv4 et IPv6 pour des services ou des clients qui ne parlent qu&#x27;une seule des deux piles.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Quackback</title>
        <published>2026-05-04T00:00:00+00:00</published>
        <updated>2026-05-04T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/quackback/"/>
        <id>https://papyrus.z29k.com/gemshelf/quackback/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/quackback/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Quackback est une plateforme open source de collecte et de gestion de feedback utilisateur, pensée comme alternative auto-hébergeable à Canny, UserVoice et Productboard. Les utilisateurs votent et commentent les demandes sur des boards publics, l&#x27;équipe trie et priorise depuis une inbox admin, et la roadmap comme le changelog se publient dans la même interface.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Self-hosted, AGPL&lt;&#x2F;strong&gt; : Tu héberges, tu contrôles. Pas de quotas surprises ni de pricing par siège qui explose dès que le produit grossit.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Détection IA des doublons&lt;&#x2F;strong&gt; : Les nouvelles demandes sont automatiquement rapprochées des existantes et résumées, ce qui évite de polluer les boards quand le volume monte.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Widget embarquable + SDKs mobiles&lt;&#x2F;strong&gt; : Intégration directe dans une app web, iOS ou Android sans rediriger l&#x27;utilisateur vers une page externe.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;24 intégrations natives&lt;&#x2F;strong&gt; : Slack, Linear, Jira, GitHub, Intercom, Zendesk. Les feedbacks atterrissent là où l&#x27;équipe travaille déjà.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;API REST, webhooks et serveur MCP&lt;&#x2F;strong&gt; : Automation utilisable aussi bien depuis des scripts que depuis des agents IA, ce qui est encore rare sur ce type d&#x27;outil.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Stack moderne TypeScript&lt;&#x2F;strong&gt; : TanStack Start, Drizzle ORM, Better Auth, Tailwind v4 &#x2F; shadcn, Bun. Lisible si tu veux contribuer ou patcher.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Récolter et prioriser les demandes de fonctionnalités d&#x27;un SaaS sans payer Canny&lt;&#x2F;li&gt;
&lt;li&gt;Centraliser les retours bêta-testeurs sur un board public ou privé&lt;&#x2F;li&gt;
&lt;li&gt;Publier un changelog produit relié aux demandes effectivement livrées&lt;&#x2F;li&gt;
&lt;li&gt;Brancher le feedback sur Linear ou Jira pour fermer la boucle entre support et roadmap&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Docusaurus</title>
        <published>2026-05-03T00:00:00+00:00</published>
        <updated>2026-05-03T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/docusaurus/"/>
        <id>https://papyrus.z29k.com/gemshelf/docusaurus/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/docusaurus/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Docusaurus est un générateur de sites statiques pensé pour la documentation technique, maintenu par Meta. On écrit le contenu en Markdown ou MDX, on personnalise le thème React, et le résultat est un site rapide, indexable et déployable en un seul dossier statique. Très utilisé par les projets open source pour leur portail de docs.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MDX natif&lt;&#x2F;strong&gt; : Le Markdown est étendu avec des composants React inline. Pratique pour des callouts, des onglets de code, des démos interactives directement dans la prose.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Versioning intégré&lt;&#x2F;strong&gt; : Docusaurus gère plusieurs versions de la documentation simultanément (v2.0, v3.0, etc.) sans configuration tierce. Indispensable pour les libs qui maintiennent des branches actives.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;i18n out of the box&lt;&#x2F;strong&gt; : Système de traductions en local ou via Crowdin, avec routes par langue. Pas besoin de plugin compliqué.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Recherche et blog inclus&lt;&#x2F;strong&gt; : Algolia DocSearch est branchable en quelques lignes, et le blog intégré couvre les release notes ou changelogs sans empiler un autre outil.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Architecture pluggable&lt;&#x2F;strong&gt; : Plugins, presets, thèmes swizzlables. On peut customiser un composant sans forker, et la communauté maintient des plugins pour OpenAPI, redirects, sitemaps, etc.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Portail de documentation pour une librairie open source ou une API publique&lt;&#x2F;li&gt;
&lt;li&gt;Site de docs interne d&#x27;entreprise avec versioning par release&lt;&#x2F;li&gt;
&lt;li&gt;Knowledge base technique multilingue&lt;&#x2F;li&gt;
&lt;li&gt;Blog d&#x27;ingénierie + docs sous le même toit, avec recherche unifiée&lt;&#x2F;li&gt;
&lt;li&gt;Documentation produit avec démos React&#x2F;MDX interactives&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Excalidraw</title>
        <published>2026-05-03T00:00:00+00:00</published>
        <updated>2026-05-03T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/excalidraw/"/>
        <id>https://papyrus.z29k.com/gemshelf/excalidraw/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/excalidraw/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Excalidraw est un tableau blanc virtuel open source pour dessiner des diagrammes, wireframes et schémas avec un style &quot;fait main&quot; volontairement imparfait. Le canvas est infini, l&#x27;export propre (PNG, SVG, JSON), et tout fonctionne directement dans le navigateur sans inscription.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Style dessin à la main&lt;&#x2F;strong&gt; : Le rendu volontairement crayonné évite l&#x27;effet &quot;diagramme officiel figé&quot;. Pratique pour les schémas en cours de discussion qui doivent rester ouverts au débat.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Collaboration temps réel chiffrée&lt;&#x2F;strong&gt; : Plusieurs personnes éditent le même tableau en direct, avec chiffrement de bout en bout. Le serveur ne voit jamais le contenu des dessins.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Local-first&lt;&#x2F;strong&gt; : Tout est sauvegardé dans le navigateur. Pas de compte requis, pas de cloud obligatoire, l&#x27;outil marche hors ligne via la PWA.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Exports propres&lt;&#x2F;strong&gt; : PNG, SVG, fichier &lt;code&gt;.excalidraw&lt;&#x2F;code&gt; (JSON), copie dans le presse-papiers. Les SVG s&#x27;intègrent directement dans la doc technique.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Embarquable&lt;&#x2F;strong&gt; : Le package npm &lt;code&gt;@excalidraw&#x2F;excalidraw&lt;&#x2F;code&gt; permet d&#x27;intégrer le canvas dans n&#x27;importe quelle app React. Extension VSCode officielle pour dessiner sans quitter l&#x27;éditeur.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Schémas d&#x27;architecture rapides pendant un brainstorming équipe&lt;&#x2F;li&gt;
&lt;li&gt;Wireframes et maquettes basse-fidélité avant de passer à Figma&lt;&#x2F;li&gt;
&lt;li&gt;Annotations sur captures d&#x27;écran pour des bugs ou des reviews&lt;&#x2F;li&gt;
&lt;li&gt;Diagrammes pour la documentation technique (exportés en SVG)&lt;&#x2F;li&gt;
&lt;li&gt;Tableau blanc partagé en réunion à distance, sans compte SaaS&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Flowise</title>
        <published>2026-05-03T00:00:00+00:00</published>
        <updated>2026-05-03T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/flowise/"/>
        <id>https://papyrus.z29k.com/gemshelf/flowise/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/flowise/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Flowise est une plateforme open source pour construire des agents et workflows IA &lt;strong&gt;en drag and drop&lt;&#x2F;strong&gt;. On assemble visuellement des nœuds (LLM, retrievers, mémoire, outils, fonctions custom) sur un canvas, et on obtient une chaîne LangChain exécutable, exposée immédiatement via une API REST ou un widget de chat embarquable.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Visualisation des chaînes&lt;&#x2F;strong&gt; : Voir la topologie d&#x27;un agent (prompt → retriever → LLM → tool → mémoire) facilite le debug et la transmission. Plus rapide à itérer qu&#x27;une chaîne LangChain en code pur.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Riche en intégrations&lt;&#x2F;strong&gt; : OpenAI, Anthropic, Mistral, Ollama, Hugging Face, plus des dizaines de vector stores (Pinecone, Chroma, Qdrant, pgvector…), loaders, embeddings, mémoires.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Multi-agent&lt;&#x2F;strong&gt; : Construit nativement des systèmes où plusieurs agents collaborent (supervisor, workers, hand-off), pas juste une chaîne linéaire.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;API + widget&lt;&#x2F;strong&gt; : Chaque flow expose automatiquement un endpoint REST et un widget chat à embarquer dans une app web. Pas de glue à écrire pour passer en prod.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Self-hosted&lt;&#x2F;strong&gt; : Docker, K8s, AWS&#x2F;GCP&#x2F;Azure, Railway… Les données et clés API restent chez toi, contrairement aux concurrents pure SaaS.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Prototyper rapidement un chatbot RAG sur une base documentaire interne&lt;&#x2F;li&gt;
&lt;li&gt;Construire un agent qui appelle des APIs métier (CRM, billing) via des tools&lt;&#x2F;li&gt;
&lt;li&gt;Mettre un POC IA entre les mains d&#x27;une équipe produit non-dev&lt;&#x2F;li&gt;
&lt;li&gt;Orchestrer un système multi-agent (recherche, rédaction, validation) sans coder&lt;&#x2F;li&gt;
&lt;li&gt;Exposer un workflow IA via une API à intégrer dans une app existante&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Mermaid</title>
        <published>2026-05-03T00:00:00+00:00</published>
        <updated>2026-05-03T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/mermaid/"/>
        <id>https://papyrus.z29k.com/gemshelf/mermaid/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/mermaid/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Mermaid est une lib JavaScript qui transforme un texte façon Markdown en diagrammes SVG (flowcharts, diagrammes de séquence, classes, Gantt, ER, états, journey…). Le but : écrire ses schémas dans le code source, les versionner avec Git, et laisser le rendu se faire automatiquement par GitHub, Notion, Obsidian, VS Code et la plupart des outils modernes.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Diagrammes en texte brut&lt;&#x2F;strong&gt; : Plus de fichiers &lt;code&gt;.drawio&lt;&#x2F;code&gt; binaires impossibles à diff. Une PR qui modifie un schéma se relit comme une PR de code.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Support natif partout&lt;&#x2F;strong&gt; : GitHub, GitLab, Notion, Obsidian, Azure DevOps, VS Code, Jetbrains… le rendu est intégré côté plateforme, pas besoin de pipeline.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Catalogue large&lt;&#x2F;strong&gt; : Flowcharts, séquence, classes, ER, état, Gantt, pie, git graph, journey, C4, mindmap, timeline, sankey, quadrant chart… La plupart des besoins de doc technique sont couverts.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Live editor&lt;&#x2F;strong&gt; : &lt;code&gt;mermaid.live&lt;&#x2F;code&gt; permet d&#x27;itérer rapidement sur un diagramme en mode prévisualisation, puis de copier-coller le code dans la doc.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Embarquable&lt;&#x2F;strong&gt; : Disponible en npm, en CDN, en CLI (rendu PNG&#x2F;SVG) et via une API. S&#x27;intègre dans n&#x27;importe quel générateur de doc, blog ou app web.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Schémas d&#x27;architecture dans un README, versionnés avec le code&lt;&#x2F;li&gt;
&lt;li&gt;Diagrammes de séquence pour documenter un flow d&#x27;API ou d&#x27;auth&lt;&#x2F;li&gt;
&lt;li&gt;Roadmap projet en Gantt directement dans la doc, sans Excel ni outil externe&lt;&#x2F;li&gt;
&lt;li&gt;Modèle de données (ER) à côté des migrations dans le repo&lt;&#x2F;li&gt;
&lt;li&gt;Schémas de workflow CI&#x2F;CD ou de logique métier dans la doc interne&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>open-appsec</title>
        <published>2026-05-03T00:00:00+00:00</published>
        <updated>2026-05-03T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/openappsec/"/>
        <id>https://papyrus.z29k.com/gemshelf/openappsec/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/openappsec/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;open-appsec est un moteur de sécurité applicative (WAF&#x2F;WAAP) qui utilise du machine learning pour bloquer automatiquement les attaques contre les applications web et APIs. Au lieu d&#x27;entretenir des centaines de règles ModSecurity ou de signatures CRS, il analyse les patterns de requêtes en temps réel pour détecter OWASP Top-10 et zero-day sans intervention humaine.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Approche ML à deux étages&lt;&#x2F;strong&gt; : un modèle supervisé entraîné sur des millions de requêtes flagge l&#x27;anomalie, puis un modèle non supervisé apprend le profil de votre trafic pour décider de bloquer ou non. Ça réduit drastiquement les faux positifs.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Zéro règle à maintenir&lt;&#x2F;strong&gt; : pas de tuning CRS, pas de signatures à mettre à jour. L&#x27;engine apprend de votre trafic en continu.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;S&#x27;intègre où vous êtes déjà&lt;&#x2F;strong&gt; : modules natifs pour NGINX, Kong, APISIX, Envoy&#x2F;Istio. Déployable en Linux, Docker ou Kubernetes (Helm chart officiel).&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Vraiment open source&lt;&#x2F;strong&gt; : code et modèle ML de base sous Apache 2.0. Une SaaS UI optionnelle existe, mais le moteur tourne en standalone via fichiers de config.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Audité&lt;&#x2F;strong&gt; : projet badgé OpenSSF Best Practices, audits de sécurité tiers documentés. C&#x27;est rare pour un projet de sécurité jeune.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Protéger un reverse-proxy NGINX ou Kong devant des APIs internes sans devoir écrire des règles ModSecurity&lt;&#x2F;li&gt;
&lt;li&gt;Ajouter une couche WAAP à un cluster Kubernetes via le module Ingress NGINX ou Istio&lt;&#x2F;li&gt;
&lt;li&gt;Remplacer un WAF cloud propriétaire (AWS WAF, Cloudflare) par une solution self-hosted auditeable&lt;&#x2F;li&gt;
&lt;li&gt;Protéger des applications legacy exposées sans pouvoir modifier leur code&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Storybook</title>
        <published>2026-05-03T00:00:00+00:00</published>
        <updated>2026-05-03T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/storybook/"/>
        <id>https://papyrus.z29k.com/gemshelf/storybook/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/storybook/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Storybook est un environnement de développement frontend pour construire, documenter et tester des composants UI &lt;strong&gt;en isolation&lt;&#x2F;strong&gt;, hors du contexte d&#x27;une vraie application. Chaque composant a ses &quot;stories&quot; (variantes&#x2F;états), affichées dans une interface dédiée que les devs et designers peuvent parcourir, tester et utiliser comme source de vérité du design system.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Isolation totale&lt;&#x2F;strong&gt; : Chaque composant est rendu dans un sandbox, sans dépendre du reste de l&#x27;app. Plus besoin de naviguer trois écrans pour tester un état d&#x27;erreur d&#x27;un bouton.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Multi-frameworks&lt;&#x2F;strong&gt; : React, Vue 3, Angular, Svelte, Web Components, Preact, HTML, Ember… Et même React Native, iOS, Android. Une seule mécanique à apprendre pour tous les écosystèmes.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Docs auto-générées&lt;&#x2F;strong&gt; : Stories + types TypeScript + JSDoc → page de documentation propre avec exemples interactifs et table de props. Le design system se documente quasi tout seul.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Addons puissants&lt;&#x2F;strong&gt; : Accessibilité (a11y), tests visuels, contrôles interactifs, viewport, backgrounds, mesures, design assets… L&#x27;écosystème d&#x27;addons couvre l&#x27;essentiel des besoins quotidiens.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Tests intégrés&lt;&#x2F;strong&gt; : Tests d&#x27;interaction, snapshots visuels, vérifications a11y. Les stories deviennent aussi des cas de test, pas juste de la doc.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Construire et maintenir un design system &#x2F; une bibliothèque UI partagée entre plusieurs apps&lt;&#x2F;li&gt;
&lt;li&gt;Documenter les composants pour designers et devs (terrain commun visuel)&lt;&#x2F;li&gt;
&lt;li&gt;Développer un composant complexe sans devoir lancer l&#x27;app complète&lt;&#x2F;li&gt;
&lt;li&gt;Mettre en place des tests visuels et d&#x27;accessibilité automatisés en CI&lt;&#x2F;li&gt;
&lt;li&gt;Démontrer les états et variantes d&#x27;un composant à un product owner avant intégration&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>2FAuth</title>
        <published>2026-04-30T00:00:00+00:00</published>
        <updated>2026-04-30T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/2fauth/"/>
        <id>https://papyrus.z29k.com/gemshelf/2fauth/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/2fauth/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;2FAuth est une application web auto-hébergée pour gérer ses comptes à double authentification et générer leurs codes de sécurité. C&#x27;est une alternative directe à Google Authenticator, Authy ou Microsoft Authenticator, mais accessible depuis n&#x27;importe quel navigateur (desktop ou mobile) au lieu d&#x27;être prisonnier d&#x27;un téléphone.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Cross-device&lt;&#x2F;strong&gt; : Tes codes 2FA sont accessibles depuis n&#x27;importe quel navigateur. Plus de panique quand tu changes de téléphone ou que la batterie est morte au mauvais moment.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Standards respectés&lt;&#x2F;strong&gt; : Conforme RFC 4226 (HOTP) et RFC 6238 (TOTP), supporte aussi Steam Guard. Compatible avec tout service qui propose du 2FA classique.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Sécurité sérieuse&lt;&#x2F;strong&gt; : Chiffrement optionnel des données sensibles, support WebAuthn (Yubikey, Titan), auto-logout sur inactivité, multi-utilisateurs.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Import&#x2F;Export et API&lt;&#x2F;strong&gt; : Migration facile depuis d&#x27;autres apps 2FA, REST API pour intégrer 2FAuth dans tes propres outils, extensions navigateur (Chrome, Firefox).&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;QR code natif&lt;&#x2F;strong&gt; : Scan ou décodage d&#x27;images QR pour ajouter un compte en deux clics, ou saisie manuelle si tu préfères.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Centraliser tous ses comptes 2FA sur un serveur perso (Docker, VPS, NAS) plutôt que dépendre d&#x27;un GAFAM.&lt;&#x2F;li&gt;
&lt;li&gt;Partager des accès 2FA dans une équipe via une instance multi-utilisateurs sécurisée.&lt;&#x2F;li&gt;
&lt;li&gt;Backuper ses tokens TOTP au cas où le téléphone serait perdu, volé ou cassé.&lt;&#x2F;li&gt;
&lt;li&gt;Intégrer la génération d&#x27;OTP dans des scripts ou outils internes via l&#x27;API REST.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>PegaProx</title>
        <published>2026-04-30T00:00:00+00:00</published>
        <updated>2026-04-30T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/pegaprox/"/>
        <id>https://papyrus.z29k.com/gemshelf/pegaprox/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/pegaprox/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;PegaProx est une plateforme web qui unifie l&#x27;administration de plusieurs clusters Proxmox VE &lt;strong&gt;et&lt;&#x2F;strong&gt; XCP-ng dans un seul dashboard. Au lieu de jongler entre les interfaces natives de chaque hyperviseur, tu gères tout ton parc - VMs, conteneurs, stockage Ceph, snapshots, ACME - depuis une seule UI cohérente. Pensé pour les admins qui opèrent des datacenters mixtes ou plusieurs sites.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Multi-hyperviseur natif&lt;&#x2F;strong&gt; : Proxmox et XCP-ng dans la même console, avec migration de VMs &lt;strong&gt;cross-cluster ET cross-hyperviseur&lt;&#x2F;strong&gt;. Rare sur le marché open source.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Métriques temps réel via SSE&lt;&#x2F;strong&gt; : pas de polling, le dashboard pousse les métriques live des nodes, VMs et stockage en server-sent events.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;RBAC sérieux&lt;&#x2F;strong&gt; : intégration LDAP&#x2F;OIDC, rôles fins, audit trail. Pas juste un wrapper sur l&#x27;API root.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Opérations groupées&lt;&#x2F;strong&gt; : rolling updates, scheduled tasks, snapshot&#x2F;backup verification automatisés sur l&#x27;ensemble du parc.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Console intégrée&lt;&#x2F;strong&gt; : noVNC et xterm.js dans le navigateur, sans devoir ouvrir un client séparé pour chaque VM.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Sécurité bundled&lt;&#x2F;strong&gt; : serveur syslog intégré, scan CVE, automation ACME pour les certificats - moins de scripts maison à maintenir.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;MSP qui gère plusieurs clusters Proxmox pour différents clients depuis une console unique&lt;&#x2F;li&gt;
&lt;li&gt;Migration progressive d&#x27;un parc XCP-ng vers Proxmox (ou inverse) sans casser l&#x27;orchestration&lt;&#x2F;li&gt;
&lt;li&gt;Datacenter multi-sites avec besoin de migration de VMs entre régions&lt;&#x2F;li&gt;
&lt;li&gt;Équipe ops qui veut un RBAC propre au-dessus de Proxmox sans déployer Veeam ou des solutions propriétaires&lt;&#x2F;li&gt;
&lt;li&gt;Homelab avancé avec plusieurs nodes hétérogènes à fédérer&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>ProxCenter</title>
        <published>2026-04-30T00:00:00+00:00</published>
        <updated>2026-04-30T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/proxcenter-ui/"/>
        <id>https://papyrus.z29k.com/gemshelf/proxcenter-ui/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/proxcenter-ui/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;ProxCenter est une interface web qui se positionne comme une alternative open source à VMware vCenter, mais pour Proxmox. Tu connectes plusieurs clusters Proxmox VE et serveurs Proxmox Backup, et tu pilotes l&#x27;ensemble depuis un seul dashboard. Pas de bascule incessante entre interfaces, pas de scripting maison pour agréger l&#x27;état d&#x27;une infra distribuée.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Multi-cluster en single pane&lt;&#x2F;strong&gt; : tous tes nœuds Proxmox VE et tes PBS dans une seule UI, avec les VMs, conteneurs, ressources et sauvegardes consolidés&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Migration cross-hyperviseur&lt;&#x2F;strong&gt; : déplacer une VM d&#x27;un cluster vers un autre sans passer par un script bricolé ou un export&#x2F;import manuel&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Équilibrage de charge (DRS)&lt;&#x2F;strong&gt; : la version Enterprise apporte un orchestrateur qui répartit les workloads selon la charge réelle des nœuds&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Déploiement simple&lt;&#x2F;strong&gt; : un docker-compose, un port (3000), Nginx en option pour le reverse proxy, et c&#x27;est en route&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;AGPL pour la version Community&lt;&#x2F;strong&gt; : utilisable gratuitement en perso comme en commercial, code source disponible, support via GitHub&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Homelab avec plusieurs clusters Proxmox que tu veux superviser sans jongler entre tabs&lt;&#x2F;li&gt;
&lt;li&gt;MSP ou hébergeur qui gère du Proxmox pour plusieurs clients et veut une vue agrégée&lt;&#x2F;li&gt;
&lt;li&gt;Migration progressive depuis VMware en gardant une UX proche de vCenter&lt;&#x2F;li&gt;
&lt;li&gt;Centralisation des PBS pour vérifier d&#x27;un coup d&#x27;œil l&#x27;état des sauvegardes sur toute l&#x27;infra&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Sniffnet</title>
        <published>2026-04-29T00:00:00+00:00</published>
        <updated>2026-04-29T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/sniffnet/"/>
        <id>https://papyrus.z29k.com/gemshelf/sniffnet/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/sniffnet/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Sniffnet est une application de bureau multiplateforme écrite en Rust qui permet de monitorer le trafic réseau en temps réel sur sa machine. Elle remplace avantageusement les outils en ligne de commande comme &lt;code&gt;tcpdump&lt;&#x2F;code&gt; ou les analyseurs lourds comme Wireshark quand on cherche juste à comprendre rapidement ce qui passe sur son interface réseau.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Interface graphique soignée&lt;&#x2F;strong&gt; : graphiques temps réel, statistiques agrégées et filtres dynamiques sans avoir à apprendre une syntaxe BPF cryptique.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Identification des services&lt;&#x2F;strong&gt; : reconnaît plus de 6000 protocoles de couche applicative, ainsi que des signatures de trojans et worms connus.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Géolocalisation des hôtes&lt;&#x2F;strong&gt; : affiche le pays d&#x27;origine et la destination de chaque connexion, pratique pour repérer un trafic suspect sortant.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Compatible PCAP&lt;&#x2F;strong&gt; : import et export au format &lt;code&gt;.pcap&lt;&#x2F;code&gt; pour analyse différée dans Wireshark ou partage de captures.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Notifications et blacklists&lt;&#x2F;strong&gt; : alertes personnalisables sur seuils de trafic ou connexions vers des IP listées comme malveillantes.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Multiplateforme et léger&lt;&#x2F;strong&gt; : binaire unique disponible pour Linux, macOS et Windows, sans dépendance lourde côté runtime.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Diagnostiquer une consommation de bande passante anormale sur un poste de travail.&lt;&#x2F;li&gt;
&lt;li&gt;Repérer rapidement des connexions sortantes vers des destinations inattendues (exfiltration, malware).&lt;&#x2F;li&gt;
&lt;li&gt;Apprendre à comprendre le trafic réseau d&#x27;une machine sans la complexité de Wireshark.&lt;&#x2F;li&gt;
&lt;li&gt;Capturer un échantillon en &lt;code&gt;.pcap&lt;&#x2F;code&gt; pour transmission à une équipe SecOps.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Databasus</title>
        <published>2026-04-28T00:00:00+00:00</published>
        <updated>2026-04-28T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/databasus/"/>
        <id>https://papyrus.z29k.com/gemshelf/databasus/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/databasus/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Databasus est un outil self-hosted de backup pour bases de données, centré sur PostgreSQL et étendu à MySQL, MariaDB et MongoDB. Il automatise les sauvegardes planifiées, les pousse vers le stockage de ton choix (S3, R2, Google Drive, SFTP, Rclone…) et te notifie sur Slack, Discord ou Telegram. Le tout dans une UI propre, déployable en une commande Docker.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Pas de vendor lock-in&lt;&#x2F;strong&gt; : les backups sont chiffrés en AES-256-GCM et restorables sans Databasus lui-même, directement depuis le stockage. Une rareté dans le monde des outils de backup.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Rétention GFS&lt;&#x2F;strong&gt; : politique Grandfather-Father-Son pour garder horaires&#x2F;quotidiens&#x2F;hebdo&#x2F;mensuels&#x2F;annuels indépendamment, idéale pour la conformité et l&#x27;archivage long terme.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Trois types de backup&lt;&#x2F;strong&gt; : logique (dump natif), physique (copie file-level) et incrémental avec WAL archiving pour du Point-in-Time Recovery proche du zéro perte.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Mode agent ou direct&lt;&#x2F;strong&gt; : connexion directe à la DB en read-only, ou agent Go léger qui stream les backups sans exposer la base sur le réseau public.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Self-hosted complet&lt;&#x2F;strong&gt; : déploiement Docker, Docker Compose ou Helm chart, licence Apache 2.0, et parité totale entre l&#x27;open source et l&#x27;offre cloud.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Protéger une stack PostgreSQL en prod avec rétention longue et chiffrement zero-trust sur S3&lt;&#x2F;li&gt;
&lt;li&gt;Centraliser les backups multi-bases (Postgres + Mongo) d&#x27;une équipe via les workspaces et le RBAC&lt;&#x2F;li&gt;
&lt;li&gt;Mettre en place du PITR pour des workloads critiques sans payer un DBaaS managé&lt;&#x2F;li&gt;
&lt;li&gt;Remplacer un cron &lt;code&gt;pg_dump&lt;&#x2F;code&gt; artisanal par une solution avec UI, alerting et audit logs&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>NocoDB</title>
        <published>2026-04-28T00:00:00+00:00</published>
        <updated>2026-04-28T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/nocodb/"/>
        <id>https://papyrus.z29k.com/gemshelf/nocodb/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/nocodb/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;NocoDB transforme n&#x27;importe quelle base relationnelle (MySQL, PostgreSQL, SQLite, MS SQL) en interface tableur collaborative à la Airtable. Au lieu de bricoler un Google Sheets pour gérer des données métier, tu obtiens une vraie base SQL avec une UI no-code par-dessus, et une API REST&#x2F;GraphQL générée automatiquement.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Vraie base SQL derrière&lt;&#x2F;strong&gt; : tes données restent dans Postgres ou MySQL, pas dans un format proprio. Tu peux brancher tes outils SQL existants (BI, ETL, scripts) directement.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Connexion à des bases existantes&lt;&#x2F;strong&gt; : pointe NocoDB sur une DB déjà en prod, et il génère l&#x27;UI tableur sans toucher au schéma. Pratique pour donner une interface à des non-tech.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Vues multiples&lt;&#x2F;strong&gt; : Grid, Kanban, Form, Gallery, Calendar. Chaque vue est une projection filtrée&#x2F;triée de la même table, partageable par lien public.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;API REST et webhooks intégrés&lt;&#x2F;strong&gt; : chaque table devient un endpoint CRUD documenté en Swagger. Plus besoin d&#x27;écrire un backend pour un MVP.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Self-hosted et léger&lt;&#x2F;strong&gt; : un seul conteneur Docker, fonctionne en SQLite par défaut. Zéro vendor lock-in, déploiement en cinq minutes sur un VPS.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Donner une interface tableur à une base de données métier sans coder de back-office&lt;&#x2F;li&gt;
&lt;li&gt;Remplacer Airtable pour des raisons de coût, de souveraineté ou de volume de données&lt;&#x2F;li&gt;
&lt;li&gt;Prototyper rapidement un produit avec API REST auto-générée et UI d&#x27;admin gratuite&lt;&#x2F;li&gt;
&lt;li&gt;Centraliser un CRM, un suivi de projets ou un inventaire en équipe sans passer par du SaaS&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Apache APISIX</title>
        <published>2026-04-23T00:00:00+00:00</published>
        <updated>2026-04-23T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/apisix/"/>
        <id>https://papyrus.z29k.com/gemshelf/apisix/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/apisix/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Apache APISIX est une passerelle API dynamique construite sur OpenResty&#x2F;NGINX et etcd. Elle gère le routage, l&#x27;authentification, le rate limiting, l&#x27;observabilité et le load balancing pour tes APIs et microservices, avec des mises à jour de configuration à chaud sans redémarrage. Elle sert aussi bien de reverse proxy classique que d&#x27;ingress controller Kubernetes ou d&#x27;AI gateway.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Configuration hot-reload&lt;&#x2F;strong&gt; : etcd comme backend de config, les changements de routes ou de plugins s&#x27;appliquent en millisecondes sans jamais couper le trafic.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Écosystème de plugins massif&lt;&#x2F;strong&gt; : une centaine de plugins officiels (JWT, OAuth2, rate limiting, CORS, Prometheus, OpenTelemetry, transformations de requêtes) et possibilité d&#x27;en écrire en Lua, Go, Java, Python, Node.js ou WebAssembly.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Multi-protocole natif&lt;&#x2F;strong&gt; : HTTP&#x2F;HTTPS, HTTP&#x2F;3 (QUIC), gRPC, WebSocket, TCP&#x2F;UDP, MQTT, Dubbo. Pas besoin de stack séparée pour les protocoles non-HTTP.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Performance OpenResty&lt;&#x2F;strong&gt; : basé sur NGINX + LuaJIT, des latences de l&#x27;ordre de la milliseconde et un débit qui tient face aux alternatives Go comme Kong ou Traefik.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Observabilité intégrée&lt;&#x2F;strong&gt; : métriques Prometheus, tracing distribué (Zipkin, SkyWalking, OpenTelemetry), logging vers Kafka, Loki, Elasticsearch, le tout configurable via plugins.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Ingress controller Kubernetes avec CRDs dédiés (APISIX Ingress Controller).&lt;&#x2F;li&gt;
&lt;li&gt;Passerelle d&#x27;API centrale pour exposer et sécuriser des microservices derrière un point d&#x27;entrée unique.&lt;&#x2F;li&gt;
&lt;li&gt;AI gateway pour router, authentifier et limiter l&#x27;accès à des LLMs ou agents avec des plugins spécialisés.&lt;&#x2F;li&gt;
&lt;li&gt;Reverse proxy avec canary releases, circuit breaking et service discovery (Consul, Nacos, Eureka).&lt;&#x2F;li&gt;
&lt;li&gt;Terminaison mTLS et gestion centralisée des certificats pour un parc d&#x27;APIs internes.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Authelia</title>
        <published>2026-04-23T00:00:00+00:00</published>
        <updated>2026-04-23T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/authelia/"/>
        <id>https://papyrus.z29k.com/gemshelf/authelia/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/authelia/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Authelia est un serveur d&#x27;authentification et d&#x27;autorisation open source qui se branche devant vos applications web via un reverse proxy (nginx, Traefik, Caddy, HAProxy, Envoy). Il fournit un portail SSO, de la 2FA et un fournisseur OpenID Connect pour protéger n&#x27;importe quel service self-hosted, y compris ceux qui n&#x27;ont aucune gestion d&#x27;utilisateurs native.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Transparent pour les apps&lt;&#x2F;strong&gt; : la vérification se fait au niveau du reverse proxy via forward-auth, vos services restent ignorants de l&#x27;auth.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;2FA sérieuse&lt;&#x2F;strong&gt; : TOTP, WebAuthn&#x2F;Passkeys (FIDO2) et Duo Push, pas juste des SMS.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;OpenID Connect certifié&lt;&#x2F;strong&gt; : fournisseur OIDC 1.0 &#x2F; OAuth 2.0 certifié Basic, Implicit, Hybrid, Form Post et Config OP.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Contrôle d&#x27;accès par règles&lt;&#x2F;strong&gt; : ACL fines par sous-domaine, utilisateur, groupe, URI, méthode HTTP et réseau source.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Prod-ready&lt;&#x2F;strong&gt; : backend SQL (MySQL, PostgreSQL, SQLite), Redis pour les sessions, intégrations Kubernetes et support HA.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Self-hosted et léger&lt;&#x2F;strong&gt; : un binaire Go, une image Docker, pas de SaaS intermédiaire à qui confier vos identités.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Mettre du SSO et de la 2FA devant un homelab de services self-hosted (Jellyfin, Nextcloud, Grafana, etc.).&lt;&#x2F;li&gt;
&lt;li&gt;Remplacer un Keycloak jugé trop lourd pour des besoins OIDC modestes.&lt;&#x2F;li&gt;
&lt;li&gt;Exiger WebAuthn uniquement pour les sous-domaines sensibles (admin, backups) et laisser le reste en simple login.&lt;&#x2F;li&gt;
&lt;li&gt;Centraliser l&#x27;authentification d&#x27;un cluster Kubernetes avec nginx-ingress ou Traefik.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Camoufox</title>
        <published>2026-04-23T00:00:00+00:00</published>
        <updated>2026-04-23T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/camoufox/"/>
        <id>https://papyrus.z29k.com/gemshelf/camoufox/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/camoufox/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Camoufox est un fork de Firefox conçu pour le scraping et l&#x27;automatisation web en échappant aux systèmes de détection de bots. L&#x27;outil injecte un fingerprint cohérent directement au niveau C++ du navigateur - navigator, écran, WebGL, WebRTC, fuseau horaire, géolocalisation - et applique des patchs qui masquent la présence d&#x27;outils d&#x27;automatisation comme Playwright. Il se pilote via un package Python qui gère le téléchargement du binaire et l&#x27;injection du fingerprint.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Injection au niveau C++&lt;&#x2F;strong&gt; : les propriétés usurpées (&lt;code&gt;navigator.userAgent&lt;&#x2F;code&gt;, &lt;code&gt;screen.width&lt;&#x2F;code&gt;, WebGL renderer, etc.) sont écrites dans le moteur lui-même, impossible à détecter via un override JavaScript comme avec les solutions stealth classiques&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Patchs anti-détection intégrés&lt;&#x2F;strong&gt; : les traces laissées par Playwright, Selenium et consorts sont effacées du runtime JS, &lt;code&gt;navigator.webdriver&lt;&#x2F;code&gt; et compagnie ne remontent plus&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Fingerprints cohérents&lt;&#x2F;strong&gt; : le package Python génère des profils complets (OS, GPU, résolution, fonts, timezone) qui tiennent la route face aux scripts de vérification croisée&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Mouvement souris humain&lt;&#x2F;strong&gt; : algorithme qui simule des trajectoires réalistes au lieu du tracé en ligne droite typique des bots&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Anti-fingerprinting fonts&lt;&#x2F;strong&gt; : gère proprement les fonts système pour éviter d&#x27;apparaître avec un jeu de fonts trop typique ou incohérent avec l&#x27;OS annoncé&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Build débloaté&lt;&#x2F;strong&gt; : télémétrie Firefox supprimée, empreinte mémoire réduite, pensé pour tourner en parallèle sur des VPS ou dans des containers&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Scraping de sites protégés par Cloudflare, DataDome, PerimeterX ou équivalents&lt;&#x2F;li&gt;
&lt;li&gt;Automatisation multi-comptes nécessitant des identités navigateur distinctes et crédibles&lt;&#x2F;li&gt;
&lt;li&gt;Collecte de données à large échelle pour du benchmarking ou du monitoring de prix&lt;&#x2F;li&gt;
&lt;li&gt;Tests E2E d&#x27;applications qui réagissent au fingerprinting (fraude, adtech, paywalls)&lt;&#x2F;li&gt;
&lt;li&gt;Constitution de datasets d&#x27;entraînement pour des modèles ML sans se faire filtrer en cours de route&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>GoAccess</title>
        <published>2026-04-23T00:00:00+00:00</published>
        <updated>2026-04-23T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/goaccess/"/>
        <id>https://papyrus.z29k.com/gemshelf/goaccess/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/goaccess/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;GoAccess est un analyseur de logs web en temps réel qui tourne soit dans un terminal, soit dans un navigateur via un rapport HTML auto-contenu. Tu lui files un fichier de logs Apache, Nginx, CloudFront ou à peu près n&#x27;importe quel format courant, et il te sort immédiatement un dashboard interactif avec tout ce qu&#x27;un ops veut voir : top URLs, codes HTTP, pays, user agents, bande passante, temps de réponse.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Temps réel vrai&lt;&#x2F;strong&gt; : le rapport HTML se met à jour via WebSocket (refresh en 1s), le terminal en 200ms. Pas de cron, pas de pipeline ELK à maintenir.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Une seule dépendance&lt;&#x2F;strong&gt; : ncurses. Tu compiles, tu balances un binaire, c&#x27;est fini. Rien à voir avec un stack ELK ou Loki.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Rapport HTML auto-contenu&lt;&#x2F;strong&gt; : un seul fichier HTML sans assets externes, parfait à envoyer par mail ou héberger en statique.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Gros volumes&lt;&#x2F;strong&gt; : persistance optionnelle sur disque, traitement incrémental, multi-thread via &lt;code&gt;--jobs&lt;&#x2F;code&gt;. Les logs de plusieurs Go passent sans broncher.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Zéro config&lt;&#x2F;strong&gt; : il détecte les formats courants et affiche un dashboard utile en une commande. La config fine reste dispo quand t&#x27;en as besoin.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Audit rapide d&#x27;un serveur web en SSH sans installer une stack d&#x27;observabilité&lt;&#x2F;li&gt;
&lt;li&gt;Rapport HTML statique de trafic à partager avec un client ou une équipe&lt;&#x2F;li&gt;
&lt;li&gt;Détection d&#x27;anomalies (pics de 404, bots, ASN suspects) en live sur un reverse-proxy&lt;&#x2F;li&gt;
&lt;li&gt;Monitoring léger pour des projets perso ou des VPS où Grafana&#x2F;Loki seraient overkill&lt;&#x2F;li&gt;
&lt;li&gt;Post-mortem d&#x27;incident à partir d&#x27;archives de logs&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>MarkItDown</title>
        <published>2026-04-23T00:00:00+00:00</published>
        <updated>2026-04-23T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/markitdown/"/>
        <id>https://papyrus.z29k.com/gemshelf/markitdown/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/markitdown/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;MarkItDown est un utilitaire Python open-source de Microsoft qui convertit à peu près tous les formats de documents en Markdown exploitable. PDF, Word, Excel, PowerPoint, images, audio, HTML, CSV, ZIP, EPUB, URLs YouTube : tout passe à la moulinette pour produire du texte structuré prêt à être consommé par un LLM ou un pipeline d&#x27;analyse.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Une seule lib, vingt formats&lt;&#x2F;strong&gt; : PDF, DOCX, XLSX, PPTX, HTML, CSV, JSON, XML, images, audio, ZIP, EPUB, YouTube. Fini les dix parsers différents dans votre projet.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Orienté LLM, pas humain&lt;&#x2F;strong&gt; : la conversion préserve la structure (titres, listes, tableaux, liens) sans bruit visuel. C&#x27;est du texte propre pour nourrir un contexte modèle.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;CLI + API Python&lt;&#x2F;strong&gt; : scriptable en shell pour du batch, importable dans votre code pour du traitement à la volée.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Dépendances optionnelles&lt;&#x2F;strong&gt; : vous installez uniquement les formats dont vous avez besoin (&lt;code&gt;pip install markitdown[pdf,docx]&lt;&#x2F;code&gt;), le reste reste léger.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Extensible&lt;&#x2F;strong&gt; : OCR via Azure Document Intelligence, descriptions d&#x27;images générées par GPT-4o, système de plugins tiers. Les gros cas d&#x27;usage ont une réponse.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Préparer un corpus documentaire hétérogène pour un RAG ou un fine-tuning&lt;&#x2F;li&gt;
&lt;li&gt;Convertir des rapports Excel&#x2F;PowerPoint en Markdown avant ingestion dans un index vectoriel&lt;&#x2F;li&gt;
&lt;li&gt;Extraire le texte de transcriptions audio ou d&#x27;images scannées pour analyse&lt;&#x2F;li&gt;
&lt;li&gt;Normaliser des pièces jointes d&#x27;emails en un format unique côté backend&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Outline</title>
        <published>2026-04-23T00:00:00+00:00</published>
        <updated>2026-04-23T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/outline/"/>
        <id>https://papyrus.z29k.com/gemshelf/outline/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/outline/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Outline est une base de connaissances collaborative pensée pour les équipes qui veulent arrêter d&#x27;empiler docs perdus dans Google Drive et threads Slack. Éditeur markdown rapide, édition multi-utilisateurs en temps réel, recherche IA, permissions granulaires - le tout en self-hosting possible ou en SaaS managé. Une alternative sérieuse à Notion ou Confluence, sans le lock-in.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Éditeur rapide et markdown-first&lt;&#x2F;strong&gt; : slash commands, embeds interactifs, raccourcis clavier. Écrire reste fluide, et tu peux exporter en markdown propre à tout moment.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Collaboration temps réel&lt;&#x2F;strong&gt; : édition multiplayer façon Google Docs, commentaires threadés et mentions. Les conversations restent attachées au contenu, pas éparpillées sur Slack.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Recherche IA intégrée&lt;&#x2F;strong&gt; : pose une question en langage naturel, Outline cherche dans tout le workspace et répond en citant les docs sources. Utile quand la base commence à grossir.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Permissions sérieuses&lt;&#x2F;strong&gt; : groupes d&#x27;utilisateurs, invités, partages publics, accès lecture&#x2F;écriture par collection ou document. De quoi gérer une vraie hiérarchie d&#x27;équipe sans bidouiller.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Self-hosting first-class&lt;&#x2F;strong&gt; : Docker, domaines custom, white-label avec logo et couleurs de marque. Le code est sur GitHub (stack React + Node.js) et l&#x27;API ouverte permet de brancher ce que tu veux.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Wiki interne pour une équipe tech : onboarding, runbooks, décisions d&#x27;architecture&lt;&#x2F;li&gt;
&lt;li&gt;Documentation produit partagée entre dev, support et marketing avec permissions différenciées&lt;&#x2F;li&gt;
&lt;li&gt;Base de connaissances self-hostée pour une boîte qui veut garder ses données on-premise&lt;&#x2F;li&gt;
&lt;li&gt;Remplacement de Confluence ou Notion sans dépendre d&#x27;un SaaS fermé&lt;&#x2F;li&gt;
&lt;li&gt;Hub de documentation publique (docs produit, handbook) grâce aux partages publics et au white-label&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Polar</title>
        <published>2026-04-23T00:00:00+00:00</published>
        <updated>2026-04-23T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/polar/"/>
        <id>https://papyrus.z29k.com/gemshelf/polar/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/polar/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Polar est une plateforme open source qui permet à un développeur de vendre ses produits numériques - SaaS, abonnements, téléchargements, accès Discord, clés de licence, dépôts GitHub privés - sans se taper la plomberie du paiement. Polar agit comme Merchant of Record : c&#x27;est eux qui encaissent, émettent les factures et déclarent la TVA&#x2F;sales tax au bon endroit dans le monde. Toi, tu branches le SDK, tu définis ton produit, et tu reçois l&#x27;argent.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Merchant of Record global&lt;&#x2F;strong&gt; : Polar gère TVA européenne, sales tax américaine, factures conformes et remboursements - tu n&#x27;as plus à monter un montage fiscal par pays pour vendre à l&#x27;international&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Open source et auditable&lt;&#x2F;strong&gt; : code sous licence Apache-2.0, backend Python&#x2F;FastAPI et frontend TypeScript&#x2F;Next.js - tu peux lire exactement comment tes paiements transitent&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Pricing simple&lt;&#x2F;strong&gt; : 4 % + 0,40 $ par transaction, zéro frais fixe mensuel - tu ne paies que quand tu vends, contrairement aux stacks Stripe Billing + gestionnaire de TVA empilés&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Produits numériques natifs&lt;&#x2F;strong&gt; : vente de clés de licence, accès à des dépôts GitHub privés, rôles Discord, fichiers téléchargeables - les cas d&#x27;usage classiques du dev indie sont intégrés&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;SDKs et webhooks propres&lt;&#x2F;strong&gt; : intégration via SDK officiels, checkout hébergé ou API directe - tu gardes la main sur l&#x27;UX sans te coltiner PCI-DSS&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Alternative crédible à Lemon Squeezy &#x2F; Paddle&lt;&#x2F;strong&gt; : même modèle Merchant of Record, mais avec un code ouvert et une politique claire de reversement&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Monétiser un SaaS solo ou en petite équipe sans monter une entité fiscale par juridiction&lt;&#x2F;li&gt;
&lt;li&gt;Vendre des licences logicielles, des templates, des ebooks ou des cours en ligne avec TVA gérée automatiquement&lt;&#x2F;li&gt;
&lt;li&gt;Gérer des abonnements récurrents (mensuel, annuel, usage-based) sur un projet open source ou un side-project&lt;&#x2F;li&gt;
&lt;li&gt;Distribuer du contenu premium via GitHub (repos privés) ou Discord (rôles payants) de façon transparente&lt;&#x2F;li&gt;
&lt;li&gt;Remplacer une stack Stripe + gestionnaire de TVA + facturation maison par une seule intégration&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>CrowdSec</title>
        <published>2026-04-22T00:00:00+00:00</published>
        <updated>2026-04-22T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/crowdsec/"/>
        <id>https://papyrus.z29k.com/gemshelf/crowdsec/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/crowdsec/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;CrowdSec est un moteur de sécurité open source qui joue le rôle d&#x27;IDS&#x2F;IPS et de WAF. Il analyse les logs de tes services (SSH, nginx, applicatifs…), détecte les patterns malveillants et déclenche des remédiations via des bouncers déployés sur firewall, reverse proxy ou cloud. Au-delà de la détection locale, chaque instance remonte (anonymement) les IP agressives à un réseau communautaire qui redistribue une blocklist de menaces réelles.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Détection découplée de la remédiation&lt;&#x2F;strong&gt; : le moteur lit les logs sur une machine, les bouncers bloquent ailleurs. Parfait pour une archi distribuée ou un reverse proxy mutualisé.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Hub de scénarios et parsers&lt;&#x2F;strong&gt; : bibliothèque communautaire de règles prêtes à l&#x27;emploi (bruteforce SSH, scan de ports, exploits web, scrapers agressifs) installable en une commande.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Blocklist communautaire&lt;&#x2F;strong&gt; : tu bénéficies d&#x27;IP déjà signalées par d&#x27;autres instances avant même d&#x27;avoir été attaqué. Effet réseau réel, pas marketing.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Bouncers partout&lt;&#x2F;strong&gt; : iptables, nftables, Traefik, nginx, Cloudflare, AWS WAF, Caddy, HAProxy, Kubernetes… plus de 30 intégrations officielles.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Léger et scriptable&lt;&#x2F;strong&gt; : binaire Go unique, API locale, CLI &lt;code&gt;cscli&lt;&#x2F;code&gt; claire, configuration YAML. Tourne aussi bien sur un VPS qu&#x27;en cluster.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Console gratuite&lt;&#x2F;strong&gt; : dashboard web pour visualiser alertes, décisions et instances multi-machines, sans auto-hébergement de Grafana.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Protéger un serveur SSH exposé contre les tentatives de bruteforce distribuées.&lt;&#x2F;li&gt;
&lt;li&gt;Filtrer le trafic d&#x27;un reverse proxy (Traefik, nginx) face aux scanners et bots agressifs.&lt;&#x2F;li&gt;
&lt;li&gt;Bloquer des IP malveillantes connues en amont d&#x27;une application web auto-hébergée.&lt;&#x2F;li&gt;
&lt;li&gt;Centraliser la détection sur plusieurs VPS et partager les décisions via une instance LAPI commune.&lt;&#x2F;li&gt;
&lt;li&gt;Remplacer ou compléter fail2ban avec une approche plus moderne, multi-source et partagée.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Fleet</title>
        <published>2026-04-22T00:00:00+00:00</published>
        <updated>2026-04-22T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/fleet/"/>
        <id>https://papyrus.z29k.com/gemshelf/fleet/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/fleet/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Fleet est une plateforme open source de gestion de parc (MDM + visibilité) pour macOS, Windows, Linux, iOS, Android et Chromebooks. Elle s&#x27;appuie sur osquery pour interroger l&#x27;état des machines en temps réel et combine configuration, conformité, inventaire logiciel et remédiation dans un seul outil pilotable via UI, API ou GitOps.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Multi-OS dans une seule console&lt;&#x2F;strong&gt; : macOS, Windows, Linux, iOS, Android et ChromeOS gérés avec les mêmes workflows - fini les silos entre équipes IT et sécurité.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;API-first et GitOps&lt;&#x2F;strong&gt; : toute la configuration (profils, scripts, politiques) se décrit en YAML, versionné dans Git, appliqué via pipeline. Zéro clic obligatoire.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Basé sur osquery&lt;&#x2F;strong&gt; : 300+ tables SQL pour interroger n&#x27;importe quel hôte. Inventaire matériel, logiciel, processus, vulnérabilités - tout est requêtable.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Léger et modulaire&lt;&#x2F;strong&gt; : les fonctionnalités (MDM, vulnerability management, posture) s&#x27;activent indépendamment. On déploie ce qu&#x27;on utilise.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Intégrations entreprise&lt;&#x2F;strong&gt; : connecteurs natifs Snowflake, Splunk, Elastic, Jira, Zendesk, Vanta, GitHub Actions. Cohabite avec CrowdStrike, SentinelOne, Munki, Ansible.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Inventorier et auditer un parc hétérogène (laptops employés, serveurs prod, IoT) avec une source de vérité unique&lt;&#x2F;li&gt;
&lt;li&gt;Appliquer des benchmarks CIS macOS&#x2F;Windows et générer des rapports de conformité (SOC 2, ISO 27001)&lt;&#x2F;li&gt;
&lt;li&gt;Remonter les vulnérabilités logicielles par hôte et prioriser la remédiation via scripts centralisés&lt;&#x2F;li&gt;
&lt;li&gt;Piloter le cycle de vie MDM (enrôlement, profils, effacement à distance) sur Apple et Windows avec workflow GitOps&lt;&#x2F;li&gt;
&lt;li&gt;Détection et threat hunting en interrogeant le parc en SQL via osquery depuis le SOC&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>ConvertX</title>
        <published>2026-04-20T00:00:00+00:00</published>
        <updated>2026-04-20T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/convertx/"/>
        <id>https://papyrus.z29k.com/gemshelf/convertx/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/convertx/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;ConvertX est un convertisseur de fichiers self-hosted qui prend en charge plus de 1000 formats. Il fait l&#x27;agrégation propre d&#x27;une dizaine de moteurs de conversion bien connus (FFmpeg, ImageMagick, Pandoc, LibreOffice, Calibre, Inkscape...) derrière une interface web minimaliste, avec multi-utilisateurs et traitement par lots. L&#x27;idée : ne plus dépendre d&#x27;un site louche pour convertir un PDF en EPUB ou un MKV en MP4.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Couverture absurdement large&lt;&#x2F;strong&gt; : ~472 formats d&#x27;entrée et ~199 de sortie rien que pour la partie vidéo via FFmpeg, plus 245&#x2F;183 pour les images via ImageMagick, plus Pandoc pour les documents, Calibre pour les e-books, Inkscape pour le vectoriel.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Stack moderne et légère&lt;&#x2F;strong&gt; : Bun + Elysia + TypeScript, pas de bloat. Le runtime Bun fait tourner le serveur web et le SSR sans surcouche, l&#x27;image Docker reste raisonnable.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Self-hosted = privacy&lt;&#x2F;strong&gt; : tes fichiers ne quittent pas ta machine. Adieu les services en ligne qui gardent une copie ou bourrent leurs pages de pubs douteuses.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Multi-user avec auth&lt;&#x2F;strong&gt; : comptes utilisateurs, protection par mot de passe, tu peux exposer l&#x27;instance à toute ta famille ou ton équipe sans tout mélanger.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Batch processing&lt;&#x2F;strong&gt; : balance 50 fichiers d&#x27;un coup et récupère le ZIP. Parfait pour les conversions répétitives.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Déploiement Docker trivial&lt;&#x2F;strong&gt; : image officielle sur GHCR et Docker Hub, un &lt;code&gt;docker run&lt;&#x2F;code&gt; et c&#x27;est en l&#x27;air.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Convertir massivement des photos HEIC d&#x27;iPhone en JPEG sans passer par un service tiers.&lt;&#x2F;li&gt;
&lt;li&gt;Transcoder une bibliothèque vidéo (MKV → MP4) sans lancer FFmpeg en CLI à chaque fois.&lt;&#x2F;li&gt;
&lt;li&gt;Convertir des e-books EPUB → MOBI&#x2F;AZW3 pour Kindle, ou PDF → EPUB pour liseuses Kobo.&lt;&#x2F;li&gt;
&lt;li&gt;Déployer un convertisseur interne pour une équipe (marketing, doc, support) qui n&#x27;aime pas la ligne de commande.&lt;&#x2F;li&gt;
&lt;li&gt;Remplacer cloudconvert.com et autres SaaS payants ou intrusifs par une instance perso.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>GeoNames</title>
        <published>2026-04-20T00:00:00+00:00</published>
        <updated>2026-04-20T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/geonames/"/>
        <id>https://papyrus.z29k.com/gemshelf/geonames/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/geonames/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;GeoNames est une base de données géographique mondiale qui recense plus de 11 millions de toponymes (villes, lieux-dits, points d&#x27;intérêt) couvrant l&#x27;ensemble des pays. Les données sont téléchargeables librement sous licence Creative Commons Attribution 4.0, et une API REST complète permet de faire du géocodage, du reverse geocoding ou des recherches de proximité sans monter sa propre infra.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Couverture mondiale&lt;&#x2F;strong&gt; : 11M+ de toponymes, 250+ pays, noms traduits en plusieurs langues, hiérarchies administratives complètes (pays → région → ville → quartier).&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Dumps libres&lt;&#x2F;strong&gt; : fichiers &lt;code&gt;allCountries.zip&lt;&#x2F;code&gt;, codes postaux, hiérarchies et shapes disponibles en téléchargement direct sous CC BY 4.0, mise à jour quotidienne.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;API REST gratuite&lt;&#x2F;strong&gt; : web services pour le géocodage, le reverse geocoding, la recherche par coordonnées, les fuseaux horaires, l&#x27;élévation et même les articles Wikipedia géolocalisés - 10 000 crédits par jour et par application.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Formats flexibles&lt;&#x2F;strong&gt; : réponses en JSON, XML ou RDF, plus des client libraries officielles pour la plupart des langages mainstream.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Intégration simple&lt;&#x2F;strong&gt; : un compte gratuit suffit pour obtenir un username à passer en query param, pas de clé d&#x27;API complexe à gérer.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Géocodage et reverse geocoding de masse sans dépendre de Google Maps ou Mapbox.&lt;&#x2F;li&gt;
&lt;li&gt;Autocomplétion de formulaires d&#x27;adresses avec propositions multilingues.&lt;&#x2F;li&gt;
&lt;li&gt;Enrichissement de données : récupérer fuseau horaire, pays, région ou population à partir de coordonnées.&lt;&#x2F;li&gt;
&lt;li&gt;Construction de cartes ou de moteurs de recherche géo en auto-hébergeant les dumps dans Postgres&#x2F;Elasticsearch.&lt;&#x2F;li&gt;
&lt;li&gt;Validation et normalisation de codes postaux à l&#x27;échelle internationale.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>MarkEdit</title>
        <published>2026-04-20T00:00:00+00:00</published>
        <updated>2026-04-20T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/markedit/"/>
        <id>https://papyrus.z29k.com/gemshelf/markedit/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/markedit/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;MarkEdit est un éditeur Markdown natif macOS qui reprend l&#x27;esprit minimaliste de TextEdit, mais dédié exclusivement au Markdown. L&#x27;app pèse 4 MB, gère sans broncher des fichiers jusqu&#x27;à 10 MB, et ne collecte aucune donnée utilisateur. Une alternative sobre aux usines à gaz comme Typora ou Obsidian quand tu veux juste écrire.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Natif macOS&lt;&#x2F;strong&gt; : UI Cocoa propre, intégration système complète - force-touch pour la recherche de mots, Services, Shortcuts et AppleScript.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Léger et rapide&lt;&#x2F;strong&gt; : 4 MB sur disque, ouverture instantanée, même sur des fichiers lourds. Pas d&#x27;Electron, pas de ralentissement.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Extensibilité réelle&lt;&#x2F;strong&gt; : injection de CSS et JavaScript personnalisés, plus extensions CodeMirror 6 pour adapter l&#x27;éditeur à tes besoins.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Fonctionnalités pro&lt;&#x2F;strong&gt; : multi-caret, code folding, conformité stricte GFM, support des tableaux, prévisualisation math et diagrammes.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Confidentialité par défaut&lt;&#x2F;strong&gt; : zéro télémétrie, zéro compte, zéro cloud - c&#x27;est juste un éditeur de texte qui respecte ton disque dur.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Écrire des README, notes et documentation technique sans quitter l&#x27;écosystème macOS natif.&lt;&#x2F;li&gt;
&lt;li&gt;Remplacer TextEdit comme éditeur par défaut pour les fichiers &lt;code&gt;.md&lt;&#x2F;code&gt; avec une vraie coloration syntaxique.&lt;&#x2F;li&gt;
&lt;li&gt;Bidouiller l&#x27;apparence et le comportement de l&#x27;éditeur via CSS&#x2F;JS sans attendre qu&#x27;un plugin officiel existe.&lt;&#x2F;li&gt;
&lt;li&gt;Automatiser l&#x27;édition de fichiers Markdown via Shortcuts ou AppleScript dans des workflows macOS.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>msgvault</title>
        <published>2026-04-20T00:00:00+00:00</published>
        <updated>2026-04-20T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/msgvault/"/>
        <id>https://papyrus.z29k.com/gemshelf/msgvault/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/msgvault/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;msgvault aspire l&#x27;intégralité de tes emails (Gmail, IMAP, MBOX, Apple Mail) et messages (WhatsApp, iMessage, Google Voice) dans une archive locale, puis te laisse tout explorer offline via une TUI, du SQL DuckDB ou un serveur MCP. L&#x27;idée : tes communications t&#x27;appartiennent, donc elles vivent sur ton disque, pas chez un provider.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;100% offline après sync&lt;&#x2F;strong&gt; : une fois la base remplie, plus besoin de réseau. Recherche, analytics et requêtes IA tournent en local.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Stack taillée pour la volumétrie&lt;&#x2F;strong&gt; : SQLite avec FTS5 pour la recherche plein-texte style Gmail, Parquet + DuckDB pour les analytics sur des centaines de milliers de messages.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;TUI très rapide&lt;&#x2F;strong&gt; : interface terminal interactive pour naviguer dans l&#x27;archive sans latence, même sur des corpus massifs.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Sync incrémentale intelligente&lt;&#x2F;strong&gt; : s&#x27;appuie sur la Gmail History API, donc pas de re-download complet à chaque run.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Intégration IA native&lt;&#x2F;strong&gt; : un serveur MCP expose l&#x27;archive à Claude Desktop ou autre client, pour des requêtes sémantiques sur toute ta correspondance.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Multi-comptes et dedup&lt;&#x2F;strong&gt; : plusieurs boîtes dans une même base, pièces jointes déduplication par SHA-256.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Backup complet d&#x27;une boîte Gmail avant migration ou fermeture de compte.&lt;&#x2F;li&gt;
&lt;li&gt;Recherche historique sur 10+ ans de mails sans dépendre de l&#x27;UI du provider.&lt;&#x2F;li&gt;
&lt;li&gt;Analytics personnelles : top expéditeurs, volume par période, extraction de pièces jointes.&lt;&#x2F;li&gt;
&lt;li&gt;Alimenter un assistant IA avec ton historique de messages via MCP pour retrouver du contexte.&lt;&#x2F;li&gt;
&lt;li&gt;Consolider des exports disparates (MBOX, emlx, WhatsApp, iMessage) dans un référentiel unique.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>OpenPanel</title>
        <published>2026-04-20T00:00:00+00:00</published>
        <updated>2026-04-20T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/openpanel/"/>
        <id>https://papyrus.z29k.com/gemshelf/openpanel/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/openpanel/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;OpenPanel est un panneau de contrôle d&#x27;hébergement web qui colle chaque utilisateur dans son propre conteneur Docker, avec son serveur web, sa base de données et ses versions PHP. L&#x27;idée : offrir une expérience proche d&#x27;un VPS sans avoir à provisionner un VPS par client. Une alternative sérieuse à cPanel et CyberPanel pour les hébergeurs qui veulent de l&#x27;isolation sans payer la licence WHM.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Isolation par conteneur&lt;&#x2F;strong&gt; : chaque compte tourne dans son propre Docker, avec ses limites de ressources et ses services indépendants. Fini les voisins bruyants.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Stack web au choix&lt;&#x2F;strong&gt; : Nginx, Apache ou OpenLitespeed, avec plusieurs versions de PHP cohabitant sans se marcher dessus.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Facturation branchée&lt;&#x2F;strong&gt; : intégrations natives avec FOSSBilling, WHMCS et Blesta pour transformer un serveur en offre d&#x27;hébergement facturable.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Migration assistée&lt;&#x2F;strong&gt; : import de comptes depuis cPanel et CyberPanel, pour ne pas repartir de zéro.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;OpenAdmin + OpenPanel UI&lt;&#x2F;strong&gt; : deux interfaces distinctes, une pour l&#x27;admin serveur, une pour les clients finaux, avec logs d&#x27;activité et gestion des sauvegardes.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Hébergeur mutualisé qui veut des conteneurs isolés sans basculer sur une offre VPS&lt;&#x2F;li&gt;
&lt;li&gt;Migration depuis cPanel ou CyberPanel vers une stack Docker moderne&lt;&#x2F;li&gt;
&lt;li&gt;Plateforme white-label avec facturation intégrée via FOSSBilling ou WHMCS&lt;&#x2F;li&gt;
&lt;li&gt;Environnement multi-tenant où chaque client pilote ses propres services web et bases&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Agent Reach</title>
        <published>2026-04-17T00:00:00+00:00</published>
        <updated>2026-04-17T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/agent-reach/"/>
        <id>https://papyrus.z29k.com/gemshelf/agent-reach/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/agent-reach/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Agent Reach est un scaffolding CLI qui branche ton agent IA sur le web public - Twitter&#x2F;X, Reddit, YouTube, Bilibili, GitHub, Xiaohongshu, Douyin, LinkedIn, WeChat, Weibo, RSS - sans t&#x27;obliger à payer une seule API officielle. Le projet n&#x27;invente rien côté scraping : il orchestre des outils éprouvés de l&#x27;écosystème (yt-dlp, Jina Reader, twitter-cli, rdt-cli, gh, feedparser, Exa…) derrière une couche unifiée pensée pour les agents.&lt;&#x2F;p&gt;
&lt;p&gt;L&#x27;installation tient en une commande (&lt;code&gt;agent-reach install&lt;&#x2F;code&gt;), qui détecte l&#x27;environnement et tire les dépendances système. Les coding assistants (Claude Code, Cursor, Codex…) l&#x27;adoptent ensuite comme n&#x27;importe quelle CLI, ou via MCP grâce à &lt;code&gt;mcporter&lt;&#x2F;code&gt;.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Zéro API payante&lt;&#x2F;strong&gt; : Pas de clé Twitter à 100 $&#x2F;mois, pas de YouTube Data API à quota. Les outils sous-jacents parlent directement aux sites publics, gratuitement.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Couverture asiatique&lt;&#x2F;strong&gt; : Bilibili, Xiaohongshu, Douyin, WeChat, Weibo. Rare dans les projets occidentaux, précieux pour de la veille produit ou concurrentielle en Chine.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Une seule surface pour l&#x27;agent&lt;&#x2F;strong&gt; : Ton LLM n&#x27;a pas à apprendre dix SDK différents. Il apprend un verbe (&lt;code&gt;read&lt;&#x2F;code&gt;, &lt;code&gt;search&lt;&#x2F;code&gt;, &lt;code&gt;watch&lt;&#x2F;code&gt;) et une liste de plateformes.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Installation autonome&lt;&#x2F;strong&gt; : Tu donnes l&#x27;URL d&#x27;install à ton agent, il se débrouille seul pour poser les binaires (yt-dlp, gh, twitter-cli…) et les configurer.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Stack Python ouverte&lt;&#x2F;strong&gt; : Licence MIT, 100 % Python, facile à forker ou à étendre pour brancher une nouvelle plateforme.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Pont MCP intégré&lt;&#x2F;strong&gt; : Avec &lt;code&gt;mcporter&lt;&#x2F;code&gt;, la CLI s&#x27;expose comme serveur Model Context Protocol et devient consommable par n&#x27;importe quel client MCP.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Veille produit et concurrentielle multi-plateformes pilotée par un agent&lt;&#x2F;li&gt;
&lt;li&gt;Extraction de transcripts YouTube ou Bilibili pour alimenter un pipeline RAG&lt;&#x2F;li&gt;
&lt;li&gt;Monitoring de threads Reddit, tweets ou posts LinkedIn sur un sujet donné&lt;&#x2F;li&gt;
&lt;li&gt;Recherche sémantique sur le web via Exa, intégrée à un agent de recherche&lt;&#x2F;li&gt;
&lt;li&gt;Collecte de contenus RSS et WeChat pour des résumés quotidiens automatisés&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>SMS Gateway for Android</title>
        <published>2026-04-17T00:00:00+00:00</published>
        <updated>2026-04-17T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/android-sms-gateway/"/>
        <id>https://papyrus.z29k.com/gemshelf/android-sms-gateway/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/android-sms-gateway/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Une app Android qui transforme ton vieux smartphone en passerelle SMS pilotable par API. Tu envoies une requête HTTP, le téléphone envoie le SMS via sa SIM. Les messages entrants sont remontés en temps réel via webhook. Aucune inscription, aucun intermédiaire.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Zéro dépendance à un provider&lt;&#x2F;strong&gt; : tu utilises ton propre forfait mobile au lieu de payer Twilio, Vonage ou OVH au SMS unitaire.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Trois modes de déploiement&lt;&#x2F;strong&gt; : serveur local (LAN&#x2F;VPN), serveur cloud privé (auto-hébergeable), ou cloud public hébergé par les mainteneurs.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Chiffrement bout-en-bout&lt;&#x2F;strong&gt; : contenu des messages et numéros de téléphone chiffrés côté client avant transit.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Webhooks natifs&lt;&#x2F;strong&gt; : réception en temps réel des SMS entrants, statuts de livraison, notifications MMS.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Multi-SIM et multi-device&lt;&#x2F;strong&gt; : orchestre plusieurs téléphones, choisis quelle SIM envoie quel message, gère les messages multipart.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Authentification à deux facteurs (2FA) via SMS sans passer par un service payant&lt;&#x2F;li&gt;
&lt;li&gt;Notifications transactionnelles pour un SaaS qui débute et veut maîtriser ses coûts&lt;&#x2F;li&gt;
&lt;li&gt;Rappels de rendez-vous pour un cabinet médical, un garage ou un coiffeur&lt;&#x2F;li&gt;
&lt;li&gt;Collecte de feedback ou enquêtes SMS sur des marchés où le SMS reste dominant&lt;&#x2F;li&gt;
&lt;li&gt;Recyclage utile d&#x27;un vieil Android qui dort dans un tiroir&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>OpenSEO</title>
        <published>2026-04-17T00:00:00+00:00</published>
        <updated>2026-04-17T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/open-seo/"/>
        <id>https://papyrus.z29k.com/gemshelf/open-seo/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/open-seo/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;OpenSEO est une plateforme SEO open source et self-hostable qui regroupe recherche de mots-clés, suivi de positions, analyse de domaines, monitoring de backlinks et audits techniques. Plutôt que payer un abonnement mensuel à Ahrefs ou Semrush, tu branches ta propre clé DataForSEO et tu ne paies que la consommation réelle de l&#x27;API.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Pay-as-you-go au lieu d&#x27;abonnement&lt;&#x2F;strong&gt; : l&#x27;outil est gratuit, tu payes juste les requêtes API DataForSEO que tu consommes (de quelques dollars à quelques dizaines selon ton usage).&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Self-hosted par défaut&lt;&#x2F;strong&gt; : deux chemins de déploiement officiels, Docker pour démarrer vite et Cloudflare Workers pour une installation edge multi-utilisateurs.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Couverture SEO complète&lt;&#x2F;strong&gt; : research, rank tracking (desktop + mobile avec détection des SERP features), domain insights, backlinks et site audits dans une seule interface.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Stack moderne et lisible&lt;&#x2F;strong&gt; : TypeScript, Drizzle ORM, Vite et Vitest - facile à forker, à lire et à personnaliser pour ajouter ses propres workflows.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Version SaaS managée dispo&lt;&#x2F;strong&gt; : si tu veux éviter l&#x27;ops, openseo.so propose la même chose avec backups automatiques, sans lock-in sur le format des données.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Suivre les positions de ses mots-clés cibles sans payer 100+ €&#x2F;mois à un SaaS SEO.&lt;&#x2F;li&gt;
&lt;li&gt;Lancer des audits techniques réguliers sur ses sites clients depuis une instance auto-hébergée.&lt;&#x2F;li&gt;
&lt;li&gt;Construire des rapports SEO automatisés en branchant l&#x27;API DataForSEO via une interface contrôlée.&lt;&#x2F;li&gt;
&lt;li&gt;Démarrer en freelance SEO avec un coût variable plutôt qu&#x27;un abonnement fixe.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Crawlee</title>
        <published>2026-04-15T00:00:00+00:00</published>
        <updated>2026-04-15T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/crawlee/"/>
        <id>https://papyrus.z29k.com/gemshelf/crawlee/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/crawlee/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Crawlee est le framework Node.js&#x2F;TypeScript d&#x27;Apify pour construire des crawlers web qui tiennent la route. Il unifie derrière une seule API le scraping HTTP classique (Cheerio, JSDOM) et l&#x27;automatisation navigateur (Playwright, Puppeteer). L&#x27;objectif : produire des scrapers qui ressemblent à de vrais utilisateurs et passent au travers des protections anti-bot modernes sans bricolage maison.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;API unifiée HTTP et headless&lt;&#x2F;strong&gt; : Même logique de routing, même gestion de queue, que vous tapiez du Cheerio ou du Playwright. Changer de moteur devient une décision d&#x27;implémentation, pas un rewrite.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Anti-détection par défaut&lt;&#x2F;strong&gt; : Empreintes TLS réalistes, headers navigateur cohérents, rotation de sessions et de proxies. Les configurations par défaut sont pensées pour ne pas se faire jeter par Cloudflare ou DataDome.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Queue persistante intelligente&lt;&#x2F;strong&gt; : Requêtes dédupliquées automatiquement, parcours BFS&#x2F;DFS au choix, reprise après crash. L&#x27;état du crawl survit aux interruptions.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Autoscaling natif&lt;&#x2F;strong&gt; : Le framework ajuste la concurrence en fonction du CPU et de la RAM disponibles. Pas besoin de benchmarker manuellement, il s&#x27;adapte au matériel.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;TypeScript first&lt;&#x2F;strong&gt; : Types complets, autocomplete IDE solide, intégration propre dans des projets Node modernes. Le CLI scaffolde un projet prêt à l&#x27;emploi.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Écosystème Apify&lt;&#x2F;strong&gt; : Même si la lib tourne en local, elle se déploie sans friction sur la plateforme Apify pour de la production managée si besoin.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Scraping de sites JavaScript-heavy qui nécessitent un vrai moteur navigateur&lt;&#x2F;li&gt;
&lt;li&gt;Collecte massive de données pour entraîner des LLMs ou alimenter des pipelines RAG&lt;&#x2F;li&gt;
&lt;li&gt;Monitoring de prix, de stocks ou de contenus sur des catalogues e-commerce&lt;&#x2F;li&gt;
&lt;li&gt;Extraction structurée depuis des SaaS qui n&#x27;exposent pas d&#x27;API publique&lt;&#x2F;li&gt;
&lt;li&gt;Veille concurrentielle automatisée avec déduplication et reprise sur incident&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Dify</title>
        <published>2026-04-15T00:00:00+00:00</published>
        <updated>2026-04-15T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/dify/"/>
        <id>https://papyrus.z29k.com/gemshelf/dify/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/dify/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Dify est une plateforme open-source pour développer des applications basées sur des LLM. Elle combine un éditeur visuel de workflows, un pipeline RAG, la création d&#x27;agents et la gestion multi-modèles dans une interface unique. L&#x27;objectif : réduire le temps entre un prototype et une mise en production tout en gardant la main sur les données et l&#x27;infra.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Canvas visuel&lt;&#x2F;strong&gt; : Construire et tester des workflows IA sur un canvas, sans écrire de code pour chaque itération. Les devs peuvent toujours plonger dans les APIs quand c&#x27;est nécessaire.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;RAG solide&lt;&#x2F;strong&gt; : Pipeline d&#x27;ingestion de documents (PDF, docs, etc.) avec extraction, chunking et recherche vectorielle intégrés. Utilisable sans monter une stack maison.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Agnostique aux modèles&lt;&#x2F;strong&gt; : Intégration de centaines de LLM propriétaires et open-source (OpenAI, Anthropic, Mistral, Llama, Ollama...). On change de fournisseur sans réécrire l&#x27;app.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Agents avec tools&lt;&#x2F;strong&gt; : Création d&#x27;agents ReAct ou function-calling avec 50+ outils intégrés (recherche web, calculs, APIs). Extensible via des tools custom.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Backend-as-a-Service&lt;&#x2F;strong&gt; : Expose des APIs prêtes pour brancher une app front ou un chatbot. Pas besoin d&#x27;écrire le serveur d&#x27;orchestration.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;LLMOps intégré&lt;&#x2F;strong&gt; : Logs, traces, analyses de coûts et de performance. Observabilité built-in pour debugger et itérer sur les prompts.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Monter un chatbot interne branché sur la doc d&#x27;entreprise (RAG) en quelques heures.&lt;&#x2F;li&gt;
&lt;li&gt;Prototyper des agents multi-étapes avant d&#x27;industrialiser en code.&lt;&#x2F;li&gt;
&lt;li&gt;Comparer plusieurs LLM sur le même workflow pour choisir le meilleur ratio coût&#x2F;qualité.&lt;&#x2F;li&gt;
&lt;li&gt;Exposer une API IA à des équipes produit sans rebuild à chaque changement de prompt.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Hermes Agent</title>
        <published>2026-04-15T00:00:00+00:00</published>
        <updated>2026-04-15T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/hermes-agent/"/>
        <id>https://papyrus.z29k.com/gemshelf/hermes-agent/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/hermes-agent/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Hermes Agent est un agent IA auto-améliorant développé par Nous Research. Il tourne dans un terminal, se connecte aux messageries (Telegram, Discord, Slack, WhatsApp, Signal) et possède une boucle d&#x27;apprentissage qui crée et affine ses propres skills à partir de l&#x27;expérience. L&#x27;idée : un agent qui devient plus utile à chaque interaction, déployable d&#x27;un VPS à 5€&#x2F;mois jusqu&#x27;à un cluster GPU.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Boucle d&#x27;apprentissage autonome&lt;&#x2F;strong&gt; : l&#x27;agent construit ses propres skills, les améliore à l&#x27;usage et retrouve du contexte dans les conversations passées.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Agnostique côté LLM&lt;&#x2F;strong&gt; : Nous Portal, OpenRouter, OpenAI, Hugging Face ou endpoint custom, tu choisis ton backend.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Déploiement flexible&lt;&#x2F;strong&gt; : local, Docker, SSH, VPS, cluster GPU ou serverless (Daytona, Modal).&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Multi-canal natif&lt;&#x2F;strong&gt; : TUI riche avec édition multiligne et autocomplétion, doublée d&#x27;un bridge vers les messageries grand public.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Automatisation intégrée&lt;&#x2F;strong&gt; : scheduler cron pour les tâches non supervisées et subagents parallèles pour paralléliser le boulot.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Assistant perso multi-device accessible depuis Telegram ou Signal, avec mémoire persistante entre sessions.&lt;&#x2F;li&gt;
&lt;li&gt;Pipeline de veille automatisé via cron : résumés quotidiens, monitoring, rapports.&lt;&#x2F;li&gt;
&lt;li&gt;Banc d&#x27;essai pour tester plusieurs providers LLM sur les mêmes workflows sans réécrire le code.&lt;&#x2F;li&gt;
&lt;li&gt;Agent qui accumule un capital de skills spécifiques à un métier ou à un projet sur la durée.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Formbricks</title>
        <published>2026-04-13T00:00:00+00:00</published>
        <updated>2026-04-13T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/formbricks/"/>
        <id>https://papyrus.z29k.com/gemshelf/formbricks/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/formbricks/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Formbricks est une plateforme open source de sondages et de collecte de feedback utilisateur. Elle permet de créer des enquêtes ciblées et de les déployer sur plusieurs canaux : in-app, site web, email ou via un lien partageable. Le tout sans toucher au code, grâce à un éditeur no-code et un système de déclenchement basé sur les événements utilisateur.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Alternative crédible à Qualtrics&lt;&#x2F;strong&gt; : Toutes les fonctionnalités d&#x27;experience management, sans le prix enterprise ni le lock-in propriétaire&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Multi-canal natif&lt;&#x2F;strong&gt; : Sondages in-app, sur le site web, par email ou via lien - un seul outil pour couvrir tout le parcours utilisateur&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Ciblage granulaire sans code&lt;&#x2F;strong&gt; : Pré-segmentation par attributs custom et déclenchement sur actions utilisateur, le tout configurable depuis l&#x27;interface&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Auto-hébergeable et RGPD-friendly&lt;&#x2F;strong&gt; : Déploiement sur votre infra pour garder le contrôle total des données, conformité RGPD incluse&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Intégrations solides&lt;&#x2F;strong&gt; : Slack, Notion, Zapier, n8n - le feedback remonte directement dans vos outils existants&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Stack moderne&lt;&#x2F;strong&gt; : Next.js, React, Prisma, TailwindCSS - une codebase propre et contributeur-friendly&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Mesurer le NPS ou la satisfaction client à des moments clés du parcours&lt;&#x2F;li&gt;
&lt;li&gt;Collecter du feedback d&#x27;onboarding pour améliorer la rétention&lt;&#x2F;li&gt;
&lt;li&gt;Analyser les raisons de churn avec des sondages ciblés post-annulation&lt;&#x2F;li&gt;
&lt;li&gt;Valider le product-market fit avec des enquêtes in-app contextuelles&lt;&#x2F;li&gt;
&lt;li&gt;Recueillir des retours sur la documentation ou les nouvelles fonctionnalités&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Netdata</title>
        <published>2026-04-13T00:00:00+00:00</published>
        <updated>2026-04-13T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/netdata/"/>
        <id>https://papyrus.z29k.com/gemshelf/netdata/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/netdata/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Netdata est un agent de monitoring open-source qui collecte des métriques à la seconde sur l&#x27;ensemble de votre infrastructure - serveurs, conteneurs, applications, hardware. Il tourne en local sur chaque nœud, détecte automatiquement ce qu&#x27;il faut surveiller, et expose des dashboards interactifs sans avoir besoin d&#x27;écrire une seule requête. Le tout avec une empreinte CPU&#x2F;RAM minimale.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Zéro configuration&lt;&#x2F;strong&gt; : l&#x27;agent auto-détecte les services, les conteneurs et les métriques système dès l&#x27;installation. Pas de YAML à écrire, pas de collecteurs à configurer manuellement.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Granularité à la seconde&lt;&#x2F;strong&gt; : là où la plupart des outils échantillonnent toutes les 15 ou 60 secondes, Netdata collecte et visualise chaque seconde. Idéal pour traquer les pics éphémères.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Détection d&#x27;anomalies par ML&lt;&#x2F;strong&gt; : chaque métrique est analysée par un modèle non-supervisé, directement sur l&#x27;agent. Pas besoin de définir des seuils à la main - les dérives sont signalées automatiquement.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Stockage ultra-compact&lt;&#x2F;strong&gt; : environ 0.5 octet par échantillon grâce au stockage par tiers. Des mois de rétention sans exploser le disque.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;800+ intégrations&lt;&#x2F;strong&gt; : Linux, Windows, macOS, Kubernetes, Docker, bases de données, serveurs web, hardware sensors… la couverture est massive et la plupart fonctionnent out-of-the-box.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Architecture parent-enfant&lt;&#x2F;strong&gt; : scalabilité horizontale native. Les agents enfants envoient les données à des parents qui centralisent la vue, sans point unique de défaillance.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Monitoring complet d&#x27;une flotte de serveurs Linux&#x2F;Windows avec dashboards centralisés&lt;&#x2F;li&gt;
&lt;li&gt;Observabilité temps réel sur des clusters Kubernetes et des workloads conteneurisés&lt;&#x2F;li&gt;
&lt;li&gt;Détection proactive d&#x27;anomalies de performance sur des applications en production&lt;&#x2F;li&gt;
&lt;li&gt;Monitoring edge dans des environnements distribués avec traitement local des données&lt;&#x2F;li&gt;
&lt;li&gt;Remplacement léger d&#x27;un stack Prometheus + Grafana pour des équipes qui veulent moins de maintenance&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Postiz</title>
        <published>2026-04-10T00:00:00+00:00</published>
        <updated>2026-04-10T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/postiz/"/>
        <id>https://papyrus.z29k.com/gemshelf/postiz/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/postiz/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Postiz est une plateforme de planification de posts sur les réseaux sociaux, pensée comme une alternative self-hosted à Buffer, Hootsuite ou Later. Elle permet de gérer, programmer et analyser ses publications sur une quinzaine de réseaux depuis une seule interface, avec de l&#x27;IA intégrée pour aider à la rédaction et une API complète pour l&#x27;automatisation.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Couverture large des réseaux&lt;&#x2F;strong&gt; : Instagram, YouTube, LinkedIn, Reddit, TikTok, Facebook, Pinterest, Threads, X, Bluesky, Mastodon, Dribbble, Slack et Discord - difficile de faire plus complet en open source.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Vraiment self-hosted&lt;&#x2F;strong&gt; : déploiement Docker simple, AGPL-3.0, tu gardes tes données et tes tokens OAuth chez toi sans dépendre d&#x27;un SaaS.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Collaboration d&#x27;équipe&lt;&#x2F;strong&gt; : invitations, commentaires, validation de posts et rôles - utilisable au-delà du compte perso.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;API et webhooks&lt;&#x2F;strong&gt; : intégration directe avec n8n, Make, Zapier ou tes propres scripts pour automatiser la génération et la publication.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Stack moderne et hackable&lt;&#x2F;strong&gt; : Next.js + NestJS + Prisma + Temporal, TypeScript de bout en bout, monorepo pnpm - facile à forker pour ajouter un provider maison.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Remplacer un abonnement Buffer ou Hootsuite par une instance auto-hébergée pour une agence ou une équipe marketing.&lt;&#x2F;li&gt;
&lt;li&gt;Automatiser la republication de contenu (blog → LinkedIn&#x2F;X&#x2F;Bluesky) via l&#x27;API depuis un pipeline n8n.&lt;&#x2F;li&gt;
&lt;li&gt;Offrir à plusieurs créateurs un espace partagé pour collaborer sur les posts avant publication.&lt;&#x2F;li&gt;
&lt;li&gt;Centraliser les stats d&#x27;engagement multi-plateformes sans livrer ses données à un tiers.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Gitea</title>
        <published>2026-04-09T00:00:00+00:00</published>
        <updated>2026-04-09T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/gitea/"/>
        <id>https://papyrus.z29k.com/gemshelf/gitea/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/gitea/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Gitea est une forge logicielle auto-hébergée écrite en Go. Elle fournit l&#x27;hébergement de dépôts Git, la revue de code, la gestion de projet (issues, kanban, milestones), un registre de paquets et un système de CI&#x2F;CD intégré. C&#x27;est l&#x27;alternative légère et open-source à GitHub, GitLab ou Bitbucket que tu peux déployer sur ton propre serveur en quelques minutes.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Ultra léger&lt;&#x2F;strong&gt; : Gitea tourne sur un Raspberry Pi. Un seul binaire Go, pas de dépendance externe lourde. Il consomme une fraction des ressources de GitLab.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Gitea Actions&lt;&#x2F;strong&gt; : Système de CI&#x2F;CD intégré compatible avec les workflows GitHub Actions. Tu peux réutiliser tes fichiers &lt;code&gt;.github&#x2F;workflows&lt;&#x2F;code&gt; quasi tels quels.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Registre de paquets universel&lt;&#x2F;strong&gt; : Support natif de plus de 20 types de paquets - npm, PyPI, Maven, Docker, Cargo, NuGet, Composer et bien d&#x27;autres.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Base de données flexible&lt;&#x2F;strong&gt; : Compatible SQLite, PostgreSQL, MySQL, TiDB et MS SQL. SQLite suffit pour les petites équipes, pas besoin d&#x27;infra supplémentaire.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Multi-plateforme&lt;&#x2F;strong&gt; : Tourne sur Linux, Windows, macOS, FreeBSD en x86 et ARM64. Déploiement possible via Docker, Kubernetes ou simple binaire.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Écosystème d&#x27;intégrations&lt;&#x2F;strong&gt; : Webhooks, API REST complète, intégration Slack, Discord, Teams, Jenkins, ArgoCD. S&#x27;insère dans n&#x27;importe quel pipeline existant.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Héberger ses dépôts Git en interne sans dépendre d&#x27;un service cloud&lt;&#x2F;li&gt;
&lt;li&gt;Mettre en place une forge complète pour une petite équipe avec CI&#x2F;CD intégré&lt;&#x2F;li&gt;
&lt;li&gt;Remplacer GitLab par une solution moins gourmande en ressources&lt;&#x2F;li&gt;
&lt;li&gt;Centraliser le code, les issues et les paquets sur une seule plateforme auto-hébergée&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>LibreDesk</title>
        <published>2026-04-09T00:00:00+00:00</published>
        <updated>2026-04-09T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/libredesk/"/>
        <id>https://papyrus.z29k.com/gemshelf/libredesk/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/libredesk/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;LibreDesk est une plateforme de support client open source, self-hosted, distribuée sous forme d&#x27;un seul binaire Go. Elle centralise les conversations provenant de plusieurs canaux (emails support, facturation, ventes) dans une inbox unifiée, avec un frontend Vue.js 3 et PostgreSQL en base de données.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Un seul exécutable&lt;&#x2F;strong&gt; : Pas de dépendances complexes à gérer. Un binaire, une base PostgreSQL, et c&#x27;est parti. Le déploiement est trivial comparé aux alternatives comme Zendesk ou Freshdesk.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Inbox multi-canal&lt;&#x2F;strong&gt; : Consolidation de plusieurs adresses email (support@, billing@, sales@) dans une interface unique. Chaque conversation est tracée, assignée et catégorisée.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Automatisations intégrées&lt;&#x2F;strong&gt; : Workflows conditionnels pour le routage automatique, le tagging et l&#x27;assignation des conversations. Les règles SLA avec alertes de dépassement évitent les tickets oubliés.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Contrôle total des données&lt;&#x2F;strong&gt; : Self-hosted = pas de vendor lock-in, pas de données clients qui transitent par un tiers. Un point critique pour les organisations soucieuses de conformité.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;IA et productivité&lt;&#x2F;strong&gt; : Raffinement des réponses assisté par IA, macros de réponse rapide, interface pilotable au clavier. Les agents passent moins de temps sur la mécanique, plus sur le fond.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Équipes support qui veulent sortir de Zendesk&#x2F;Freshdesk sans sacrifier les fonctionnalités essentielles&lt;&#x2F;li&gt;
&lt;li&gt;Startups et PME qui ont besoin d&#x27;un helpdesk structuré sans budget SaaS récurrent&lt;&#x2F;li&gt;
&lt;li&gt;Organisations avec des contraintes de conformité (données hébergées sur leur infra)&lt;&#x2F;li&gt;
&lt;li&gt;Équipes techniques qui veulent un outil extensible via webhooks et attributs custom&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>PriceGhost</title>
        <published>2026-04-09T00:00:00+00:00</published>
        <updated>2026-04-09T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/priceghost/"/>
        <id>https://papyrus.z29k.com/gemshelf/priceghost/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/priceghost/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;PriceGhost est une application self-hosted de suivi de prix. Tu ajoutes un produit via son URL, l&#x27;app extrait le prix automatiquement et le surveille à intervalle régulier. Quand le prix baisse, tu reçois une notification. Simple.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Extraction multi-stratégie&lt;&#x2F;strong&gt; : JSON-LD, scrapers spécifiques par site, CSS générique, et en dernier recours une analyse par IA (Claude, GPT, Ollama). Si une méthode échoue, la suivante prend le relais.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Validation humaine&lt;&#x2F;strong&gt; : un système de &quot;vote&quot; permet à l&#x27;utilisateur de confirmer ou corriger le prix extrait. L&#x27;app apprend de tes corrections.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Notifications multi-canaux&lt;&#x2F;strong&gt; : Telegram, Discord, Pushover, ntfy.sh, Gotify. Tu choisis où tu veux être alerté.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Optimisations par site&lt;&#x2F;strong&gt; : Amazon, Best Buy, Walmart, Target, Costco, eBay, Newegg, Home Depot, AliExpress et les boutiques Magento 2 sont supportés nativement avec des scrapers dédiés.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;PWA complète&lt;&#x2F;strong&gt; : mode sombre&#x2F;clair, multi-utilisateurs avec panneau admin, et déploiement Docker en une commande.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Surveiller le prix d&#x27;un produit tech sur plusieurs marketplaces et acheter au meilleur moment&lt;&#x2F;li&gt;
&lt;li&gt;Suivre les prix de composants PC ou électroménager sur le long terme avec l&#x27;historique graphique&lt;&#x2F;li&gt;
&lt;li&gt;Recevoir une alerte quand un produit en rupture revient en stock&lt;&#x2F;li&gt;
&lt;li&gt;Centraliser le suivi de prix pour toute une famille ou équipe grâce au multi-utilisateurs&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Plane</title>
        <published>2026-04-08T00:00:00+00:00</published>
        <updated>2026-04-08T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/plane/"/>
        <id>https://papyrus.z29k.com/gemshelf/plane/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/plane/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Plane est une plateforme de gestion de projet open-source conçue pour remplacer Jira, Linear ou Monday.com. Elle couvre le suivi d&#x27;issues, la planification de sprints, la gestion de roadmaps et la documentation d&#x27;équipe - le tout dans une interface moderne qui ne demande pas un diplôme pour être configurée.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Interface moderne et fluide&lt;&#x2F;strong&gt; : UX pensée pour la productivité, avec éditeur de texte riche, drag-and-drop et raccourcis clavier. On est plus proche de Linear que de Jira côté expérience.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Cycles et modules&lt;&#x2F;strong&gt; : Les sprints (appelés Cycles) intègrent des burn-down charts natifs. Les Modules permettent de découper un projet complexe en sous-ensembles gérables avec leur propre suivi.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Vues personnalisables&lt;&#x2F;strong&gt; : Filtres et groupements flexibles pour afficher exactement ce qui est pertinent - par assigné, priorité, label ou n&#x27;importe quel critère custom.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Pages avec IA intégrée&lt;&#x2F;strong&gt; : Documentation collaborative directement dans l&#x27;outil, avec assistance IA pour la rédaction. Plus besoin de jongler entre Notion et votre tracker.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Analytics temps réel&lt;&#x2F;strong&gt; : Tableaux de bord et visualisation de tendances pour suivre la vélocité, la répartition de charge et l&#x27;avancement sans exporter dans un spreadsheet.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Self-hosting simple&lt;&#x2F;strong&gt; : Déploiement via Docker ou Kubernetes. L&#x27;option cloud existe aussi pour ceux qui préfèrent ne pas gérer l&#x27;infra.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Équipes produit cherchant une alternative open-source à Jira avec une UX moderne&lt;&#x2F;li&gt;
&lt;li&gt;Startups voulant un outil de suivi de projet self-hosted pour garder le contrôle sur leurs données&lt;&#x2F;li&gt;
&lt;li&gt;Organisations gérant plusieurs projets en parallèle avec besoin de roadmaps et analytics centralisés&lt;&#x2F;li&gt;
&lt;li&gt;Équipes agiles pratiquant Scrum ou Kanban avec suivi de sprints et burn-down charts&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Zitadel</title>
        <published>2026-04-08T00:00:00+00:00</published>
        <updated>2026-04-08T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/zitadel/"/>
        <id>https://papyrus.z29k.com/gemshelf/zitadel/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/zitadel/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Zitadel est une plateforme de gestion d&#x27;identité et d&#x27;accès (IAM) open-source écrite en Go. Elle fournit tout ce qu&#x27;il faut pour gérer l&#x27;authentification et l&#x27;autorisation de vos utilisateurs : SSO, MFA, Passkeys, OIDC, SAML 2.0, SCIM 2.0 et un modèle de multi-tenancy éprouvé. L&#x27;approche est API-first avec support gRPC, connectRPC et REST.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Multi-tenancy natif&lt;&#x2F;strong&gt; : L&#x27;architecture est pensée dès le départ pour gérer plusieurs organisations avec une hiérarchie stricte et une isolation des données au niveau infrastructure. Pas de bidouillage, c&#x27;est dans l&#x27;ADN du projet.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Standards complets&lt;&#x2F;strong&gt; : Certifié OpenID Connect, support SAML 2.0, SCIM 2.0, FIDO2&#x2F;WebAuthn. On couvre les cas B2C, B2B et internes sans jongler entre plusieurs outils.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Audit trail événementiel&lt;&#x2F;strong&gt; : Chaque action est tracée via un système event-driven accessible par API. Idéal pour la conformité (SOC2, GDPR, ISO 27001) sans développement supplémentaire.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Passkeys et passwordless&lt;&#x2F;strong&gt; : Support natif de FIDO2&#x2F;WebAuthn pour l&#x27;authentification sans mot de passe. MFA, social login, identity brokering - tout est intégré.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;API-first et scalable&lt;&#x2F;strong&gt; : gRPC et REST, mises à jour sans downtime, scalabilité horizontale. L&#x27;intégration dans une stack existante se fait proprement via les API, pas via un SDK monolithique.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Self-hosted ou cloud&lt;&#x2F;strong&gt; : Déployable sur votre infra ou utilisable en SaaS. Vous gardez le contrôle sur vos données d&#x27;identité.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Remplacer un Auth0 ou Keycloak par une solution open-source avec multi-tenancy natif&lt;&#x2F;li&gt;
&lt;li&gt;Mettre en place du SSO et de l&#x27;identity brokering pour une plateforme SaaS B2B&lt;&#x2F;li&gt;
&lt;li&gt;Gérer l&#x27;authentification de plusieurs organisations depuis une seule instance&lt;&#x2F;li&gt;
&lt;li&gt;Implémenter du passwordless (Passkeys&#x2F;WebAuthn) sans construire toute la plomberie&lt;&#x2F;li&gt;
&lt;li&gt;Centraliser l&#x27;audit trail d&#x27;identité pour répondre aux exigences de conformité&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Maestro</title>
        <published>2026-04-07T00:00:00+00:00</published>
        <updated>2026-04-07T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/maestro/"/>
        <id>https://papyrus.z29k.com/gemshelf/maestro/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/maestro/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Maestro est un framework open source de tests end‑to‑end pour applications mobiles (Android, iOS) et web. Les scénarios de test sont écrits en YAML avec des commandes lisibles comme &lt;code&gt;launchApp&lt;&#x2F;code&gt;, &lt;code&gt;tapOn&lt;&#x2F;code&gt; ou &lt;code&gt;assertVisible&lt;&#x2F;code&gt;. Pas de compilation, pas de setup complexe - un script d&#x27;installation et c&#x27;est parti.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;YAML lisible par tous&lt;&#x2F;strong&gt; : les flows de test ressemblent à du langage naturel. Un QA, un PM ou un dev peut les lire et les écrire sans friction.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Cross‑platform natif&lt;&#x2F;strong&gt; : Android, iOS, React Native, Flutter et web - un seul framework pour tout couvrir.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Tolérance aux flaky tests&lt;&#x2F;strong&gt; : le moteur intègre des mécanismes d&#x27;attente automatique et de résilience. Fini les &lt;code&gt;sleep(5)&lt;&#x2F;code&gt; saupoudrés partout.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Zéro compilation&lt;&#x2F;strong&gt; : les flows sont interprétés à la volée. Modifier un test et le relancer prend quelques secondes, pas quelques minutes.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Maestro Studio&lt;&#x2F;strong&gt; : un IDE visuel gratuit pour construire des flows, inspecter les éléments UI et même générer des tests avec l&#x27;IA (MaestroGPT).&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Exécution parallèle&lt;&#x2F;strong&gt; : Maestro Cloud permet de lancer les tests en parallèle pour réduire le temps d&#x27;exécution jusqu&#x27;à 90%.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Valider les parcours utilisateurs critiques (login, paiement, onboarding) sur mobile et web&lt;&#x2F;li&gt;
&lt;li&gt;Mettre en place une suite de tests de régression dans la CI&#x2F;CD sans infrastructure complexe&lt;&#x2F;li&gt;
&lt;li&gt;Tester des apps cross‑platform (React Native, Flutter) avec un seul jeu de scénarios&lt;&#x2F;li&gt;
&lt;li&gt;Prototyper rapidement des tests via Maestro Studio avant de les intégrer au pipeline&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Coolify</title>
        <published>2026-04-06T00:00:00+00:00</published>
        <updated>2026-04-06T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/coolify/"/>
        <id>https://papyrus.z29k.com/gemshelf/coolify/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/coolify/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Coolify est une plateforme PaaS open source et auto-hébergée qui permet de déployer des applications, bases de données et services sur n&#x27;importe quel serveur accessible en SSH. C&#x27;est l&#x27;alternative self-hosted à Vercel, Heroku, Netlify et Railway - vous gardez le contrôle total sur vos données et votre infrastructure.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Zéro vendor lock-in&lt;&#x2F;strong&gt; : tout tourne sur vos serveurs. Si vous arrêtez Coolify, vos configs restent en place et tout continue de fonctionner.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;280+ services en un clic&lt;&#x2F;strong&gt; : WordPress, PostgreSQL, Redis, MinIO, Plausible, n8n... un catalogue massif de services préconfigurés prêts à déployer.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;N&#x27;importe quel serveur&lt;&#x2F;strong&gt; : VPS, bare metal, Raspberry Pi, EC2, Hetzner - tout ce qui accepte une connexion SSH fait l&#x27;affaire.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Git push to deploy&lt;&#x2F;strong&gt; : intégration native avec GitHub, GitLab, Bitbucket et Gitea. Les pull requests génèrent automatiquement des environnements de preview.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;SSL automatique&lt;&#x2F;strong&gt; : certificats Let&#x27;s Encrypt générés et renouvelés sans intervention. Zéro config DNS manuelle pour le HTTPS.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;API et CLI complètes&lt;&#x2F;strong&gt; : automatisez vos déploiements, intégrez avec vos pipelines CI&#x2F;CD existants, ou gérez tout depuis le terminal.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Héberger sa stack complète (app + BDD + cache + monitoring) sur un seul VPS sans toucher à Docker Compose manuellement&lt;&#x2F;li&gt;
&lt;li&gt;Remplacer Heroku&#x2F;Railway pour une équipe qui veut maîtriser ses coûts d&#x27;infrastructure&lt;&#x2F;li&gt;
&lt;li&gt;Déployer rapidement des services internes (Gitea, Plausible, n8n) pour une startup ou une petite équipe&lt;&#x2F;li&gt;
&lt;li&gt;Mettre en place des environnements de preview automatiques pour chaque pull request&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>OpenScreen</title>
        <published>2026-04-06T00:00:00+00:00</published>
        <updated>2026-04-06T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/openscreen/"/>
        <id>https://papyrus.z29k.com/gemshelf/openscreen/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/openscreen/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;OpenScreen est une application desktop open source qui permet de créer des enregistrements d&#x27;écran et des démos produit de qualité professionnelle. C&#x27;est une alternative gratuite à Screen Studio, sans abonnement ni filigrane. L&#x27;app tourne sur macOS, Windows et Linux grâce à Electron.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Zoom automatique et manuel&lt;&#x2F;strong&gt; : Effets de zoom avec plusieurs niveaux de profondeur pour guider l&#x27;attention du spectateur, exactement comme les outils payants&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Édition intégrée&lt;&#x2F;strong&gt; : Recadrage vidéo, ajustement de la vitesse par segment, trimming - pas besoin d&#x27;un éditeur externe&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Annotations&lt;&#x2F;strong&gt; : Texte, flèches, images superposées directement sur l&#x27;enregistrement pour des démos claires&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Arrière-plans personnalisables&lt;&#x2F;strong&gt; : Fonds d&#x27;écran, couleurs, dégradés et effets de flou de mouvement pour un rendu soigné&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Export flexible&lt;&#x2F;strong&gt; : Multiples ratios d&#x27;aspect et résolutions pour s&#x27;adapter à chaque plateforme de diffusion&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Créer des démos produit pour une landing page ou un README GitHub&lt;&#x2F;li&gt;
&lt;li&gt;Enregistrer des tutoriels techniques avec zoom sur les zones de code pertinentes&lt;&#x2F;li&gt;
&lt;li&gt;Produire du contenu marketing (posts LinkedIn, tweets) avec des enregistrements stylisés&lt;&#x2F;li&gt;
&lt;li&gt;Documenter des bugs ou des workflows internes avec annotations&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Papermark</title>
        <published>2026-04-06T00:00:00+00:00</published>
        <updated>2026-04-06T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/papermark/"/>
        <id>https://papyrus.z29k.com/gemshelf/papermark/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/papermark/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Papermark est une plateforme open-source de partage de documents, positionnée comme alternative à DocSend. Tu partages un PDF ou un document via un lien sécurisé, et tu obtiens des analytics détaillés sur qui l&#x27;a consulté, combien de temps chaque page a été lue, et si le document a été téléchargé. Le tout avec ton propre branding et ton domaine personnalisé.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Analytics page par page&lt;&#x2F;strong&gt; : Pas juste un compteur de vues. Tu sais exactement combien de temps chaque lecteur passe sur chaque page de ton document, ce qui est précieux pour les pitch decks et les propositions commerciales.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Branding personnalisé&lt;&#x2F;strong&gt; : Domaine custom, logo, couleurs. Tes documents sont partagés sous ta marque, pas celle d&#x27;un outil tiers.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Data rooms sécurisées&lt;&#x2F;strong&gt; : Partage de documents sensibles avec contrôle d&#x27;accès granulaire, vérification par email et protection par mot de passe.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Auto-hébergeable&lt;&#x2F;strong&gt; : Stack classique Next.js + PostgreSQL + Prisma. Tu gardes le contrôle total sur tes données et celles de tes clients.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Intégrations natives&lt;&#x2F;strong&gt; : Connexion avec des outils comme Notion pour importer directement du contenu, et webhooks pour automatiser les workflows.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Partager un pitch deck avec des investisseurs et tracker leur engagement page par page&lt;&#x2F;li&gt;
&lt;li&gt;Envoyer des propositions commerciales avec analytics pour savoir quand relancer&lt;&#x2F;li&gt;
&lt;li&gt;Créer une data room pour une levée de fonds ou un processus de due diligence&lt;&#x2F;li&gt;
&lt;li&gt;Distribuer de la documentation client sous son propre branding&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Le cap, pas la météo : pourquoi votre incapacité à tenir une vision détruit vos équipes</title>
        <published>2026-04-05T00:00:00+00:00</published>
        <updated>2026-04-05T00:00:00+00:00</updated>
        
        <author>
          <name>
            Quentin Mathis
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/articles/the-vision/"/>
        <id>https://papyrus.z29k.com/articles/the-vision/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/articles/the-vision/">&lt;p&gt;On vit dans un monde qui célèbre le pivot. Le &quot;fail fast&quot;. L&#x27;agilité érigée en dogme. Changer de direction tous les trimestres, c&#x27;est être réactif. Remettre en cause la roadmap à chaque réunion de comité, c&#x27;est écouter le marché.&lt;&#x2F;p&gt;
&lt;p&gt;Non, c&#x27;est surtout le symptôme d&#x27;un problème bien plus profond : l&#x27;absence de vision.&lt;&#x2F;p&gt;
&lt;p&gt;Je ne parle pas forcément des grands groupes, des entreprises cotées, des mastodontes à 10 000 collaborateurs. Eux ont généralement un plan stratégique verrouillé, validé par un board, décliné en feuilles de route pluriannuelles. Leur problème est souvent inverse : trop de rigidité, pas assez de capacité d&#x27;adaptation. Ici je parle de là où le mal fait le plus de dégâts : les startups, les scale-ups, les PME, les équipes produit en croissance. Ces structures où la stratégie tient parfois dans la tête d&#x27;un fondateur, où les décisions se prennent vite, parfois trop vite, et où l&#x27;absence de cap clairement défini se paie au prix fort.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;le-vrai-luxe-c-est-la-clarte&quot;&gt;Le vrai luxe, c&#x27;est la clarté&lt;&#x2F;h2&gt;
&lt;p&gt;Il y a une confusion fondamentale dans beaucoup de ces organisations aujourd&#x27;hui. On confond stratégie et tactique. Agilité et versatilité. Adaptation et errance.&lt;&#x2F;p&gt;
&lt;p&gt;Avoir une vision, ce n&#x27;est pas rédiger une présentation inspirante pour le &quot;kick-off&quot; annuel. C&#x27;est être capable de répondre à une question simple : &lt;strong&gt;où va-t-on, et pourquoi ?&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Pas dans trois semaines. Dans trois ans, cinq ans...&lt;&#x2F;p&gt;
&lt;p&gt;Le problème, c&#x27;est que formuler une vision claire demande un effort intellectuel considérable. Ça oblige à faire des choix. À renoncer, à assumer qu&#x27;on ne fera pas tout. Et dans un monde où chaque opportunité donne l&#x27;impression d&#x27;être urgente, renoncer fait peur.&lt;&#x2F;p&gt;
&lt;p&gt;Alors on ne choisit pas. Et on appelle ça de la flexibilité...&lt;&#x2F;p&gt;
&lt;h2 id=&quot;l-art-oublie-de-savoir-dire-ou-l-on-va&quot;&gt;L&#x27;art oublié de savoir dire où l&#x27;on va&lt;&#x2F;h2&gt;
&lt;p&gt;Une vision qui n&#x27;existe que dans la tête du dirigeant n&#x27;est pas une vision. C&#x27;est un secret.&lt;&#x2F;p&gt;
&lt;p&gt;La capacité à exprimer clairement sa stratégie, à la décrire avec précision, à la rendre tangible pour chaque membre de l&#x27;équipe, est une compétence de Leadership dramatiquement sous-estimée. Ce n&#x27;est pas un exercice de communication corporate. C&#x27;est la condition nécessaire pour que chaque décision prise à chaque niveau de l&#x27;organisation soit cohérente avec la trajectoire.&lt;&#x2F;p&gt;
&lt;p&gt;Quand un développeur choisit entre deux architectures, il devrait pouvoir trancher en fonction de la direction produit à 18 mois. Quand un product manager priorise son backlog, il devrait s&#x27;appuyer sur une stratégie claire, pas sur le dernier mail du CEO après un déjeuner avec un client ou un investisseur.&lt;&#x2F;p&gt;
&lt;p&gt;Incarner la vision, c&#x27;est la répéter. Encore et encore, jusqu&#x27;à ce qu&#x27;elle devienne un réflexe collectif. Les leaders qui pensent qu&#x27;il suffit de la communiquer une fois en plénière se trompent. La vision se transmet par la répétition, par l&#x27;exemple, par les décisions concrètes du quotidien. C&#x27;est un travail, pas un événement.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;s-adapter-n-est-pas-trahir&quot;&gt;S&#x27;adapter n&#x27;est pas trahir&lt;&#x2F;h2&gt;
&lt;p&gt;Évidemment, le monde change. Les marchés bougent, les crises arrivent, les hypothèses initiales se révèlent parfois fausses.&lt;&#x2F;p&gt;
&lt;p&gt;Personne ne demande de s&#x27;accrocher à un plan devenu obsolète par pur entêtement, ce serait idiot.&lt;&#x2F;p&gt;
&lt;p&gt;Mais il y a une différence fondamentale entre &lt;strong&gt;ajuster la trajectoire&lt;&#x2F;strong&gt; et &lt;strong&gt;changer de destination&lt;&#x2F;strong&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;Un bon capitaine modifie sa route quand la tempête arrive, il ne change pas de port.&lt;&#x2F;p&gt;
&lt;p&gt;L&#x27;adaptation stratégique, la vraie, consiste à trouver de nouveaux chemins vers le même objectif. Pas à redéfinir l&#x27;objectif à chaque obstacle. Les moyens sont flexibles, la finalité est stable.&lt;&#x2F;p&gt;
&lt;p&gt;Les meilleurs Leaders que j&#x27;ai observés partagent cette caractéristique : ils sont remarquablement souples sur le &quot;Comment&quot; et remarquablement fermes sur le &quot;Pourquoi&quot;. Ils absorbent les chocs, intègrent les retours du terrain, ajustent les plans d&#x27;exécution sans jamais perdre de vue l&#x27;objectif.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;le-cout-cache-de-la-girouette-manageriale&quot;&gt;Le coût caché de la girouette managériale&lt;&#x2F;h2&gt;
&lt;p&gt;Parlons de ce qui se passe réellement quand un Leader change de cap au gré des courants.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Les équipes décrochent.&lt;&#x2F;strong&gt; Pas immédiatement mais progressivement, chaque changement de direction non expliqué érode un peu plus la confiance. Au troisième pivot en six mois, les gens arrêtent de s&#x27;investir émotionnellement. Pourquoi donner le meilleur de soi sur un projet qui sera probablement abandonné le mois prochain ?&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Le cynisme s&#x27;installe.&lt;&#x2F;strong&gt; Les collaborateurs les plus lucides commencent à décoder le pattern. Ils savent que la &quot;nouvelle priorité stratégique&quot; à la même espérance de vie que la précédente. Alors ils exécutent mollement, ils attendent la prochaine itération, l&#x27;engagement se transforme en conformité passive.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Les meilleurs partent.&lt;&#x2F;strong&gt; Les profils les plus talentueux ont besoin de sens, ils veulent contribuer à quelque chose qui dure. Quand ils réalisent qu&#x27;il n&#x27;y a pas de vision derrière les décisions, ils vont chercher cette cohérence ailleurs.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;La dette décisionnelle s&#x27;accumule.&lt;&#x2F;strong&gt; Chaque changement de direction laisse des traces : du code abandonné, des fonctionnalités à moitié construites, des partenariats avortés, du temps investi à perte. Cette dette-là, personne ne la mesure, mais elle plombe la vélocité réelle de l&#x27;organisation bien plus sûrement qu&#x27;un problème technique.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;vision-rigidite&quot;&gt;Vision ≠ rigidité&lt;&#x2F;h2&gt;
&lt;p&gt;Il faut le dire clairement parce que l&#x27;objection arrive toujours : défendre l&#x27;importance de la constance stratégique, ce n&#x27;est pas plaider pour l&#x27;immobilisme.&lt;&#x2F;p&gt;
&lt;p&gt;C&#x27;est plaider pour une &lt;strong&gt;discipline intellectuelle&lt;&#x2F;strong&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;C&#x27;est exiger de quiconque propose un changement de direction qu&#x27;il explique en quoi la destination a changé, pas juste en quoi le paysage est différent. Un nouveau concurrent, une techno émergente, un retour client inattendu : tout cela peut légitimement impacter le comment, rarement le pourquoi.&lt;&#x2F;p&gt;
&lt;p&gt;Et quand le pourquoi doit évoluer, alors il faut le nommer. Explicitement. Assumer que la vision change, expliquer pourquoi, et recréer l&#x27;adhésion autour du nouveau cap. Ce qui est toxique, ce n&#x27;est pas de changer de vision, c&#x27;est de le faire en silence, ou pire, sans même en avoir conscience.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;le-test-ultime&quot;&gt;Le test ultime&lt;&#x2F;h2&gt;
&lt;p&gt;Voici un exercice simple. Demandez à cinq personnes de votre équipe, indépendamment, de décrire en deux phrases la direction stratégique du projet ou du produit sur les 12 à 18 prochains mois.&lt;&#x2F;p&gt;
&lt;p&gt;Si vous obtenez cinq réponses cohérentes entre elles : bravo. Vous avez une vision partagée.&lt;&#x2F;p&gt;
&lt;p&gt;Si vous obtenez cinq réponses différentes, ou pire, cinq silences gênés, vous avez un problème. Et ce problème ne se résoudra pas avec un nouvel outil de gestion de projet, un framework de priorisation ou un séminaire de team building.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Tenir un cap, c&#x27;est un acte de Leadership. C&#x27;est aussi, peut-être, le plus difficile.&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Parce que ça demande de résister à la pression du court terme. De dire non à des opportunités séduisantes qui ne servent pas la vision. D&#x27;accepter que la clarté stratégique implique des renoncements.&lt;&#x2F;p&gt;
&lt;p&gt;Mais c&#x27;est le prix de la cohérence. Et la cohérence, c&#x27;est ce qui transforme un groupe de personnes compétentes en une équipe qui avance.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Codeberg</title>
        <published>2026-04-05T00:00:00+00:00</published>
        <updated>2026-04-05T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/codeberg/"/>
        <id>https://papyrus.z29k.com/gemshelf/codeberg/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/codeberg/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Codeberg est une forge Git gratuite et communautaire, opérée par l&#x27;association à but non lucratif Codeberg e.V. basée à Berlin. Elle fournit hébergement de dépôts, CI&#x2F;CD, Pages statiques et traduction collaborative - le tout propulsé par Forgejo, un fork de Gitea maintenu par la communauté.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Zéro tracking, zéro cookies tiers&lt;&#x2F;strong&gt; : Pas de profiling, pas de revente de données. L&#x27;infra tourne sur des serveurs contrôlés par l&#x27;association, hébergés en Europe.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Non-profit par design&lt;&#x2F;strong&gt; : Codeberg e.V. est une association allemande à but non lucratif. Le financement repose sur les dons et les adhésions, pas sur la monétisation des utilisateurs.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Stack 100% open-source&lt;&#x2F;strong&gt; : Forgejo sous le capot, Woodpecker CI pour la CI&#x2F;CD, Weblate pour la traduction. Aucune brique propriétaire.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Pages statiques intégrées&lt;&#x2F;strong&gt; : Hébergement de sites statiques directement depuis un dépôt, sans config externe.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Communauté massive&lt;&#x2F;strong&gt; : Plus de 481 000 projets et 304 000 utilisateurs. Suffisamment de masse critique pour ne pas être un service fantôme.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Gouvernance communautaire&lt;&#x2F;strong&gt; : Les décisions sont prises avec les membres. L&#x27;avenir de la plateforme est entre les mains de ses utilisateurs.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Héberger ses projets open-source sur une plateforme éthique, sans dépendre de GitHub ou GitLab&lt;&#x2F;li&gt;
&lt;li&gt;Migrer un projet existant vers une forge respectueuse de la vie privée&lt;&#x2F;li&gt;
&lt;li&gt;Déployer un site statique via Codeberg Pages sans passer par un service tiers&lt;&#x2F;li&gt;
&lt;li&gt;Collaborer sur des traductions de logiciels via l&#x27;instance Weblate intégrée&lt;&#x2F;li&gt;
&lt;li&gt;Contribuer à l&#x27;écosystème Forgejo en participant directement à la forge qui l&#x27;utilise&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Matomo</title>
        <published>2026-04-05T00:00:00+00:00</published>
        <updated>2026-04-05T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/matomo/"/>
        <id>https://papyrus.z29k.com/gemshelf/matomo/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/matomo/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Matomo (anciennement Piwik) est une plateforme d&#x27;analytics web open source que tu héberges toi-même. Elle collecte les données de fréquentation de tes sites et apps, les stocke sur ton infrastructure, et te fournit des tableaux de bord complets - sans jamais envoyer les données de tes visiteurs à un tiers. C&#x27;est l&#x27;alternative la plus mature à Google Analytics pour ceux qui veulent garder le contrôle.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Propriété totale des données&lt;&#x2F;strong&gt; : Tes données restent sur ton serveur. Pas de revente, pas de partage avec des régies pub, pas de dépendance à un service cloud qui peut changer ses CGU du jour au lendemain.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Conformité RGPD native&lt;&#x2F;strong&gt; : Matomo est reconnu par la CNIL comme conforme sans bandeau de consentement (en configuration exemptée). Un vrai avantage en Europe où le sujet est devenu un casse-tête.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Fonctionnalités complètes&lt;&#x2F;strong&gt; : Tracking temps réel, heatmaps, funnels, e-commerce, profils visiteurs, rapports par email, segmentation avancée - le périmètre fonctionnel rivalise avec les solutions payantes.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Architecture extensible&lt;&#x2F;strong&gt; : Système de plugins mature avec un marketplace fourni. Tu peux ajouter des fonctionnalités ou développer les tiennes sans toucher au core.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Communauté massive&lt;&#x2F;strong&gt; : Plus de 200 000 installations actives, 21k+ stars GitHub, et un écosystème de contributeurs actif depuis plus de 15 ans.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Remplacer Google Analytics sur un site soumis au RGPD sans se prendre la tête avec le consentement&lt;&#x2F;li&gt;
&lt;li&gt;Monitorer le trafic d&#x27;un réseau de sites en gardant toutes les données en interne&lt;&#x2F;li&gt;
&lt;li&gt;Mettre en place un suivi e-commerce détaillé (paniers, conversions, revenus) sur sa propre infrastructure&lt;&#x2F;li&gt;
&lt;li&gt;Fournir des dashboards analytics en marque blanche à des clients via une instance multi-sites&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>PostHog</title>
        <published>2026-04-05T00:00:00+00:00</published>
        <updated>2026-04-05T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/posthog/"/>
        <id>https://papyrus.z29k.com/gemshelf/posthog/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/posthog/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;PostHog est une plateforme open source qui regroupe tous les outils nécessaires pour comprendre comment les utilisateurs interagissent avec un produit. Au lieu d&#x27;empiler Google Analytics, LaunchDarkly, Hotjar et Amplitude, PostHog propose tout ça dans une seule interface - avec la possibilité de l&#x27;auto-héberger.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Tout-en-un réel&lt;&#x2F;strong&gt; : analytics produit, web analytics, session replay, feature flags, A&#x2F;B testing, surveys, error tracking et data warehouse - pas besoin de jongler entre dix SaaS&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Open source et auto-hébergeable&lt;&#x2F;strong&gt; : le code est sous licence MIT (hors dossier &lt;code&gt;ee&lt;&#x2F;code&gt;). Un déploiement Docker hobby tient jusqu&#x27;à ~100k événements&#x2F;mois&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Pas de sampling&lt;&#x2F;strong&gt; : les données sont complètes, pas échantillonnées. Les décisions produit reposent sur des chiffres réels&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;LLM Analytics intégré&lt;&#x2F;strong&gt; : monitoring dédié pour les applications IA&#x2F;LLM, un ajout rare dans l&#x27;écosystème analytics&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Data pipelines et CDP&lt;&#x2F;strong&gt; : les données ne restent pas coincées dans PostHog - export vers n&#x27;importe quel data warehouse ou outil tiers via les pipelines intégrés&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Comprendre les parcours utilisateurs et identifier les points de friction dans un produit SaaS&lt;&#x2F;li&gt;
&lt;li&gt;Déployer progressivement une fonctionnalité avec des feature flags et mesurer son impact via un test A&#x2F;B&lt;&#x2F;li&gt;
&lt;li&gt;Rejouer les sessions des utilisateurs qui rencontrent des bugs pour comprendre le contexte exact&lt;&#x2F;li&gt;
&lt;li&gt;Centraliser toute la stack analytics d&#x27;une startup pour éviter la fragmentation d&#x27;outils et réduire les coûts&lt;&#x2F;li&gt;
&lt;li&gt;Monitorer les performances et le comportement des applications utilisant des LLMs&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Stirling PDF</title>
        <published>2026-04-05T00:00:00+00:00</published>
        <updated>2026-04-05T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/stirling-pdf/"/>
        <id>https://papyrus.z29k.com/gemshelf/stirling-pdf/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/stirling-pdf/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Stirling PDF est une plateforme open-source qui regroupe plus de 50 outils pour manipuler des fichiers PDF. Fusion, découpage, compression, OCR, signature, conversion, rédaction - tout se fait en local, sans envoyer vos documents à un service tiers. Déployable en tant qu&#x27;application desktop, interface web ou serveur auto-hébergé via Docker.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Confidentialité par défaut&lt;&#x2F;strong&gt; : tout le traitement se fait en local sur votre machine ou votre serveur. Aucun fichier ne quitte votre infrastructure.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;50+ outils intégrés&lt;&#x2F;strong&gt; : fusion, split, rotation, OCR, signature électronique, conversion (Word, Excel, images), compression, rédaction de contenu sensible - la quasi-totalité des opérations PDF courantes est couverte.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Déploiement flexible&lt;&#x2F;strong&gt; : application desktop (Windows, Mac, Linux), interface web standalone ou conteneur Docker pour le self-hosting. Un seul outil pour tous les contextes.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;API REST complète&lt;&#x2F;strong&gt; : chaque outil est exposé via une API, ce qui permet d&#x27;intégrer le traitement PDF dans vos pipelines d&#x27;automatisation ou vos applications existantes.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Workflows no-code&lt;&#x2F;strong&gt; : création de chaînes de traitement automatisées sans écrire une ligne de code. Idéal pour le traitement en lot de documents volumineux.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Interface multilingue&lt;&#x2F;strong&gt; : plus de 40 langues supportées, ce qui en fait un outil utilisable par des équipes internationales.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Automatiser la conversion et la fusion de documents PDF dans une pipeline CI&#x2F;CD ou un workflow métier&lt;&#x2F;li&gt;
&lt;li&gt;Remplacer les outils SaaS payants (Adobe Acrobat, Smallpdf) par une solution auto-hébergée sans frais récurrents&lt;&#x2F;li&gt;
&lt;li&gt;Extraire du texte depuis des PDF scannés via l&#x27;OCR intégré pour alimenter un moteur de recherche interne&lt;&#x2F;li&gt;
&lt;li&gt;Signer et rédiger des documents sensibles sans les envoyer sur un service cloud externe&lt;&#x2F;li&gt;
&lt;li&gt;Déployer un service PDF partagé en interne pour une équipe ou une organisation via Docker&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Meilisearch</title>
        <published>2026-04-03T00:00:00+00:00</published>
        <updated>2026-04-03T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/meilisearch/"/>
        <id>https://papyrus.z29k.com/gemshelf/meilisearch/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/meilisearch/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Meilisearch est un moteur de recherche open source écrit en Rust, conçu pour être déployé facilement et offrir une expérience search-as-you-type ultra-rapide. Il expose une API REST qui permet d&#x27;indexer des documents JSON et de les interroger avec des résultats pertinents en moins de 50 ms, typos comprises.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Recherche hybride IA&lt;&#x2F;strong&gt; : combine recherche sémantique (vecteurs) et full-text dans une seule requête, sans config complexe. Les résultats sont pertinents même quand l&#x27;utilisateur ne tape pas les mots exacts.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Rapide, vraiment&lt;&#x2F;strong&gt; : les réponses arrivent en moins de 50 ms. Le search-as-you-type est fluide, même sur des millions de documents.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Tolérance aux typos&lt;&#x2F;strong&gt; : Meilisearch corrige automatiquement les fautes de frappe et gère les synonymes. Pas besoin de deviner ce que l&#x27;utilisateur voulait dire.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Filtres, facettes et géosearch&lt;&#x2F;strong&gt; : filtrage avancé, recherche géographique et facettes intégrées nativement. Tout ce qu&#x27;il faut pour un e-commerce ou un catalogue.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Multi-tenant et multi-langue&lt;&#x2F;strong&gt; : support natif du multi-tenancy via des tenant tokens, et optimisations spécifiques pour le chinois, japonais, hébreu et d&#x27;autres langues.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Déploiement simple&lt;&#x2F;strong&gt; : un seul binaire, une commande pour lancer. Pas de dépendance externe, pas de cluster à configurer pour démarrer.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Barre de recherche instantanée sur un site e-commerce ou une marketplace&lt;&#x2F;li&gt;
&lt;li&gt;Recherche documentaire dans une base de connaissances interne&lt;&#x2F;li&gt;
&lt;li&gt;Moteur de recherche pour une application SaaS multi-tenant&lt;&#x2F;li&gt;
&lt;li&gt;Recherche géolocalisée (restaurants, points d&#x27;intérêt, annonces immobilières)&lt;&#x2F;li&gt;
&lt;li&gt;Remplacement de solutions comme Elasticsearch quand la simplicité prime sur la complexité&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>n8n</title>
        <published>2026-04-03T00:00:00+00:00</published>
        <updated>2026-04-03T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/n8n/"/>
        <id>https://papyrus.z29k.com/gemshelf/n8n/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/n8n/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;n8n est une plateforme d&#x27;automatisation de workflows qui combine un éditeur visuel node-based avec la possibilité d&#x27;écrire du code JavaScript ou Python à n&#x27;importe quelle étape. Tu connectes des services entre eux, tu définis ta logique, et ça tourne - en self-hosted ou dans leur cloud. Avec plus de 182k étoiles sur GitHub, c&#x27;est l&#x27;une des alternatives open source les plus populaires à Zapier et Make.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Visuel + code&lt;&#x2F;strong&gt; : l&#x27;éditeur drag-and-drop suffit pour les cas simples, mais tu peux injecter du JavaScript ou Python natif dans n&#x27;importe quel nœud quand la logique devient complexe.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;400+ intégrations natives&lt;&#x2F;strong&gt; : de Slack à PostgreSQL en passant par Google Sheets, les connecteurs sont prêts à l&#x27;emploi. Plus de 900 templates communautaires pour démarrer rapidement.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;IA intégrée via LangChain&lt;&#x2F;strong&gt; : les agents IA sont des citoyens de première classe. Tu peux construire des chaînes LLM directement dans tes workflows sans bricoler d&#x27;API à la main.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Self-hosting complet&lt;&#x2F;strong&gt; : tu gardes le contrôle total sur tes données et tes workflows. Un &lt;code&gt;docker run&lt;&#x2F;code&gt; et c&#x27;est parti.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Fair-code&lt;&#x2F;strong&gt; : le code source est visible et modifiable. Le modèle de licence permet l&#x27;auto-hébergement tout en soutenant le développement du projet.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Gestion d&#x27;erreurs native&lt;&#x2F;strong&gt; : chaque nœud peut avoir son propre flux d&#x27;erreur, avec retry automatique et notifications. Pas besoin de wrapper tes workflows dans du try-catch artisanal.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Synchroniser des données entre CRM, base de données et outils de communication en temps réel&lt;&#x2F;li&gt;
&lt;li&gt;Construire des pipelines d&#x27;enrichissement de leads avec scraping, API et scoring IA&lt;&#x2F;li&gt;
&lt;li&gt;Automatiser le monitoring d&#x27;infrastructure avec alertes conditionnelles sur Slack ou PagerDuty&lt;&#x2F;li&gt;
&lt;li&gt;Orchestrer des agents IA qui traitent des emails, classifient des tickets ou génèrent des rapports&lt;&#x2F;li&gt;
&lt;li&gt;Créer des webhooks personnalisés pour connecter des outils internes sans développer d&#x27;API&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Penpot</title>
        <published>2026-04-03T00:00:00+00:00</published>
        <updated>2026-04-03T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/penpot/"/>
        <id>https://papyrus.z29k.com/gemshelf/penpot/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/penpot/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Penpot est une plateforme de design open source pensée pour la collaboration entre designers et développeurs. Contrairement aux outils propriétaires, elle utilise le SVG comme format natif et génère du CSS réel - pas d&#x27;approximation, pas de traduction hasardeuse. L&#x27;outil est auto-hébergeable, ce qui permet de garder le contrôle total sur ses données et ses fichiers de design.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;SVG natif&lt;&#x2F;strong&gt; : Les designs sont stockés en SVG standard. Pas de format propriétaire, pas de lock-in. Ce qui est dessiné correspond exactement à ce qui sera rendu dans le navigateur.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;CSS Grid intégré&lt;&#x2F;strong&gt; : Depuis la version 2.0, Penpot supporte nativement CSS Grid pour les layouts. Les designers travaillent directement avec les mêmes primitives que les devs front-end.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Inspect mode avec vrai code&lt;&#x2F;strong&gt; : Le mode inspection génère du CSS, HTML et SVG exploitable directement. Fini le copier-coller approximatif depuis un outil qui invente ses propres unités.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Design tokens&lt;&#x2F;strong&gt; : Source unique de vérité entre design et code. Les tokens sont partagés et synchronisés, ce qui réduit drastiquement les incohérences entre maquette et production.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Auto-hébergeable&lt;&#x2F;strong&gt; : Déployable sur sa propre infrastructure via Docker. Les données restent chez soi - un argument de poids pour les entreprises soumises à des contraintes réglementaires.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Système de plugins&lt;&#x2F;strong&gt; : Extensible via un écosystème de plugins pour adapter l&#x27;outil à ses propres workflows et intégrations.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Équipes design-dev qui veulent éliminer le fossé entre maquette et implémentation grâce au CSS natif&lt;&#x2F;li&gt;
&lt;li&gt;Organisations qui ont besoin d&#x27;un outil de design hébergé en interne pour des raisons de conformité ou de souveraineté des données&lt;&#x2F;li&gt;
&lt;li&gt;Projets open source qui cherchent un outil de design collaboratif sans coût de licence&lt;&#x2F;li&gt;
&lt;li&gt;Équipes front-end qui veulent récupérer du code CSS exploitable directement depuis les maquettes&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Seafile</title>
        <published>2026-04-03T00:00:00+00:00</published>
        <updated>2026-04-03T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/seafile/"/>
        <id>https://papyrus.z29k.com/gemshelf/seafile/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/seafile/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Seafile est une plateforme de synchronisation et de partage de fichiers que tu peux héberger toi-même. Les fichiers sont organisés en bibliothèques, chacune synchronisée indépendamment avec chiffrement optionnel côté client. Le projet existe depuis plus de 10 ans, compte plus de 14 000 étoiles sur GitHub et est utilisé par des universités, des entreprises et des organisations soucieuses de garder le contrôle sur leurs données.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Chiffrement côté client&lt;&#x2F;strong&gt; : chaque bibliothèque peut être chiffrée avec un mot de passe utilisateur. Le serveur ne voit jamais les données en clair, même si tu l&#x27;héberges chez un tiers.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Synchronisation delta intelligente&lt;&#x2F;strong&gt; : seuls les blocs modifiés sont transférés, pas le fichier entier. Ça change la donne sur les gros fichiers et les connexions lentes.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Métadonnées extensibles&lt;&#x2F;strong&gt; : tu peux assigner des propriétés personnalisées aux fichiers (statut, propriétaire, niveau de sécurité) et les visualiser en tableau, galerie, kanban ou carte.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Édition collaborative intégrée&lt;&#x2F;strong&gt; : SeaDoc permet l&#x27;édition en temps réel de documents avec suivi de révisions, sans dépendre de services externes.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Contrôle granulaire des permissions&lt;&#x2F;strong&gt; : lecture&#x2F;écriture, lecture seule, aperçu uniquement, liens de partage protégés par mot de passe avec expiration.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Drive virtuel&lt;&#x2F;strong&gt; : un client qui monte les bibliothèques comme un disque local avec synchronisation à la demande - pas besoin de tout télécharger.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Remplacer Dropbox&#x2F;Google Drive par une solution auto-hébergée conforme RGPD&lt;&#x2F;li&gt;
&lt;li&gt;Partager des fichiers sensibles entre équipes avec chiffrement de bout en bout&lt;&#x2F;li&gt;
&lt;li&gt;Gérer une base documentaire d&#x27;entreprise avec tags hiérarchiques et vues personnalisées&lt;&#x2F;li&gt;
&lt;li&gt;Mettre en place un wiki collaboratif interne avec versionnement&lt;&#x2F;li&gt;
&lt;li&gt;Synchroniser des fichiers volumineux entre plusieurs postes sans saturer la bande passante&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Strapi</title>
        <published>2026-04-03T00:00:00+00:00</published>
        <updated>2026-04-03T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/strapi/"/>
        <id>https://papyrus.z29k.com/gemshelf/strapi/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/strapi/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Strapi est un CMS headless open source construit en TypeScript sur Node.js. Il fournit un panneau d&#x27;administration visuel pour gérer du contenu, et expose automatiquement des API REST et GraphQL consommables par n&#x27;importe quel frontend. L&#x27;idée : découpler la gestion de contenu de la présentation, sans sacrifier l&#x27;expérience éditeur.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Content Types Builder&lt;&#x2F;strong&gt; : création de modèles de contenu directement depuis l&#x27;admin, avec des champs dynamiques, des zones de contenu flexibles et des relations entre types. Pas besoin de toucher au code pour modéliser ses données.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;API auto-générée&lt;&#x2F;strong&gt; : chaque content type expose automatiquement des endpoints REST et GraphQL. Filtres, tri, pagination et population des relations inclus nativement.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Admin personnalisable&lt;&#x2F;strong&gt; : le panneau d&#x27;admin est extensible via un système de plugins. On peut modifier l&#x27;interface, ajouter des champs custom ou intégrer des services tiers sans forker le projet.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Multi-base de données&lt;&#x2F;strong&gt; : PostgreSQL, MySQL, MariaDB et SQLite supportés. On choisit sa base selon le contexte, du dev local en SQLite à la prod en PostgreSQL.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Contrôle d&#x27;accès granulaire&lt;&#x2F;strong&gt; : rôles et permissions configurables par content type et par action. Gestion multi-utilisateurs avec des niveaux d&#x27;accès différenciés pour les éditeurs, auteurs et admins.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;i18n natif&lt;&#x2F;strong&gt; : internationalisation intégrée pour gérer du contenu multilingue sans plugin externe.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Backend de contenu pour un site Jamstack (Next.js, Nuxt, Gatsby, Astro)&lt;&#x2F;li&gt;
&lt;li&gt;Gestion de catalogue produit pour un e-commerce headless&lt;&#x2F;li&gt;
&lt;li&gt;Portail éditorial multi-auteur avec workflow de validation&lt;&#x2F;li&gt;
&lt;li&gt;API de contenu pour une application mobile (iOS&#x2F;Android)&lt;&#x2F;li&gt;
&lt;li&gt;Intranet ou base de connaissances interne avec contrôle d&#x27;accès par rôle&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Chatwoot</title>
        <published>2026-04-02T00:00:00+00:00</published>
        <updated>2026-04-02T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/chatwoot/"/>
        <id>https://papyrus.z29k.com/gemshelf/chatwoot/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/chatwoot/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Chatwoot est une plateforme de support client open-source qui centralise toutes les conversations - live chat, email, WhatsApp, Facebook, Instagram, Telegram, SMS - dans une seule inbox. C&#x27;est l&#x27;alternative auto-hébergeable à Intercom et Zendesk pour les équipes qui veulent garder le contrôle sur leurs données.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Omnicanal natif&lt;&#x2F;strong&gt; : une inbox unifiée pour tous les canaux (chat, email, réseaux sociaux, messageries). Fini le jonglage entre dix onglets pour suivre les conversations clients.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Agent IA intégré (Captain)&lt;&#x2F;strong&gt; : automatise les réponses aux questions fréquentes et assiste les agents humains en temps réel. Pas besoin de brancher un service tiers.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Self-hosted ou cloud&lt;&#x2F;strong&gt; : déploiement Docker&#x2F;Kubernetes en quelques minutes avec contrôle total des données, ou version cloud managée si vous préférez ne pas gérer l&#x27;infra.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Écosystème d&#x27;intégrations&lt;&#x2F;strong&gt; : Slack, Shopify, Dialogflow, Linear, Google Translate - Chatwoot se branche sur les outils que votre équipe utilise déjà.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Help Center intégré&lt;&#x2F;strong&gt; : publiez une base de connaissances directement depuis la plateforme pour réduire le volume de tickets entrants.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Startups SaaS cherchant une alternative à Intercom sans le prix Intercom&lt;&#x2F;li&gt;
&lt;li&gt;Équipes support gérant des conversations sur WhatsApp, email et chat web depuis un seul dashboard&lt;&#x2F;li&gt;
&lt;li&gt;Entreprises avec des contraintes de conformité (RGPD, hébergement souverain) nécessitant un self-hosting&lt;&#x2F;li&gt;
&lt;li&gt;E-commerce intégrant le support client directement dans leur stack Shopify&lt;&#x2F;li&gt;
&lt;li&gt;Équipes techniques utilisant l&#x27;API et les webhooks pour automatiser le routage des tickets&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>L&#x27;IA et le code : et si le vrai gain n&#x27;était pas là où on le croit ?</title>
        <published>2026-03-31T00:00:00+00:00</published>
        <updated>2026-03-31T00:00:00+00:00</updated>
        
        <author>
          <name>
            Quentin Mathis
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/articles/mirage-ia/"/>
        <id>https://papyrus.z29k.com/articles/mirage-ia/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/articles/mirage-ia/">&lt;p&gt;On nous avait promis une révolution de la productivité. Des développeurs augmentés qui livrent deux fois plus vite. Des équipes réduites de moitié. Des coûts divisés par trois. Pourtant, sur le terrain, le constat est plus nuancé et bien plus intéressant que le récit marketing ambiant.&lt;&#x2F;p&gt;
&lt;p&gt;Après plusieurs mois d&#x27;utilisation intensive des LLM et des agents IA dans des contextes professionnels, un paradoxe émerge : &lt;strong&gt;ces outils ne font pas forcément gagner du temps, mais ils transforment radicalement la nature du travail qui a de la valeur.&lt;&#x2F;strong&gt; Et c&#x27;est peut-être la vraie révolution.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;le-mirage-de-la-velocite&quot;&gt;Le mirage de la vélocité&lt;&#x2F;h2&gt;
&lt;p&gt;L&#x27;argument de vente numéro un de l&#x27;IA appliquée au développement logiciel, c&#x27;est la vitesse. Copilot, Cursor, Claude Code, les agents autonomes, tous promettent d&#x27;accélérer la production de code. Et c&#x27;est vrai : générer du code n&#x27;a jamais été aussi rapide.&lt;&#x2F;p&gt;
&lt;p&gt;Mais voilà le problème que personne ne veut entendre : &lt;strong&gt;produire du code n&#x27;a jamais été le véritable goulot d&#x27;étranglement.&lt;&#x2F;strong&gt; N&#x27;importe quel développeur expérimenté le sait. Le temps réel d&#x27;un projet ne se consume pas dans l&#x27;écriture des lignes de code. Il se consume dans les allers-retours sur un besoin mal défini, dans le débogage d&#x27;une architecture bancale, dans les réunions pour comprendre ce que le métier attendait vraiment.&lt;&#x2F;p&gt;
&lt;p&gt;Accélérer l&#x27;écriture du code sans améliorer la clarté de ce qu&#x27;on construit, c&#x27;est comme donner un moteur plus puissant à une voiture sans direction : on arrive nulle part, plus vite.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;le-vrai-deplacement-de-valeur&quot;&gt;Le vrai déplacement de valeur&lt;&#x2F;h2&gt;
&lt;p&gt;Ce que l&#x27;on observe concrètement dans les équipes qui tirent le meilleur parti des agents IA, c&#x27;est un basculement du centre de gravité du travail. Le temps qu&#x27;on ne passe plus à écrire du code manuellement, on le passe ou plutôt on &lt;em&gt;devrait&lt;&#x2F;em&gt; le passer à produire ce qui manquait cruellement depuis des années :&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;De la documentation produit.&lt;&#x2F;strong&gt; Qu&#x27;est-ce qu&#x27;on construit exactement ? Pour qui ? Quel problème résout-on ? Les specs fonctionnelles, les user stories détaillées, les critères d&#x27;acceptation, tout ce qui était trop souvent bâclé par manque de temps ou d&#x27;intérêt.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;De la documentation technique.&lt;&#x2F;strong&gt; Comment le système fonctionne ? Quels sont les choix d&#x27;architecture et pourquoi ? Quels compromis ont été faits ? Les ADR (Architecture Decision Records), les diagrammes de flux, les contrats d&#x27;API, tout ce qu&#x27;on promet de faire &quot;après la release&quot; et qu&#x27;on ne fait jamais.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;De la réflexion architecturale.&lt;&#x2F;strong&gt; Avant de demander à un agent de générer un service, il faut lui expliquer ce qu&#x27;on veut. Et pour lui expliquer, il faut le comprendre soi-même. L&#x27;agent devient un miroir impitoyable : si le prompt est flou, le résultat est flou ou au mieux une version générique (coucou les landings générées par IA). Ça oblige à formaliser sa pensée.&lt;&#x2F;p&gt;
&lt;p&gt;En somme, on couche enfin sur le papier notre réflexion pour construire tel ou tel système. Et ça change tout.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;le-paradoxe-de-la-documentation-couteuse-aujourd-hui-indispensable-demain&quot;&gt;Le paradoxe de la documentation : coûteuse aujourd&#x27;hui, indispensable demain&lt;&#x2F;h2&gt;
&lt;p&gt;C&#x27;est un pattern vieux comme l&#x27;industrie logicielle. La documentation est systématiquement sacrifiée car elle est perçue comme non productive à l&#x27;instant T. Écrire une spec, maintenir un ADR, documenter une API, tout cela ne livre pas de feature. Ça ne fait pas bouger le board Jira. Ça ne se voit pas dans le sprint review.&lt;&#x2F;p&gt;
&lt;p&gt;Et pourtant, l&#x27;absence de documentation est l&#x27;un des facteurs les plus destructeurs de vélocité à moyen et long terme. Combien de fois un développeur rejoint-il une équipe pour découvrir un codebase sans README, des décisions d&#x27;architecture qui ne sont consignées nulle part, et des règles métier réparties entre la mémoire de trois personnes dont deux ont quitté l&#x27;entreprise ?&lt;&#x2F;p&gt;
&lt;p&gt;Le coût de cette dette documentaire est invisible au quotidien mais colossal sur la durée : onboarding rallongé, décisions répétées, erreurs d&#x27;interprétation, code legacy incompréhensible.&lt;&#x2F;p&gt;
&lt;p&gt;L&#x27;arrivée des agents IA rend cette négligence encore plus coûteuse. Un agent sans contexte produit du code générique. Un agent nourri d&#x27;une documentation riche, de specs claires et d&#x27;une architecture bien définie produit du code pertinent. &lt;strong&gt;La qualité du travail de l&#x27;IA est directement proportionnelle à la qualité de la réflexion humaine qui le précède.&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;h2 id=&quot;au-dela-du-developpement-un-enjeu-transversal&quot;&gt;Au-delà du développement : un enjeu transversal&lt;&#x2F;h2&gt;
&lt;p&gt;Ce phénomène dépasse largement le périmètre technique. Dans toutes les fonctions de l&#x27;entreprise où les LLM s&#x27;installent, le même schéma se dessine.&lt;&#x2F;p&gt;
&lt;p&gt;En marketing, les équipes qui obtiennent les meilleurs résultats ne sont pas celles qui génèrent le plus de contenus, mais celles qui ont pris le temps de formaliser leur positionnement, leur ton, leurs personas. En gestion de projet, l&#x27;IA est utile quand le cadrage est solide, inutile quand le périmètre est nébuleux. En support client, les réponses automatisées sont pertinentes quand la base de connaissances est structurée et à jour.&lt;&#x2F;p&gt;
&lt;p&gt;Le dénominateur commun est toujours le même : &lt;strong&gt;l&#x27;IA amplifie ce qui existe déjà.&lt;&#x2F;strong&gt; Si la réflexion est rigoureuse, l&#x27;IA la décuple. Si elle est absente, l&#x27;IA ne produit que du bruit.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;ce-que-ca-implique-pour-les-organisations&quot;&gt;Ce que ça implique pour les organisations&lt;&#x2F;h2&gt;
&lt;p&gt;Cette réalité a des implications profondes sur la manière dont les entreprises devraient aborder l&#x27;adoption de l&#x27;IA.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Investir dans les pratiques avant les outils.&lt;&#x2F;strong&gt; Déployer un agent IA sans avoir d&#x27;abord travaillé sur la qualité de la documentation, la rigueur du cadrage fonctionnel et la clarté de l&#x27;architecture, c&#x27;est construire sur du sable. L&#x27;outil amplifiera les lacunes autant que les forces.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Revaloriser les rôles de conception.&lt;&#x2F;strong&gt; Les profils qui savent poser un problème, structurer une solution et la documenter clairement vont devenir encore plus précieux. Le &quot;sachant silencieux&quot; qui code vite mais n&#x27;explique rien sera de moins en moins indispensable face à un agent qui code aussi vite et ne râle jamais.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Repenser les métriques de performance.&lt;&#x2F;strong&gt; Si on continue à mesurer la productivité en nombre de tickets fermés ou de lignes de code produites, on passera à côté de l&#x27;essentiel. Les indicateurs doivent évoluer pour inclure la qualité de la documentation, la couverture des specs, la clarté de l&#x27;architecture tout ce qui rend le travail d&#x27;une équipe pérenne.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Accepter que le ROI soit qualitatif avant d&#x27;être quantitatif.&lt;&#x2F;strong&gt; Le premier bénéfice des agents IA n&#x27;est pas un gain de temps mesurable en jours-homme. C&#x27;est une amélioration de la qualité : moins de bugs liés à une incompréhension du besoin, moins de refactoring sauvage, moins de connaissances perdues lors des départs. Ces gains sont réels mais plus difficiles à mettre dans un business case.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;le-nouveau-metier-du-developpeur&quot;&gt;Le nouveau métier du développeur&lt;&#x2F;h2&gt;
&lt;p&gt;Pour les développeurs eux-mêmes, ce basculement est une opportunité déguisée en menace. L&#x27;écriture mécanique de code le CRUD, le boilerplate, le plumbing sera de plus en plus déléguée. Ce qui restera, c&#x27;est ce qui a toujours eu le plus de valeur mais qu&#x27;on n&#x27;avait &quot;pas le temps&quot; de faire.&lt;&#x2F;p&gt;
&lt;p&gt;Concevoir des systèmes. Arbitrer des compromis techniques. Comprendre le domaine métier. Communiquer des choix complexes de manière accessible. Produire une documentation qui permet à d&#x27;autres humains ou agents de construire dessus.&lt;&#x2F;p&gt;
&lt;p&gt;Le développeur de demain n&#x27;est pas celui qui code le plus vite. C&#x27;est celui qui pense le plus clairement, et qui sait coucher cette pensée sur le papier.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;conclusion-le-papier-avant-le-clavier&quot;&gt;Conclusion : le papier avant le clavier&lt;&#x2F;h2&gt;
&lt;p&gt;L&#x27;ironie de la révolution IA, c&#x27;est qu&#x27;elle nous ramène à des fondamentaux que l&#x27;industrie logicielle a négligés pendant des décennies sous prétexte d&#x27;agilité mal comprise et de culture du &quot;ship fast&quot;. Documenter, spécifier, architecturer ces activités longtemps considérées comme du &quot;travail improductif&quot; deviennent la compétence différenciante.&lt;&#x2F;p&gt;
&lt;p&gt;Les agents IA ne remplaceront pas les développeurs. Ils remplaceront ceux qui n&#x27;ont rien à dire à un agent. Et avoir quelque chose à dire, ça commence par savoir le formuler clairement, par écrit.&lt;&#x2F;p&gt;
&lt;p&gt;La vraie question n&#x27;est donc pas &quot;l&#x27;IA me fera-t-elle gagner du temps ?&quot; mais plutôt : &lt;strong&gt;&quot;Est-ce que j&#x27;ai suffisamment réfléchi à ce que je construis pour qu&#x27;un agent puisse m&#x27;aider efficacement ?&quot;&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Si la réponse est non, l&#x27;IA ne fera qu&#x27;accélérer le chaos. Si la réponse est oui, elle sera le meilleur collaborateur que vous ayez jamais eu.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>ALTCHA</title>
        <published>2026-03-31T00:00:00+00:00</published>
        <updated>2026-03-31T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/altcha/"/>
        <id>https://papyrus.z29k.com/gemshelf/altcha/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/altcha/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;ALTCHA est un widget CAPTCHA open-source qui remplace reCAPTCHA, hCaptcha ou Turnstile par un mécanisme de proof-of-work. Pas de puzzles visuels, pas de cookies, pas de tracking : le navigateur résout un challenge cryptographique en arrière-plan pendant que l&#x27;utilisateur remplit son formulaire. Le tout packagé en Web Component standard, intégrable partout.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Ultra-léger&lt;&#x2F;strong&gt; : 30 kB gzippé contre 85 kB pour Turnstile, 250 kB pour hCaptcha et 300 kB pour reCAPTCHA. Temps de chargement quasi nul&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Conformité totale&lt;&#x2F;strong&gt; : RGPD, HIPAA, CCPA de base, sans configuration spéciale. Aucune donnée ne transite vers des serveurs tiers&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Accessibilité native&lt;&#x2F;strong&gt; : Conforme WCAG 2.2 AA et European Accessibility Act 2025. Challenges audio disponibles, support RTL, 50+ langues intégrées&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Défense multi-couches&lt;&#x2F;strong&gt; : Le proof-of-work est la première ligne, mais ALTCHA propose aussi l&#x27;analyse de signatures d&#x27;interaction humaine, la détection de proxies, le rate limiting et le géofencing IP&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Intégrations larges&lt;&#x2F;strong&gt; : Starters pour React, Vue, Svelte, Angular, Flutter, React Native. Libs serveur en TypeScript, PHP, Go, Python, Java, Ruby, Elixir. Plugins CMS pour WordPress, Drupal, TYPO3&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Protéger des formulaires de contact ou d&#x27;inscription sans dégrader l&#x27;expérience utilisateur&lt;&#x2F;li&gt;
&lt;li&gt;Sécuriser une API publique tout en restant conforme RGPD sans effort juridique supplémentaire&lt;&#x2F;li&gt;
&lt;li&gt;Remplacer reCAPTCHA sur un site européen pour anticiper les contraintes d&#x27;accessibilité EAA 2025&lt;&#x2F;li&gt;
&lt;li&gt;Déployer une solution anti-spam auto-hébergée sur infrastructure privée (Docker, Kubernetes, AWS ECS)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>BookStack</title>
        <published>2026-03-31T00:00:00+00:00</published>
        <updated>2026-03-31T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/bookstack/"/>
        <id>https://papyrus.z29k.com/gemshelf/bookstack/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/bookstack/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;BookStack est une plateforme de documentation et wiki open-source, auto-hébergée, construite sur Laravel. Elle organise le contenu en une hiérarchie claire - Étagères, Livres, Chapitres, Pages - qui rend la navigation naturelle même avec des centaines de documents. L&#x27;objectif : permettre à n&#x27;importe qui de documenter sans compétence technique particulière.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Interface accessible&lt;&#x2F;strong&gt; : Éditeur WYSIWYG par défaut (TinyMCE), éditeur Markdown disponible, et éditeur de code (CodeMirror). Pas besoin de former les utilisateurs.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Hiérarchie logique&lt;&#x2F;strong&gt; : Le modèle Étagères → Livres → Chapitres → Pages impose une structure sans rigidité excessive. On s&#x27;y retrouve vite.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Recherche full-text&lt;&#x2F;strong&gt; : Moteur de recherche intégré qui indexe tout le contenu, avec filtres avancés par tags, dates et auteurs.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Permissions granulaires&lt;&#x2F;strong&gt; : Système de rôles et permissions à plusieurs niveaux (plateforme, étagère, livre, chapitre, page). Idéal pour les équipes avec des accès différenciés.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Authentification flexible&lt;&#x2F;strong&gt; : Support SAML2, OIDC, LDAP et authentification à deux facteurs. S&#x27;intègre dans un SSO existant sans douleur.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Export multi-format&lt;&#x2F;strong&gt; : Export des pages en PDF, HTML et Markdown. Pratique pour archiver ou partager hors plateforme.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Diagrammes intégrés&lt;&#x2F;strong&gt; : Intégration native de diagrams.net pour créer des schémas directement dans les pages.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Base de connaissances interne pour une équipe technique ou non-technique&lt;&#x2F;li&gt;
&lt;li&gt;Documentation produit ou documentation d&#x27;API avec contrôle d&#x27;accès&lt;&#x2F;li&gt;
&lt;li&gt;Wiki d&#x27;entreprise auto-hébergé en alternative à Confluence ou Notion&lt;&#x2F;li&gt;
&lt;li&gt;Manuel de procédures et onboarding pour les nouveaux arrivants&lt;&#x2F;li&gt;
&lt;li&gt;Documentation projet avec versioning et historique des modifications&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Shinobi</title>
        <published>2026-03-31T00:00:00+00:00</published>
        <updated>2026-03-31T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/shinobi/"/>
        <id>https://papyrus.z29k.com/gemshelf/shinobi/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/shinobi/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Shinobi est un enregistreur vidéo réseau (NVR) open source écrit en Node.js. Il permet de gérer, enregistrer et surveiller des flux vidéo provenant de caméras IP et USB depuis une interface web. Concrètement, c&#x27;est une alternative self-hosted aux systèmes de vidéosurveillance propriétaires, construite comme un wrapper intelligent autour de FFmpeg.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Interface 100% web&lt;&#x2F;strong&gt; : Pas d&#x27;application à installer, tout se passe dans le navigateur. Visualisation des flux en direct, lecture des enregistrements et configuration complète depuis n&#x27;importe quel appareil.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Support massif de caméras&lt;&#x2F;strong&gt; : Compatible avec plus de 6000 modèles de caméras IP et USB via ONVIF, RTSP, MJPEG et d&#x27;autres protocoles standards.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Léger et performant&lt;&#x2F;strong&gt; : Des utilisateurs rapportent 16 caméras en 1080p à 15fps sur un simple Pentium E5500 avec 3 Go de RAM. Shinobi tourne aussi bien sur un serveur dédié que sur un Raspberry Pi.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Temps réel via WebSocket&lt;&#x2F;strong&gt; : Les événements (détection de mouvement, alertes) sont poussés en temps réel vers les clients connectés sans polling.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Détection de mouvement intégrée&lt;&#x2F;strong&gt; : Analyse vidéo côté serveur avec zones configurables, seuils personnalisables et déclenchement d&#x27;enregistrements automatiques.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Multi-utilisateurs&lt;&#x2F;strong&gt; : Gestion de comptes avec permissions granulaires, idéal pour les installations partagées ou les déploiements professionnels.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Surveillance domestique self-hosted sans dépendre d&#x27;un cloud tiers&lt;&#x2F;li&gt;
&lt;li&gt;Monitoring de chantiers ou de locaux commerciaux avec enregistrement continu&lt;&#x2F;li&gt;
&lt;li&gt;Baby monitor accessible depuis mobile via le navigateur&lt;&#x2F;li&gt;
&lt;li&gt;Système de sécurité multi-sites centralisé sur un seul serveur&lt;&#x2F;li&gt;
&lt;li&gt;Intégration dans un setup domotique existant (compatible Home Assistant)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Tesseract.js</title>
        <published>2026-03-31T00:00:00+00:00</published>
        <updated>2026-03-31T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/tesseract-js/"/>
        <id>https://papyrus.z29k.com/gemshelf/tesseract-js/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/tesseract-js/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Tesseract.js est un port JavaScript du moteur OCR Tesseract, compilé en WebAssembly. Il permet d&#x27;extraire du texte depuis des images directement dans le navigateur ou côté serveur avec Node.js, sans aucune dépendance externe ni appel API. Tu lui passes une image, il te retourne le texte - c&#x27;est aussi simple que ça.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;100+ langues supportées&lt;&#x2F;strong&gt; : Du français au chinois en passant par l&#x27;arabe et le russe, la couverture linguistique est massive. Détection automatique de l&#x27;orientation et du script incluse.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Zéro backend nécessaire&lt;&#x2F;strong&gt; : Tout tourne dans le navigateur grâce à WebAssembly. Pas besoin de serveur pour faire de l&#x27;OCR, les données restent côté client.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;API simple et progressive&lt;&#x2F;strong&gt; : Un &lt;code&gt;recognize()&lt;&#x2F;code&gt; suffit pour les cas basiques. Pour les scénarios avancés, un scheduler permet de paralléliser le traitement de plusieurs images simultanément.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Sortie granulaire&lt;&#x2F;strong&gt; : Au-delà du texte brut, Tesseract.js retourne des bounding boxes au niveau paragraphe, ligne, mot et caractère. Utile pour de l&#x27;annotation ou du post-traitement.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Écosystème mature&lt;&#x2F;strong&gt; : 38k stars GitHub, 36k+ dépendants, version 7.0 stable. Le projet est activement maintenu et largement adopté en production.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Extraction de texte depuis des photos de documents (factures, reçus, cartes de visite)&lt;&#x2F;li&gt;
&lt;li&gt;Numérisation de contenu imprimé directement dans une app web sans upload serveur&lt;&#x2F;li&gt;
&lt;li&gt;Sous-titrage ou indexation de texte incrusté dans des images et vidéos&lt;&#x2F;li&gt;
&lt;li&gt;Accessibilité : conversion d&#x27;images textuelles en contenu lisible par les lecteurs d&#x27;écran&lt;&#x2F;li&gt;
&lt;li&gt;Automatisation de saisie de données depuis des scans ou captures d&#x27;écran&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Cap</title>
        <published>2026-03-30T00:00:00+00:00</published>
        <updated>2026-03-30T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/cap/"/>
        <id>https://papyrus.z29k.com/gemshelf/cap/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/cap/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Cap est une alternative open-source aux CAPTCHA traditionnels (reCAPTCHA, hCaptcha, Turnstile). Au lieu de demander aux utilisateurs de cliquer sur des feux tricolores, Cap utilise du proof-of-work SHA-256 et de l&#x27;instrumentation JavaScript pour distinguer les humains des bots. Le tout en ~20kb, sans aucune dépendance, et sans envoyer de télémétrie vers des serveurs tiers.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Ultra-léger&lt;&#x2F;strong&gt; : ~20kb, zéro dépendance - 250x plus petit que hCaptcha. Se charge en millisecondes&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Privacy-first&lt;&#x2F;strong&gt; : Aucune donnée envoyée vers des serveurs externes. Tu gardes le contrôle total sur les données de tes utilisateurs&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Auto-hébergeable&lt;&#x2F;strong&gt; : Mode standalone avec Docker, analytics inclus. Pas de dépendance à un service tiers&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Proof-of-work&lt;&#x2F;strong&gt; : Les utilisateurs ne perdent plus de temps sur des puzzles visuels - le challenge se résout côté navigateur&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Personnalisable&lt;&#x2F;strong&gt; : Couleurs, taille, position, icônes - tout se configure via des variables CSS&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Mode programmatique&lt;&#x2F;strong&gt; : Widget masquable avec résolution de challenges en arrière-plan, parfait pour les API&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Protéger des formulaires contre les bots sans dégrader l&#x27;UX&lt;&#x2F;li&gt;
&lt;li&gt;Sécuriser des API tout en restant accessible aux automatisations légitimes (M2M)&lt;&#x2F;li&gt;
&lt;li&gt;Remplacer reCAPTCHA ou hCaptcha par une solution respectueuse de la vie privée&lt;&#x2F;li&gt;
&lt;li&gt;Ajouter une couche anti-abus sur un site sans dépendre d&#x27;un SaaS externe&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Check If Email Exists</title>
        <published>2026-03-30T00:00:00+00:00</published>
        <updated>2026-03-30T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/check-if-email-exists/"/>
        <id>https://papyrus.z29k.com/gemshelf/check-if-email-exists/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/check-if-email-exists/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Check If Email Exists (aka Reacher) est une bibliothèque Rust qui vérifie si une adresse email est valide sans jamais envoyer de mail. Elle enchaîne validation syntaxique, résolution DNS&#x2F;MX, connexion SMTP et vérification de délivrabilité pour te donner un score de fiabilité (safe&#x2F;risky&#x2F;invalid&#x2F;unknown). Disponible en lib Rust, en CLI ou via un backend HTTP dockerisé.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Vérification complète sans envoi&lt;&#x2F;strong&gt; : Syntaxe, DNS, MX, SMTP, catch-all, boîtes pleines, comptes désactivés - tout ça sans envoyer un seul email&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Détection d&#x27;emails jetables&lt;&#x2F;strong&gt; : Identifie automatiquement les adresses temporaires (Guerrilla Mail, Mailinator, etc.) et les comptes de rôle (info@, admin@)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Trois modes de déploiement&lt;&#x2F;strong&gt; : Lib Rust intégrable dans ton code, CLI pour les scripts, ou backend HTTP via Docker pour une API REST&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Écrit en Rust&lt;&#x2F;strong&gt; : Performant et fiable, le truc tourne sur du volume sans broncher&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Pas de télémétrie&lt;&#x2F;strong&gt; : Self-hosted, tes données de vérification restent chez toi&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Nettoyer une base d&#x27;emails avant une campagne pour réduire le taux de bounce&lt;&#x2F;li&gt;
&lt;li&gt;Valider les adresses à l&#x27;inscription pour éviter les faux comptes&lt;&#x2F;li&gt;
&lt;li&gt;Intégrer une vérification email dans un pipeline CI&#x2F;CD ou un workflow d&#x27;onboarding&lt;&#x2F;li&gt;
&lt;li&gt;Détecter les adresses jetables pour renforcer la qualité des leads&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Paperclip</title>
        <published>2026-03-30T00:00:00+00:00</published>
        <updated>2026-03-30T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/paperclip/"/>
        <id>https://papyrus.z29k.com/gemshelf/paperclip/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/paperclip/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Paperclip est une plateforme d&#x27;orchestration qui coordonne des équipes d&#x27;agents IA autonomes pour exécuter des opérations business. Tu branches tes agents (Claude Code, Cursor, OpenClaw, etc.), tu définis un organigramme avec des rôles et des lignes hiérarchiques, et Paperclip se charge de la délégation de tâches, du suivi des coûts et de la gouvernance. En gros, c&#x27;est le management layer au-dessus de tes agents individuels.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Orchestration multi-providers&lt;&#x2F;strong&gt; : Coordonne des agents de n&#x27;importe quel fournisseur (Claude, Cursor, Codex, scripts bash, endpoints HTTP) dans une structure unifiée&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Organigramme d&#x27;agents&lt;&#x2F;strong&gt; : Chaque agent a un rôle, une fiche de poste et une ligne de reporting - comme une vraie équipe, mais en autonome&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Contrôle des coûts&lt;&#x2F;strong&gt; : Budgets mensuels par agent avec throttling automatique quand la limite approche - fini les surprises sur la facture&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Gouvernance intégrée&lt;&#x2F;strong&gt; : Portes d&#x27;approbation, configs versionnées et rollback - tu gardes le contrôle même quand tout tourne en autonomie&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Alignement sur les objectifs&lt;&#x2F;strong&gt; : Chaque tâche remonte jusqu&#x27;à la mission de l&#x27;entreprise - les agents ne partent pas dans tous les sens&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Isolation multi-company&lt;&#x2F;strong&gt; : Un seul déploiement peut gérer plusieurs entreprises avec séparation complète des données&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Piloter 20+ agents simultanés sans perdre le fil (support client, social media, reporting)&lt;&#x2F;li&gt;
&lt;li&gt;Coordonner des agents spécialisés (dev, design, marketing) vers un objectif produit commun&lt;&#x2F;li&gt;
&lt;li&gt;Automatiser des processus business récurrents avec des agents qui se réveillent sur schedule&lt;&#x2F;li&gt;
&lt;li&gt;Gérer un portfolio de plusieurs business autonomes depuis une seule interface&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Activepieces</title>
        <published>2026-03-28T00:00:00+00:00</published>
        <updated>2026-03-28T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/activepieces/"/>
        <id>https://papyrus.z29k.com/gemshelf/activepieces/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/activepieces/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Activepieces est une plateforme d&#x27;automatisation de workflows open source qui se positionne comme une alternative auto-hébergeable à Zapier. Tu construis des scénarios d&#x27;automatisation via un builder visuel no-code, tu connectes tes applications entre elles et tu laisses tourner. Le tout avec un framework de pièces en TypeScript qui permet d&#x27;étendre la plateforme avec tes propres intégrations.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;280+ intégrations&lt;&#x2F;strong&gt; : Google Sheets, OpenAI, Discord, Slack, RSS et bien d&#x27;autres - la majorité contribuées par la communauté&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Builder visuel no-code&lt;&#x2F;strong&gt; : boucles, branches, retries automatiques, exécution de code avec NPM et versioning des flows - pas juste un enchaînement linéaire de steps&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;IA native&lt;&#x2F;strong&gt; : pièces d&#x27;IA intégrées, support d&#x27;agents et compatibilité MCP (Model Context Protocol) pour connecter les flows à Claude Desktop ou Cursor&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Human-in-the-loop&lt;&#x2F;strong&gt; : workflows avec approbation, délais et interfaces de saisie (chat et formulaires) pour les processus qui nécessitent une validation humaine&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Framework extensible&lt;&#x2F;strong&gt; : tu crées tes propres pièces en TypeScript avec typage fort et hot reloading pour le développement local&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Auto-hébergeable&lt;&#x2F;strong&gt; : déploiement sur ta propre infra, compatible réseau isolé, branding personnalisable pour les usages enterprise&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Synchronisation automatique de données entre CRM, outils de support et tableurs&lt;&#x2F;li&gt;
&lt;li&gt;Workflows d&#x27;approbation avec validation humaine avant exécution d&#x27;actions critiques&lt;&#x2F;li&gt;
&lt;li&gt;Automatisation de tâches répétitives (envoi d&#x27;emails, mise à jour de statuts, notifications)&lt;&#x2F;li&gt;
&lt;li&gt;Intégration d&#x27;agents IA dans des processus métier via les pièces OpenAI et le support MCP&lt;&#x2F;li&gt;
&lt;li&gt;Remplacement d&#x27;un abonnement Zapier&#x2F;Make par une solution self-hosted maîtrisée&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Cal.com</title>
        <published>2026-03-28T00:00:00+00:00</published>
        <updated>2026-03-28T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/calcom/"/>
        <id>https://papyrus.z29k.com/gemshelf/calcom/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/calcom/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Cal.com est une plateforme de prise de rendez-vous open source qui se présente comme le successeur de Calendly. Tu crées des pages de réservation, tu connectes tes calendriers et tes invités choisissent un créneau disponible. Le tout est auto-hébergeable, white-label par défaut et piloté par une API pour s&#x27;intégrer dans n&#x27;importe quel produit.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;White-label natif&lt;&#x2F;strong&gt; : conçu dès le départ pour être personnalisé et déployé sur ton propre domaine, sans mention de Cal.com visible par tes utilisateurs&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;API-first&lt;&#x2F;strong&gt; : architecture tRPC qui permet d&#x27;intégrer la prise de rendez-vous en mode headless dans ton application existante&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Auto-hébergeable&lt;&#x2F;strong&gt; : déploiement Docker, Railway, Render ou Vercel - tu gardes le contrôle total de tes données de planification&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Intégrations calendrier&lt;&#x2F;strong&gt; : synchronisation native avec Google Calendar, Outlook, Apple Calendar et d&#x27;autres providers&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Types d&#x27;événements flexibles&lt;&#x2F;strong&gt; : durées variables, événements collectifs, round-robin entre membres d&#x27;équipe et réservations récurrentes&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Workflows et automatisation&lt;&#x2F;strong&gt; : rappels, confirmations et notifications personnalisables par email et SMS&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Page de réservation publique pour freelances, consultants ou avocats&lt;&#x2F;li&gt;
&lt;li&gt;Système de prise de rendez-vous intégré dans une application SaaS en mode white-label&lt;&#x2F;li&gt;
&lt;li&gt;Planification d&#x27;appels commerciaux avec distribution round-robin entre les membres de l&#x27;équipe&lt;&#x2F;li&gt;
&lt;li&gt;Réservation de créneaux pour cours, séminaires ou sessions de coaching avec gestion de capacité&lt;&#x2F;li&gt;
&lt;li&gt;Remplacement d&#x27;un abonnement Calendly par une solution self-hosted maîtrisée&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>changedetection.io</title>
        <published>2026-03-28T00:00:00+00:00</published>
        <updated>2026-03-28T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/changedetection/"/>
        <id>https://papyrus.z29k.com/gemshelf/changedetection/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/changedetection/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;changedetection.io est un outil self-hosted qui surveille des pages web et te prévient dès qu&#x27;un changement est détecté. Tu ajoutes une URL, tu définis quoi surveiller (toute la page, un sélecteur CSS, un XPath, une API JSON) et l&#x27;outil te notifie via Discord, Slack, Telegram, email ou 30+ autres canaux. C&#x27;est du monitoring de contenu web, simple et efficace.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Sélecteur visuel&lt;&#x2F;strong&gt; : tu cliques sur la zone de la page à surveiller directement dans l&#x27;interface, pas besoin de connaître le CSS ou le XPath&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Diffs détaillés&lt;&#x2F;strong&gt; : visualisation des changements mot par mot, ligne par ligne ou caractère par caractère - tu vois exactement ce qui a bougé&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Support JavaScript&lt;&#x2F;strong&gt; : les pages dynamiques rendues côté client sont supportées via Playwright ou WebDriver, pas juste du HTML statique&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Détection de prix et restock&lt;&#x2F;strong&gt; : mode dédié pour surveiller les baisses de prix et les retours en stock avec seuils configurables&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Browser steps&lt;&#x2F;strong&gt; : tu peux automatiser des étapes de navigation (login, clic, remplissage de formulaire) avant la capture du contenu&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;30+ canaux de notification&lt;&#x2F;strong&gt; : via Apprise, tu branches quasiment n&#x27;importe quel service d&#x27;alerting&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;API REST&lt;&#x2F;strong&gt; : spécification OpenAPI pour intégrer la surveillance dans tes propres workflows&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Surveillance de prix sur des sites e-commerce avec notification quand le prix descend sous un seuil&lt;&#x2F;li&gt;
&lt;li&gt;Veille réglementaire et juridique sur des pages gouvernementales qui changent discrètement&lt;&#x2F;li&gt;
&lt;li&gt;Alertes de retour en stock pour des produits épuisés&lt;&#x2F;li&gt;
&lt;li&gt;Monitoring d&#x27;APIs JSON pour détecter des changements de données ou de structure&lt;&#x2F;li&gt;
&lt;li&gt;Surveillance de pages de recrutement pour être notifié des nouvelles offres d&#x27;emploi&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Documenso</title>
        <published>2026-03-28T00:00:00+00:00</published>
        <updated>2026-03-28T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/documenso/"/>
        <id>https://papyrus.z29k.com/gemshelf/documenso/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/documenso/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Documenso est une plateforme de signature électronique de documents open source qui se positionne comme alternative à DocuSign. Tu envoies un document PDF, les signataires reçoivent un lien, signent en ligne et tout le monde récupère le document signé. Le code est ouvert, auditable, et tu peux auto-héberger l&#x27;ensemble sur ta propre infrastructure.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Open source et auditable&lt;&#x2F;strong&gt; : le code est public sous licence AGPL-3.0, tu peux vérifier exactement comment tes signatures et documents sont traités&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Auto-hébergeable&lt;&#x2F;strong&gt; : déploiement via Docker, Railway, Render ou Koyeb - tes documents ne transitent pas par une infrastructure tierce si tu ne le veux pas&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Stack moderne&lt;&#x2F;strong&gt; : React Router, Prisma, Tailwind CSS, shadcn&#x2F;ui et tRPC pour des APIs type-safe - un projet agréable à étendre et maintenir&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Signature PDF native&lt;&#x2F;strong&gt; : package @documenso&#x2F;pdf-sign dédié à la signature numérique de PDF, pas juste une image collée sur un document&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;API-first&lt;&#x2F;strong&gt; : architecture tRPC qui permet d&#x27;intégrer la signature de documents dans tes propres workflows applicatifs&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Déploiement flexible&lt;&#x2F;strong&gt; : one-click deploy sur plusieurs plateformes cloud ou installation manuelle pour les environnements custom&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Signature de contrats commerciaux sans dépendre d&#x27;un SaaS propriétaire et coûteux&lt;&#x2F;li&gt;
&lt;li&gt;Workflows de validation documentaire internes avec audit trail transparent&lt;&#x2F;li&gt;
&lt;li&gt;Intégration de la signature électronique dans une application métier via l&#x27;API&lt;&#x2F;li&gt;
&lt;li&gt;Entreprises soumises à des contraintes de souveraineté des données qui ne peuvent pas utiliser DocuSign&lt;&#x2F;li&gt;
&lt;li&gt;Équipes juridiques qui ont besoin de traçabilité complète sur le processus de signature&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Medusa</title>
        <published>2026-03-28T00:00:00+00:00</published>
        <updated>2026-03-28T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/medusa/"/>
        <id>https://papyrus.z29k.com/gemshelf/medusa/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/medusa/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Medusa est une plateforme e-commerce open source construite en TypeScript qui fournit les briques fondamentales du commerce en ligne. Au lieu de te forcer dans un moule rigide, elle te donne un framework de personnalisation et des modules commerce réutilisables que tu assembles selon tes besoins. L&#x27;architecture est headless : le backend gère la logique métier, et tu branches le frontend de ton choix.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Architecture modulaire&lt;&#x2F;strong&gt; : chaque fonctionnalité (produits, commandes, inventaire, promotions) est un module indépendant disponible sur npm, tu prends ce dont tu as besoin&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Framework de personnalisation intégré&lt;&#x2F;strong&gt; : pas besoin de forker le core pour adapter la logique métier, le framework permet d&#x27;étendre et de surcharger proprement&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Headless natif&lt;&#x2F;strong&gt; : API-first, tu connectes n&#x27;importe quel frontend (React, Next.js, mobile) sans être lié à un rendu côté serveur imposé&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Multi-canal et multi-région&lt;&#x2F;strong&gt; : gestion native de plusieurs canaux de vente, devises, langues et entrepôts depuis une seule instance&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Écosystème TypeScript&lt;&#x2F;strong&gt; : type-safe de bout en bout, DX soignée avec autocomplétion et détection d&#x27;erreurs à la compilation&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Licence MIT&lt;&#x2F;strong&gt; : pas de piège, pas de fonctionnalité verrouillée derrière une licence commerciale&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Boutique B2B ou DTC avec des règles métier spécifiques (pricing par client, catalogues segmentés)&lt;&#x2F;li&gt;
&lt;li&gt;Marketplace multi-vendeurs avec gestion d&#x27;inventaire distribuée&lt;&#x2F;li&gt;
&lt;li&gt;Plateforme de vente multi-régionale avec devises, taxes et entrepôts locaux&lt;&#x2F;li&gt;
&lt;li&gt;Migration depuis Shopify ou WooCommerce vers une solution headless maîtrisée&lt;&#x2F;li&gt;
&lt;li&gt;Système de point de vente (PoS) connecté au même backend que la boutique en ligne&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Novu</title>
        <published>2026-03-28T00:00:00+00:00</published>
        <updated>2026-03-28T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/novu/"/>
        <id>https://papyrus.z29k.com/gemshelf/novu/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/novu/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Novu est une infrastructure de notifications open source qui centralise l&#x27;envoi de messages sur tous les canaux : email, SMS, push, chat et in-app. Au lieu de câbler manuellement chaque provider (SendGrid, Twilio, Firebase...), tu passes par une seule API et un moteur de workflows qui orchestre la livraison. Le projet inclut aussi un composant inbox embarquable directement dans ton frontend.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;API unifiée multi-canal&lt;&#x2F;strong&gt; : un seul point d&#x27;entrée pour email, SMS, push, chat et notifications in-app - tu changes de provider sans toucher à ton code métier&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Inbox embarquable&lt;&#x2F;strong&gt; : un composant React prêt à intégrer avec support temps réel, préférences utilisateur et thème personnalisable&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Moteur de workflows&lt;&#x2F;strong&gt; : tu définis des scénarios de notification complexes (conditions, délais, fallback entre canaux) sans réinventer la roue&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Digest Engine&lt;&#x2F;strong&gt; : agrège plusieurs notifications en un seul message pour éviter de spammer tes utilisateurs&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Éditeur no-code&lt;&#x2F;strong&gt; : les équipes produit peuvent modifier les templates email par blocs sans toucher au code&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Préférences utilisateur&lt;&#x2F;strong&gt; : composant intégré qui permet à chaque utilisateur de choisir ses canaux et sa fréquence de notification&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Notifications transactionnelles multi-canal (confirmation de commande, reset de mot de passe, alertes)&lt;&#x2F;li&gt;
&lt;li&gt;Centre de notifications in-app avec inbox temps réel dans une SaaS&lt;&#x2F;li&gt;
&lt;li&gt;Workflows de communication complexes avec escalade entre canaux (email → SMS → push si pas lu)&lt;&#x2F;li&gt;
&lt;li&gt;Digests quotidiens ou hebdomadaires regroupant plusieurs événements en un seul résumé&lt;&#x2F;li&gt;
&lt;li&gt;Gestion centralisée des préférences de notification par utilisateur&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>OneUptime</title>
        <published>2026-03-28T00:00:00+00:00</published>
        <updated>2026-03-28T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/oneuptime/"/>
        <id>https://papyrus.z29k.com/gemshelf/oneuptime/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/oneuptime/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;OneUptime est une plateforme d&#x27;observabilité open source qui regroupe tout ce dont une équipe ops a besoin dans un seul outil : monitoring d&#x27;uptime, pages de statut, gestion d&#x27;incidents, planification d&#x27;astreintes, collecte de logs et monitoring de performance applicative (APM). L&#x27;objectif est de remplacer l&#x27;empilement habituel Pingdom + StatusPage + PagerDuty + Datadog + Sentry par une solution unifiée et auto-hébergeable.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Tout-en-un réel&lt;&#x2F;strong&gt; : monitoring, status pages, incidents, on-call, logs et APM dans la même interface - plus besoin de jongler entre six outils différents&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Auto-hébergeable&lt;&#x2F;strong&gt; : tu déploies sur ta propre infra et tu gardes le contrôle total de tes données d&#x27;observabilité&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Status pages personnalisables&lt;&#x2F;strong&gt; : pages de statut brandées pour communiquer avec tes utilisateurs pendant les incidents, sans outil externe&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;On-call et escalades&lt;&#x2F;strong&gt; : planification des astreintes avec politiques d&#x27;escalade, alertes multi-canal (email, SMS, Slack) et rotation automatique&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Copilot IA&lt;&#x2F;strong&gt; : détection d&#x27;anomalies, analyse de causes racines et suggestions de corrections automatiques 24&#x2F;7&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;5000+ intégrations&lt;&#x2F;strong&gt; : moteur de workflows pour connecter OneUptime à ton écosystème existant sans développement custom&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Monitoring d&#x27;uptime de sites web et APIs depuis plusieurs localisations géographiques avec alertes en temps réel&lt;&#x2F;li&gt;
&lt;li&gt;Page de statut publique pour communiquer l&#x27;état de tes services à tes clients et parties prenantes&lt;&#x2F;li&gt;
&lt;li&gt;Gestion d&#x27;incidents collaborative avec timeline, assignation et post-mortems&lt;&#x2F;li&gt;
&lt;li&gt;Centralisation des logs applicatifs avec recherche et visualisation intégrées&lt;&#x2F;li&gt;
&lt;li&gt;Remplacement d&#x27;un stack d&#x27;observabilité multi-outils par une solution unique auto-hébergée&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Playwright</title>
        <published>2026-03-28T00:00:00+00:00</published>
        <updated>2026-03-28T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/playwright/"/>
        <id>https://papyrus.z29k.com/gemshelf/playwright/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/playwright/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Playwright est un framework de test et d&#x27;automatisation web développé par Microsoft qui permet de piloter Chromium, Firefox et WebKit avec une seule API. Tu écris tes tests une fois, tu les lances sur les trois moteurs de rendu. Le framework gère automatiquement l&#x27;attente des éléments, l&#x27;isolation des tests et fournit des outils de debug intégrés.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Une API, trois moteurs&lt;&#x2F;strong&gt; : Chromium, Firefox et WebKit supportés nativement - tu couvres Chrome, Edge, Safari et Firefox avec le même code de test&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Auto-wait intelligent&lt;&#x2F;strong&gt; : Playwright attend automatiquement que les éléments soient actionnables avant d&#x27;interagir, plus besoin de &lt;code&gt;sleep&lt;&#x2F;code&gt; ou de &lt;code&gt;waitFor&lt;&#x2F;code&gt; manuels partout&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Isolation par contexte&lt;&#x2F;strong&gt; : chaque test tourne dans un contexte navigateur isolé créé en quelques millisecondes, pas de pollution entre tests et pas d&#x27;overhead de redémarrage&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Trace Viewer&lt;&#x2F;strong&gt; : outil visuel pour rejouer chaque action d&#x27;un test échoué avec screenshots, DOM snapshots et logs réseau - le debug devient concret&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Codegen&lt;&#x2F;strong&gt; : enregistre tes interactions dans le navigateur et génère le code de test correspondant, idéal pour bootstrapper rapidement&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Assertions web-first&lt;&#x2F;strong&gt; : les assertions retentent automatiquement jusqu&#x27;à satisfaction, ce qui élimine la majorité des tests flaky&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Tests end-to-end cross-browser pour applications web (React, Vue, Angular, SSR)&lt;&#x2F;li&gt;
&lt;li&gt;Automatisation de workflows navigateur (scraping, génération de PDF, captures d&#x27;écran)&lt;&#x2F;li&gt;
&lt;li&gt;Tests de régression visuelle avec comparaison de screenshots&lt;&#x2F;li&gt;
&lt;li&gt;Interception et mock de requêtes réseau pour tester des scénarios edge-case&lt;&#x2F;li&gt;
&lt;li&gt;Tests d&#x27;applications multi-onglets ou multi-utilisateurs avec contextes parallèles&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>RustDesk</title>
        <published>2026-03-28T00:00:00+00:00</published>
        <updated>2026-03-28T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/rustdesk/"/>
        <id>https://papyrus.z29k.com/gemshelf/rustdesk/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/rustdesk/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;RustDesk est une solution de bureau à distance open source qui fonctionne sans configuration. L&#x27;idée est simple : reprendre le contrôle total de ses connexions distantes sans dépendre de services cloud tiers comme TeamViewer ou AnyDesk. Tu héberges ton propre serveur relais, tu gardes tes données chez toi.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Auto-hébergement natif&lt;&#x2F;strong&gt; : tu déploies ton propre serveur de signalisation et relais, tes flux ne transitent jamais par une infrastructure tierce&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Zéro configuration&lt;&#x2F;strong&gt; : ça marche out-of-the-box avec les serveurs publics RustDesk, et tu bascules sur ton infra quand tu veux&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Cross-platform complet&lt;&#x2F;strong&gt; : Windows, macOS, Linux, Android, iOS et même le Web - tout le monde peut se connecter&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Connexion P2P&lt;&#x2F;strong&gt; : quand c&#x27;est possible, la connexion est directe entre les machines, sans passer par le relais&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Transfert de fichiers et tunneling TCP&lt;&#x2F;strong&gt; : pas juste du bureau à distance, c&#x27;est aussi un outil réseau complet pour transférer des fichiers ou créer des tunnels&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Écrit en Rust&lt;&#x2F;strong&gt; : performant, sûr et léger - le client consomme peu de ressources comparé aux alternatives propriétaires&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Support technique à distance sans installer de logiciel propriétaire ni créer de compte&lt;&#x2F;li&gt;
&lt;li&gt;Administration de serveurs et postes de travail en entreprise avec un serveur relais interne&lt;&#x2F;li&gt;
&lt;li&gt;Accès à son PC personnel depuis n&#x27;importe où sans exposer de port RDP&#x2F;VNC sur Internet&lt;&#x2F;li&gt;
&lt;li&gt;Déploiement en environnement sensible où les données ne doivent pas transiter par des serveurs tiers&lt;&#x2F;li&gt;
&lt;li&gt;Alternative self-hosted pour les équipes IT qui veulent maîtriser leur chaîne de connexion&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Twenty</title>
        <published>2026-03-28T00:00:00+00:00</published>
        <updated>2026-03-28T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/twenty/"/>
        <id>https://papyrus.z29k.com/gemshelf/twenty/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/twenty/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Twenty est un CRM open source pensé comme une alternative moderne à Salesforce. L&#x27;interface s&#x27;inspire de Notion, Airtable et Linear pour offrir une expérience fluide aux équipes commerciales. Tu auto-héberges tes données clients, tu personnalises ton modèle de données et tu ne dépends d&#x27;aucun vendor lock-in.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;UX moderne&lt;&#x2F;strong&gt; : vues table, Kanban, filtres, tri et regroupement - une interface qui ressemble à ce que les équipes utilisent déjà au quotidien, pas un logiciel des années 2000&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Modèle de données extensible&lt;&#x2F;strong&gt; : tu crées tes propres objets et champs personnalisés sans être contraint par un schéma rigide imposé par l&#x27;éditeur&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Workflows et automatisation&lt;&#x2F;strong&gt; : triggers et actions configurables pour automatiser les processus répétitifs (assignation, notifications, mises à jour de statut)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Contrôle d&#x27;accès par rôles&lt;&#x2F;strong&gt; : permissions granulaires avec création de rôles custom, adapté aux équipes de toutes tailles&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Intégrations natives&lt;&#x2F;strong&gt; : email, calendrier et gestion de fichiers intégrés directement dans le CRM&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Auto-hébergeable&lt;&#x2F;strong&gt; : tes données clients restent chez toi, sur ton infra, avec un déploiement Docker simple&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Gestion du pipeline commercial pour équipes sales sans payer les licences Salesforce ou HubSpot&lt;&#x2F;li&gt;
&lt;li&gt;CRM interne pour startups et PME qui veulent garder le contrôle de leurs données clients&lt;&#x2F;li&gt;
&lt;li&gt;Suivi de leads et d&#x27;opportunités avec vues Kanban et filtres personnalisés par commercial&lt;&#x2F;li&gt;
&lt;li&gt;Automatisation des processus de vente (relances, changements de statut, assignation automatique)&lt;&#x2F;li&gt;
&lt;li&gt;Alternative self-hosted pour les entreprises soumises à des contraintes de conformité sur l&#x27;hébergement des données&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Umami</title>
        <published>2026-03-28T00:00:00+00:00</published>
        <updated>2026-03-28T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/umami/"/>
        <id>https://papyrus.z29k.com/gemshelf/umami/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/umami/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Umami est une plateforme d&#x27;analytics web open source conçue comme une alternative respectueuse de la vie privée à Google Analytics. Tu colles un script léger sur ton site, tu récupères tes métriques de fréquentation dans un dashboard clair et tu ne poses aucun cookie sur tes visiteurs. Le tout est auto-hébergeable sur ta propre infra avec PostgreSQL.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Sans cookies&lt;&#x2F;strong&gt; : aucun cookie, aucun consentement à demander - tu es conforme RGPD par défaut sans bandeau intrusif&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Dashboard clair&lt;&#x2F;strong&gt; : pages vues, visiteurs, taux de rebond, durée de visite, sources de trafic et pages populaires - tout l&#x27;essentiel sans bruit&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Auto-hébergeable&lt;&#x2F;strong&gt; : déploiement Docker simple avec PostgreSQL, tes données d&#x27;analytics restent chez toi&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Léger&lt;&#x2F;strong&gt; : le script de tracking pèse quelques Ko, pas d&#x27;impact mesurable sur les performances de ton site&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Événements custom&lt;&#x2F;strong&gt; : track les clics, soumissions de formulaires, inscriptions et toute action métier avec quelques lignes de code&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Fonctionnalités avancées&lt;&#x2F;strong&gt; : parcours utilisateur, funnels, attribution de campagnes, segmentation d&#x27;audience et suivi de revenus&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Analytics de site web ou blog sans dépendre de Google Analytics ni poser de cookies&lt;&#x2F;li&gt;
&lt;li&gt;Suivi de métriques produit pour une SaaS avec événements custom et funnels&lt;&#x2F;li&gt;
&lt;li&gt;Analytics conformes RGPD pour les entreprises européennes sans configuration complexe&lt;&#x2F;li&gt;
&lt;li&gt;Dashboard centralisé pour monitorer plusieurs sites depuis une seule instance&lt;&#x2F;li&gt;
&lt;li&gt;Alternative self-hosted gratuite aux solutions d&#x27;analytics payantes (Mixpanel, Amplitude)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Uptime Kuma</title>
        <published>2026-03-28T00:00:00+00:00</published>
        <updated>2026-03-28T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/uptime-kuma/"/>
        <id>https://papyrus.z29k.com/gemshelf/uptime-kuma/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/uptime-kuma/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Uptime Kuma est un outil de monitoring d&#x27;uptime self-hosted avec une interface web moderne et réactive. Tu ajoutes tes services, il les surveille toutes les 20 secondes et te prévient dès qu&#x27;un truc tombe. Pas de dépendance cloud, pas d&#x27;abonnement - un seul binaire Docker et c&#x27;est parti.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Interface soignée&lt;&#x2F;strong&gt; : UI réactive en Vue.js avec graphiques de latence, certificats SSL et historique d&#x27;uptime - loin du monitoring austère en ligne de commande&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Protocoles multiples&lt;&#x2F;strong&gt; : HTTP(s), TCP, ping, DNS, WebSocket, Docker, Steam, requêtes JSON et surveillance de mots-clés - tu couvres quasiment tous les cas&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;90+ canaux de notification&lt;&#x2F;strong&gt; : Telegram, Discord, Slack, email, Pushover, Gotify, webhook et bien d&#x27;autres - tu branches les alertes où tu veux&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Pages de statut publiques&lt;&#x2F;strong&gt; : pages brandées avec mapping de domaine pour communiquer l&#x27;état de tes services à tes utilisateurs&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Déploiement ultra-simple&lt;&#x2F;strong&gt; : une seule commande Docker et l&#x27;outil tourne, pas de base de données externe ni de configuration complexe&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Intervalles courts&lt;&#x2F;strong&gt; : checks toutes les 20 secondes par défaut, tu détectes les pannes rapidement&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Monitoring d&#x27;uptime de sites web, APIs et services internes pour un homelab ou une petite équipe&lt;&#x2F;li&gt;
&lt;li&gt;Pages de statut publiques pour informer les clients de l&#x27;état des services en temps réel&lt;&#x2F;li&gt;
&lt;li&gt;Surveillance de certificats SSL avec alertes avant expiration&lt;&#x2F;li&gt;
&lt;li&gt;Monitoring de conteneurs Docker directement depuis l&#x27;interface&lt;&#x2F;li&gt;
&lt;li&gt;Alternative self-hosted gratuite aux services de monitoring payants (Pingdom, Better Uptime)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Usertour</title>
        <published>2026-03-27T00:00:00+00:00</published>
        <updated>2026-03-27T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/usertour/"/>
        <id>https://papyrus.z29k.com/gemshelf/usertour/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/usertour/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Usertour est une plateforme open-source qui permet de créer des tours guidés, des checklists d&#x27;onboarding et des sondages directement dans une application web. Pensé comme une alternative auto-hébergeable à Userflow et Appcues, il s&#x27;intègre à n&#x27;importe quel framework frontend via un SDK JavaScript léger.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Open-source et auto-hébergeable&lt;&#x2F;strong&gt; : Déployable via Docker, les données restent chez soi. La version communautaire est sous licence MIT.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Framework-agnostic&lt;&#x2F;strong&gt; : Le SDK JavaScript fonctionne avec React, Vue, Angular ou n&#x27;importe quelle app web - pas de dépendance à un framework spécifique.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Éditeur visuel intégré&lt;&#x2F;strong&gt; : Création des tours et checklists via un builder no-code, sans toucher au code de l&#x27;application.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Ciblage utilisateur avancé&lt;&#x2F;strong&gt; : Segmentation par attributs custom et événements, gestion multi-environnement (production, staging) et versioning des contenus.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Analytique et suivi&lt;&#x2F;strong&gt; : Métriques de performance, identification des points de décrochage et suivi de complétion pour itérer sur l&#x27;onboarding.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Guider les nouveaux utilisateurs à travers les fonctionnalités clés d&#x27;un SaaS lors de leur première connexion&lt;&#x2F;li&gt;
&lt;li&gt;Déployer des checklists d&#x27;activation pour augmenter le taux de conversion trial-to-paid&lt;&#x2F;li&gt;
&lt;li&gt;Collecter du feedback utilisateur via des sondages contextuels sans quitter l&#x27;application&lt;&#x2F;li&gt;
&lt;li&gt;Annoncer de nouvelles fonctionnalités avec des tooltips ciblés sur des segments précis&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Dub</title>
        <published>2026-03-26T00:00:00+00:00</published>
        <updated>2026-03-26T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/dub/"/>
        <id>https://papyrus.z29k.com/gemshelf/dub/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/dub/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Dub est une plateforme open source d&#x27;attribution de liens conçue pour les équipes marketing qui veulent aller au-delà des simples vanity metrics. Elle combine raccourcisseur d&#x27;URL, analytics de conversion et gestion de programmes d&#x27;affiliation dans une seule interface. Utilisée par des boîtes comme Twilio, Vercel et Perplexity, elle traite plus de 100 millions de clics par mois.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Liens courts enrichis&lt;&#x2F;strong&gt; : domaines personnalisés, QR codes, ciblage par appareil et géolocalisation, A&#x2F;B testing, deep links et cloaking - tout est configurable par lien.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Attribution bout en bout&lt;&#x2F;strong&gt; : suivi du parcours complet depuis le premier clic jusqu&#x27;à la conversion finale, avec analytics en temps réel. Fini les dashboards qui comptent juste des clics.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Programmes d&#x27;affiliation intégrés&lt;&#x2F;strong&gt; : gestion des partenaires, structures de commissions, dashboards de référencement embarqués et paiements globaux - sans outil tiers.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;API-first&lt;&#x2F;strong&gt; : SDKs disponibles en TypeScript, Python, Go, PHP et Ruby. Webhooks, deep linking différé et génération de liens à l&#x27;échelle pour les cas d&#x27;usage programmatiques.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Open source et self-hostable&lt;&#x2F;strong&gt; : le code est sur GitHub sous licence AGPL-3.0 avec 23k+ stars. Tu peux l&#x27;auto-héberger ou utiliser la version SaaS managée.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Mesurer l&#x27;impact réel de campagnes marketing avec du suivi de conversion, pas juste des clics&lt;&#x2F;li&gt;
&lt;li&gt;Lancer un programme d&#x27;affiliation sans empiler les outils tiers&lt;&#x2F;li&gt;
&lt;li&gt;Générer des liens courts brandés à grande échelle via l&#x27;API pour une plateforme ou un produit&lt;&#x2F;li&gt;
&lt;li&gt;Remplacer Bitly par une solution open source avec analytics avancés et domaines custom&lt;&#x2F;li&gt;
&lt;li&gt;Tracker l&#x27;attribution cross-canal (email, social, paid) dans un seul dashboard&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Keycloak</title>
        <published>2026-03-26T00:00:00+00:00</published>
        <updated>2026-03-26T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/keycloak/"/>
        <id>https://papyrus.z29k.com/gemshelf/keycloak/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/keycloak/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Keycloak est une plateforme open source d&#x27;Identity and Access Management (IAM) qui permet d&#x27;ajouter l&#x27;authentification et l&#x27;autorisation à des applications sans réinventer la roue. Elle gère le Single Sign-On, la fédération d&#x27;identités, l&#x27;authentification forte et les autorisations fines - le tout via une console d&#x27;administration centralisée. Projet en incubation à la CNCF, maintenu par Red Hat et une large communauté.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Single Sign-On clé en main&lt;&#x2F;strong&gt; : un utilisateur se connecte une seule fois et accède à toutes les applications connectées. Supporte OpenID Connect, OAuth 2.0 et SAML 2.0 nativement.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Fédération d&#x27;identités&lt;&#x2F;strong&gt; : connecteurs LDAP et Active Directory intégrés, plus la possibilité de brancher des providers personnalisés. Social login (Google, GitHub, etc.) en quelques clics.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Autorisations granulaires&lt;&#x2F;strong&gt; : va bien au-delà du simple RBAC. Politiques d&#x27;autorisation fines basées sur les attributs, les rôles, le contexte - tout est configurable depuis la console admin.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Console d&#x27;admin complète&lt;&#x2F;strong&gt; : gestion centralisée des realms, utilisateurs, clients, rôles et sessions. Les utilisateurs ont aussi leur propre console pour gérer leur profil et leur MFA.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Extensible et personnalisable&lt;&#x2F;strong&gt; : thèmes personnalisables, SPIs pour étendre le comportement, support du clustering pour la haute disponibilité. S&#x27;adapte aussi bien à un side-project qu&#x27;à une infra entreprise.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Centraliser l&#x27;authentification de plusieurs microservices derrière un seul Identity Provider&lt;&#x2F;li&gt;
&lt;li&gt;Remplacer un système d&#x27;auth maison par une solution éprouvée compatible avec les standards&lt;&#x2F;li&gt;
&lt;li&gt;Fédérer des utilisateurs depuis un Active Directory existant vers des applications web modernes&lt;&#x2F;li&gt;
&lt;li&gt;Ajouter du social login et du MFA à une application sans écrire une seule ligne de code d&#x27;auth&lt;&#x2F;li&gt;
&lt;li&gt;Sécuriser des APIs avec des tokens OAuth 2.0 et des politiques d&#x27;autorisation centralisées&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Pencil</title>
        <published>2026-03-26T00:00:00+00:00</published>
        <updated>2026-03-26T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/pencil/"/>
        <id>https://papyrus.z29k.com/gemshelf/pencil/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/pencil/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Pencil est un outil de design vectoriel disponible en extension IDE (VS Code, Cursor) ou en app desktop standalone (macOS, Linux, Windows). Il apporte un canvas de design infini avec génération de composants HTML&#x2F;CSS&#x2F;React pixel-perfect pilotée par IA. Les fichiers &lt;code&gt;.pen&lt;&#x2F;code&gt; vivent dans votre repo et se versionnent avec Git comme n&#x27;importe quel fichier source.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Design dans l&#x27;IDE&lt;&#x2F;strong&gt; : Plus besoin de jongler entre Figma et votre éditeur. Le canvas est à un onglet de votre code, zéro friction.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;MCP bidirectionnel&lt;&#x2F;strong&gt; : Pencil expose un serveur MCP local avec lecture ET écriture. Vous pouvez brancher d&#x27;autres MCPs, des bases de données, des APIs ou des agents externes directement sur le canvas.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Format ouvert&lt;&#x2F;strong&gt; : Les fichiers &lt;code&gt;.pen&lt;&#x2F;code&gt; sont lisibles, debuggables et extensibles. Pas de boîte noire, pas de vendor lock-in. Tout vit dans le repo.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;IA multiplayer&lt;&#x2F;strong&gt; : Lancez plusieurs agents en parallèle pour générer des écrans ou explorer des directions de design simultanément.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Import Figma&lt;&#x2F;strong&gt; : Copiez-collez vos designs depuis Figma. Vecteurs, textes et styles arrivent intacts.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Brand kits intégrés&lt;&#x2F;strong&gt; : Des kits de composants design prêts à l&#x27;emploi, ou branchez votre propre design system depuis le codebase.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Prototyper des interfaces directement dans Cursor ou VS Code sans quitter le contexte de développement&lt;&#x2F;li&gt;
&lt;li&gt;Générer du code React&#x2F;HTML&#x2F;CSS production-ready à partir de maquettes vectorielles&lt;&#x2F;li&gt;
&lt;li&gt;Versionner les fichiers de design avec Git au même titre que le code source&lt;&#x2F;li&gt;
&lt;li&gt;Connecter des sources de données externes (APIs, BDD) au canvas via MCP pour des maquettes dynamiques&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Zola</title>
        <published>2026-03-24T00:00:00+00:00</published>
        <updated>2026-03-24T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/zola/"/>
        <id>https://papyrus.z29k.com/gemshelf/zola/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/zola/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Zola est un générateur de sites statiques compilé en Rust et distribué sous la forme d&#x27;un seul exécutable. Pas de runtime à installer, pas de &lt;code&gt;node_modules&lt;&#x2F;code&gt;, pas de gems - un binaire suffit. Tu lances &lt;code&gt;zola build&lt;&#x2F;code&gt;, tu obtiens un dossier &lt;code&gt;public&#x2F;&lt;&#x2F;code&gt; prêt à déployer.&lt;&#x2F;p&gt;
&lt;p&gt;Le moteur de templates Tera (syntaxe proche de Jinja2&#x2F;Twig) gère l&#x27;héritage de templates, les macros et les filtres. Le contenu est rédigé en Markdown avec des shortcodes pour étendre les possibilités. Côté assets, le compilateur Sass&#x2F;SCSS est intégré, la coloration syntaxique repose sur syntect, et le traitement d&#x27;images (redimensionnement, conversion) se fait sans outil externe. Zola embarque aussi un moteur de recherche full-text côté client, un système de taxonomies personnalisables, la pagination, la génération automatique de tables des matières et la validation de liens internes et externes.&lt;&#x2F;p&gt;
&lt;p&gt;Le projet cumule plus de 16 800 stars sur GitHub, 475 contributeurs, et la dernière version stable est la v0.22.1.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Installation en 30 secondes&lt;&#x2F;strong&gt; : Un &lt;code&gt;brew install zola&lt;&#x2F;code&gt;, un &lt;code&gt;cargo install zola&lt;&#x2F;code&gt; ou un téléchargement direct du binaire. Aucune dépendance système. Tu es opérationnel immédiatement.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Builds ultra-rapides&lt;&#x2F;strong&gt; : Un site de plusieurs centaines de pages se génère en moins d&#x27;une seconde. Le compilateur Sass, le syntax highlighting et le traitement d&#x27;images tournent dans le même processus Rust - pas de subprocess, pas d&#x27;attente.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Batteries incluses&lt;&#x2F;strong&gt; : Recherche intégrée sans service tiers, compilation Sass, shortcodes, pagination, taxonomies custom, ancres de headers, table des matières automatique, redimensionnement d&#x27;images, vérification de liens. La plupart des SSG nécessitent des plugins pour ça - Zola le fait out of the box.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;i18n natif&lt;&#x2F;strong&gt; : Déclare tes langues dans &lt;code&gt;config.toml&lt;&#x2F;code&gt;, suffixe tes fichiers de contenu (&lt;code&gt;.fr.md&lt;&#x2F;code&gt;, &lt;code&gt;.en.md&lt;&#x2F;code&gt;), et le routage multilingue se met en place tout seul. Pas de plugin, pas de workaround.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Templates lisibles&lt;&#x2F;strong&gt; : Tera reprend la syntaxe Jinja2 que beaucoup de devs connaissent déjà. Héritage, blocs, macros, filtres - la courbe d&#x27;apprentissage est minimale si tu viens de Django, Twig ou Nunjucks.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Live reload instantané&lt;&#x2F;strong&gt; : &lt;code&gt;zola serve&lt;&#x2F;code&gt; lance un serveur de dev qui recharge le navigateur à chaque sauvegarde. Le feedback loop entre l&#x27;écriture et le rendu est quasi nul.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Blogs techniques et sites perso de développeurs - déploiement en un push sur Netlify, Vercel ou Cloudflare Pages&lt;&#x2F;li&gt;
&lt;li&gt;Documentation de projets open source (le site de Zola lui-même est généré avec Zola)&lt;&#x2F;li&gt;
&lt;li&gt;Sites multilingues avec contenu structuré et taxonomies personnalisées&lt;&#x2F;li&gt;
&lt;li&gt;Bases de connaissances internes avec recherche full-text, sans backend à maintenir&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>BillionMail</title>
        <published>2026-03-20T00:00:00+00:00</published>
        <updated>2026-03-20T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/billionmail/"/>
        <id>https://papyrus.z29k.com/gemshelf/billionmail/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/billionmail/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;BillionMail est une plateforme mail open-source qui fusionne serveur de messagerie et outil de marketing email dans un seul deploiement Docker. Sous le capot : Postfix gere le SMTP, Dovecot s&#x27;occupe de l&#x27;IMAP, Rspamd filtre le spam, et RoundCube fournit le webmail. Le tout est ecrit en Go (92% du codebase), stocke ses donnees dans une base SQL, et se pilote depuis une interface d&#x27;administration web.&lt;&#x2F;p&gt;
&lt;p&gt;L&#x27;installation passe par &lt;code&gt;docker compose up -d&lt;&#x2F;code&gt; ou un simple &lt;code&gt;bash install.sh&lt;&#x2F;code&gt;. En moins de 10 minutes, tu as un serveur mail fonctionnel avec campagnes marketing, gestion de listes et analytics. Le projet est sous AGPL-3.0, depasse les 13 700 stars sur GitHub et en est a sa version 4.9.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTERESSANT ?&lt;&#x2F;h2&gt;
&lt;p&gt;&lt;strong&gt;Pas de compteur au mail pres.&lt;&#x2F;strong&gt; BillionMail n&#x27;a aucune limite d&#x27;envoi integree. Tu paies ton serveur, tu envoies ce que tu veux. Pas de palier de facturation, pas de surprise en fin de mois. Pour les volumes importants, ca change radicalement l&#x27;equation financiere par rapport a un Mailchimp ou un SendGrid.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;DNS et delivrabilite en mode assiste.&lt;&#x2F;strong&gt; L&#x27;interface guide la configuration SPF, DKIM et DMARC etape par etape. Le certificat SSL s&#x27;active automatiquement. Le dashboard affiche en temps reel le volume envoye, le taux de delivrabilite, les ouvertures et les clics. Si un mail bounce, tu sais pourquoi.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Campagnes email natives.&lt;&#x2F;strong&gt; Editeur de templates reutilisables, segmentation de listes, personnalisation par variables, support du spintax, programmation d&#x27;envoi. C&#x27;est un vrai outil de campagne integre au serveur, pas un plugin greffe apres coup.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Webmail pret a l&#x27;emploi.&lt;&#x2F;strong&gt; RoundCube est accessible sur &lt;code&gt;&#x2F;roundcube&#x2F;&lt;&#x2F;code&gt; des l&#x27;installation. Tes utilisateurs lisent et envoient des mails depuis le navigateur sans aucune configuration client.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Trois modes de deploiement.&lt;&#x2F;strong&gt; Docker Compose, script bash, ou installation en un clic via aaPanel. Un CLI (&lt;code&gt;bm&lt;&#x2F;code&gt;) permet de gerer les credentials, afficher les enregistrements DNS et mettre a jour le systeme.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Envoyer des newsletters en volume sans dependre d&#x27;un SaaS ni payer a l&#x27;email&lt;&#x2F;li&gt;
&lt;li&gt;Heberger la messagerie d&#x27;une equipe ou d&#x27;une organisation sur son propre domaine&lt;&#x2F;li&gt;
&lt;li&gt;Gerer les emails transactionnels (confirmation, reset de mot de passe) sur son infra&lt;&#x2F;li&gt;
&lt;li&gt;Lancer des campagnes d&#x27;outreach avec tracking de delivrabilite et metriques d&#x27;engagement&lt;&#x2F;li&gt;
&lt;li&gt;Remplacer une stack mail bricolee (Postfix + Dovecot + scripts maison) par une solution integree&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Crawlee for Python</title>
        <published>2026-03-20T00:00:00+00:00</published>
        <updated>2026-03-20T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/crawlee-python/"/>
        <id>https://papyrus.z29k.com/gemshelf/crawlee-python/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/crawlee-python/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Crawlee est un framework Python pour construire des crawlers web fiables et performants. Il unifie le scraping HTTP classique (avec BeautifulSoup ou Parsel) et l&#x27;automatisation de navigateur headless (via Playwright) derrière une seule API. Son truc : faire passer vos crawlers pour des utilisateurs humains, avec des configurations par défaut qui contournent les protections anti-bot modernes.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTÉRESSANT ?&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Interface unifiée&lt;&#x2F;strong&gt; : Passez du scraping HTTP simple à l&#x27;automatisation Playwright sans réécrire votre code. Même API, même logique de routing.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Anti-détection par défaut&lt;&#x2F;strong&gt; : Rotation de proxies, gestion de sessions, empreintes navigateur réalistes - tout est configuré out-of-the-box pour éviter les blocages.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Parallélisation intelligente&lt;&#x2F;strong&gt; : Le framework ajuste automatiquement la concurrence en fonction des ressources système disponibles. Pas besoin de tuner manuellement.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Résilience intégrée&lt;&#x2F;strong&gt; : Retries automatiques, persistance d&#x27;état, reprise après interruption. Un crawl qui plante reprend là où il s&#x27;est arrêté.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Pensé pour l&#x27;IA&lt;&#x2F;strong&gt; : Extraction de données optimisée pour alimenter des LLMs et des pipelines RAG, avec export en formats structurés.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Asyncio natif&lt;&#x2F;strong&gt; : Architecture full async, type hints complets, intégration simple comme un script Python classique.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Extraction de données à grande échelle pour entraîner des modèles IA ou alimenter des systèmes RAG&lt;&#x2F;li&gt;
&lt;li&gt;Scraping de sites JavaScript-heavy qui nécessitent un vrai navigateur&lt;&#x2F;li&gt;
&lt;li&gt;Monitoring automatisé de prix, stocks ou contenus sur des sites e-commerce&lt;&#x2F;li&gt;
&lt;li&gt;Collecte de datasets structurés avec gestion automatique de la pagination et du rate limiting&lt;&#x2F;li&gt;
&lt;li&gt;Migration de données depuis des sites web vers des bases de données internes&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="fr">
        <title>Hurl</title>
        <published>2026-03-06T00:00:00+00:00</published>
        <updated>2026-03-06T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              z29k
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://papyrus.z29k.com/gemshelf/hurl/"/>
        <id>https://papyrus.z29k.com/gemshelf/hurl/</id>
        
        <content type="html" xml:base="https://papyrus.z29k.com/gemshelf/hurl/">&lt;h2 id=&quot;c-est-quoi&quot;&gt;C&#x27;EST QUOI ?&lt;&#x2F;h2&gt;
&lt;p&gt;Hurl est un binaire Rust qui lit des fichiers &lt;code&gt;.hurl&lt;&#x2F;code&gt; - un format texte minimaliste pour décrire des requêtes HTTP - et les exécute séquentiellement. Chaque requête peut inclure des assertions sur la réponse (status code, headers, body via JSONPath ou XPath) et capturer des valeurs pour les injecter dans les requêtes suivantes. Sous le capot, c&#x27;est libcurl qui fait le travail réseau, ce qui garantit un support solide de HTTP&#x2F;1.1, HTTP&#x2F;2, HTTP&#x2F;3 et IPv6.&lt;&#x2F;p&gt;
&lt;p&gt;Le format &lt;code&gt;.hurl&lt;&#x2F;code&gt; est volontairement simple : une requête = une méthode, une URL, des sections optionnelles. Pas de langage de programmation, pas de DSL complexe. Le fichier se lit comme une conversation HTTP.&lt;&#x2F;p&gt;
&lt;pre&gt;&lt;code data-lang=&quot;hurl&quot;&gt;GET https:&#x2F;&#x2F;api.example.com&#x2F;health
HTTP 200
[Asserts]
jsonpath &amp;quot;$.status&amp;quot; == &amp;quot;ok&amp;quot;

POST https:&#x2F;&#x2F;api.example.com&#x2F;login
{
    &amp;quot;user&amp;quot;: &amp;quot;admin&amp;quot;,
    &amp;quot;password&amp;quot;: &amp;quot;secret&amp;quot;
}
HTTP 200
[Captures]
token: jsonpath &amp;quot;$.token&amp;quot;

GET https:&#x2F;&#x2F;api.example.com&#x2F;protected
Authorization: Bearer {{token}}
HTTP 200
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;h2 id=&quot;pourquoi-c-est-interessant&quot;&gt;POURQUOI C&#x27;EST INTERESSANT ?&lt;&#x2F;h2&gt;
&lt;p&gt;&lt;strong&gt;C&#x27;est du texte, point.&lt;&#x2F;strong&gt; Les fichiers &lt;code&gt;.hurl&lt;&#x2F;code&gt; se versionnent dans Git, se diff facilement, se relisent en code review sans effort. Pas de format binaire ou de JSON illisible a la Postman.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Les assertions sont natives.&lt;&#x2F;strong&gt; Pas besoin de scripter un parseur JSON maison. JSONPath, XPath, regex, vérification de headers, de cookies, de certificats SSL, durée de réponse - tout est intégré dans la syntaxe. Une assertion qui échoue = un code de retour non-zero. Simple.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Le chainage est naturel.&lt;&#x2F;strong&gt; Capturer un token d&#x27;authentification, un ID de ressource, un cookie de session, puis le réinjecter dans les requêtes suivantes avec &lt;code&gt;{{variable}}&lt;&#x2F;code&gt;. C&#x27;est le workflow standard pour tester un flux complet.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;CI&#x2F;CD sans friction.&lt;&#x2F;strong&gt; Hurl génère des rapports en JUnit XML, TAP, JSON et HTML. Il s&#x27;intègre dans n&#x27;importe quel pipeline sans adaptateur. Un binaire statique, zero dépendance runtime, disponible via apt, brew, cargo, npm, conda ou Docker.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Retry et polling.&lt;&#x2F;strong&gt; Pour les tests d&#x27;intégration qui dépendent d&#x27;un service asynchrone, Hurl supporte le retry avec intervalle configurable et des conditions d&#x27;arrêt basées sur les assertions.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;cas-d-usage&quot;&gt;CAS D&#x27;USAGE&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Tests d&#x27;intégration d&#x27;API REST, SOAP ou GraphQL dans le pipeline CI&lt;&#x2F;li&gt;
&lt;li&gt;Smoke tests post-déploiement avec assertions sur les endpoints critiques&lt;&#x2F;li&gt;
&lt;li&gt;Remplacement de collections Postman par des fichiers versionnables et reviewables&lt;&#x2F;li&gt;
&lt;li&gt;Validation de flows multi-étapes : authentification, CRUD, vérification&lt;&#x2F;li&gt;
&lt;li&gt;Monitoring léger d&#x27;endpoints avec vérification de temps de réponse&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
</feed>
