Daily Weekly Monthly

Monthly Shaarli

All links of one month in a single page.

November, 2025

The (lazy) Git UI You Didn't Know You Need - @bwplotka

Lazy Git semble vraiment intéressant, tant en matière de service rendu, qu'en matière d'UX.

JSON Schema Demystified: Understanding Schemas, Dialects, Vocabularies, and Metaschemas - Ian Duncan - Ian Duncan

Une excellente explication des structures sous-jacentes des schémas JSON, telles que dialect, vocabulary, etc.

The Shai-Hulud 2.0 npm worm: analysis, and what you need to know | Datadog Security Labs

Une analyse du ver qui a causé une importante attaque sur l'écosystème npm le 24 novembre.

How to rate-limit requests with NGINX - Joshtronic

Rate limiting simple avec Nginx.

Performance monitoring for web components

Mesurer les performances d'un web component à l'aide de l'API User Timing.

Array Types in TypeScript | TkDodo's blog

Un bon point auquel je n'avais jamais fait attention. La notation Array<string> est un poil plus verbeuse que string[] mais bien plus lisible dans la majorité des cas.

DarkPattern.games » Healthy Gaming « Avoid Addictive Dark Patterns

Un projet qui vise à lister les jeux vidéos sans dark patterns, c'est à dire qui ne visent pas à vous manipuler pour engranger un maximum de thunes (Android et iOS uniquement pour l'instant).

Google Antigravity Exfiltrates Data

Encore un bon exemple des risques que courent les développeurs qui utilisent des agents IA sans en comprendre les implications.

Le marché de l'IA se résume à une course sans queue ni tête dans laquelle l'éthique, la sécurité et le respect de la vie privée passent systématiquement au second plan.

Orion 1.0 ✴︎ Browse Beyond | Kagi Blog

