Nexanexa

Framework HTML-first · SEO-first

HTML real. Cero JavaScript de más.

Nexa compila cada página a HTML de verdad — con SEO, i18n y datos reales — y activa JavaScript solo en los nodos que de verdad lo necesitan. Nada de bundle vacío por las dudas.

OweeLinuxsrc/pages/index.tsx
export const seo = {
    title: "Mi tienda",
    description: "Zapatillas para correr"
};

function sayHi() {
    alert("hola desde Nexa!");
}

export default function Home() {
    return (
        <main>
            <h1>Bienvenido</h1>
            <button onClick={sayHi}>Saludar</button>
        </main>
    );
}
17pasos del tutorial
0 KBJS en una página sin interacción
2idiomas, con el i18n del propio framework
100%HTML real, indexable sin ejecutar JS

Un mismo proyecto

Web, escritorio, Android e iOS — sin reescribir nada

El mismo código fuente que compila a HTML real para la web también empaqueta a un binario de escritorio o a una app móvil de verdad. Nada de una versión web y otra nativa por separado.

Web

Chrome, Firefox, Safari — el HTML real de siempre, indexable y sin nada que instalar.

nexa build

Escritorio

Windows, macOS y Linux con Tauri — un binario de escritorio real y ejecutable, compilado con cargo.

nexa add tauri
cd src-tauri && cargo build

Android

Un APK real compilado con Gradle vía Capacitor — verificado de punta a punta con el SDK de Android real.

nexa add capacitor
npx @capacitor/cli add android
cd android && ./gradlew assembleDebug

iOS

Mismo mecanismo de Capacitor que Android — genera un proyecto Xcode real. Necesita macOS para compilar; no verificado en este entorno Linux.

npx @capacitor/cli add ios
Ver el paso completo del tutorial →

La diferencia real

Nexa no es "otro Astro"

Astro, Next.js, Nuxt y SvelteKit ya resuelven muy bien "HTML primero, JS solo donde hace falta". La diferencia de Nexa está un nivel más abajo: en cómo se genera ese HTML.

Cómo se genera el HTML

Astro/Next/Nuxt/SvelteKit: para producir el HTML, literalmente EJECUTAN tu código — corren el renderer real de React, Vue o Svelte en el servidor, incluso para contenido 100% estático.

Nexa: el compilador (escrito en Rust) nunca ejecuta tu código. Es un analizador estático que reconoce un conjunto fijo de patrones en tu archivo (data.x, t("clave"), <For each={...}>, export const load/seo) y los traduce directo a HTML — sin runtime de JavaScript de por medio, ni en el servidor.

Activación progresiva vs. hidratación

Hidratación clásica: se vuelve a ejecutar el árbol entero del componente en el navegador para "revivir" los event listeners, aunque solo un botón sea interactivo.

Nexa: cada nodo interactivo (cada onClick, cada isla) tiene su propio identificador y su propio chunk de JS, cargado por separado y con su propia estrategia (interaction/visible/idle/load/manual). No hay un árbol que revivir — cada pieza se activa sola.

Islas: opacas vs. renderizadas

Islas de Astro: son componentes reales de React/Vue/Svelte. El propio renderer de Astro para ese framework genera el HTML inicial de la isla en el servidor.

Islas de Nexa: son una caja negra total. El compilador de Rust nunca abre ni interpreta lo que hay dentro — el HTML inicial de la isla es el que vos mismo escribís a mano (con los mismos patrones estáticos de cualquier página Nexa), y el framework real que elijas corre 100% en el cliente, nunca en el servidor.

En la práctica esto significa que no hace falta elegir un solo paradigma para todo el proyecto: la home y el blog pueden ser HTML puro sin una línea de framework, un formulario puede activarse solo con @nexa/reactivity, y un dashboard complejo puede ser una isla con Vue o React completo adentro — todo en el mismo proyecto, compilado por el mismo Rust que nunca necesita entender ese Vue o ese React.

Ventajas

¿Por qué Nexa?

01

Cero JavaScript por defecto

Una página sin interacción se compila a HTML puro. Sin runtime, sin hidratación, sin bundle vacío por las dudas.

02

Activación progresiva

Cada nodo interactivo declara su propia estrategia: interaction, visible, idle, load o manual.

03

SEO real, no un plugin

title, meta tags, Open Graph y JSON-LD válidos, generados por página — con un analizador que avisa si falta algo.

04

Islas para lo interactivo de verdad

Un dashboard o un carrito complejo se monta con tu framework favorito, sin que el resto del sitio deje de ser HTML-first.

05

Cache-busting real

Cada archivo generado lleva el hash de su propio contenido — un redeploy nunca sirve JS o CSS viejo desde el caché.

06

Empaquetado nativo

El mismo proyecto genera un binario de escritorio real (Tauri) o un APK real (Capacitor), sin reescribir nada.

07

Tiempo real de primera clase

connectSSE/connectSocket envuelven EventSource/WebSocket nativos en señales reactivas — notificaciones, chat, dashboards en vivo.

08

Backend-agnóstico

load() hace un GET HTTP a cualquier backend que ya tengas — PHP, Go, Node, lo que sea. Nexa no impone el tuyo.

Nexa

Sobre el logo

El loto en el centro es pureza y renacer, el mismo símbolo del mito de Nezha (哪吒). Alrededor, una única rueda de fuego evoca sus zapatillas y el impulso divino. Jade, dorado y rojo conectan lo mítico con lo moderno.