<!DOCTYPE html>
<html lang="fr">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
        <meta http-equiv="x-ua-compatible" content="ie=edge">

        <title>Planète PHP</title>
        <link rel="icon" href="/assets/images/veille-logo-kfIoDGF.svg" sizes="any" type="image/svg+xml">

        <link rel="alternate" type="application/rss+xml" title="RSS" href="/rss.php">

        
    
            <link rel="canonical" href="/articles" />
    
            <link rel="next" href="/articles?page=2" />
    
                    <link rel="stylesheet" href="/assets/styles/app-oI5o2Jp.css">
        
                    
<link rel="stylesheet" href="/assets/styles/app-oI5o2Jp.css">
<script type="importmap">
{
    "imports": {
        "app": "/assets/app-NAdK9l0.js",
        "/assets/styles/app.css": "data:application/javascript,"
    }
}
</script><script>
if (!HTMLScriptElement.supports || !HTMLScriptElement.supports('importmap')) (function () {
    const script = document.createElement('script');
    script.src = 'https://ga.jspm.io/npm:es-module-shims@1.10.0/dist/es-module-shims.js';
    if (document.currentScript?.nonce) script.nonce = document.currentScript.nonce;
    script.setAttribute('crossorigin', 'anonymous');
    script.setAttribute('integrity', 'sha384-ie1x72Xck445i0j4SlNJ5W5iGeL3Dpa0zD48MZopgWsjNB/lt60SuG1iduZGNnJn');
    document.head.appendChild(script);
})();
</script>
<link rel="modulepreload" href="/assets/app-NAdK9l0.js">
<script type="module">import 'app';</script>            </head>
    <body class="dark:bg-slate-800 flex flex-col h-screen justify-between">
        <div>
            <div class="hidden sm:block bg-primary-900">
                <nav class="container mx-auto flex text-white justify-center">
                    <a href="https://afup.org" class="px-5 py-1 text-sm hover:bg-primary-500">AFUP</a>
                    <a href="https://event.afup.org" class="px-5 py-1 text-sm hover:bg-primary-500">Forum PHP 2026</a>
                    <a href="https://barometre.afup.org" class="px-5 py-1 text-sm hover:bg-primary-500">Baromètre</a>
                    <a href="https://planete-php.fr" class="px-5 py-1 text-sm hover:bg-primary-500 bg-primary-500">Planète PHP</a>
                    <a href="https://pufa.afup.org" class="px-5 py-1 text-sm hover:bg-primary-500">PUFA</a>
                </nav>
            </div>

            <div class="bg-primary-500">
                <nav class="container mx-auto flex flex-col sm:flex-row text-white px-0 sm:px-64 justify-center">
                    <div class="flex items-center grow gap-4 p-2 sm:p-0">
                        <img src="/assets/images/afup-icon-inverted-Fo5OHjq.png" class="h-11 my-auto" alt=""/>
                        <a href="/" class="text-2xl font-bold" data-qa="site-name">Planète PHP</a>
                    </div>
                    <div class="flex justify-between">
                        <a href="/articles" class="px-6 py-4 hover:bg-primary-300 bg-primary-300 sm:bg-transparent sm:border-b-4 border-white">Articles</a>
                        <a href="/feeds" class="px-6 py-4 hover:bg-primary-300">Sources</a>
                        <a href="http://www.planete-php.fr/rss.php" class="px-6 py-4 hover:bg-primary-300">Flux RSS</a>
                    </div>
                </nav>
            </div>

            <main class="container mx-auto px-0 sm:px-64 mt-0 sm:mt-4">
                
    <div class="flex flex-col gap-4 mt-4 sm:mt-0">
                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-1-date">04/11/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                04/11/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-1-title">PHP 8.6 : l’essentiel des nouveautés</h2>
                <a href="https://les-tilleuls.coop/blog/ce-quil-faut-retenir-des-nouveautes-de-php-8-6" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-1-feed">
                    Lire l'article sur Les-Tilleuls.coop
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-1-content">
                