Un autre navigateur (écosystème Apple uniquement pour l'instant) qui vise le respect de la vie privée, la sobriété, et la rapidité. Basé sur WebKit, le moteur de rendu de Safari.

Screw it, I’m installing Linux | The Verge

Un utilisateur de plus écoeuré de la direction que prend Windows.

Cloudflare outage on November 18, 2025

Explications détaillées de ce qui est arrivé à Cloudflare il y a quelques jours et qui a eu pour effet de casser une bonne partie d'internet.

GitHub - flamrdevs/xignal: signals state management for real

Une implémentation des signals tels que proposés dans la spec ECMAScript.

Using esbuild in Eleventy · Dan Cătălin Burzo

Comment utiliser esbuild pour packager les ressources de votre site Eleventy.

Tooltip Components Should Not Exist | TkDodo's blog

À propos des tooltips, ces petits morceaux d'information additionnelle souvent peu accessibles.

Standard Schema

Un standard pour les lib de validation TypeScript (Zod, Valibot, etc.).

L'objectif est d'avoir une spec standardisée pour que les outils interagissant avec ces schémas fonctionnent quel que soit la lib de validation choisie. Un peu comme les PSR rn PHP.

Vitest supporte d'ailleurs ce format depuis la v4, pour rendre certaines assertions plus faciles à écrire.

GitHub - cardisoft/cardinal: A fast file searching tool for macOS

Une sorte de Everything pour MacOS (un indexeur de fichier efficace et rapide).

Toasts | Primer

GitHub décourage l'utilisation des toasts, ces petites notifications qui s'affichent en surimpression, souvent dans le coin d'une page pour informer d'un événement.

How to "officially" deprecate methods with Node.js utilities | Stefan Judis Web Development

Très cool cette fonctionnalité native de Node qui permet de marquer une fonction comme dépréciée !

Alchemy - Josh Collinsworth blog

Cet article résume très précisément et très justement pourquoi l'art (avec de gros guillemets) produit par l'IA générative n'a absolument aucun intérêt.

Production-Grade Container Deployment with Podman Quadlets | Larvitz Blog

Une approche intéressante pour héberger des containers (Podman en l'occurrence) : les gérer avec systemd, le gestionnaire de service de nombreuses distributions Linux.

C'est moins standard qu'un Docker Compose mais ça peut avoir un intérêt pour les admins sys pure souche qui retrouveront ainsi des outils familiers.

Wordle in LibreOffice — bojidar-bg.dev

J'ignorais qu'il était techniquement possible d'exécuter des macros JavaScript dans LibreOffice Writer.

Bon, c'est tout sauf ergonomique mais ça a le mérite d'être là.

Bretzel, by Alsacréations

Des layouts communs intégrables facilement dans vos projets avec très peu de code CSS.

FileMock - Free Test File Generator | Video, PDF & Audio

Un outil pour générer des fichiers génériques (images, videos, audio, documents de plusieurs types) pour vos tests pendant le développement d'une application par exemple.

Electron vs. Tauri | DoltHub Blog

Retour d'expérience sur une tentative de migration mitigée de Electron vers Tauri (2 technologies permettant de développer des applications de bureau avec les technos web).

Introduction - OWASP Top 10:2025 RC1

Le top 10 2025 des vulnérabilités liées au web.

Visual Types

Explication visuelle de ce que sont les "Types" dans TypeScript.

Howto Use Blob Objects for Efficient File Handling

Utilisation des Blob (Binary Large OBject) en JavaScript côté navigateur pour gérer des fichiers de grande taille sans exploser l'utilisation mémoire.

Ça permet même de déclencher un téléchargement purement côté client par exemple.

Mediabunny

Une sorte de ffmpeg en JavaScript, pour lire, écrire et convertir des fichiers médias (audio, vidéo) directement dans le navigateur.

GitHub - tarampampam/microcheck: 🧪 Lightweight health check utilities for Docker containers

Très pratique ça ! Des tout petits binaires pour mettre en place des healthchecks dans vos containers Docker qui exposent des services HTTP ou TCP.

Tout petits comme 75 ko au lieu de – par exemple – curl et ses ~10 Mo.

From GraphQL to Zod: Simplifying Arte's API Architecture

Un retour d'expérience intéressant sur la transformation d'une architecture bancale et ambiguë en architecture plus simple et pragmatique.

Needy Programs @ tonsky.me

C'est vrai qu'on est constamment agressé, on ne s'en rend même plus compte.

Simple One-Time Passcode Inputs – Cloud Four

Comment concevoir correctement un champ OTP (One-Time Password) uniquement avec HTML et CSS.

C'est vrai que la grande majorité de ces champs est une plaie à utiliser (copier/coller qui ne marche pas, curseur qui saute d'un champ à l'autre sans raison, impossibilité d'effacer facilement l'un des numéros, etc.).

itiner-e

Une carte collaborative qui regroupe les voies romaines telles qu'elles étaient à l'époque d'Astérix.

Modern client-side routing: the Navigation API  |  Web Platform  |  Chrome for Developers

La "nouvelle" Navigation API vise à remplacer l'actuelle History API qui n'a jamais été très ergonomique.

Cette nouvelle API est assez massive, elle propose – notamment pour les SPA (Single Page Application) – de centraliser la gestion de la navigation à un seul endroit.

Bien évidemment, ça ouvre la porte aux sites qui vont vouloir en faire trop, qui vont vouloir outrepasser le comportement natif du navigateur, et ça peut finir en grand n'importe quoi comme à l'époque des popups.

Heureusement il semble y avoir quelques garde-fous pour, par exemple, empêcher un site de rendre le bouton de retour natif du navigateur inopérant et ainsi vous piéger dessus.

Par contre j'imagine que rien n'empêche un site de créer des navigations programmatiques artificielles lorsque vous arrivez dessus pour qu'il faille appuyer un grand nombre de fois sur "retour" pour s'en échapper. Mais c'est techniquement déjà possible avec l'History API de toute façon.

C'est pour l'instant uniquement supporté par les navigateurs basés sur Chromium.

La documentation MDN est également disponible.

Send this article to your friend who still thinks the cloud is a good idea

Dans 99% des cas, le cloud est une fausse promesse qui vous coûtera cher.

Répertoire des Packs à suivre Mastodon | Fedidevs

Des "starter packs" de comptes à suivre sur le Fediverse, classés par thème.

Ces packs sont une fonctionnalité qui arrivera dans Mastodon 4.6, la prochaine version. Bluesky avait initié cette idée qui a très bien marché au début.

color-input

Un Web Component qui permet de choisir une couleur.

Il y a un color picker natif mais sur certaines plateformes le choix de couleur est limité.

publint

Un outil qui permet de s'assurer qu'un package publié suit les bonnes pratiques.

App Showcase | Ratatui

Une liste de petites applications utilitaires qui ont la particularité de tourner intégralement dans le terminal, mais de proposer néanmoins une interface "graphique".

Automerge

Un outil qui permet de gérer la synchronisation d'applications de type offline first, c'est à dire qu'elles stockent leurs données localement et les synchronisent par différents moyens supportés par cette lib (en local via le navigateur, via le réseau, etc.).

Gérer ce type de synchro soi-même peut sembler simple mais ça devient vite un cauchemar lorsqu'il y a des conflits entre 2 clients ou plus. D'où l'intérêt de ces outils optimisés.

Accessoirement j'adore le design de leur site !

Good Managers Write Good | Stay SaaSy

Un parallèle que j'aime bien entre l'écriture et le fait d'être un bon manageur.

L'inverse n'est cependant pas vrai. Je connais des gens qui écrivent très bien mais sont de très mauvais manageurs.

Tab Roving • Niklas Gadermann

Gestion de la navigation à travers une page web avec la touche de tabulation.

JavaScript prototype pollution - Security | MDN

Un type d'attaque propre à JavaScript, et qu'il est important de comprendre pour écrire du code sécurisé.

Supply chain attacks - Security | MDN

Quelques pistes pour se protéger des supply chain attacks.

oklch.fyi ▸ OKLCH Color Picker, Generator and Converter

Une explication de ce qu'est OKLCH (utilisable notamment en CSS) accompagnée d'outils pour générer des palettes de couleurs.

Why we migrated from Python to Node.js

Un retour d'expérience (à nuancer comme toujours) sur une migration de Python vers Node justifiée par la difficulté d'écrire du code asynchrone avec Python.

Immich

Une application de gestion et de partage de photos open source et à auto-héberger.

Why Nextcloud feels slow to use :: ./techtipsy

J'ai un peu le même ressenti que celui exprimé dans cet article. Dans l'idée j'adore ce qu'est NextCloud et c'est heureux qu'il existe pour offrir une véritable alternative ouverte aux GAFAMs, mais j'ai toujours eu cette impression de lourdeur qui me bloque un peu.

Architecture Decision Records

Les ADRs sont de simples documents, souvent au format texte, qui visent à documenter les prises de décision qui impactent la façon de développer une application.

L'idée est de justifier et d'expliquer les choix effectués.

giscus

Un système de commentaire à la Disqus, assez ingénieux, qui utilise le système de discussions de GitHub pour "stocker" et modérer les commentaires.

C'est visiblement facile à intégrer.

Via https://alfy.blog/2025/08/22/from-code-that-works-to-code-that-matters.md.html

Your URL Is Your State

Je ne pourrais pas être plus d'accord.

C'est encore une fonctionnalité native simple mais très puissante des navigateurs que certains frameworks ont encouragé à ignorer et à remplacer maladroitement.

Ça ne veut pas dire qu'il faut bannir le state en mémoire, mais simplement comprendre les avantages et inconvénients de chacun et les utiliser à bon escient. L'article illustre ça avec beaucoup de justesse.

Kafka is fast -- I'll use Postgres

Cet article suggère que PostgreSQL peut à peu près tout faire et représente donc une solution idéale pour la majorité des boîtes dont les besoins en scalabilité (évolution de la charge) ne seront jamais suffisants pour justifier une infra plus complexe.

C'est l'idée de MVI : minimum viable infrastructure.

J'aime bien le côté pragmatique, même si ça implique, de fait, une très grande maîtrise de PostgreSQL.

Handy

Une application qui semble faire du speech to text (reconnaissance vocale, vous parlez, l'outil écrit ce que vous dites) assez efficacement.

Restfox

Un client HTTP (REST, GraphQL) et Websocket dans le navigateur.

Pas testé.

TypingSVG

Un générateur de SVG qui simule un texte tapé au clavier, animé, avec le curseur.

C’est qui qui a fuité aujourd’hui ?

Une autre plateforme pour le suivi des fuites de données personnelles, plus orienté sur les entreprises françaises.