Seitu — primitives and framework bindings
Assumes the mental model from seitu-overview (get/subscribe/set, no
dispatch layer, singleton at module scope). Load the reference file for the
primitive or framework you need instead of reading everything.
In-memory state
| Task | Reference |
|---|---|
Minimal store — get/set/subscribe |
references/create-store.md |
| Schema-validated store with fallback | references/create-schema-store.md |
| Derived/computed value from one or many sources | references/create-computed.md |
| Low-level subscribe/notify for custom primitives | references/create-subscription.md |
Compose get + subscribe/notify into Readable & Subscribable |
references/create-readable-subscription.md |
Rate limiting
| Task | Reference |
|---|---|
| Debounce a subscribable source | references/create-debounced.md |
| Debounce a plain function | references/create-debounced-fn.md |
| Throttle a subscribable source | references/create-throttled.md |
| Throttle a plain function | references/create-throttled-fn.md |
Browser persistence and DOM state
| Task | Reference |
|---|---|
| Multi-key localStorage/sessionStorage | references/create-web-storage.md |
| Single-key localStorage/sessionStorage | references/create-web-storage-value.md |
| IndexedDB connection, owns the stores | references/create-indexed-db.md |
IndexedDB key/value store, sync get() |
references/create-indexed-db-storage.md |
| IndexedDB rows, indexes, reactive queries | references/create-indexed-db-table.md |
| CSS media query | references/create-media-query.md |
navigator.onLine status |
references/create-is-online.md |
| Scroll position / edges of an element | references/create-scroll-state.md |
Framework bindings
One hook/composable works with any Seitu primitive.
| Framework | Reference |
|---|---|
React — useSubscription hook, Subscription component |
references/react.md |
Vue — useSubscription composable |
references/vue.md |
Solid — useSubscription primitive, Subscription component |
references/solid.md |
Svelte — useSubscription binding |
references/svelte.md |
Rules that apply everywhere
- Create primitives at module scope, not inside components/render. A new instance per render loses shared state and re-subscribes every time.
- Reference equality gates notification.
set()skips notifying subscribers when the new value is===the old one — always return a new object/array from updaters. - Framework bindings are optional peer deps and are not interchangeable. Importing
seitu/reacthooks/components in Vue, Solid, or Svelte code (or vice versa) breaks — use the binding matching the framework you're in. - Web/DOM primitives are SSR-safe by default (return defaults when
window/navigatoris undefined) — safe to create at module level in SSR frameworks.createMediaQueryneedsdefaultMatchesset explicitly for a correct SSR value.