Blog
Sur le développement web, la performance, les outils — et, de temps à autre, quelque chose de plus grand.
Un seul écouteur au lieu d'un composant client par bouton
Dès l'instant où vous ajoutez le suivi analytique d'un clic à un composant, celui-ci devient un composant client qui embarque du JavaScript. Multipliez ce geste à l'échelle d'un site et le suivi à lui seul fait gonfler votre bundle. Voici l'alternative, présente dans la plateforme depuis toujours : un unique écouteur délégué, des attributs de données déclaratifs, et des composants qui restent du pur HTML rendu côté serveur.
Un accordéon fluide avec zéro JavaScript
Tout le monde se rue sur un état React et un hook de mesure de hauteur pour construire un accordéon. Le navigateur en propose un nativement depuis des années — et depuis 2024, il s'anime à l'ouverture comme à la fermeture en CSS pur. Voici la technique complète : details[name], ::details-content, interpolate-size, et la propriété qui rend aussi la fermeture animée.
Interceptez une valeur tierce dès l'instant où elle arrive sur window
Un script que vous ne contrôlez pas écrit son résultat dans un global de window à un moment que vous ne pouvez pas prévoir. La plupart du code se lance dans une course avec un timeout ou gaspille le main thread en polling. Voici le trick de l'accessor property qui transforme l'écriture en événement — plus le getter que vous ne devez pas oublier, et comment substituer entièrement la valeur.
Ajuster le texte à son conteneur en CSS pur — sans JavaScript
Tout le monde écrit un hook JavaScript pour réduire le font-size jusqu'à ce que le texte tienne dans un conteneur. Voici une alternative pleinement fonctionnelle et sans JS, à base d'unités de container query, de clamp() et de césure selon la langue — y compris le piège de la cascade qui fait abandonner tant de gens.
next/dynamic ne vous sauvera pas : pourquoi les pages Next.js pilotées par un CMS embarquent chaque chunk
Nos pages Next.js pilotées par un CMS embarquaient les ~100 composants de section sur chaque route — malgré un usage exemplaire de next/dynamic. Nous avons épuisé tous les correctifs au niveau du bundler (import() direct, découpage des fichiers, config Turbopack, splitChunks de webpack) avant de trouver la vraie cause : la atteignabilité, pas le chunking. Un codegen au build + des rewrites ont réduit le first-load JS de 53%.
Je sors mes boards de Miro pour les ramener dans Obsidian
Le bouton Export de Miro te donne un PNG ou un PDF — une photo des données, pas les données. Si tes boards sont des load-bearing maps of thinking accumulées sur des années, leur place est dans Obsidian : editable, searchable, dans un vault local. Comment j'ai sorti les boards de Miro via la REST API et converti vers Excalidraw / Obsidian Canvas — en gardant positions, couleurs, fontes, curved connectors, mindmap nodes — et la leçon dépasse Miro : tout SaaS mérite un exit plan AVANT la première utilisation.
CRAFT : une méthode pour utiliser l'AI sans perdre son expertise
Un diagnostic sans remède n'est que de l'anxiété. Après l'article sur la déqualification par l'AI, voici l'ordonnance : CRAFT — cinq principes (Challenge First, Review Adversarially, Ask Why Not What, Friction on Purpose, Test Your Understanding) réunis sous un axiome unique : l'AI fait ce que vous maîtrisez déjà, vous faites ce que vous êtes encore en train d'apprendre. Une méthode pratique et mémorisable pour utiliser l'AI au quotidien sans éroder silencieusement vos compétences.
Le silence que l'AI a éteint
Vaut-il encore la peine d'apprendre à programmer si l'AI existe ? La réponse bruyante se trompe des deux côtés. Avec la base de preuves 2025–2026 (Nature, Anthropic, AI & Society), la question n'est pas "AI ou pas", mais quelles compétences céder à l'AI et lesquelles garder pour toi — et il y a une chose qui a vraiment changé : avant, la réalité te forçait à apprendre par friction, l'AI a éteint cette pression en silence.
Claude Code Multi-Profile, v2 : une architecture XDG propre
Après un mois sur l'ancienne approche par alias, j'ai refait mon setup multi-profile Claude Code dans une structure compatible XDG sous ~/.config/claude-profiles/. La vraie raison n'était pas la propreté — c'était la découverte que ~/.claude.json est un fichier séparé à la racine du home dans lequel vivaient discrètement les serveurs MCP ajoutés via --scope user.
Comment écrire des agents Claude Code qui ne te mentent pas
Deux règles pour construire des pipelines d'agents Claude Code fiables : un agent par spécialisation, et des commandes shell plutôt que des prompts partout où une réponse quantitative est en jeu.
Plusieurs comptes Claude Code sur un seul appareil
Comment utiliser deux (ou plus) comptes Claude Code en parallèle — personnel et entreprise — avec isolation complète grâce à une seule variable d'environnement.
Comment connecter Claude Desktop à Obsidian — Un parcours à travers 4 serveurs MCP
Une histoire réelle de recherche d'un moyen stable d'automatiser le refactoring du vault Obsidian via Claude. Ce qui a cassé, ce qui a fonctionné, et pourquoi VaultForge s'est avéré être la seule option fonctionnelle.
Les trous noirs comme univers récursifs : de la physique au sens de l'existence
Et si chaque trou noir était un Big Bang d'un nouvel univers ? Une exploration de la cosmologie récursive et de la clôture cognitive.
L'IA a tué le CMS — du moins pour les sites simples
Pourquoi les systèmes de gestion de contenu traditionnels deviennent inutiles pour les portfolios, blogs et pages d'atterrissage.
Comment connecter Perplexity AI à Obsidian via MCP — Prise de notes directe depuis le chat
Configurez Perplexity Desktop pour lire et écrire dans votre Obsidian vault en utilisant le serveur MCP filesystem. Recherchez sur le web et sauvegardez dans vos notes en une conversation.
Digest Quotidien AI avec Claude Code CLI et Obsidian — Zéro Dépendance
Comment j'ai construit un agent de recherche d'actualités quotidien avec un script bash de 6 lignes, le mode headless de Claude Code et macOS launchd.
Mode sombre Next.js sans flash ni avertissements React 19
Comment remplacer next-themes par Zustand + useServerInsertedHTML pour un mode sombre sans clignotement dans Next.js 15+.
Comment j'ai éliminé 94 fichiers CSS bloquant le rendu dans Next.js 16 avec une fonctionnalité Turbopack peu documentée
Après des jours à essayer chaque approche — de experimental.inlineCss aux hacks MutationObserver — j'ai découvert les Turbopack Import Attributes qui résolvent le problème de CSS bloquant le rendu dans Next.js App Router.
Next.js Memory Leak : Fetch + Mode Standalone — 2 ans sans correctif
Next.js patche le fetch global et ajoute une couche de cache qui fuit à chaque requête. Sous Docker/K8s, cela provoque des crashes OOM toutes les quelques heures. Le bug existe depuis Next.js 14 et n'est toujours pas résolu dans 16.2.x.