Realtime updates for your SaaS, without a hosted realtime service
Last updated
Seed sends each saved change to every open tab of the group over a WebSocket from its own API, so a note saved in one window shows in the others within a second, with no reload. It runs on your server with no realtime service to pay for; a feature you add gets it by copying the notes example.
- A standard WebSocket, with a sequence on every change
- A tab that wakes from sleep reconnects and pulls what it missed
- Realtime can be switched off: the app then polls on a timer and works the same
Each write is committed with the group's next sequence number, and the API pushes it to every member's open socket. A tab applies a change only when its number follows the last one it has; on a gap it asks the server for everything after its cursor, so a dropped message costs one extra request and never a wrong list.
A laptop that wakes from sleep reconnects and pulls what it missed. With the socket switched off, the app reads and writes over HTTP and checks for changes every 30 seconds.

Does Seed update in realtime?
Yes. A saved change shows in every open tab of the group within a second, with no reload.
Do I need Pusher, Ably or another realtime service?
No. The WebSocket is served by Seed's own API on your server.
Does a tab catch up after the laptop sleeps?
Yes. It reconnects and pulls every change after the last one it had.
Can I turn realtime off?
Yes. Set SPA_REALTIME=false: the app then checks for changes every 30 seconds and works the same.