HTMX es una tecnología que potencia HTML para crear aplicaciones web avanzadas. Con un peso mínimo y libre de dependencias, HTMX permite actualizar la información en la página sin necesidad de refrescarla, logrando interfaces modernas y sin complicaciones. Su instalación es sencilla a través de un CDN o descargando el paquete de HTMX de unpkg. Además, HTMX ofrece métodos para interactuar con el servidor mediante solicitudes AJAX, atributos para especificar detalles de la petición y la posibilidad de integrar animaciones y spinners de carga.
Tabla de Contenidos
¿Qué es HTMX?
HTMX es una tecnología que potencia HTML para la creación de aplicaciones web avanzadas. A través de sus características principales y ventajas, HTMX permite mejorar la capacidad expresiva de HTML y proporciona una forma más sencilla de desarrollar sitios web dinámicos y eficientes, ahorrando bastante código en JavaScript o TypeScript, sobre todo para tareas repetitivas como son las llamadas a servicios REST.
Es un framework que ya tiene un recorrido, pero recientemente fue aceptado en el GitHub Open Source Accelerator, lo cual ha hecho que se haga más popular y se comience a utilizar más al estar respaldado por GitHub.
Características principales de HTMX
- Peso ínfimo. HTMX es una tecnología liviana que contribuye a reducir significativamente el peso de las aplicaciones web.
- Sin dependencias. No requiere de otras librerías o frameworks para funcionar, lo cual simplifica el desarrollo y evita la sobrecarga.
- Actualización dinámica. Permite actualizar la información en la página sin necesidad de refrescarla, brindando una experiencia de usuario más fluida. Aplicando AJAX sin necesidad de más código específico.
Beneficios de usar HTMX en el desarrollo web
Integrar HTMX en el desarrollo web ofrece múltiples ventajas para los desarrolladores de software.
- Sencillez y rapidez. HTMX simplifica el proceso de desarrollo al utilizar el potencial de HTML y reducir la dependencia de librerías externas.
- Optimización de carga. Al actualizar la información en la página sin necesidad de recargarla, HTMX disminuye la carga en los servidores y mejora la velocidad de respuesta.
- Compatibilidad con CSS. HTMX facilita la integración de animaciones y spinners de carga, lo que mejora la experiencia visual del usuario. Además, puedes seguir utilizando tus hojas de estilo de la misma manera que lo hacías hasta ahora.
- Amplia documentación. HTMX cuenta con una documentación oficial detallada que permite a los desarrolladores comprender y utilizar sus características de manera efectiva.
Instalación y configuración de HTMX
Para comenzar a utilizar HTMX en tus proyectos web, hay diferentes opciones de instalación y configuración disponibles. Vamos a ver las principales formas de implementar HTMX en tus aplicaciones.
Utilizando una CDN
La forma más sencilla de empezar a utilizar HTMX es mediante el uso de un CDN (Content Delivery Network). Un CDN permite obtener los archivos necesarios directamente desde servidores optimizados y distribuidos globalmente. Esto garantiza una carga rápida y fiable de HTMX en tus aplicaciones web.
Para utilizar HTMX a través de un CDN, simplemente agrega el siguiente código en la sección <head>
de tu archivo HTML:
<script src='https://cdn.jsdelivr.net/npm/htmx.org@latest'></script>
Simplemente, asegúrate de utilizar la URL más reciente proporcionada por el CDN de HTMX, para tener acceso a las últimas actualizaciones y mejoras de la biblioteca.
Descargando el paquete de HTMX
Otra opción es descargar el paquete de HTMX directamente desde el sitio web oficial. Esto te permitirá tener una copia local de la biblioteca y mayor control sobre su inclusión en tus proyectos web.
Para descargar el paquete de HTMX, sigue estos pasos:
- Visita el sitio web oficial de HTMX en htmx.org.
- Navega hasta la sección de descargas.
- Descarga el archivo de distribución de HTMX en formato ZIP o simplemente copia la URL de la última versión.
- Extrae los archivos del paquete descargado y colócalos en el directorio de tu proyecto.
Una vez que hayas descargado el paquete de HTMX, agrega el siguiente código en la sección <head>
de tu archivo HTML para incluirlo en tu proyecto:
<script src='ruta/al/archivo/htmx.js'></script>
Donde deberás sustituir ‘ruta/al/archivo/htmx.js’ por la ruta correspondiente dentro de tu proyecto donde hayas colocado el archivo de HTMX, de la misma manera que referenciarías a cualquier fichero JS externo.
Ahora que has instalado HTMX correctamente, estás listo para comenzar a utilizar sus interesantes características y aprovechar sus beneficios en el desarrollo web.
Utilizando el gestor de paquetes npm
Si utilizas el gestor de paquetes npm en tu proyecto, puedes instalar la librería con el siguiente comando.
npm install htmx.org
Una vez instalado, lo deberás referenciar desde node_modules/htmx.org/dist/htmx.js, o bien, su versión min.js.
Utilizando webpack
Si utilizas webpack para gestionar tus librerías en javascript, puedes instalarlo de la siguiente manera.
- Instala htmx utilizando tu gestor de paquetes, ya sea npm o yarn.
- Añade el import a tu fichero index.js, de la siguiente manera.
import 'htmx.org';
Si quieres utilizar una variable htmx global, necesitarás inyectarla en el ámbito de window.
- Crea un fichero JS.
- Importa este fichero a tu index.js
import 'ruta/a/mi_script.js';
- Añade este código a tu fichero JS.
window.htmx = require('htmx.org');
- Por último, actualiza tus paquetes con Webpack.
Uso de HTMX para interactuar con el servidor
HTMX ofrece una variedad de métodos para interactuar con el servidor y realizar peticiones AJAX de forma sencilla. Estos métodos permiten realizar acciones específicas en el servidor y actualizar la información en la página sin necesidad de recargarla.
Métodos de interacción AJAX en HTMX
HTMX proporciona diferentes métodos para realizar solicitudes al servidor. Se basan en el protocolo HTTP y ya te sonarán si sueles utilizar servicios REST en tus desarrollos.
- hx-get: se utiliza para realizar solicitudes de tipo GET y obtener información del servidor.
- hx-post: se utiliza para realizar solicitudes de tipo POST y enviar información al servidor.
- hx-put: se utiliza para realizar solicitudes de tipo PUT y actualizar información en el servidor.
- hx-delete: se utiliza para realizar solicitudes de tipo DELETE y eliminar información en el servidor.
- hx-patch: se utiliza para realizar solicitudes de tipo PATCH y realizar actualizaciones parciales en el servidor.
Atributos de HTMX para especificar detalles de la petición
Para personalizar la petición, HTMX ofrece diferentes atributos entre los que destacan:
- hx-include: permite especificar qué parte de la respuesta del servidor se debe incluir en la página.
- hx-params: se utiliza para enviar parámetros adicionales junto con la petición.
- hx-target: especifica dónde se mostrará la respuesta de la petición a través de selectores CSS.
- hx-trigger: define la acción que desencadena la petición, como un clic en un elemento, un cambio en un campo de formulario, etc.
- hx-swap: define cómo se mostrará la respuesta de la petición en el target definido en el atributo hx-target. Puede tener los siguientes valores:
- innerHTML – Reemplaza del HTML del elemento.
- outerHTML – Reemplaza el elemento entero.
- beforebegin – Inserta la respuesta antes del elemento.
- afterbegin – Inserta la respuesta como primer hijo del elemento.
- beforeend – Inserta la respuesta como último hijo del elemento.
- afterend – Inserta la respuesta después del elemento.
- delete – Elimina el elemento independientemente de la respuesta.
- none- No añade la respuesta al elemento.
Utilizando ‘Targets’ en HTMX
Los ‘Targets’ en HTMX permiten especificar dónde se mostrará la respuesta de la petición realizada. Esto se logra mediante selectores CSS que identifican los elementos en los que se desea actualizar la información. De esta manera, es posible tener un control preciso sobre qué partes de la página se actualizarán sin necesidad de recargarla por completo.
Aprovechar los métodos de interacción AJAX, los atributos para personalizar las peticiones y los ‘Targets’ en HTMX brinda una gran flexibilidad en el desarrollo web. Esto permite crear aplicaciones web dinámicas y eficientes, mejorando la experiencia del usuario al actualizar la información de manera instantánea y sin interrupciones.
No es algo nuevo que aporte esta tecnología, ya que se lleva usando desde hace muchos años. Lo que aporta, es la sencillez para especificar dónde se cargará la información. Normalmente, suele ser un elemento div o span.

