atomirx
Installation
SKILL.md
atomirx State Management
Philosophy: You Don't Care About Async/Sync
Atomirx abstracts away the async/sync distinction. In reactive contexts, you write sync code regardless of whether atoms contain sync values or Promises.
| Context | Your Code | Async Handling |
|---|---|---|
useSelector, derived, effect |
Sync — just read() |
Suspense handles it |
| Services | Receive values as parameters | Don't read atoms |
| Outside reactive context | await .get() |
Explicit when needed |
// You don't care if user$ contains sync value or Promise
const userName$ = derived(({ read }) => read(user$).name);