# duratom > Durable, live Jotai atoms over a Y.Doc: read typed values, write validated patches, and re-render only when what an atom shows changes. Rules an app must follow: set `docAtom` once per Jotai store; setting a typed atom merges a patch into the doc as it is at write time; invalid data comes back as `{ issues }`, never as an exception; a duratom atom follows the doc only while something is subscribed to it. The npm package ships `llms-full.txt` (every doc in one file) and an agent skill at `skills/duratom/SKILL.md`. ## Docs - [README](https://github.com/KarolNov/duratom/blob/main/README.md): install, quick start, the main API by example - [API reference](https://duratom.karolnov.dev/api): every export of `duratom`, `duratom/react` and `duratom/core` - [Agent skill](https://github.com/KarolNov/duratom/blob/main/skills/duratom/SKILL.md): how to build with duratom, for coding agents ## Recipes - [Sync between devices](https://github.com/KarolNov/duratom/blob/main/docs/recipes/sync.md): Connect the doc in `docAtom` to a sync server with y-partyserver on Cloudflare; every atom then shows and edits the shared state, with no change to the atoms. - [Offline storage](https://github.com/KarolNov/duratom/blob/main/docs/recipes/offline.md): Save the doc in the browser with y-indexeddb, so the app opens with the last state and works offline; atoms don't change. - [Repair a broken node](https://github.com/KarolNov/duratom/blob/main/docs/recipes/repair.md): Fix a node a peer stored with data your schema rejects, by setting its typed atom with a whole valid value. ## Optional - [Full docs in one file](https://github.com/KarolNov/duratom/blob/main/llms-full.txt) - [Example app](https://github.com/KarolNov/duratom/blob/main/examples/todo/README.md): a two-pane shared todo list