Why Upstash Realtime?
- ๐งจ Clean APIs & first-class TypeScript support
- โก Extremely fast, zero dependencies, 2.6kB gzipped
- ๐ป Deploy anywhere: Vercel, Netlify, etc.
- ๐ 100% type-safe with zod 4 or zod mini
- โฑ๏ธ Built-in message histories
- ๐ Automatic connection management w/ delivery guarantee
- ๐ Built-in middleware and authentication helpers
- ๐ถ 100% HTTP-based: Redis streams & SSE
Quickstart
1. Installation
2. Configure Upstash Redis
Upstash Realtime is powered by Redis Streams. Grab your credentials from the Upstash Console.
.env
lib/redis.ts
3. Define Event Schema
Define the structure of realtime events in your app:lib/realtime.ts
4. Create Realtime Route Handler
Create a route handler atapi/realtime/route.ts:
app/api/realtime/route.ts
5. Add the Provider
Wrap your application inRealtimeProvider:
app/providers.tsx
app/layout.tsx
6. Create Typed Client Hook
Create a typeduseRealtime hook for your client components:
lib/realtime-client.ts
7. Emit Events
From any server component, server action, or API route:app/api/notify/route.ts
8. Subscribe to Events
In any client component:app/components/notifications.tsx