// the find
reactive/data-client
Async State Management without the Management. REST, GraphQL, SSE, Websockets
Reactive Data Client is an async state management library for React that uses normalized caching and schema-driven definitions to eliminate manual state update code. You define your entities and API endpoints once; mutations automatically propagate to every component referencing the affected data. Aimed at React developers building applications with relational or frequently-mutating server data who are tired of writing cache invalidation logic by hand.
Normalized cache is the real selling point — update a User entity from one endpoint and every component holding a reference to that user re-renders without any manual wiring. The schema type system (Entity, Collection, Union, Query) flows TypeScript inference from data shape through to hook return types without per-call annotation. The MockResolver + Fixture testing API is genuinely better than mocking fetch: fixtures are typed against your actual endpoints, so schema changes break your tests at compile time rather than silently at runtime. Active maintenance with a commit as recent as yesterday and a full browser DevTools extension for inspecting the normalized store.
The upfront learning cost is high — Entity, RestEndpoint, resource(), Collection, Query, Lazy, and the Manager middleware system are all concepts you need before writing a non-trivial data fetch. If your API doesn't map cleanly to REST resource patterns, you will spend time fighting the abstraction. Community size is tiny compared to TanStack Query or SWR (2k vs 40k+ stars), so you are largely on your own when something breaks in an unusual way. The 'zero updater functions' claim is true for happy-path mutations but falls apart for complex optimistic update rollbacks, where you end up writing the manual imperative calls anyway through the Controller API.