A 5-minute path to your first reactive UI with ztools.
npm create vite@latest my-ztools-app -- --template vanilla
cd my-ztools-app
npm install
npm install @ztools.org/runtime
main.js with a simple appimport { signal, computed, tags, mount } from "@ztools.org/runtime";
const { div, p, button } = tags;
function App() {
const count = signal(0);
const doubled = computed(() => count() * 2);
return div(
p("count: ", () => count(), " | doubled: ", () => doubled()),
button({ onClick: () => count.set(count() + 1) }, "Increment")
);
}
mount(App, document.getElementById("app"));
npm run dev
Then open the local URL shown by Vite (usually http://localhost:5173).
signal() stores reactive statecomputed() derives values from signals() => count()) re-render reactivelymount() renders your component into the DOMShow and For for conditional and list rendering