Kickside realtime — a centralized contract for pushing topics to connected UIs. broadcast() fans out to every client via the wippy/relay central hub; notify() targets one user's hub. Any module (nav, inbox, …) publishes through one seam so all UI reacts live.

BUSL-1.1 1.3k downloads
Updated 3 days ago Repository
kicksiderealtimerelaybroadcast

Run

wippy run kickside/realtime

Kickside Realtime

A centralized contract for pushing topics to connected UIs, over wippy/relay.

Modules call one seam instead of touching the relay directly, so realtime stays decoupled and consistent across the app.

Contract kickside.realtime:realtime

  • broadcast({ topic, data? }) — fan a topic out to every connected client. The relay central hub (wippy.central) forwards any non-control topic to all user hubs. Use for global changes (e.g. nav layout) every UI must reflect.
  • notify({ user_id, topic, data? }) — push a topic to one user's clients (their user.<id> hub). Use for per-user events (e.g. an inbox item).

Both are no-ops when no hub is live (no open clients); UIs reconcile on next load. The FE subscribes to the topic via the Wippy instance (instance.on(topic, …)).