Misago abandonne React.js au profit de HTMX
Original : Removing React.js from the codebase and adapting Htmx for UI interactivity (2023)
Pourquoi c'est important
Cette migration illustre un retour aux architectures server-side dans l'écosystème Python/Django.
En décembre 2023, le lead du projet Misago a annoncé la suppression de React.js au profit de HTMX pour gérer l'interactivité UI. Cette migration vise à éliminer la duplication de code entre templates Django et composants React, et à simplifier le développement du forum open source.
Rafalp, lead du projet Misago (logiciel de forum Django), a publié en décembre 2023 une feuille de route détaillant l'abandon de React.js au profit de HTMX. Actuellement, chaque page est rendue deux fois : une fois via les templates Django (pour le premier rendu), puis remplacée par des composants React.js après chargement du JavaScript. Ce fonctionnement entraîne plusieurs problèmes : duplication des vues, des traductions (fichiers django.po et djangojs.po), des templates et des composants ; confusion pour les développeurs de plugins qui doivent maîtriser les deux technologies ; et des performances dégradées sur appareils mobiles anciens à cause du volume de JavaScript.
HTMX est une bibliothèque légère permettant de définir des « îlots dynamiques » dans le HTML, mis à jour par du HTML rendu côté serveur sans JavaScript supplémentaire. Avec cette approche, Django retourne uniquement le fragment HTML concerné lors d'une interaction HTMX, sans sérialisation JSON ni écriture de routes React. Le projet maintient ainsi un seul template par vue, simplifie le développement de plugins et réduit la taille du bundle JavaScript initial.