0.1.0-alpha.7

Full framework. Zero guesswork.

Routing, forms, rendering, and i18n, with clear patterns for you and your agent.

npx @zerolith/cli@alpha new my-app

Start the tutorialOpen the playgroundRead the guide

Features

import { computed, html, signal } from "zerolith";const count = signal(1);const doubled = computed(() => count.get() * 2);function Counter(){const add = () => count.set(count.get() + 1);return html`<p>Count: ${count}, doubled: ${doubled}</p><button @click=${add}>Add one</button>`;}

Count: 1, doubled: 2

Text nodes changed
0
Elements created
0
Counter() calls
1
Figure 1. This counter is running on this page: rendered by the docs build, hydrated in your browser, and measured with a MutationObserver. Press Add one a few times: every click changes two text nodes and creates no elements, and Counter() never runs again.

Everything an application needs

One core and the packages around it. Each package is optional, has its own guide, and shares the core's signals, so nothing needs an adapter.

Figure 2. The libraries an application imports, above the core they share, and the tools that build, test, and inspect it.

Characteristics

Each value is computed when this site is built or checked by the test suite, so it describes the version in the header.

CharacteristicValueHow it is checked
Core size9,896 B gzip, against a budget of 10,240 Bnpm run size bundles and minifies the production build and fails over budget
Runtime dependencies0Counted from the manifests of the 9 runtime packages when this site was built
Documented exports225 across 19 modulesThe docs build fails on an export without a doc comment
Diagnostic codes33, each with a pageGenerated from the runtime's catalog
Build stepOptional: an import map, or zerolith buildThe test suite runs the same files unbundled and bundled
Content Security Policyscript-src 'self' with Trusted Types and no unsafe-evalA browser test runs both builds under that policy
Node24 or newer, for the command line and the build toolsengines in every package
LicenseApache-2.0Every package and the crate

Start a project

Node 24 or newer is required. The command writes a starter that asks for the language, the build tool, and the inspector; --yes takes every default.

To add zerolith to a project you have, install zerolith@alpha and the packages you need. To serve with no build step at all, zerolith importmap writes an import map with integrity hashes.

npx @zerolith/cli@alpha new my-app
cd my-app
npm run dev

Learn zerolith

Revision history

zerolith is in alpha: the API may change until it is frozen for 1.0, and the roadmap lists what remains.

VersionDateNotes
0.1.0-alpha.72026-11-01Release notes
0.1.0-alpha.62026-11-01Release notes
0.1.0-alpha.52026-10-31Release notes
0.1.0-alpha.42026-10-30Release notes
0.1.0-alpha.32026-10-30Release notes
0.1.0-alpha.22026-10-30Release notes
0.1.0-alpha.12026-10-29Release notes