Partner Platform
Bring therapeutic play into your platform.
PlaySpace builds the interactive layer of child and family mental health care — a shared sandtray two people can move figures in from different cities, a dollhouse, a collaborative whiteboard, therapeutic games, and illustrated storybooks written for one child. This platform puts that layer inside your own product.
A working shared sandtray, in full:
import { PlaySpaceProvider, Sandtray } from '@playspace/react'
export function PlayPanel({ sessionId }) {
return (
<PlaySpaceProvider fetchToken={() => getToken(sessionId)}>
<Sandtray />
</PlaySpaceProvider>
)
}The token carries the role, so the component renders the clinician’s side or the client’s side on its own. There is no role prop, and therefore no role prop to get wrong.
Three ways to integrate
Embedded
PlaySpace surfaces render inside your application, under your navigation, on your domain. A clinician clicks "Open sandtray" and a tray appears beside your notes.
Embed a sandtray →Programmatic
Drive PlaySpace from your backend and render nothing. Generate a storybook overnight and attach it to a chart. Pull the form responses a clinician collected.
Generate content →Linked
One call returns two role-scoped links, clinician and client. Put them in your appointment view. No interface work at all.
Compare the patterns →The surfaces
Sandtray
A three-dimensional tray, a figure library, and two cursors
Dollhouse
Rooms, furniture and family figures
Whiteboard
Collaborative drawing
Games
A catalog of therapeutic games, single-player and multiplayer
Storybooks
Illustrated stories generated for one child, characters consistent page to page
Worksheets
Multi-page and interactive, filled in together or alone
Forms
Intake and assessment, with structured responses
PlayStudio
A clinician describes a game and gets a playable one
3D models
A figure that is not in the library yet, from a description or a photograph
How it fits together
- 1
You tell us who is who
One call per clinician and per client, carrying your identifier. You never store a second copy of a person — you hold your record, we hold a pointer to it.
- 2
You open a session
Against an appointment that lives in your scheduler, not ours. You get back a session and a pair of role-scoped tokens.
- 3
You render
Drop a component into your React tree and hand it the token. The token already says whether the holder is a clinician or a client.
Core concepts
The seven ideas the rest of this assumes
Server SDK
@playspace/sdk for your backend
React SDK
@playspace/react for your interface
Portability
How everything comes back out, at no charge