# Vani

> Rendering should be explicit, local, and predictable.

Vani is a small, dependency-free UI runtime. It is runtime-first and DOM-anchored, with explicit
updates and opt-in fine-grained state.

## Core principles

- Explicit updates (no hidden re-rendering)
- Subtree ownership via anchors
- Runtime-first, no compiler
- Opt-in signals for fine-grained updates
- Ref-based and Ref-free DOM subtree access on mount.

## Installation

```bash
pnpm add @vanijs/vani
# or
npm install @vanijs/vani
# or
yarn add @vanijs/vani
# or
bun add @vanijs/vani
# or
deno add @vanijs/vani
```

## Documentation

The full project's documentation, including the core concepts, usage examples, and API reference, is
located in the [DOCS.md](https://github.com/itsjavi/vani/blob/main/DOCS.md) file.

You also have instructions there to add skills to your AI Agents to make them experts in Vani.
