Client Libraries


React hooks for interacting with session backends and the Jamsocket platform.


npm install @jamsocket/react


Here's an example of how different parts of Jamsocket's client libraries work together.

import Jamsocket from '@jamsocket/server'
const jamsocket = Jamsocket.init({
   account: '[YOUR ACCOUNT]',
   token: '[YOUR TOKEN]',
   service: '[YOUR SERVICE]',
   // during development, you can simply pass { dev: true }
const spawnResult = await jamsocket.spawn() // returns an instance of SpawnResult
import { type SpawnResult, SessionBackendProvider, useReady } from '@jamsocket/react'
function Root() {
    <SessionBackendProvider spawnResult={spawnResult}>
      <MyComponent sessionBackendUrl={spawnResult.url} />
function MyComponent({ sessionBackendUrl }) {
  const ready = useReady()
  useEffect(() => {
    if (ready) {
      // make a request to your session backend
  }, [ready])
  return ready ? <MyChildren /> : <Spinner />

Library Reference



Wrap the root of your project with the SessionBackendProvider so that the children components can utilize the React hooks.

The SessionBackendProvider must be used in conjunction with @jamsocket/server in order to access the spawn result returned by the spawn function.
import { SessionBackendProvider, type SpawnResult } from '@jamsocket/react'
export default function HomeContainer({ spawnResult }: { spawnResult: SpawnResult }) {
  return (
    <SessionBackendProvider spawnResult={spawnResult}>
        <Home />


Is a React hook that returns a boolean that is true if the session backend is ready.

import { useReady } from '@jamsocket/react'
const isReady = useReady()

Other exports

The @jamsocket/react package also re-exports all of the @jamsocket/client package's exports, including classes and types.

Jamsocket is built by Drifting in Space.