21 points par GN⁺ 2025-12-19 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Dans le développement web moderne, la fausse alternative entre HTML et les gros frameworks JavaScript pousse les développeurs vers une complexité inutile
  • HTMX permet de gérer les requêtes AJAX, les mises à jour partielles et les transitions animées uniquement avec des attributs HTML, en appliquant directement à l’écran le HTML renvoyé par le serveur
  • Sa structure permet une adoption progressive sans modifier en profondeur la base de code existante, ce qui réduit la complexité frontend et améliore la productivité et la maintenabilité
  • Par rapport à une SPA basée sur React, des améliorations importantes ont été constatées en production sur le volume de code, les dépendances, le temps de build et la vitesse de chargement
  • Plutôt que de choisir des frameworks excessifs, une approche simple fondée sur l’hypermédia est plus avantageuse à long terme pour la productivité et la maintenance

Le problème : un faux choix dans le développement web

  • Dans les discussions sur le développement web, on ne cesse de répéter un choix extrême : soit n’utiliser que du HTML, soit adopter un gros framework comme React
  • Le HTML pur est puissant pour les fonctions de base comme les liens, les formulaires ou dialog, mais il a des limites en matière de mises à jour partielles et de réactivité immédiate
  • Choisir React, Vue ou Angular entraîne des centaines de dépendances, des builds lents et des débats complexes sur la gestion de l’état
  • Même pour des applications simples centrées sur du CRUD, des dashboards ou des formulaires, on applique en pratique une boîte à outils excessive

Le concept clé de HTMX

  • HTMX est un outil qui effectue une communication asynchrone avec le serveur en ajoutant des attributs spéciaux aux éléments HTML
    • Par exemple, les attributs hx-get et hx-post permettent d’envoyer des requêtes et d’insérer la réponse dans une zone précise du DOM
  • Il étend le HTML pour que tout élément HTML puisse devenir l’émetteur d’une requête HTTP
  • Le serveur renvoie non pas du JSON mais des fragments HTML tels quels, qui sont ensuite remplacés ou insérés automatiquement à l’endroit indiqué
  • Le comportement est défini uniquement par déclaration d’attributs HTML, sans écrire directement de JavaScript
  • La bibliothèque est très légère, avec une taille d’environ 14kb (gzip)
  • Elle peut être appliquée directement à un document HTML existant sans outil de build ni configuration de framework
  • La structure s’accorde bien avec une approche traditionnelle du développement web centrée sur le rendu serveur

Principales fonctionnalités

  • Gestion des requêtes AJAX : exécuter des requêtes GET et POST uniquement avec des attributs HTML
  • Mise à jour du DOM : appliquer automatiquement à l’élément visé le HTML renvoyé par le serveur
  • Gestion des événements : relier les appels serveur à des événements utilisateur comme le clic ou la saisie
  • Gestion de l’historique : intégration avec les actions précédent/suivant du navigateur

Cas réel d’adoption et chiffres

  • Contexte a migré un SaaS basé sur React vers Django + HTMX
    • 67 % de réduction du nombre total de lignes de code (21 500 → 7 200)
    • 96 % de réduction des dépendances JavaScript (255 → 9)
    • 88 % de réduction du temps de build (40 secondes → 5 secondes)
    • Amélioration de 50 à 60 % de la vitesse de chargement des pages
  • Les deux tiers de la base de code ont été supprimés, et l’application s’en est trouvée meilleure
  • Sans séparation rigide entre frontend et backend, tous les développeurs peuvent travailler en full stack

Réponses aux objections courantes

  • « N’a-t-on pas besoin d’une gestion complexe de l’état côté client ? »
    • En réalité, la plupart des cas se limitent à des formulaires, listes et éléments qui apparaissent au clic, et HTMX suffit largement
    • Des outils collaboratifs en temps réel comme Google Docs sont une exception, mais la plupart des équipes surestiment la complexité de leurs applis CRUD
  • « Et les avantages de l’écosystème React ? »
    • Un écosystème immense mène aussi à des Go entiers de node_modules, des choix sans fin et des débats sur la gestion d’état
    • Avec HTMX, l’écosystème se résume à un seul langage côté serveur choisi
  • « Une SPA n’est-elle pas plus rapide en ressenti ? »
    • Au départ, il faut passer par le téléchargement, le parsing, l’exécution et l’hydratation d’un gros volume de JavaScript
    • HTMX est rapide dès le chargement initial, puis conserve cette réactivité en ne remplaçant que les parties modifiées
  • « Que faire si une fonctionnalité React spécifique est vraiment nécessaire ? »
    • Dans certains cas, React peut effectivement être adapté
    • Mais en pratique, on choisit souvent par habitude un outil nécessaire seulement pour une petite partie du problème global
  • Pourquoi choisir HTMX ?
    • Si les équipes échouent, ce n’est pas à cause d’un mauvais framework, mais d’un choix excessif de framework
    • HTMX parie sur la simplicité, et sur le long terme, la simplicité favorise la maintenabilité et la productivité

Quand HTMX n’est pas adapté

  • Outils d’édition collaborative en temps réel (Google Docs, Figma)
  • Applications nécessitant des calculs massifs côté client (éditeur vidéo, outils de CAO)
  • Architectures offline-first (même s’il est possible de combiner plusieurs approches)
  • Cas qui exigent réellement un état d’interface complexe
  • Mais êtes-vous vraiment en train de construire ce genre de chose ?
    • N’êtes-vous pas simplement en train de créer un dashboard de plus, un panneau d’administration, un site e-commerce, un blog ou une appli SaaS composés surtout de formulaires, de tableaux et de listes ?
    • Pour ce type de projet, HTMX est vraiment étonnamment efficace — au point de se dire : « Pourquoi avons-nous rendu ça aussi complexe ? » ou « Mon Dieu, j’ai perdu tellement de temps là-dessus »

Alors, essayez-le

  • Vous avez déjà utilisé React, essayé Vue, et sans doute regretté d’avoir testé Angular, non ?
    • Et vous avez probablement déjà touché au meta-framework à la mode cette semaine sur Hacker News
  • Essayez simplement HTMX, au moins une fois
    • Investissez-y une journée de week-end
    • Choisissez un side project
    • Ou un outil interne dont personne ne se soucie vraiment
    • Ou ressortez ce projet que vous remettez toujours à plus tard en vous disant que vous le referiez un jour
  • Ajoutez une balise <script> et écrivez simplement un attribut hx-get, puis vérifiez vous-même comment cela fonctionne
  • Au pire, vous n’aurez perdu qu’une journée de week-end
    • Mais il y a de fortes chances que cela vous plaise
    • Et plus probablement encore, vous vous demanderez pourquoi le développement web est devenu à ce point compliqué

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.