We're thrilled to announce the official launch of the River React SDK—a major milestone in our mission to revolutionize decentralized communication. With 300,000+ members, 200,000+ spaces, and ~24,400 daily active users, River has proven the demand for decentralized communication. Now, we're making it accessible to every React developer.
Our platform's rapid growth tells a compelling story:
254% month-over-month growth in highly active spaces
230% month-over-month growth in power users
25.1% Week 1 retention (up from 15.3% in October)
~3,000 new users joining daily
The React SDK transforms this thriving ecosystem into a developer-friendly toolkit, enabling anyone to integrate secure, scalable, and user-owned messaging into their React applications—no deep blockchain expertise required.
Pre-configured React components and hooks for messaging and Space management
Built-in security and scalability from River's battle-tested protocol
Streamlined UX development with blockchain complexity handled under the hood
The SDK makes building on River simple and accessible. You can find all of our documentation in https://docs.river.build/sdk/react-sdk/getting-started
Here’s how you can get started today:
To quickly set up a new React project pre-configured for River:
yarn create river-build-app my-app
For existing projects, install the required packages:
yarn add @river-build/react-sdk @river-build/sdk vite-plugin-node-polyfills
Update your vite.config.ts
file to include the necessary polyfills for Node.js compatibility:
javascript
Copy code
import { nodePolyfills } from 'vite-plugin-node-polyfills';
import react from '@vitejs/plugin-react';
export default defineConfig({
plugins: [
react(),
nodePolyfills(),
],
});
Wrap your app with the RiverSyncProvider
to enable SDK features:
javascript
Copy code
import { RiverSyncProvider } from '@river-build/react-sdk';
<RiverSyncProvider config={{ onTokenExpired: () => console.log('Token expired!') }}>
<YourApp />
</RiverSyncProvider>;
Use the useAgentConnection
hook to authenticate users and connect to River:
javascript
Copy code
import { useAgentConnection } from '@river-build/react-sdk';
const ConnectButton = () => {
const { connect, isAgentConnected } = useAgentConnection();
return (
<button onClick={() => connect(signer, { riverConfig })}>
{isAgentConnected ? 'Connected' : 'Connect'}
</button>
);
};
Use River’s extensive hooks to implement advanced features like:
Messaging: useSendMessage
, useScrollback
Spaces: useCreateSpace
, useJoinSpace
, useSpace
Channels and DMs: useCreateChannel
, useDm
, useThreads
Custom Member Actions: useSetDisplayName
, useSetNft
Ship your app and showcase how decentralized communication can redefine user interactions.
With 40,000 spaces having active daily conversations and consistent 20% week-over-week growth, River provides a robust foundation for:
Social Networks with user-owned data
Gaming communities with token-gated access
Decentralized messaging tools with end-to-end encryption
Creator platforms with programmable spaces
Visit our documentation at docs.river.build to start building. Join our growing developer community that's already serving hundreds of thousands of users across decentralized applications.
The future of communication is decentralized, and with the River React SDK, it's now more accessible than ever.
Over 100 subscribers