PHP 8.6 sort le 19 novembre 2026. Trois nouveautés se détachent : une API de polling native, un type dédié aux durées et l’application partielle de fonctions, ainsi que quelques nouveautés que nous allons...
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-2-date">26/10/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                26/10/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-2-title">Dans les coulisses de mon dernier side project: l&#039;infrastructure</h2>
                <a href="https://www.jdecool.fr/blog/2026/10/27/dans-les-coulisses-de-mon-dernier-side-project-l-infrastructure.html" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-2-feed">
                    Lire l'article sur Jérémy DECOOL
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-2-content">
                Je me suis lancé dans un side project pour gérer les rétrospectives de mon équipe, une application que je construis depuis plusieurs mois et dont j’ai décidé de raconter les coulisses de la création....
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-3-date">26/10/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                26/10/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-3-title">Dans les coulisses de mon dernier side project: les chiffres</h2>
                <a href="https://www.jdecool.fr/blog/2026/10/27/dans-les-coulisses-de-mon-dernier-side-project-les-chiffres.html" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-3-feed">
                    Lire l'article sur Jérémy DECOOL
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-3-content">
                Je me suis lancé dans un side project pour gérer les rétrospectives de mon équipe, une application que je construis depuis plusieurs mois et dont j’ai décidé de raconter les coulisses de la création....
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-4-date">25/10/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                25/10/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-4-title">Dans les coulisses de mon dernier side project: les tests automatisés</h2>
                <a href="https://www.jdecool.fr/blog/2026/10/26/dans-les-coulisses-de-mon-dernier-side-project-les-tests-automatises.html" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-4-feed">
                    Lire l'article sur Jérémy DECOOL
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-4-content">
                Je me suis lancé dans un side project pour gérer les rétrospectives de mon équipe, une application que je construis depuis plusieurs mois et dont j’ai décidé de raconter les coulisses de la création....
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-5-date">23/10/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                23/10/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-5-title">Dans les coulisses de mon dernier side project: l&#039;architecture technique</h2>
                <a href="https://www.jdecool.fr/blog/2026/10/24/dans-les-coulisses-de-mon-dernier-side-project-l-architecture.html" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-5-feed">
                    Lire l'article sur Jérémy DECOOL
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-5-content">
                Je me suis lancé dans un side project pour gérer les rétrospectives de mon équipe, une application que je construis depuis plusieurs mois et dont j’ai décidé de raconter les coulisses de la création....
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-6-date">22/10/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                22/10/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-6-title">Failles critiques dans PHP : la communauté au rendez-vous</h2>
                <a href="https://afup.org/news/1266-failles-critiques-dans-php-la-communaute-au-rendez-vous" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-6-feed">
                    Lire l'article sur AFUP
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-6-content">
                Mais derrière ce travail colossal porté par une poignée de développeurs et développeuses pour proposer des correctifs et coordonner la communication, se cache le bénévolat de ces personnes pour garantir...
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-7-date">22/10/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                22/10/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-7-title">HubSpot Agent CLI : la révolution de l’automatisation et de l’IA au service du CRM</h2>
                <a href="https://www.synolia.com/synolab/non-classe/hubspot-agent-cli/" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-7-feed">
                    Lire l'article sur Synolia
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-7-content">
                
En résumé :
&nbsp;
Cet article explore le nouvel outil HubSpot Agent CLI, une interface en ligne de commande conçue pour connecter les agents d&rsquo;IA (Claude, ChatGPT) et les équipes techniques aux...
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-8-date">16/10/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                16/10/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-8-title">Ce qu&#039;il fallait voir au Forum PHP 2026</h2>
                <a href="https://jolicode.com/blog/ce-qu-il-fallait-voir-au-forum-php-2026" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-8-feed">
                    Lire l'article sur Jolicode
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-8-content">
                Comme chaque année, nous nous sommes rendus à la conférence phare de l'écosystème PHP en France : le Forum PHP de l'AFUP. En plus d'être sur scène pour parler de lucidité, de headers HTTP ou encore d'embbeding...
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-9-date">15/10/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                15/10/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-9-title">JSON Streaming et AutoMapper 10.3</h2>
                <a href="https://jolicode.com/blog/json-streaming-et-automapper-10-3" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-9-feed">
                    Lire l'article sur Jolicode
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-9-content">
                Symfony propose depuis peu le composant symfony/json-streamer, permettant d’encoder et décoder du JSON sous forme de flux. Le but : traiter de très gros volumes sans charger l’intégralité du document...
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-10-date">15/10/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                15/10/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-10-title">Nouveautés HubSpot apps et APIs : versioning, granular scopes et aides à la migration pour sécuriser votre SI</h2>
                <a href="https://www.synolia.com/synolab/outils/nouveautes-hubspot-apps-et-apis-versioning-granular-scopes-et-aides-a-la-migration-pour-securiser-votre-si/" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-10-feed">
                    Lire l'article sur Synolia
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-10-content">
                
