Subscribe your frontend to channels over a single WebSocket, publish signed events from your server, and ship live dashboards, chat, presence, and notifications in minutes — with tenant isolation, encryption, and webhooks built in.
// Publish a signed event from your trusted server
import { Client } from "@emitwave/node"
const emitwave = new Client({ appId, key, secret })
await emitwave.trigger("orders", "order.created", {
id: "ord_123",
total: 4900,
customer: "Acme Ltd"
})Channels, presence, encryption, and signed publishing — one protocol behind every client and server SDK.
Subscribe over one WebSocket to public, private, and cache channels — names are automatically scoped per application.
Learn moreAuthorize private channels with your own rules and give encrypted channels a per-channel decryption key.
Learn moreTrack who is online with a live member set, join and leave events, and server-signed member identity.
Learn morePublish events from a trusted server with HMAC-signed requests through typed Node, Go, PHP, and Laravel SDKs.
Learn moreA signed event enters the gateway, gets scoped to your application, and fans out to every connected client.
Your frontend connects with a public app key and subscribes to channels over a single WebSocket.
Private, presence, and encrypted channels run your authorization rules before the socket subscribes.
Your trusted backend publishes signed events with trigger(channel, event, data) through a typed SDK.
The gateway scopes the channel per app and pushes the event to every subscriber in milliseconds.
Publish from your server, subscribe from the browser, and track presence — with typed SDKs for each side. Switch tabs to see both.
import { Client } from "@emitwave/node";
const emitwave = new Client({
appId: process.env.EMITWAVE_APP_ID,
key: process.env.EMITWAVE_KEY,
secret: process.env.EMITWAVE_SECRET,
// gatewayUrl defaults to https://api.emitwave.com
});
// Signs the exact body with HMAC-SHA256 and
// POSTs to /apps/{appId}/events
await emitwave.trigger("orders", "order.created", {
id: "ord_123",
total: 4900,
});A complete protocol — not a starter kit. Transport, auth, scoping, and isolation are solved so you only decide what to publish.
Whatever the shape of the message, EmitWave fits in front of it.
Approval alerts, account activity, billing updates, comments, mentions, and admin notifications.
Wallet transactions, payment status updates, fraud alerts, transfer notifications, and account security emails.
Order updates, vendor messages, quote notifications, booking confirmations, and customer reminders.
Dispatch updates, driver tracking, delivery status, customer notifications, and warehouse movement alerts.
Ticket sales, attendee updates, vendor messages, event reminders, check-in alerts, and live announcements.
Procurement approvals, ERP alerts, workflow escalations, audit events, and operational dashboards.
EmitWave is built for mission-critical realtime. Publishes are signed and rate-limited, channels are scoped per application, and delivery is observable end to end.
Open an application's live console to inspect real publish traffic, watch connections and presence, and track delivery metrics in your dashboard.
Drop-in SDKs for the languages and frameworks your team writes. Webhooks and REST cover the rest.
Separate credentials for browsers and servers, short-lived tokens for every socket and channel, and strict per-application tenancy. Signed everything — it's the floor, not an upsell.
No per-seat fees. Pay for what you send. Cancel anytime.
EmitWave gives your application a single WebSocket for channels and presence, and signed server SDKs to publish events in milliseconds.