Jotai

by vercel-labsfc2a696a50a3No license18K starsListed Oct 8, 2026Updated Oct 8, 2026Repository updated yesterday

Jotai adapter for json-render's StateStore interface. Use when integrating json-render with Jotai for state management via @json-render/jotai.

FeaturedInstructions onlySoftware Development
AI-generated overview

Documents the @json-render/jotai adapter that backs json-render's StateStore interface with a Jotai atom.

What it does
This skill explains how to wire a Jotai atom as the state backend for json-render through the @json-render/jotai package. It covers installation, basic usage with StateProvider, sharing a custom Jotai store via Provider, and the jotaiStateStore options (atom and store). It produces integration guidance and code examples rather than runnable scripts.
When to use it
Use it when integrating json-render with Jotai for state management, or when json-render and existing Jotai components need to share the same state. It is also useful as a reference for the jotaiStateStore API.
Requirements
Requires the npm packages @json-render/jotai, @json-render/core, @json-render/react and jotai, plus a React/TSX environment. No scripts ship with the skill; it is instructions only.

@json-render/jotai

Jotai adapter for json-render's StateStore interface. Wire a Jotai atom as the state backend for json-render.

Installation

bash
npm install @json-render/jotai @json-render/core @json-render/react jotai

Usage

tsx
import { atom } from "jotai";import { jotaiStateStore } from "@json-render/jotai";import { StateProvider } from "@json-render/react";
// 1. Create an atom that holds the json-render stateconst uiAtom = atom<Record<string, unknown>>({ count: 0 });
// 2. Create the json-render StateStore adapterconst store = jotaiStateStore({ atom: uiAtom });
// 3. Use it<StateProvider store={store}>  {/* json-render reads/writes go through Jotai */}</StateProvider>

With a Shared Jotai Store

When your app already uses a Jotai <Provider> with a custom store, pass it so both json-render and your components share the same state:

tsx
import { atom, createStore } from "jotai";import { Provider as JotaiProvider } from "jotai/react";import { jotaiStateStore } from "@json-render/jotai";import { StateProvider } from "@json-render/react";
const jStore = createStore();const uiAtom = atom<Record<string, unknown>>({ count: 0 });
const store = jotaiStateStore({ atom: uiAtom, store: jStore });
<JotaiProvider store={jStore}>  <StateProvider store={store}>    {/* Both json-render and useAtom() see the same state */}  </StateProvider></JotaiProvider>

API

jotaiStateStore(options)

Creates a StateStore backed by a Jotai atom.

OptionTypeRequiredDescription
atomWritableAtom<StateModel, [StateModel], void>YesA writable atom holding the state model
storeJotai StoreNoThe Jotai store instance. Defaults to a new store. Pass your own to share state with <Provider>.

Source and attribution

Source:vercel-labs/json-renderinskills/jotaiat commitfc2a696

License: No license

Content belongs to its original authors. SourceWeft indexes it from a public repository.

Report or request removal