Skip to main content
This page is the runtime model behind the inbox: what the feed does once a user is signed in.

Real-time updates

Once a user signs in, the inbox opens a realtime connection. New messages appear live. Read, opened, and archived states sync across every device where that user is signed in. The connection uses the same authenticated session, so a valid JWT is all it needs. The socket has no separate authentication. The same live feed drives a custom UI. See to build your own inbox, with pagination, on any platform.

Message retention

A message stays in the feed until it is archived or expires. A message sent with an expiration (expiresAt) drops from the feed when that time passes. Read and archive states persist across sessions and devices.

Troubleshooting

Updates are not live. Check that the user is signed in with an unexpired JWT. An expired token ends the session, and no updates arrive until you sign in again with a fresh token. See . Custom UI shows stale data. Read from the datastore and respond to its change events. Do not cache a one-time snapshot.

FAQ

The realtime connection uses the same . The socket has no separate authentication.
See . Build the whole UI on any platform, or on the web SDKs keep the built-in inbox and swap individual parts.
Until they are archived or reach their expiration. A message sent with an expiresAt drops from the feed when that time passes. Without one, it persists. See Message retention.