With RS-X, you donโt need to wire everything through useState, useEffect, or derived state.
Your data model itself becomes reactive, and React simply renders the result.
What changes with RS-X in React
Instead of thinking in terms of:
- syncing state
- effects
- memoized selectors
You work directly with your data model.
When the model changes:
- dependent expressions update automatically
- React re-renders only where needed
No extra glue code.
Why this is different
- No need to mirror your data into React state
- No
useEffectchains to keep things in sync - No derived state bugs
- You update the model โ the UI follows
RS-X tracks dependencies at the expression level, not the component level.
Async is first-class
RS-X also handles asynchronous data naturally:
- Promises in your model are resolved reactively
- Expressions update when async values arrive
- No loading-state orchestration required
How it fits into React
RS-X doesnโt replace React โ it simplifies what React has to manage.
React stays focused on rendering.
RS-X handles:
- reactivity
- dependency tracking
- expression evaluation
Why I built this
I wanted:
- reactive data without a global store
- fewer hooks and less boilerplate
- a model-driven way of thinking
- predictable updates without over-rendering
React support makes that approach practical in real applications.
You can see it in action on StackBlitz: React demo
Feedback is very welcome.
โ Robert
Top comments (0)