Backend as a Service

Realtime Subscriptions

WebSocket channels with presence detection, broadcast messaging, and database change listeners for building live, collaborative features.

Rach.Dev Realtime gives you three primitives for building live features: database change listeners, broadcast channels, and presence tracking. Database change listeners let you subscribe to INSERT, UPDATE, and DELETE events on any table, with optional filters so you only receive the events you care about. Every event includes the old and new row data, making it straightforward to update client-side state.

Broadcast channels provide pub/sub messaging between connected clients without touching the database. This is ideal for features like live cursors, typing indicators, in-app notifications, or multiplayer game state. Messages are delivered with sub-50ms latency within a region. You can create as many channels as you need, and clients can subscribe to multiple channels simultaneously. Channel authorization is handled via the same JWT-based policies used everywhere else in the platform.

Presence tracking lets you see which users are currently online in a channel. Each user can attach arbitrary metadata to their presence state — for example, their cursor position, current page, or status. When a user joins, leaves, or updates their state, all other subscribers receive the change. Presence is automatically cleaned up when a WebSocket disconnects, with configurable timeout for detecting dropped connections versus intentional departures.

Key Benefits

  • Database change listeners for INSERT, UPDATE, and DELETE with row-level filtering
  • Broadcast channels for pub/sub messaging with sub-50ms latency within a region
  • Presence tracking showing online users with custom metadata like cursor position
  • JWT-based channel authorization using the same policies as your database
  • Automatic presence cleanup on disconnect with configurable timeout
  • Support for multiple simultaneous channel subscriptions per client

Ready to build?

Get your backend running in under 90 seconds.