Advanced
YSweetProvider

YSweetProvider

The YSweetProvider is a Yjs connection provider (opens in a new tab) that runs on the client. It is typically configured with an auth endpoint that it uses to authorize a user to access a document. The auth endpoint returns a client token which the YSweetProvider uses to connect to a y-sweet server where a document's edits are synchronized and broadcasted and finally persisted.

You can create a YSweetProvider using @y-sweet/client's createYjsProvider() function.

const doc = new Y.Doc()
const docId = 'my-doc-id'
const provider = await createYjsProvider(doc, docId, '/api/auth')
💡

If you'd like to handle fetching the client token yourself, you can pass a function that returns client token instead of an auth endpoint. Learn more in our auth endpoint explainer.

Or, if you are using React, you can use @y-sweet/react's YDocProvider component to create a YSweetProvider and Y.Doc for Y-Sweet React hooks that are used by children of the YDocProvider component. The <YDocProvider> React component makes the YSweetProvider and the Y.Doc instance available to its children via React context, either directly through useYDoc, or indirectly through hooks like useMap and useArray.

const docId = 'my-doc-id'
<YDocProvider docId={docId} authEndpoint="/api/auth">
  <MyCollaborativeApp />
</YDocProvider>
💡

The term "Provider" is used by both Yjs and React to refer to different pieces of their libraries. The YSweetProvider is a Yjs connection provider (opens in a new tab) that's used to sync edits to a Yjs document over a network. By contrast, the YDocProvider is a React context provider (opens in a new tab) provided by the @y-sweet/react library.

y-sweet was created by Jamsocket.