Realtime pub/sub over WebSockets — channels, presence & signed publishing

Realtime messaging
infrastructure for
modern apps.

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.

No credit card required Public, private & presence channels Signed server publishing 12 drop-in SDKs — JS, React, Next, Vue, Node, Python, Go & more
publish.ts
200 OK · 18ms
// 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"
})
Platform

Everything you need to go realtime.

Channels, presence, encryption, and signed publishing — one protocol behind every client and server SDK.

Channels

Subscribe over one WebSocket to public, private, and cache channels — names are automatically scoped per application.

Learn more

Private & encrypted

Authorize private channels with your own rules and give encrypted channels a per-channel decryption key.

Learn more

Presence

Track who is online with a live member set, join and leave events, and server-signed member identity.

Learn more

Publishing

Publish events from a trusted server with HMAC-signed requests through typed Node, Go, PHP, and Laravel SDKs.

Learn more
How it works

From publish to subscriber in milliseconds.

A signed event enters the gateway, gets scoped to your application, and fans out to every connected client.

01

Connect & subscribe

Your frontend connects with a public app key and subscribes to channels over a single WebSocket.

02

Authorize access

Private, presence, and encrypted channels run your authorization rules before the socket subscribes.

03

Publish from server

Your trusted backend publishes signed events with trigger(channel, event, data) through a typed SDK.

04

Receive in realtime

The gateway scopes the channel per app and pushes the event to every subscriber in milliseconds.

Developers

Built for developers.
Designed for production.

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,
});
Features

Everything your app needs to go realtime.

A complete protocol — not a starter kit. Transport, auth, scoping, and isolation are solved so you only decide what to publish.

Public channels

Private channels

Presence channels

Encrypted channels

Cache channels

WebSocket transport

Connection tokens

Channel authorization

Signed publishing (HMAC)

Per-app channel scoping

Client SDKs (JS, Vue)

Server SDKs (Node, Go, PHP)

Laravel broadcaster

Webhooks

Live debug console

Join / leave events

Rate limiting

Payload size limits

Server credentials & rotation

Organization RBAC

Multi-tenant isolation

Live debug console

Delivery insights

Stable error codes

Use cases

Built for every product workflow.

Whatever the shape of the message, EmitWave fits in front of it.

SaaS applications

Approval alerts, account activity, billing updates, comments, mentions, and admin notifications.

Fintech platforms

Wallet transactions, payment status updates, fraud alerts, transfer notifications, and account security emails.

Marketplaces

Order updates, vendor messages, quote notifications, booking confirmations, and customer reminders.

Logistics & delivery

Dispatch updates, driver tracking, delivery status, customer notifications, and warehouse movement alerts.

Event platforms

Ticket sales, attendee updates, vendor messages, event reminders, check-in alerts, and live announcements.

Enterprise systems

Procurement approvals, ERP alerts, workflow escalations, audit events, and operational dashboards.

Reliability

Reliable realtime you can trust.

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.

HMAC-signed publishing
Every event is verified.
Per-app channel scoping
Tenants never collide.
Stable error codes
Machine-readable failures.
Rate limiting
Backpressure on publish.
Payload size limits
Oversized payloads rejected.
Readiness & liveness
Health checks on every service.
Self-healing workers
Queue + scheduler restart.
Signed webhooks
Verify every callback.
Server credential rotation
Rotate keys without downtime.
Delivery metrics
Insights in your dashboard.
Observability

See every event as it happens.

Open an application's live console to inspect real publish traffic, watch connections and presence, and track delivery metrics in your dashboard.

Events published
18.4M
+12.3%
Messages delivered
91.2M
+8.1%
Active connections
42,108
+5.4%
Active channels
12,408
+2.1%
Presence members
6,921
+3.7%
Publish p99
19ms
−4ms
Rejected (rate)
214
−31%
Success rate
99.98%
+0.02%
Integrations

Works with the stack you already use.

Drop-in SDKs for the languages and frameworks your team writes. Webhooks and REST cover the rest.

Laravel
Nuxt
Vue
Node.js
Go
Python
Firebase
Expo
Rust
Kotlin
PHP
Swift
TypeScript
Webhooks
SMTP
REST API
Security

Secure by default.

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.

HMAC-signed publish requests
Short-lived connection tokens
Per-channel subscription tokens
Private channel authorization
End-to-end channel encryption
Per-app channel scoping
Organization RBAC (owner → viewer)
Encrypted transport (TLS 1.3)
Signed webhook deliveries
Pricing

Start small. Scale as you grow.

No per-seat fees. Pay for what you send. Cancel anytime.

Free
For developers testing EmitWave and building side projects.
$0 / month
Start free
  • 100 concurrent connections
  • 1M messages / month
  • Public & private channels
  • Presence channels
  • 1 application
  • Community support
Starter
For small apps and early-stage SaaS products.
$29 / month
Start building
  • 1k concurrent connections
  • 10M messages / month
  • All channel types
  • Encrypted channels
  • Webhooks
  • 5 applications
  • Standard support
Most popular
Growth
For growing teams and production applications.
$99 / month
Choose Growth
  • 10k concurrent connections
  • 100M messages / month
  • Cache channels
  • Signed webhooks
  • Unlimited applications
  • Organization RBAC
  • Delivery metrics
  • Priority support
Scale
For high-volume SaaS, fintech, marketplaces, and gaming.
$299 / month
Scale with EmitWave
  • 50k concurrent connections
  • 1B messages / month
  • Dedicated throughput
  • Credential rotation
  • Audit logs
  • Advanced analytics
  • 99.99% SLA options
  • Dedicated support
Enterprise
Custom solutions for large-scale operations
  • Custom connection & message volume
  • Dedicated infrastructure
  • SSO & SAML
  • 99.99% SLA
  • Dedicated support engineer

Ship realtime features
to your app today.

EmitWave gives your application a single WebSocket for channels and presence, and signed server SDKs to publish events in milliseconds.