Htmx y Lit

En nuestro equipo, tener un SPA para cada app es mucho trabajo adicional con muy poco beneficio. Muchas veces pasamos trabajo adicional para lograr que nuestros SPAs se comporten como web apps tradicionales con templates en el servidor. Muchos de los beneficios están relacionados a equipos grandes y ese no es nuestro caso.

Llevo un tiempo buscando cómo consolidar la lógica de negocio y compartirla entre los servidores y los SPAs para que siempre estén en perfecto sync, pero como todo el que ha tratado sabe es muy difícil. De vez en cuando haces un cambio en el cliente o en el servidor y se olvida actualizar su contra parte produciendo bugs.

Estos dos proyectos me parecen interesantes y les quiero dedicar más tiempo. Pienso que podrían ser una solución bastante completa para muchos de los web apps que manejo.

Htmx, escuché por primera vez sobre este proyecto hace unas semanas en un podcast. Esto no es una idea nueva pero creo que esta solución se ve aplicable a muchos casos comunes. En resumen la idea es crear interactividad del tipo que nos han acostumbrado los SPAs pero sin tener que crear un cliente completo. Básicamente es volver a como hacíamos las cosas antes cuando las siglas AJAX eran cool. Haces click en el UI, se envía un request al servidor y se responde con HTML nuevo que se injecta directamente en el DOM. Para sorpresa de los más jóvenes se puede lograr mucho con esta simple técnica.

Lit, aunque aparenta ser un rebranding de Polymer, se ve bastante bien y prometedor. Creo que la idea de usar Web Components, con el mínimo runtime posible en los lugares donde algo como Htmx no sea suficiente puede ser una buena alternativa. Siempre se puede usar el API nativo del browser pero parece que Lit ayuda a que el código sea mas declarativo y eso es bueno.

Cuando haga mas pruebas les contaré.