Fine-grained reactive state for React

Subscribe to an exact state path, components re-render only when that leaf changes. No selectors, no memoization.

3000 independently-subscribed dots
Install
npm install @yoltra/core @yoltra/react

The libraries

Yoltra

0.10.0

Fine-grained reactive state for TypeScript and React: event-sourced stores, atomic subscriptions and time-travel devtools.

The Yoltra Design System: accessible React components, design tokens and themes, rendered on the server.

pyYoltra: the event-sourced, fine-grained reactive state container for Python.

See it react

Live · atomic subscription
0

Only this value re-renders, it subscribes to one state path.

atomic subscription
const n = useAtomicProp("counter", (s) => s.n);

// only components reading counter.n re-render

Less boilerplate than selectors + memo

Others: selector + memo

others
// Redux Toolkit: selector + memoization
const title = useSelector(
  (s) => s.items[id]?.title,
  shallowEqual,
);
// re-renders whenever the selector's slice changes

Yoltra: atomic path

yoltra
// Yoltra: subscribe to the exact path
const title = useAtomicProp(
  "items",
  (s) => s[id].title,
);
// re-renders only when that leaf changes

Why Yoltra

Atomic subscriptions

Subscribe to an exact path like items.0.title. Components re-render only when that leaf changes.

Event-sourced

Every change is an event. Replay, audit, and reason about state over time.

Time-travel devtools

Inspect the state tree, scrub the timeline, and jump to any point.

No selectors, no memo

Typed path accessors do the work, skip the selector and memoization boilerplate.

Ready to build?

Start with the Quick Start, or explore the full API reference.