New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

@dotdo/react

Package Overview
Dependencies
Maintainers
2
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@dotdo/react

React hooks and components for dotdo Durable Objects - real-time sync, live queries, and admin UI

latest
Source
npmnpm
Version
1.0.0
Version published
Maintainers
2
Created
Source

@dotdo/react

React bindings for dotdo Durable Objects with real-time data synchronization.

Installation

npm install @dotdo/react @dotdo/client
# or
pnpm add @dotdo/react @dotdo/client

Peer dependencies: react >=18.0.0, zod >=3.0.0 (optional, for schema validation)

Quick Start

Wrap your app with the DO provider and use hooks to access real-time data:

import { DOProvider, useCollection } from '@dotdo/react'

function App() {
  return (
    <DOProvider url="wss://api.example.com.ai/ws">
      <TaskList />
    </DOProvider>
  )
}

function TaskList() {
  const { data: tasks, create, update } = useCollection('tasks')

  return (
    <ul>
      {tasks.map(task => (
        <li key={task.id} onClick={() => update(task.id, { done: !task.done })}>
          {task.title}
        </li>
      ))}
      <button onClick={() => create({ title: 'New task', done: false })}>
        Add Task
      </button>
    </ul>
  )
}

API Reference

Hooks

HookDescription
useCollection(name)Subscribe to a collection with CRUD operations and optimistic updates
useRecord(collection, id)Subscribe to a single record by ID
useLiveQuery(query)Execute a live query with automatic re-subscription on changes
useDO(namespace?)Access the underlying Durable Object client
use$()Access the workflow context for event handling and scheduling
useConnectionState()Monitor WebSocket connection status

useCollection

const { data, create, update, remove, loading, error } = useCollection('users')

Returns real-time data with optimistic updates. Mutations are applied immediately and rolled back on failure.

useRecord

const { data: user, update, remove, loading } = useRecord('users', userId)

Subscribe to a single record. Returns null if the record doesn't exist.

useLiveQuery

const { data, refetch } = useLiveQuery({
  collection: 'orders',
  where: { status: 'pending' },
  orderBy: { createdAt: 'desc' },
  limit: 10
})

useConnectionState

const { connected, reconnecting, error } = useConnectionState()

Entry Points

Entry PointDescription
@dotdo/reactMain entry with DOProvider and all hooks
@dotdo/react/hooksHooks only (for custom provider setups)
@dotdo/react/tanstackTanStack DB integration with CollectionOptions factory
@dotdo/react/adminAdmin data provider (React Admin-inspired pattern)

TanStack DB Integration

import { CollectionOptions } from '@dotdo/react/tanstack'

const usersCollection = CollectionOptions('users', {
  schema: userSchema, // optional zod schema
})

Admin Data Provider

import { createDataProvider } from '@dotdo/react/admin'

const dataProvider = createDataProvider({
  url: 'wss://api.example.com.ai/ws',
})
  • @dotdo/client - Core client library
  • @dotdo/zod - Zod schema utilities
  • dotdo - Main framework

License

MIT

Keywords

dotdo

FAQs

Package last updated on 12 Jan 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts