Introducción El renacimiento de los hipermedia está en pleno auge. Después de años de dominio de SPA, los desarrolladores están redescubriendo el poder de las arquitecturas basadas en servidores que aprovechan HTML como el motor del estado de aplicación. El marco que conduce a esta carga, HTMX, se centra exclusivamente en los hipermedia. Una alternativa, Lightview, no te bloquea en patrones hipermedia-sólo. A diferencia del enfoque hipermedia enfocado de HTMX, Lightview es un marco multiparadigma que soporta y patrones de hipermedia, programación funcional con funciones de etiqueta de plantilla como BauJS [ ], y la representación JSON (como JurisJS [ ]), - todo dentro del mismo marco. Este artículo proporciona una comparación técnica de las capacidades de hipermedia de HTMX y Lightview para ayudarle a elegir la herramienta correcta para su proyecto. https://github.com/grucloud/bau https://jurisjs.com Usted podría decir en este punto, "Espera un segundo, HTMX se supone que simplifica el desarrollo, ¿por qué quiero la complejidad de varios paradigmas de codificación?" Usted puede no, el punto de Lightview es darle la opción, usted podría construir su aplicación entera con hipermedia, o usted podría construir su aplicación entera con programación funcional, o usted podría construir su aplicación entera con representación JSON, o usted podría construir su aplicación entera con una mezcla de los tres. Todo depende de lo que usted necesita. Tal vez su aplicación comienza a partir de los hipermedios, pero a medida que crece, usted encuentra que necesita usar la programación funcional para construir la lógica empresarial compleja en un primer modo offline, o usted encuentra que necesita usar la representación JSON para la portabilidad cross-platform, o usted necesita agregar aspectos de IA generados dinámicos ¿Qué es Hypermedia? Antes de sumergirse en la comparación, vamos a establecer lo que entendemos por hipermedia. Hypermedia se refiere a contenido que contiene enlaces y controles para navegar a recursos relacionados. El HTML tradicional lo proporciona a través de enlaces y formularios, pero los marcos de hipermedia modernos extienden estas capacidades a cualquier elemento, permitiendo interacciones más ricas. Cualquier elemento puede servir como un enlace y cualquier elemento puede especificar la fuente de la que desea obtener su contenido. . Hmz HTMX y Lightview: Completar HTML como un hipertexto HTMX, creado por Carson Gross como sucesor de intercooler.js, tiene como objetivo "completar HTML como un hipertexto". Lightview, creado por este autor, Simon Blackwell, fue diseñado en colaboración con LLMs, para no sólo completar HTML como hipertexto, sino también para proporcionar un enfoque más portátil, declarativo para la entrega de contenido al servidor, aunque el contenido de los hipermedios todavía puede ser HTML como HTMX, también puede ser domos virtuales JSON que representan HTML o componentes de UI nativos. Filosofía básica HTMX abarca la arquitectura Hypermedia-Driven Application (HDA), caracterizada por dos restricciones: Sintaxis declarativa: utiliza atributos incorporados en HTML en lugar de script imperativo Respuestas de hipermedia: el servidor responde con HTML, no con JSON Este enfoque mantiene la complejidad en el servidor, mientras que el cliente permanece simple y declarativo. Características clave HTMX permite que cualquier elemento emita solicitudes HTTP usando verbos estándar: HTTP Method Support <button hx-delete="/contacts/1" hx-target="#contact-list" hx-confirm="Are you sure?"> Delete Contact </button> : El El atributo especifica dónde se deben insertar las respuestas del servidor, utilizando selectores CSS: Flexible Targeting hx-target <input type="text" hx-get="/search" hx-trigger="keyup changed delay:500ms" hx-target="#results"> Control de desencadenantes personalizados cuando se solicita el fuego: Event Triggers <div hx-get="/news" hx-trigger="every 30s"> <!-- Auto-refreshing content --> </div> Múltiples opciones para cómo el contenido reemplaza el DOM existente: Swap Strategies HTML por defecto (default) OtrosHTML antes, después, antes y después Eliminar, no hay : HTMX proporciona soporte integrado para transiciones suaves de la interfaz de usuario a través de identificadores de elementos estables, clases de fase de cambio ( , de , de ), solicita indicadores nacionales ( , los cambios en el tiempo ( , de ), e integración con la API de transiciones de vista. Esto permite que las aplicaciones impulsadas por los hipermedios logren suavidad similar a SPA sin JavaScript personalizado. CSS Transitions and Animations htmx-swapping htmx-settling htmx-added htmx-request swap:1s settle:1s Los de HTMX Puede ampliar los enlaces y formularios existentes: Progressive Enhancement hx-boost <body hx-boost="true"> <!-- All links and forms now use AJAX --> </body> : Soporte nativo para actualizaciones en tiempo real: WebSockets & SSE <div hx-ws="connect:/chatroom"> <div hx-ws="send"> <input name="message"> </div> </div> dependencias HTMX tiene cero dependencias, lo que lo hace ideal para agregar capacidades de hipermedia a las aplicaciones existentes sin introducir complejidad adicional. Lightview: Framework de múltiples paradigmas con soporte de hipermedia Lightview también tiene cero dependencias a menos que elija utilizar sus componentes de interfaz de usuario pre-construidos, y adopta un enfoque diferente ofreciendo múltiples paradigmas de programación en un marco. Si bien incluye capacidades de hipermedia similares a HTMX, no te obliga a usarlas exclusivamente. Puedes usar patrones de hipermedia declarativos, programación funcional o definiciones de JSON basadas en datos, todo dentro de la misma aplicación. proporciona una extensa documentación en línea y REPLs interactivos para probar el marco. sitio web Filosofía: El poder de la elección Lightview es flexible por diseño. No prescribe los hipermedios como En su lugar, le permite elegir la herramienta adecuada para la parte específica de su aplicación: Sólo Hipermedia (estilo HTMX): Utilice src y href para contenidos y navegación por páginas basados en servidores. Funcional (estilo BauJS): Utilice las funciones de etiqueta de modelo de Javascript para la lógica compleja e imperativa. Data-Driven (JurisJS-style): Define UI como JSON puro (vDOM/oDOM) para interfaces orientadas a la configuración. AI-Safe (cDOM): Utilice estructuras JSON sandboxed con un lenguaje de expresión ejecutable (JPRX) para interfaces de usuario seguras y generadas por la IA. Hipermedia y interacción El sistema de hipermedia de Lightview se basa en atributos HTML estándar ( , de ) ampliado con potentes capacidades. src href : Unified Attributes src: puede ser una URL (para partiales del lado del servidor) o un selector CSS (para partiales locales). href: desencadenan la navegación o la carga de contenido sobre la interacción del usuario (por ejemplo, <button href="/page.html">). Lightview ofrece un control sofisticado sobre dónde se inserta el contenido utilizando el atributo o el establecimiento. Targeting & Location target location Localizaciones estándar: innerhtml, outerhtml, beforebegin, afterbegin, beforeend, afterend. Shadow DOM: Lightview tiene soporte de primera clase para Componentes Web. Puede insertar contenido directamente en una raíz de sombra usando location="shadow" o el sufijo :shadow en un objetivo (por ejemplo, target="#component:shadow"). Esto lo diferencia de HTMX, que se centra en Light DOM. y ): Personalizar acciones HTTP directamente en HTML: Advanced Requests ( data-method data-body <!-- DELETE request --> <button href="/api/items/123" data-method="DELETE" target="#log">Delete</button> <!-- POST with body --> <button href="/api/save" data-method="POST" data-body="#form-id">Save</button> : Otro poderoso diferenciador de Lightview es la capacidad de originar contenido del documento actual. Mientras que HTMX está diseñado para recuperar partes de hipermedia de un servidor, Lightview permite la Contiene un selector de CSS. Self-Sourced Partials (CSS Selectors as Source) src Esto permite "Self-Source Partials" donde el contenido puede ser extraído de un Una ocultación , o cualquier otro elemento en el DOM. Esto reduce el sobrepeso de la red y permite a los desarrolladores unir parciales "offline" directamente dentro de la carga inicial de la página. <template> <div> Lightview toma el enfoque de que los hipermedios no tienen que significar partes del lado del servidor, puede tener un SPA de hipermedios completo. <!-- Source content from a local template --> <div src="#tab-1-content"></div> <template id="#tab-1-content"> <h3>Tab 1</h3> <p>This content was sourced from a local template tag!</p> </template> Lightview admite el desplazamiento automático a un ID de elemento específico cuando se carga contenido a través de Navegación a través Si la URL incluye un fragmento de hash (por ejemplo, ), Lightview espera automáticamente que el contenido se cargue y luego desplaza el elemento objetivo a la vista. Automatic Hash Scrolling src href /docs/api.html#signals Compensaciones inteligentes: La posición de desplazamiento se corresponde automáticamente con una barra de navegación fija si se define (a través de --site-nav-altura). Soporte de DOM de sombra: Scrolling también funciona para el contenido cargado en una raíz de sombra. Carga parcial: Funciona tanto para la navegación completa (href) como para las actualizaciones parciales de contenido (src). ) y Triggers: Lightview proporciona un poderoso sistema "Gating" para interceptar eventos antes de que desencadenen acciones. Declarative Event Gating ( lv-before Modificadores: soporte integrado para throttle(ms) y debounce(ms). Pipelines: cadenas de múltiples puertas (por ejemplo, lv-before="click throttle(500) confirm('¿Estás seguro?')" ). Puertas personalizadas: Define funciones globales para validar acciones (por ejemplo, validarUsuario()) que devuelvan falso para cancelar el evento. Reactividad y Estado Lightview incluye un sistema de reactividad integrado de granos finos (Signals and State) que permite actualizaciones instantáneas y resolución automática de plantillas. Esto lo separa de HTMX, que depende principalmente de las respuestas rendidas por el servidor o del estado basado en DOM para los cambios. Este sistema proporciona: Resolución automática de plantillas: las etiquetas ${...} en HTML se actualizan automáticamente cuando el estado cambia. Registro nombrado: Se pueden registrar señales y estados por nombre para una fácil vinculación de plantillas. JSON Schema Control: Aplica la integridad de los datos en estado reactivo utilizando el esquema estándar de JSON. Para una comparación técnica detallada del estado reactivo de Lightview vs. el enfoque basado en el servidor de HTMX, consulte la La Sección. Gestión del Estado Interfaces de usuario orientadas a datos y AI Una de las características más distintivas de Lightview es su soporte para (vDOM, oDOM) y (en el caso de CdM) Data-as-UI Safe AI-Generation Lightview puede recoger y renderizar la interfaz de usuario definida como JSON, lo que a menudo es más fácil para los backend para generar y gestionar que las cadenas HTML. Multiple JSON Formats vDOM: estructura de domo virtual estándar. oDOM: abreviatura de "Object DOM" para interfaces de usuario concisas basadas en configuración. /* vDOM (Explicit) */ [{ "tag": "div", "attributes": { "class": "p-4" }, "children": ["Hello"] }] /* oDOM (Concise) */ { "div": { "class": "p-4", "children": ["Hello"] } } /* cDOM / JPRX (Reactive & Safe) */ { "div": { "children": [ { "span": { "text": "Count: =/myVal" } }, { "button": { "onclick": "=/myVal++", "text": "+" } } ] } } : Permitir que la IA escriba Javascript en bruto es un riesgo de seguridad. es un formato JSON sandboxed donde la IA puede definir la estructura y la lógica El código arbitrario, en esta arquitectura, sirve como el lenguaje de lógica y expresión seguro incorporado dentro de la estructura de cDOM, proporcionando el poder de la reactividad y la lógica sin las vulnerabilidades de seguridad de . Safe AI Generation with cDOM cDOM (Clean/Computed DOM) sin JPRX (JSON Path Reactive eXpressions) eval Seguridad: No hay eval o ejecución arbitraria de scripts. Lógica: soporta la lógica como "si", "loop", y matemáticas y más de 100 otras funciones a través de un lenguaje de expresión segura (JPRX). Caso de uso: Ideal para aplicaciones "GenUI" donde un LLM genera la interfaz en el vuelo. Utilice cDOM cuando desee el dinamismo de una interfaz de usuario generada sin la pesadilla de seguridad de Javascript generado. Comparación de cabeza a cabeza Syntax y API Surface : HTMX Atributos personalizados hx-* para todas las funcionalidades Extenso vocabulario de atributos (hx-get, hx-post, hx-target, hx-trigger, etc.) Prefixo consistente hace que las características de HTMX sean reconocidas de inmediato Curva de aprendizaje más aguda debido a la variedad de atributos : Lightview Utiliza atributos HTML estándar (src, href) donde sea posible Menor vocabulario de atributos Más familiar para desarrolladores que saben HTML JavaScript API for reactive features or cDOM/JPRX for safer reactivity Solicitud de acción Ambos frameworks soportan métodos HTTP personalizados y órganos de solicitud, pero con enfoques diferentes: Utiliza los atributos dedicados: HTMX <form hx-post="/submit" hx-swap="outerHTML"> Utiliza el estándar Características de la configuración: Lightview data- <button href="/api/endpoint" data-method="POST" data-body="#myForm"> Save </button> Es muy flexible: Lightview's data-body Selector CSS: automaticamente serializará el objetivo (por ejemplo, #myForm como FormData, o el valor de una entrada). JSON: Utilice json:{"id": 1} para cargas de JSON literales. JavaScript: Utilice javascript:state.get ('usuario') para extraer datos directamente del estado reactivo. Text: Use text:Hello para cargas de texto sencillo. Trigueros Eventos Síntomas de la sintaxis trigger: HTMX <input hx-get="/search" hx-trigger="keyup changed delay:500ms"> Tiene un enfoque similar utilizando El gato: Lightview lv-before <input oninput="search(this.value)" lv-before="input debounce(500)"> Targeting y posicionamiento de contenidos Ambos marcos proporcionan un control flexible sobre dónde se inserta el contenido: Uso and Los atributos: HTMX hx-target hx-swap <button hx-get="/content" hx-target="#results" hx-swap="beforeend"> Load More </button> Uso con sufixo de ubicación opcional o separado Los atributos: Lightview target location <!-- Target with suffix --> <button href="/content" target="#results:beforeend"> Load More </button> <!-- Separate location attribute --> <div src="/content" location="beforeend"></div> Lightview incluye como una opción de posicionamiento para la inserción de Shadow DOM, mientras que HTMX se centra en la manipulación estándar de DOM. Esto hace que Lightview sea más adecuado para la arquitectura de componentes web. Key difference shadow Sourcing de contenido (Server vs. Local) : HTMX Desarrollado para Hypermedia dirigida por servidor (HDA) Las fuentes deben ser URLs que devuelven respuestas de hipermedia (HTML) Requiere una solicitud de red para cada actualización parcial : Lightview Flexibilidad de múltiples fuentes Las fuentes pueden ser URLs o selectores CSS. Enables "Self-Sourced Partials" where content is pulled from local tags or other DOM elements <template> Permite agrupar fragmentos de interfaz de usuario común para reducir la caída inicial de la red Transiciones y animaciones has first-class animation support with swap phase classes, request state indicators, timing modifiers, and View Transitions API integration—allowing hypermedia apps to achieve SPA-like smoothness. HTMX currently handles transitions through standard CSS transitions/animations and component lifecycle hooks without built-in swap phase abstractions. Future versions may include built-in swap phase abstractions. Lightview Gestión del Estado This is where the frameworks diverge most significantly in their architectural approach: HTMX: Estado del lado del servidor HTMX es puramente hipermedia-focalizado. el estado del lado del cliente es mínimo, generalmente manejado a través de: Sesión de servidor: el estado se mantiene en la base de datos o sesión de backend. : passing state back and forth in requests. Hidden Form Fields Atributos DOM: Almacenar estado simple en atributos de datos*. Integración Alpine.js: Para la lógica compleja del lado del cliente, los desarrolladores de HTMX a menudo se acercan a Alpine.js o bibliotecas ligeras similares. Lightview: Reactividad del lado cliente Lightview incluye un sistema completo de reactividad de granos finos inspirado en SolidJS. Esto lo convierte en un marco multiparadigma que puede manejar el estado independientemente del servidor. : Cuando el HTML se descarga a través de o Lightview resuelve automáticamente las literales del modelo Esto permite que las partículas rendidas por el servidor se vuelvan instantáneamente reactivas en el cliente sin scripts de hidratación. Automatic Template Resolution src href ${...} : Las señales y los estados se pueden registrar por nombre para que estén disponibles para la resolución de plantillas a nivel mundial: Named Registration // Registering a reactive signal by name const count = Lightview.signal(0, 'count'); // Registering a deeply reactive state by name const user = Lightview.state({ name: 'Alice', age: 30 }, 'user'); <!-- Loaded content automatically updates when 'user' state changes --> <h1>Welcome, ${state.get('user').name}</h1> Los estados de Lightview pueden ser aplicados opcionalmente por esquemas JSON, proporcionando integridad de datos para objetos complejos: JSON Schema Validation const user = Lightview.state({ name: 'Alice', age: 30 }, 'user', { schema: { type: 'object', properties: { name: { type: 'string' }, age: { type: 'number' } }, required: ['name', 'age'] } }); : Reactive Primitives signo (valor): Para valores primitivos. estado (objeto): Para la observación profunda de objetos y arreglos. Efecto (fn): Para ejecutar efectos secundarios cuando cambian las dependencias. Esta diferencia arquitectónica hace que Lightview sea más de un marco de aplicación completo, mientras que HTMX sigue siendo una herramienta de mejora de hipermedia dedicada. Actualizaciones en tiempo real tiene soporte de primera clase para WebSockets y eventos de envío de servidor: HTMX <div hx-ext="sse" sse-connect="/updates" sse-swap="message"> No tiene soporte WebSocket/SSE incorporado (como en la versión actual), aunque se puede añadir a través de JavaScript estándar. Lightview Seguridad Se basa en las prácticas estándar de seguridad web: HTMX Política de origen Soporte de token de CSRF a través de hx-headers Política de compatibilidad de seguridad de contenido includes security by default: Lightview Política del mismo dominio aplicada automáticamente Dangerous protocol blocking ( , ) javascript: data: Huesos de validación personalizables Mejora progresiva Excelentes en la mejora progresiva: HTMX <!-- Works without JS, enhanced with JS --> <body hx-boost="true"> <a href="/page">Link</a> <form action="/submit" method="post"> A excepción de que actualmente carece de soporte integrado para websockets o eventos del lado del servidor, el enfoque de Lightview es tan capaz de mejora progresiva. y están respaldados para cada elemento, no hay necesidad de nada como . Lightview href src hx-boost Componentes arquitectónicos No tiene un modelo de componentes: mejora el HTML estándar. HTMX Incluye : Lightview Componentes de archivo único Componentes del templo Importar/exportar variables entre componentes Sandbox de componentes remotos También prevé sobre Para los patrones de UI comunes, por ejemplo. , de , de , de y etc. 50 componentes integrados Cargando Tarjeta Cartas Dragón Uso de casos Cuándo elegir HTMX Añadir interactividad a las aplicaciones basadas en servidores: HTMX se destaca en la mejora incremental de las aplicaciones web tradicionales Familiaridad del equipo con el rendimiento del lado del servidor: si su equipo se siente cómodo con Rails, Django, Laravel, etc. La mejora progresiva es crítica: HTMX se degrada graciosamente cuando JavaScript está deshabilitado Características en tiempo real: soporte WebSocket/SSE integrado Comportamiento simple y predecible: el enfoque de un solo propósito de HTMX hace que sea fácil razonar sobre Cuándo elegir LightView Flexibilidad multiparadigma: Cuando desea mezclar la programación funcional, la interfaz de usuario basada en JSON y los hipermedios en una sola base de código UI segura generada por la IA: Uso de cDOM para interfaces seguras generadas por la IA Arquitectura basada en componentes: cuando desea componentes reutilizables sin un paso de construcción Reactividad del lado del cliente: aplicaciones que necesitan actualizaciones reactivas de grano fino Shadow DOM/Web Components: soporte integrado para la encapsulación Enfoque híbrido: mezclar patrones de hipermedia con la programación reactiva Parciales auto-surgidos: Cuando desea utilizar patrones de hipermedia pero fuente de contenido localmente desde el DOM para reducir las solicitudes de red o proporcionar secciones listas para salir de la red Consideraciones de rendimiento Ambos marcos son eficientes, pero optimizan cosas diferentes: : HTMX Network-focused optimization (reduce round trips) El servidor hace el levantamiento pesado Procesamiento mínimo del lado del cliente Historia y caching incorporado : Lightview Reactividad de grano fino (sólo las actualizaciones cambiaron los nodos) No hay dom virtual que difiera sobre la cabeza Puede reducir las solicitudes de red con el estado del lado del cliente El seguimiento de la dependencia optimiza los rendimientos Experiencia de desarrollador Curva de aprendizaje : HTMX Conceptualmente simple: HTML + atributos Documentación y ejemplos amplios La gran comunidad y el ecosistema "Hypermedia Systems" libro como guía integral : Lightview Múltiples modelos mentales (hipermedia + reactividad + funcional) Documentación completa con más de 40 componentes y ejemplos extensos Comunidad más pequeña Requiere comprensión de múltiples paradigmas de programación Debugando : HTMX Browser DevTools funciona de forma natural Excelente logging y eventos para el debug Solicitud/respuesta inspección directa : Lightview El seguimiento de la dependencia puede ser más difícil de debutar Las actualizaciones reactivas pueden ser menos evidentes El modo de desarrollo integrado ayuda Ecosistema y adopción : HTMX Ecosistema maduro con plugins y extensiones Server-side library support in all major languages Una comunidad grande y activa Usado en la producción por muchas empresas Part of the broader hypermedia movement : Lightview Un ecosistema pequeño pero en crecimiento Framework de Backend de Compañía (Watchlight) Menos integración de terceros Más allá de la escena tamaño HTMX HTMX minificado y gzipped es 29KB LightView Lightview se puede cargar como tres archivos separados: // Core: 6KB minimized and gzipped // Supports: tagged functions, signals, vDOM format <script src="lightview.js"></script> // X: 14KB minimized and gzipped // Adds: hypermedia, html template literal support, oDOM support <script src="lightview-x.js"></script> // CDOM: 25KB minimized and gzipped // Adds: cDOM, JPRX (not required for hypermedia) <script src="lightview-cdom.js"></script> El tamaño combinado necesario para emular gran parte de la funcionalidad de HTMX es de 20KB, y esto te da mucha otra potencia también. Comparación de código: Construyendo la misma característica Vamos a construir una función de búsqueda activa con ambos marcos: Versión HTMX <input type="search" name="q" hx-get="/search" hx-trigger="keyup changed delay:300ms" hx-target="#results" hx-indicator="#spinner"> <img id="spinner" class="htmx-indicator" src="/spinner.gif"> <div id="results"></div> Versión Lightview <input type="search" id="search-input" name="q" href="/search" oninput="LightviewX.request(this)" lv-before="input debounce(300)" target="#results"> <div id="results"></div> : How it works href="/search": El punto final a recuperar. oninput="LightviewX.request(this)": Desencadena el motor de hipermedia de Lightview en cada teclado. Sólo es necesario para los elementos de tipo de entrada. El procesamiento de clic es automático en los elementos no de entrada. lv-before="input debounce(300)": Declarativamente debounce la entrada por 300ms, reemplazando la necesidad de la sintaxis de desencadenante complejo. target="#results": Dirige la respuesta HTML o JSON a la división de resultados. Integration with Backend Frameworks Funciona con cualquier tecnología del lado del servidor que pueda generar HTML. HTMX Funciona con cualquier backend de JSON o HTML, no dicta la arquitectura del lado del servidor. Lightview Camino de migración De SPA a HTMX HTMX ofrece una ruta de migración gradual: Comience con hx-boost en formularios y enlaces existentes Incrementalmente añade interacciones hipermedia más sofisticadas Sustituir las rutas SPA por puntos finales de hipermedia Desde el SPA hasta Lightview Lightview también ofrece un camino gradual: Comience convirtiendo sólo unos pocos elementos en hipermedia Incrementalmente añade interacciones hipermedia más sofisticadas Evolución de componentes funcionales a funciones etiquetadas Incorporar señales de nombres y estado Añadir generación dinámica de IA con cDOM/JPRX Conclusión Tanto HTMX como Lightview representan alternativas convincentes pero sirven a necesidades diferentes: : Choose HTMX if you want Arquitectura puramente hipermedia Mínima complejidad del cliente Mejora progresiva Solución probada y probada Una comunidad y un ecosistema sólidos : Choose Lightview if you want Flexibilidad multiparadigma (funcional, JSON, hipermedia) UIs seguros generados por IA con cDOM/JPRX Arquitectura de componentes sin herramientas de construcción Reactividad de granos finos Componente web/dom de sombra La libertad de elegir tu estilo de programación Auto-source partiales locales a través de selectores CSS La diferencia clave: HTMX está enfocado al láser en los hipermedios y lo hace excepcionalmente bien. entre varios paradigmas - no te obliga a elegir los hipermedios para todo. Una opción HTMX permanece fiel a la visión de los hipermedios con foco láser, mientras que Lightview abarca la flexibilidad, permitiéndole utilizar la programación funcional (como BauJS), la representación de JSON (como JurisJS), o los patrones de los hipermedios según su caso de uso. Recursos HTMX Sitio oficial: htmx.org Libro: "Sistemas Hypermedia" en hypermedia.systems Discord: Discusión activa en la comunidad Lightview Página oficial: lightview.dev Artículo sobre la generación segura de UI de IA: Cómo construir una calculadora generada por IA sin JavaScript personalizado