Relay is a drop-in SDK for chat, audio/video calling and push notifications — backed by a managed multi-tenant service so you never run your own realtime infrastructure. Native SDKs for Web, iOS and Android, one dashboard to manage every tenant.
One Relay project maps to one of your apps. Each tenant gets isolated data, its own API keys, and independent controls — nothing is ever shared across tenants.
Conversations, typing indicators, read receipts, media messages — synced in real time over a managed WebSocket gateway.
WebRTC signaling plus TURN relay handled for you, with audio and video gated as independent modules.
APNs and FCM wake-ups for offline users — upload your credentials once from the admin panel, Relay handles delivery.
Every tenant is isolated end to end — its own keys, users, usage counters and configuration. No cross-tenant query path exists.
A public key ships inside your client app; a secret key stays server-side to mint short-lived user tokens after you authenticate the user yourself.
Register your iOS bundle ID / Android package name so a public key only ever works from the app it was issued for.
See logins, messages, audio calls and video calls per day, and turn any module on or off per tenant instantly.
CORS origins, TURN credentials, APNs/FCM — every section of your tenant's settings is edited and saved independently.
No infrastructure to provision. Get a project, drop in an SDK, and you're sending messages.
Sign up with your work email — no approval wait, your tenant is created instantly on the free trial plan.
You receive a public key (safe in-app) and a secret key (server-side only) plus a login to your tenant dashboard.
Install @relay/react, RelayCore, or relay-core, point it at your project, done.
Set your CORS origins, TURN, APNs/FCM and app allowlist from your tenant dashboard, then ship.
Every SDK speaks the same concepts: a public key identifies your project, a short-lived user token (minted by your own backend) identifies the person using it.
import { RelayProvider, ChatWindow } from '@relay/react';
const relayConfig = {
baseUrl: 'https://relay.yourdomain.com',
publicKey: 'pk_your_project_key',
token: () => fetchTokenFromYourBackend(),
};
export function App() {
return (
<RelayProvider config={relayConfig}>
<ChatWindow />
</RelayProvider>
);
}RelayCore / RelayUI / RelayCall) and Android (relay-core / relay-ui / relay-call).Every plan includes chat, audio & video calling and push (APNs + FCM). Pick a monthly cap you can plan around instead of a metered invoice that changes every month.
Start your free trial — no credit card neededAudio and video minutes are separate pools — running out of one never blocks the other. Need a different mix? Sign up and we'll sort out a custom quote from there.
Verify your email and we'll show you exactly how to run the chat + calling demo yourself — no account, no waiting for approval.
✓ Verified — here's how to run the demo:
git clone <this repo>
cd sample-apps/web-demo
npm install
npm run demobashThat starts a local token server and demo chat UI wired up end to end against a Relay project — open two browser tabs and sign in as two different users to see chat + calling live.
No. Relay runs the multi-tenant chat/call/push service for you. You only integrate the client SDK in your app and, if you mint your own user tokens, a couple of endpoints on your existing backend.
The public key ships inside your client app and identifies your project on a connection — it's not sensitive. The secret key stays on your own server and is used only to mint short-lived user tokens; it's never sent to a client.
You can restrict it: register your iOS bundle ID / Android package name in your dashboard's "Authorized apps" setting, and Relay rejects requests from any app that isn't registered — so a key copied out of your app doesn't work elsewhere.
Yes — audio and video calling are separate, independently toggleable modules, with WebRTC signaling and TURN relay handled by the service.
No — creating an account is instant. Verify your work email and your tenant is created immediately on the free trial plan, no review queue. Paid tiers and Enterprise are applied by a Relay admin after you sign up.
No. Each plan is a flat monthly price with a fixed cap on audio minutes, video minutes, chat storage and chat users — audio and video draw from separate pools, so running out of one never blocks the other. You always know your bill up front instead of a usage invoice that changes every month.