---
slug: "vani"
source_type: "readme"
source_url: "https://cdn.jsdelivr.net/gh/itsjavi/vani@main/README.md"
repo: "https://github.com/itsjavi/vani"
source_file: "README.md"
branch: "main"
---
# 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.
