Normalize
Ordered AST passes lower supported React, Router, hook, and control-flow shapes.
source → canonical TSXv0.16.30 COMPILER FRAMEWORK
Kudzu analyzes TypeScript ASTs and specializes familiar components, hooks, routes, effects, and collections into complete HTML plus only the browser capabilities each route uses.
npm create kudzu@latest my-appimport { useState } from "@kudzujs/core"
export default function Counter() {
const [count, setCount] = useState(0)
return <button onClick={() => setCount(count + 1)}>
Grown {count} times
</button>
}QUICK START
Create a project, enter the directory, install dependencies, and start growing.
npm create kudzu@latest my-appcd my-appnpm installnpm run devTHE COMPILER MODEL
Ordered AST passes lower supported React, Router, hook, and control-flow shapes.
source → canonical TSXThe transformer records state, effects, handlers, bindings, lists, and ownership.
semantics → descriptorsComplete HTML ships with only the route-specific capability ESM it references.
descriptors → HTML + ESMMEASURED IN 0.16.8
Initial JavaScript received across six routes in the public 1,000-product fixture.
Astro + React: 60.6-61.1 KiBFirst tested post-paint delay with zero lost add-to-cart attempts in seven sessions.
4x CPU · Chrome Slow 4GMatched capabilities surviving blocked, delayed, or partially missing JavaScript.
five-framework commerce matrixSYNCHRONOUS BY DEFAULT
Logical state updates immediately. DOM writes wait until the synchronous turn ends.
setCount(count + 1)