Realtime infrastructure that brings products to life.

Presence, pub/sub, channels, history, and low-latency sync for collaborative tools, marketplaces, live dashboards, communities, and multiplayer apps.

Built to run the multiplayer games on foony.com, now packaged for every developer team.

<100ms
p95 fanout target
9M
Free messages per month
99.9%+
Uptime target

Live right now

demo:homepage · wss://realtime.foony.io

Connecting…

Connecting…

Live events on this channel

What subscribers receive

Realtime primitives

The core building blocks behind every live product experience.

Foony Realtime gives product teams a managed realtime layer: channels for fanout, presence for liveness, history for recovery, and scoped auth for safe clients.

channel.publish()

Channels

Fan out named events over WebSocket or REST to app-scoped channels with predictable delivery semantics.

presence.enter()

Presence

Track who is online, refresh membership automatically, and react to enter, update, and leave events.

channel.history()

History

Replay recent messages from durable storage so clients can recover cleanly after reconnects.

POST /auth/token

Scoped auth

Mint short-lived client tokens from your backend with channel-level publish, subscribe, presence, and history permissions.

No 50-a-second channels. No 10 KB message caps.

Typical realtime platforms cap each channel at around 50 messages a second, reject payloads over a few kilobytes, and bill messages, connections, channels, and bandwidth separately. Foony Realtime meters one thing: messages.

Uncapped

Per-channel throughput

Channels have no rate ceiling of their own. Push one channel as hard as your plan allows.

1 MB

Max message size

On Growth and up. Free starts at 64 KB, the paid ceiling on most platforms.

150,000/s

Messages per second

Per-app throughput on Scale. Enterprise runs uncapped.

AES-256

End-to-end encryption

Encrypt in the SDK with a key only you hold. The service only ever sees ciphertext.

30 days

Message history

Replay any channel, so reconnecting clients recover cleanly instead of starting blind.

$0.25

Per million extra messages

Flat plans from $0. Connections and channels never bill separately.

Start with a channel. Scale into a platform.

Create an app, install the SDK, publish an event, and watch it arrive in the channel inspector.

const realtime = new Realtime({ authCallback });const channel = realtime.channels.get('chat:lobby'); channel.on((message) => {  showMessage(message.data);}); await channel.publish('chat', { text: 'hello' });await channel.presence.enter({ name: 'acorn' });
  1. Create an app

    Get an app ID, environment, and server key from the dashboard.

  2. Install the SDK

    Use TypeScript-first clients for browser and server workflows.

  3. Subscribe to a channel

    Listen for messages, presence changes, and history from one app-scoped namespace.

  4. Watch it live

    Inspect channel traffic, delivery health, and usage before launch.

Start on the free tier

9M messages, 300 concurrent connections, and 300 channels every month, free. Upgrade when your traffic does.