# Realtime for developers

Keep every view up to date. Publish live events to the right people.

[Get started](/dashboard/signup?returnTo=%2Fdashboard%2Fw%2Frealtime)

[Contact Sales](/demo?product=realtime)

[Read customer stories](/customers)

[Explore Enterprise](/enterprise)

- [Airwallex](/customers/airwallex)
- [Glovo](/customers/glovo)
- [Zillow](/customers/zillow)
- Uber
- [Binance](/customers/binance)
- Adobe
- Meta
- PayPal
- Pinterest
- Square
- [Al Jazeera](/customers/aljazeera)
- [Aramex](/customers/aramex)
- [Bazaar Technologies](/customers/bazaar)
- [ComparaOnline](/customers/compara)
- [Emma](/customers/emma)

## Connect your app. Keep every view in sync.

Inspect your app with MCP or CLI. Publish live events from your server. Connect the right clients to the right application state.

**MCP**: `Bird MCP`

```json
https://mcp.bird.com
```

## Your app changes.  Every view follows.

Approve access. Publish a change.  Keep connected views in sync.

 Harbor backendServer
ORDER 42 Packed Fulfillment update
order-updated `{ id: 42, status: "shipped" }`
private-order-42
Event accepted by Realtime
Subscription authorization
Maya · Order 42 Approved  Another customer Refused

Your backend checks who can join.

harbor.example / orders / 42
harborYour account
YOUR ORDER
ORDER 42 · MAYA CHEN

### The everyday set.

Shipped

Your order is on its way.

Live

Confirmed Packed Shipped

Live event received No refresh needed

 1Authorize the subscription 2Accept the published event 3Update the connected view
Inspect the access decision

Your backend checks the signed-in user’s access to order 42 before signing this connection and channel. The refused customer receives no order payload. Publication acceptance is separate from asynchronous client receipt.

 [Private channels](/docs/guides/realtime/private-channels)[Authorization contract](/docs/guides/realtime/authorizing-channels)

Maya’s second browser tab Same member ID
Harbor operationsLive workspace
TODAY’S ORDERS Ready for dispatch.
MC AL

Order Customer Status #42 Maya Chen Ready #43 Alex Lee Packed #44 Sam Kim Preparing
Maya
Alex
2 members
3 connections
Maya has two tabs open. She appears once.
Close Maya’s extra tab

### Know who’s here.

One person can have several connections. Show each member once, and update presence when their first tab joins or their last one leaves.

[Explore presence](/realtime-api/features/presence)

Latest eventCache channel
09:40 Confirmed Replaced
09:41 Packed Replaced
09:42 Shipped Latest

New connection Current state received
ORDER 42 The everyday set.  Shipped

What if the cache is empty?

Handle `bird:cache_miss` by loading current state from your application database. The cache can expire; it does not replay the full event history.

### Catch up to now.

A new subscriber receives the latest cached event. Bring the screen up to date without replaying every earlier change.

[Explore cache channels](/docs/guides/realtime/cache-channels)

## Explore Realtime.

From the first event to shared application state. Connect the pieces you need.

[Realtime API

Publish live events to subscribed application clients.](#integrate)[Private channels

Restrict live updates to subscriptions your backend approves.](/docs/guides/realtime/private-channels)[Presence

Show the members participating in a live experience.](/realtime-api/features/presence)[Encrypted channels

Keep supported event payloads readable only to authorized endpoints.](/docs/guides/realtime/encrypted-channels)[Client events

Share typing and other transient events between authorized clients.](/docs/guides/realtime/client-events)[Cache channels

Give a new subscriber the latest published state.](/docs/guides/realtime/cache-channels)[Public channels

Share live information intended for every visitor.](/docs/guides/realtime/public-channels)[Webhooks

React to channel activity from your backend.](/realtime-api/features/webhooks)[User targeting

Send a live update to a specific member.](/docs/guides/realtime/sending-events-to-a-member)[Connection management

Understand and control the live connections in an application.](/docs/guides/realtime/connection-lifecycle)

## Scale without  losing control.

Organize teams in workspaces, control API access, and trace changes through audit logs.

Harbor Organization
Workspaces Production Sandbox

### Delivery agent

API key · Customer operations team
Active
Permissions Access
Email Read & write
SMS Read & write
WhatsApp Read Read & write
AL Alex Lee Admin  Permissions updated

### Audit log

Production
 API key updated Alex Lee · 09:42:18 UTC

Workspace
Production

Resource
Delivery agent

WhatsApp
Read Read & write

Succeeded

 [Workspaces](/docs/guides/workspaces)[Team roles](/docs/guides/users-teams-roles)[API authentication](/docs/guides/authentication)
[Explore Enterprise](/enterprise)

Examples: [MCP](/de-de/realtime-api.mcp.md) · [TypeScript](/de-de/realtime-api.ts.md) · [Python](/de-de/realtime-api.py.md) · [Go](/de-de/realtime-api.go.md) · [PHP](/de-de/realtime-api.php.md) · [cURL](/de-de/realtime-api.curl.md)

## Start with Realtime. Build across channels with Bird.

[Get started](/dashboard/signup?returnTo=%2Fdashboard%2Fw%2Frealtime) · [Contact Sales](/demo?product=realtime)

[Email](/email-api) · [SMS](/sms-api) · [WhatsApp](/whatsapp-api) · [Apple Messages](/apple-messages-api) · [Voice](/voice-api)



## Related resources

- [Send your first realtime event](/docs/get-started/send-your-first-realtime-event) (docs)
- [Build your first integration](/learn/paths/integration) (course)

[Get an implementation brief](/learn/workspace?topic=realtime)