Optimización de la experiencia de usuario con HTMX
HTMX ofrece diversas capacidades para optimizar la experiencia del usuario (UX) al interactuar con una aplicación web. Estas mejoras van desde la integración de animaciones y spinners de carga hasta la posibilidad de escribir respuestas de las peticiones dentro del propio elemento HTML.
Integración de animaciones y spinners de carga
Para mejorar la experiencia visual del usuario durante las peticiones, HTMX facilita la integración de animaciones y spinners de carga en la interfaz de usuario. Esto permite mostrar un feedback visual mientras se realiza una petición, evitando que el usuario se sienta confundido por la aparente inactividad de la página.
Mediante la incorporación de CSS, es posible añadir animaciones a elementos específicos de la página.
Escribir respuestas de peticiones en el elemento HTML
Una de las funcionalidades destacadas de HTMX es la capacidad de escribir directamente las respuestas de las peticiones dentro del elemento HTML. Esto permite una actualización dinámica del contenido sin necesidad de realizar una recarga completa de la página. Mediante atributos como ‘hx-target’, ‘hx-swap’, ‘hx-include’ y ‘hx-params’, es posible definir y manipular cómo se mostrarán y gestionarán las respuestas del servidor.
La flexibilidad de HTMX en este aspecto brinda a los desarrolladores el control total sobre la presentación y el comportamiento de los datos recibidos, contribuyendo a optimizar la usabilidad de la aplicación.
Datos con refresco automático
Mediante el atributo hx-trigger, puedes programar cada cuánto debe llamar al servicio que se encarga de recargar el dato que queremos tener refrescado.
En este ejemplo, se ve como cada 10 segundos se llamará al servicio «/resultado-actual» y volcará el resultado obtenido en el elemento con id #scoreDisplay (hx-target).
<div hx-get="/resultado-actual" hx-trigger="every 10s" hx-target="#scoreDisplay">
<span id="scoreDisplay">Resultado inicial</span>
</div>
HTMX vs React: Diferencias y ventajas
HTMX y React son dos enfoques distintos para el desarrollo web, cada uno con sus propias características y beneficios. Comprender las diferencias entre ambas herramientas puede ayudarnos a elegir la más adecuada para nuestro proyecto.
Diferencias entre HTMX y React
- HTMX extiende HTML y se basa en la lógica del lado del servidor, mientras que React utiliza JSX, state y props para construir interfaces de usuario.
- HTMX se centra en actualizar dinámicamente el contenido utilizando propiedades HTML, mientras que React se enfoca en la gestión del estado y la renderización eficiente de componentes.
- HTMX tiene una sintaxis familiar basada en HTML, lo que facilita su adopción y reduce la complejidad en el lado del cliente, mientras que React requiere aprender conceptos específicos como JSX.
Ventajas de HTMX sobre React
- HTMX tiene un peso mínimo y es libre de dependencias, lo que lo hace ideal para desarrolladores que desean aplicaciones web más ligeras y sencillas.
- La integración con CSS en HTMX permite agregar animaciones y spinners de carga, mejorando la experiencia de usuario mientras se realizan las peticiones.
- La fácil adopción de HTMX y su integración suave con tecnologías existentes facilita la actualización dinámica del contenido, brindando una mejor experiencia de usuario.
- En comparación con React, HTMX reduce el tiempo de desarrollo al simplificar las solicitudes Ajax utilizando propiedades HTML estándar.
Ventajas de React sobre HTMX
- React proporciona una estructura más robusta y flexible para desarrollar aplicaciones web complejas, especialmente en términos de gestión del estado y la modularidad de los componentes.
- React cuenta con una gran comunidad y una amplia variedad de bibliotecas y herramientas disponibles, lo que facilita la resolución de problemas y la implementación de nuevas funcionalidades.
- Para proyectos que requieren un alto grado de interactividad y rendimiento, React ofrece una mayor optimización y rendimiento gracias a la virtualización de DOM y las técnicas de rendering eficientes.
En última instancia, la elección entre HTMX y React dependerá de los requerimientos específicos del proyecto y las preferencias del desarrollador. Ambas herramientas ofrecen ventajas y desventajas, por lo que es importante evaluar cuidadosamente las necesidades del proyecto antes de tomar una decisión.
Casos de uso y ejemplos de aplicaciones web con HTMX
HTMX es una herramienta versátil que ofrece múltiples casos de uso en el desarrollo de aplicaciones web. Vamos a ver algunos ejemplos de cómo HTMX puede ser utilizado para mejorar la experiencia del usuario y la eficiencia en distintos contextos:
- Actualización de contenido dinámico. HTMX es ideal para aplicaciones que requieren actualizaciones en tiempo real sin tener que recargar toda la página. Esto es especialmente útil en casos como chats en línea, comentarios en vivo o widgets de contenido en constante cambio.
- Formularios interactivos. HTMX permite enviar y procesar formularios de manera asincrónica, lo que significa que los usuarios pueden enviar la información sin tener que esperar a que la página se recargue. Esto mejora la velocidad y la usabilidad de la aplicación, especialmente en formularios extensos o complejos.
- Carga progresiva de contenido. HTMX ofrece la posibilidad de cargar contenido a medida que el usuario lo necesita. Por ejemplo, en una lista de elementos larga, se puede utilizar HTMX para cargar más elementos a medida que el usuario se desplaza, evitando así la carga innecesaria de todos los elementos al principio.
- Integración con mapas y geolocalización. HTMX se puede utilizar para interactuar con APIs de mapas y geolocalización, permitiendo a los usuarios buscar lugares, obtener indicaciones y visualizar información geográfica en tiempo real sin salir de la página.
- Menús desplegables y navegación fluida. HTMX facilita la creación de menús desplegables y barras de navegación interactivas que se actualizan de forma dinámica sin recargar toda la página. Esto proporciona una experiencia de navegación más fluida y atractiva para los usuarios.
Estos ejemplos ilustran solo algunas de las muchas posibilidades que HTMX ofrece en el desarrollo de aplicaciones web. Su fácil integración con HTML, su capacidad de interactuar con el servidor de manera eficiente y su enfoque en la experiencia del usuario lo convierten en una herramienta a tener en cuenta para construir aplicaciones modernas y eficientes.
Recursos adicionales y documentación oficial de HTMX
Si estás interesado en aprender más sobre HTMX y aprovechar todas sus capacidades para la creación de aplicaciones web avanzadas, te recomiendo consultar los siguientes recursos.
- Sitio web oficial de HTMX. En el sitio web oficial de HTMX encontrarás toda la información necesaria para comenzar a utilizar esta tecnología en tus proyectos. Puedes acceder a la documentación completa, tutoriales, ejemplos de código y demos interactivas. Además, podrás encontrar información sobre las últimas actualizaciones y noticias relacionadas con HTMX.
- GitHub de HTMX. En el repositorio oficial de HTMX en GitHub encontrarás el código fuente de este framework, así como también la posibilidad de revisar y contribuir al desarrollo de HTMX. Podrás encontrar ejemplos de uso y solicitar ayuda en el foro de problemas (issues) si tienes alguna dificultad o duda.
- Comunidad de HTMX. HTMX cuenta con una comunidad activa de desarrolladores que comparten información, consejos y trucos sobre el uso de esta tecnología. Puedes unirte a la comunidad en foros y grupos de discusión, donde podrás interactuar con otros usuarios, plantear preguntas y compartir tus propias experiencias.
- Tutoriales y blogs. Existen numerosos tutoriales y blogs en línea dedicados a HTMX, donde podrás encontrar guías paso a paso, consejos de optimización, ejemplos de uso avanzado y trucos para aprovechar al máximo las capacidades de esta tecnología. Consulta estos recursos para ampliar tus conocimientos y descubrir nuevas formas de utilizar HTMX en tus proyectos.
Recuerda que la documentación oficial y los recursos adicionales son una fuente valiosa de información y te ayudarán a comprender mejor cómo utilizar HTMX y resolver posibles desafíos que puedas encontrar durante el desarrollo de tus aplicaciones web. Mantente actualizado con las últimas actualizaciones y las mejores prácticas recomendadas por la comunidad de HTMX para aprovechar al máximo esta poderosa herramienta.