# Exodra — LLM reference Exodra is a schema-first reactive UI framework. There is **no virtual DOM**. Reactivity is **explicit**: every prop is placed in a typed bucket, so the compiler knows exactly what can change and the renderer only ever touches that. JSX is compiled by `@exodra/babel-plugin-jsx` into `h(type, attrs, cacheKey?)` calls — it is NOT React and NOT TypeScript's built-in JSX. Read this before guessing. Most mistakes come from assuming React semantics. This file is a compact cheat‑sheet. For the **complete documentation** (every guide and API page in one file), see **[llms-full.txt](https://exodra.org/llms-full.txt)**. ## The five prop buckets (STRICT — this is the #1 gotcha) A node's props are ONLY these buckets. There are **no flat attributes**. A flat `class=`, `id=`, or `onClick=` is a **compile error** (the babel plugin throws), not a silent no-op. ```jsx