Roadmap
Zoijs grows by adding small, optional packages — not by making the core bigger.
Shipped#
@zoijs/core1.6 — frozen nine-function API (boundary1.3,effect1.2,ref1.1; DOM-free compiler +/serversubpath in 1.5;mount(…, { hydrate })in 1.6).@zoijs/router0.2 — routes, links, params, base path, opt-in link interception, and SSR-safe rendering.@zoijs/resource0.2 — async reads, plus a server{ initial }hand-off so hydrated data doesn't refetch.@zoijs/action0.1 — async writes.@zoijs/head0.1 — title and meta (SSR-safe).@zoijs/storage0.1 — acreateStatethat persists tolocalStorage.@zoijs/forms0.1 — form values, errors, touched, and validation.@zoijs/i18n0.1 — a reactive locale with plurals andIntlformatting.@zoijs/testing0.1 — first-party DOM testing helpers.@zoijs/devtools0.1 — a reactive-graph inspector (dev-only).@zoijs/ssr0.3 — render to an HTML string + hydration (SSR + static prerender) +serializefor server→client data, no DOM, no deps.@zoijs/eslint-plugin0.2 — the reactive-binding rule (auto-fixable) plus a few accessibility rules, zero deps.create-zoijs— the starter CLI (npm create zoijs@latest).
Being considered#
Ideas that fit the philosophy (small, optional, no new core concepts):
- Exact node-by-node hydration (zero re-render of dynamic leaves). In-place hydration already ships in
@zoijs/ssr0.2; this would build on it — see RFC 0008. - A browser-extension bridge for the devtools inspector.
- Guidance and recipes for more hosts and patterns.
Staying focused#
To keep Zoijs small and beginner-friendly, the core stays as it is today — nine functions, learnable in an afternoon. New capabilities arrive as small, optional packages so the core mental model never grows.
Have an idea that stays small and optional? Open an issue on GitHub.