Frontend framework

ZoiJS

A lightweight frontend framework that renders to the native DOM with fine-grained reactivity — no virtual DOM, no build step required.

What ZoiJS is

ZoiJS is a client-side UI framework built around three ideas: HTML tagged-template rendering to the real DOM, fine-grained reactive state, and a tiny runtime. It has no virtual DOM and requires no compiler, so what you write is what runs. TypeScript type definitions ship with the framework for editor support and optional type-checking.

Highlights

Core goals

Native DOM, no virtual DOM

Templates render to real DOM nodes and fine-grained reactivity updates only what changed.

Minimal runtime

A small, learnable API surface that stays close to the browser platform.

TypeScript-friendly

Ships type definitions so you get autocomplete and optional type-checking without a required compile step.

Component-based

Compose plain functions that return HTML templates — no special file format needed.

Ecosystem

What's included

  • Core (rendering + reactivity) Available
  • Router Available
  • Head (title & meta management) Available
  • Server-rendering primitives Available

Example

See it in code

A counter component in ZoiJS — plain JavaScript, no build step:
import { html, createState } from "@zoijs/core";

function Counter() {
  const count = createState(0);
  return html`
    <button onclick=${() => count.set(count.get() + 1)}>
      Count: ${() => count.get()}
    </button>
  `;
}

Getting started

ZoiJS is available and used in production for this website. See the documentation for the full API reference and guides.