Subscribe to channels over a single WebSocket, publish signed events from your server, and ship live features with typed client and server SDKs.
Understand the model, connect a client, and publish your first event in minutes.
Channels, events, presence, and the signed publish path that ties them together.
Private channel authorization, end-to-end encryption, and outbound webhooks.
Browser SDKs that connect, subscribe, and track presence from the frontend.
Typed, HMAC-signing publishers for Node, Python, PHP, Laravel, Go, Ruby, Rust, and Java.
The publish endpoint, realtime auth, and the management API.
Create an organization and application in the dashboard to get a public key and server credential.
Use @emitwave/js in the browser with your public key and an end-user token to subscribe to a channel.
Call trigger(channel, event, data) with a server SDK — the request is HMAC-signed automatically.
The gateway scopes the channel to your app and pushes the event to every subscriber in milliseconds.
// Browser: subscribe to a channel // $ npm install @emitwave/js import { Emitwave } from '@emitwave/js'; const emitwave = new Emitwave('ew_pk_live_your_public_key', { authHeaders: async () => ({ Authorization: `Bearer ${await getEndUserToken()}`, }), }); await emitwave.connect(); const channel = await emitwave.subscribe('orders'); channel.bind('order.created', (order) => { console.log(order.id, order.total); });
Ask questions and share what you're building with thousands of EmitWave developers.
Found a bug or want to suggest an improvement? File it in the open-source repo.
On a paid plan? Reach our engineering team for direct help with your integration.