Introduction

EmberKit est un framework JSX minimaliste et TypeScript-first fondé sur trois principes — la vitesse d’abord, puis un poids minimal, puis zéro JavaScript par défaut.

Vitesse

La performance est la priorité absolue. EmberKit optimise tout le chemin du serveur à l’écran :

  • HTML rendu côté serveur — Les pages arrivent en balisage en dev et en production (hybrid, ssr, static). Les utilisateurs voient le contenu avant l’exécution de JavaScript.
  • Routes statiques pré-rendues — En modes hybrid et static, les chemins fixes deviennent du HTML au build pour un TTFB et un First Contentful Paint rapides au CDN.
  • Hydratation sélective — Pas de réconciliation de DOM virtuel côté client. Les signaux mettent à jour les nœuds liés via data-ek-bind ; seules les zones interactives chargent du JS.
  • Mises à jour ciblées — Quand l’état change, le runtime touche des nœuds DOM précis au lieu de re-rendre des arbres de composants.

Voir SSR et SSG pour les modes et le pipeline de build.

Poids

Un runtime tree-shakeable centré sur le routage, les signaux et la liaison DOM — pas un gros réconciliateur. Vous ne payez que ce que vous utilisez. Les pages statiques peuvent livrer aucun JS framework lorsqu’elles n’ont ni gestionnaires ni liaisons.

Zéro JS par défaut

Le balisage statique reste du HTML. L’interactivité est opt-in :

  • data-ek-bind — relie les signaux aux nœuds DOM (Hydratation)
  • Gestionnaires d’événements — branchés après chargement via data-ekclick
  • Composants avec onClick ou liaisons — seules ces zones s’hydratent
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>
    </>
  );
}

En bref

RoutageConventions de fichiers src/routes/
RenduHybride par défaut : pré-rendu des chemins statiques, SSR pour les routes dynamiques
ÉtatSignaux + mises à jour DOM ciblées
Outilsemberkit dev, build, preview, serve

Nouveautés en 0.8.0

  • Effets réactifscreateEffect / createMemo se réexécutent quand les dépendances changent
  • View Transitionsrender(..., { viewTransitions: true }) pour la navigation SPA
  • Dev APIdevApiPlugin et src/routes/_api/* en développement
  • sqlRawPlugin — importer *.sql?raw pour les déploiements edge
  • i18n — fichiers JSON de traduction avec createI18nFromGlob (guide)

Voir les notes complètes de Release 0.8.0.

Étapes suivantes