ArrowJS — UI framework for the agentic era
A reactive UI framework built around three functions: reactive, html, and component. No build step, no JSX, no proprietary abstractions. Standard TypeScript and template literals throughout, so an LLM can generate valid ArrowJS without learning a custom syntax. Under 5 kb over the wire.
How it works
The reactive system tracks data dependencies automatically. Update a value and only the affected DOM portions change, no virtual DOM diff pass. Computed values, watchers, and async components compose via standard function composition. Three entry-points, all TypeScript, nothing to compile.
WASM sandboxing is what sets it apart from other minimal frameworks: component logic runs inside a WebAssembly sandbox while rendering directly to the DOM. No iframes, no pre-built component library, no escape hatch back to the host page. A chat agent can hand generated UI code to a host application, and the sandbox limits what that code can touch.
Why it’s here
The rest of this spoke covers the backend stack: orchestration, skills, durability, memory stores. ArrowJS is the first source here that addresses the rendered output layer: what an agent produces for a user at the end of a tool call. The constraints (no toolchain, three functions, plain TypeScript) are explicit concessions to agent code generation. An agent doesn’t need to know how to invoke webpack or configure Babel to ship a working UI.
The WASM sandbox maps to agent-guardrails’ reversibility discipline: bound untrusted code by what it can reach, not by whether it looks safe. agent-guardrails bounds agent actions on the server side; ArrowJS’s sandbox applies the same containment principle to agent-generated code in the browser.
Cross-spoke note
Runner-up: webperf-wiki (< 5 kb, no build step, minimal bundle). The dominant substance is the agentic design philosophy and WASM sandboxing, not page-weight optimization, so it routes here.