Skip to main content

With your coding agent​

First install Data Client's skills for your coding agent. Without them, agents get the basics right but miss the rest, like real-time managers and test fixtures.

claude plugin marketplace add reactive/data-client
claude plugin install react@data-client

Then tell your agent:

Copy prompt for your coding agent

Install manually​

npm install --save @data-client/react @data-client/test @data-client/rest

Add provider at top-level component​

index.tsx
import { DataProvider } from '@data-client/react';
import { createRoot } from 'react-dom/client';
import App from './App';

createRoot(document.body).render(
<DataProvider>
<App />
</DataProvider>,
);

Alternatively integrate state with redux

Your coding agent can also load the skills these packages ship, matched to the version you installed, with TanStack Intent:

npm install -D @tanstack/intent
npx intent install
Next: Define Data »

Example​

Explore the todo-app example

More Demos

Supported Tools​

TypeScript 4.0+

TypeScript is optional, but requires at least version 4.0 and strictNullChecks for full type enforcement.

Older browser support

If your application targets older browsers (a few years or more), be sure to load polyfills. Typically this is done with @babel/preset-env useBuiltIns: 'entry', coupled with importing core-js at the entrypoint of your application.

This ensures only the needed polyfills for your browser support targets are included in your application bundle.

For instance TypeError: Object.hasOwn is not a function

Internet Explorer support

If you see Uncaught TypeError: Class constructor Resource cannot be invoked without 'new', follow the instructions to add legacy browser support to packages

ReactJS 16-19 and React Native

ReactJS 16.2 and above is supported (the one with hooks!). React 18 provides improved Suspense support and features. Both React Native, React Navigation and Expo are supported.

If you have a working project using other React libraries, feel free to share with others in our discussions.