En résumé :
&nbsp;
Cet article détaille les évolutions majeures de la plateforme développeur HubSpot concernant la gouvernance des applications, la gestion des APIs et la sécurité. Il présente l&rsquo;introduction...
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-11-date">07/10/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                07/10/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-11-title">Les-Tilleuls.coop annonce le lancement de Tilia, son offre d’accompagnement sur mesure en intelligence artificielle</h2>
                <a href="https://les-tilleuls.coop/blog/decouvrir-tilia-expertise-intelligence-artificielle" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-11-feed">
                    Lire l'article sur Les-Tilleuls.coop
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-11-content">
                
Depuis plus de 15 ans, nous construisons des logiciels et des architectures robustes : des API, des applications web, des infrastructures cloud. Nous avons créé et maintenons API Platform, FrankenPHP,...
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-12-date">25/09/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                25/09/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-12-title">D&#039;un ADE à un orchestrator : la construction de PABLO</h2>
                <a href="https://jolicode.com/blog/d-un-ade-a-un-orchestrator-la-construction-de-pablo" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-12-feed">
                    Lire l'article sur Jolicode
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-12-content">
                Mes agents sont devenus plus rapides. Mon cerveau, non.
Où nous en étions
Dans mon article précédent, je décrivais mon environnement de travail : un Agent Development Environment, non pas un IDE avec...
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-13-date">22/09/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                22/09/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-13-title">Castor 1.8: Windows, self-update, et des binaires vérifiables</h2>
                <a href="https://jolicode.com/blog/castor-1-8-windows-self-update-et-des-binaires-verifiables" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-13-feed">
                    Lire l'article sur Jolicode
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-13-content">
                La dernière fois que nous avons parlé de Castor sur ce blog, c'était pour annoncer la sortie de la 1.0, en octobre 2025. Depuis, notre rongeur préféré a pris un rythme mensuel : une version mineure toutes...
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-14-date">16/09/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                16/09/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-14-title">Se former fait partie du travail</h2>
                <a href="https://www.jdecool.fr/blog/2026/09/17/se-former-fait-partie-du-travail.html" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-14-feed">
                    Lire l'article sur Jérémy DECOOL
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-14-content">
                Dans la lignée de ma publication précédente sur les side projects, il existe une autre injonction qui poursuit les développeurs: la veille technique. Et non, elle ne devrait pas reposer sur le temps personnel....
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-15-date">16/09/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                16/09/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-15-title">N+1 GraphQL dans NestJS : détecter avec NestJS Profiler, corriger avec DataLoader</h2>
                <a href="https://blog.eleven-labs.com/fr/diagnostiquer-n-plus-un-graphql-nestjs-profiler/" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-15-feed">
                    Lire l'article sur Eleven labs
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-15-content">
                Un problème N+1 dans une API GraphQL NestJS apparaît lorsqu'un résolveur de champ imbriqué déclenche une lecture supplémentaire pour chaque élément renvoyé. La query peut sembler rapide tout en exécutant...
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-16-date">09/09/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                09/09/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-16-title">Le mythe du side project obligatoire</h2>
                <a href="https://www.jdecool.fr/blog/2026/09/10/le-mythe-du-side-project-obligatoire.html" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-16-feed">
                    Lire l'article sur Jérémy DECOOL
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-16-content">
                Il y a un mythe fortement ancré dans la tête des développeurs, sur l’importance d’avoir des side projects. Cassons-le immédiatement. Non, il n’est pas obligatoire d’avoir un side project pour être un...
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-17-date">08/09/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                08/09/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-17-title">L&#039;AFUP fédère 32 assos autour d&#039;une lettre ouverte pour la survie des événements techniques</h2>
                <a href="https://afup.org/news/1265-l-afup-federe-32-assos-autour-d-une-lettre-ouverte-pour-la-survie-des-evenements-techniques" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-17-feed">
                    Lire l'article sur AFUP
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-17-content">
                32 associations, équipes animatrices de communautés et organisations d'événements techniques français publient ce mardi 8 septembre une lettre ouverte à l'initiative de l'AFUP pour alerter l'écosystème...
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-18-date">07/09/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                07/09/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-18-title">Souveraineté : de l’IA agentique qui garde vos données en Europe</h2>
                <a href="https://les-tilleuls.coop/blog/souverainete-de-lia-agentique-qui-garde-vos-donnees-en-europe" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-18-feed">
                    Lire l'article sur Les-Tilleuls.coop
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-18-content">
                
