Introducción
EmberKit es un framework JSX minimalista y TypeScript-first construido en torno a tres principios — velocidad primero, luego peso mínimo, y cero JavaScript por defecto.
Velocidad
El rendimiento es la prioridad máxima. EmberKit optimiza todo el camino del servidor a la pantalla:
- HTML renderizado en el servidor — Las páginas llegan como marcado en desarrollo y producción (
hybrid,ssr,static). Los usuarios ven contenido antes de que se ejecute JavaScript. - Rutas estáticas pre-renderizadas — En modos
hybridystatic, las rutas fijas se convierten en HTML en tiempo de build para TTFB y First Contentful Paint rápidos en el CDN. - Hidratación selectiva — Sin reconciliación de DOM virtual en el cliente. Las señales actualizan nodos enlazados vía
data-ek-bind; solo las regiones interactivas cargan JS. - Actualizaciones dirigidas — Cuando cambia el estado, el runtime toca nodos DOM concretos en lugar de re-renderizar árboles de componentes.
Consulta SSR y SSG para modos y el pipeline de build.
Peso
Un runtime tree-shakeable centrado en enrutamiento, señales y enlace al DOM — no un reconciliador grande. Pagas solo lo que usas. Las páginas estáticas pueden enviar cero JS del framework cuando no tienen manejadores ni enlaces.
Cero JS por defecto
El marcado estático permanece HTML. La interactividad es opt-in:
data-ek-bind— conecta señales a nodos DOM (Hidratación)- Manejadores de eventos — conectados tras la carga vía
data-ekclick - Componentes con
onClicko enlaces — solo esas regiones se hidratan
function Hero() {
return <h1>Hello</h1>; // fast paint, no client JS
}
function Counter() {
const [count, setCount] = createSignal(0);
return (
<>
<span data-ek-bind={count}>{count()}</span>
<button type="button" onClick={() => setCount((n) => n + 1)}>+</button>
</>
);
}
De un vistazo
| Enrutamiento | Convenciones de archivos en src/routes/ |
| Renderizado | Híbrido por defecto: pre-render de rutas estáticas, SSR para rutas dinámicas |
| Estado | Señales + actualizaciones DOM dirigidas |
| Herramientas | emberkit dev, build, preview, serve |
Novedades en 0.8.0
- Efectos reactivos —
createEffect/createMemose re-ejecutan cuando cambian las dependencias - View Transitions —
render(..., { viewTransitions: true })para navegación SPA - Dev API —
devApiPluginysrc/routes/_api/*en desarrollo - sqlRawPlugin — importar
*.sql?rawpara despliegues edge - i18n — archivos JSON de traducción con
createI18nFromGlob(guía)
Consulta las notas completas de Release 0.8.0.
Siguientes pasos
- Instalación — Crear un proyecto
- Inicio rápido — Primeras rutas y señales
- Release 0.8.0 — Última versión
- SSR y SSG — Cómo se logra la velocidad en cada modo
- Hidratación — Interactividad selectiva en el cliente
- Internacionalización — Traducciones JSON y rutas por locale