Built for the handoff

Chat, calls & push
handed off in real time

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.

🌐 Web (React) 🍎 iOS (Swift) 🤖 Android (Kotlin) 🧩 REST + WebSocket
What the service provides

Everything a chat & calling feature needs, run for you

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.

💬

1:1 & group chat

Conversations, typing indicators, read receipts, media messages — synced in real time over a managed WebSocket gateway.

📞

Audio & video calling

WebRTC signaling plus TURN relay handled for you, with audio and video gated as independent modules.

🔔

Push notifications

APNs and FCM wake-ups for offline users — upload your credentials once from the admin panel, Relay handles delivery.

🏢

True multi-tenancy

Every tenant is isolated end to end — its own keys, users, usage counters and configuration. No cross-tenant query path exists.

🔑

Public / secret key model

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.

🛡️

App-identity allowlisting

Register your iOS bundle ID / Android package name so a public key only ever works from the app it was issued for.

📊

Usage & module dashboards

See logins, messages, audio calls and video calls per day, and turn any module on or off per tenant instantly.

⚙️

Self-serve configuration

CORS origins, TURN credentials, APNs/FCM — every section of your tenant's settings is edited and saved independently.

How it works

From request to running SDK

No infrastructure to provision. Get a project, drop in an SDK, and you're sending messages.

1

Create your account

Sign up with your work email — no approval wait, your tenant is created instantly on the free trial plan.

2

Get your keys

You receive a public key (safe in-app) and a secret key (server-side only) plus a login to your tenant dashboard.

3

Drop in the SDK

Install @relay/react, RelayCore, or relay-core, point it at your project, done.

4

Configure & launch

Set your CORS origins, TURN, APNs/FCM and app allowlist from your tenant dashboard, then ship.

Integration

A few lines, not a few weeks

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.

Web · @relay/react
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>
  );
}
  • ✓ Your backend authenticates the user however it already does, then mints a short-lived Relay token — Relay never sees your auth secret.
  • ✓ The public key is safe to embed client-side; it only identifies which tenant a connection belongs to.
  • ✓ The same pattern applies on iOS (RelayCore / RelayUI / RelayCall) and Android (relay-core / relay-ui / relay-call).
  • ✓ Full per-platform snippets — pre-filled with your own project's key — are generated for you inside your tenant dashboard's Integration tab once your account exists.
Plans

Flat, predictable pricing — not a per-minute bill

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 needed
Starter
$49 / month
  • 1,000 audio call minutes / mo
  • 500 video call minutes / mo
  • 1 GB chat storage
  • 500 chat users
  • Chat, audio & video calling
  • Push notifications (APNs + FCM)
  • Community support
Scale
$699 / month
  • 50,000 audio call minutes / mo
  • 25,000 video call minutes / mo
  • 100 GB chat storage
  • 25,000 chat users
  • Everything in Growth
  • Usage dashboards & live-call monitoring
Enterprise
Custom
  • Unlimited minutes, storage & users
  • Everything in Scale
  • Dedicated infrastructure
  • Custom data residency
  • SLA-backed support

Audio 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.

Try it now

Access the live demo

Verify your email and we'll show you exactly how to run the chat + calling demo yourself — no account, no waiting for approval.

FAQ

Common questions

Do I need to run my own server for this?

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.

What's the difference between the public key and secret key?

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.

Can one public key be reused across multiple apps?

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.

Do you support voice and video calling?

Yes — audio and video calling are separate, independently toggleable modules, with WebRTC signaling and TURN relay handled by the service.

Do I need to wait for approval to get started?

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.

How does billing work — is it metered, like per-minute?

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.