Kita Html
The fastest server-side JSX runtime

JSX that compiles to plain strings, not a virtual DOM.
No diffing, no serialization, no overhead.

npm
yarn
pnpm
bun
npm i @kitajs/html@next @kitajs/ts-html-plugin@next
Doug the Kita turtle
index.tsx - /dev/example
index.tsx×
output.html×
1
2
3
4
5
6
7
 
fs.writeFileSync(
'output.html',
<p>
Hello,
<b safe>{user.name}</b>!
</p>
);
 

The Fastest JSX Runtime

No virtual DOM means no object tree in memory. Rendering a 170 KiB page runs 2-3x faster than React, Preact, and HonoJsx while allocating about half the memory, all with identical output.

🛡️

Compile-Time XSS Detection

The TypeScript plugin flags unsafe string interpolations in your editor. The xss-scan CLI enforces the same checks in CI, with no runtime penalty on safe paths.

🔄

Async Components and Streaming

Async children automatically make their parents async. Suspense streams HTML via chunked transfer encoding, sending a fallback instantly and replacing it when the promise resolves.

📦

Built for HTML Output

Kita Html is at its best when the result you need is HTML, like SSR pages, HTMX-style apps, email templates, static HTML, and HTTP handlers that return strings directly.

🎯

Full HTML Type Coverage

Complete JSX type definitions for every HTML5 element and attribute. HTMX, Alpine.js, and Hotwire Turbo type extensions are included and opt-in via triple-slash directives.

🔌

Works Anywhere You Return HTML

The output is a plain string. Kita Html integrates with Fastify, Express, Hono, Bun, or any server that returns strings. If your stack can send HTML, it can use Kita Html.