Face à une actualité internationale qui nous pousse à réduire nos dépendances technologiques vis-à-vis des acteurs américains (infrastructure comme IA), on peut construire un agent IA pleinement opérationnel...
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-19-date">07/09/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                07/09/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-19-title">Transformer une API en boîte à outils pour agents : l’architecture de notre assistant de conférence</h2>
                <a href="https://les-tilleuls.coop/blog/transformer-une-api-en-boite-a-outils-pour-agents-larchitecture-de-notre-assistant-de-conference" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-19-feed">
                    Lire l'article sur Les-Tilleuls.coop
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-19-content">
                
La première partie de ce retour d’expérience expliquait le choix d&rsquo;architecture : construire un serveur MCP plutôt qu&rsquo;un chatbot isolé, pour que le service soit accessible à n&rsquo;importe...
            </p>
        </article>
    </div>
</div>

                    <div class="px-4 sm:px-0 sm:pt-4 border-b border-gray-200 dark:border-gray-600" data-qa="article">
    <div class="flex flex-row gap-5">
        <div class="text-gray-500 dark:text-gray-300 pt-1 hidden sm:block" data-qa="article-20-date">07/09/2026</div>
        <article class="pb-4 sm:pb-8">
            <span class="sm:hidden text-sm text-gray-500 dark:text-gray-300">
                07/09/2026
            </span>
            <div class="flex flex-col sm:flex-row gap-2 sm:gap-10 justify-between items-baseline mb-4 sm:mb-0">
                <h2 class="font-bold text-lg sm:text-xl text-primary-900 dark:text-gray-300" data-qa="article-20-title">Comment nous avons créé un assistant IA pour l’API Platform Conference 2026</h2>
                <a href="https://les-tilleuls.coop/blog/comment-nous-avons-cree-un-assistant-ia-pour-lapi-platform-conference-2026" class="grow-0 shrink-0 basis-auto text-primary-500 hover:underline" data-qa="article-20-feed">
                    Lire l'article sur Les-Tilleuls.coop
                </a>
            </div>
            <p class="py-2 font-light dark:text-gray-300" data-qa="article-20-content">
                
Trouver le talk qui correspond à vos objectifs, savoir qui va briller sur la scène FrankenPHP, caler votre agenda&#8230; La billetterie de l&rsquo;API Platform Conference 2026 ferme dans quelques jours,...
            </p>
        </article>
    </div>
</div>

            </div>

    <nav class="sm:my-12 flex justify-between dark:text-gray-300">
        <div class="flex-grow">
                    </div>

                    <a href="/articles?page=2" class="block p-6 sm:p-0 hover:underline" data-qa="page-next">Page suivante</a>
            </nav>

            </main>
        </div>

        <footer class="py-5 bg-slate-50 dark:bg-slate-700 dark:text-white text-center">
            Un site <a href="https://afup.org" class="text-primary-500 hover:underline">AFUP</a><br />
            Hébergé sur <a href="https://www.clever-cloud.com" class="text-primary-500 hover:underline">Clever Cloud</a><br/>
            Code Source sur <a href="https://github.com/afup/planete" class="text-primary-500 hover:underline">GitHub</a>
        </footer>
    </body>
</html>
