Home/Real-time/PartyKit
Real-time
PK

PartyKit

TypeScriptOpen SourceWebSocketsEdge

Cloudflare Workers-based platform for real-time multiplayer and collaborative apps — deploy stateful WebSocket servers at the edge in minutes.

License

MIT

Language

TypeScript

71
Trust
Good

Why PartyKit?

Building collaborative editing, multiplayer games, or live cursors on the edge

Real-time features without managing WebSocket infrastructure

Apps that need persistent server-side state co-located with edge compute

Signal Breakdown

What drives the Trust Score

npm downloads
15k / wk
Commits (90d)
80 commits
GitHub stars
2k ★
Stack Overflow
20 q's
Community
Growing
Weighted Trust Score71 / 100

Download Trend

Last 12 months

Tradeoffs & Caveats

Know before you commit

Simple pub/sub without stateful rooms — Pusher or Ably are simpler

High-throughput event streaming — use Ably or Kafka instead

Pricing

Free tier & paid plans

Free tier

Free tier available

Paid

Pro plans for production scale

Alternative Tools

Other options worth considering

ably
Ably61Fair

Managed pub/sub real-time infrastructure with guaranteed message ordering, presence detection, and message history. Built for mission-critical applications that can't afford message loss.

pusher
Pusher81Strong

Managed WebSocket infrastructure as a service. Drop in real-time features (presence, channels, notifications) without managing your own WebSocket servers.

supabase
Supabase95Excellent

Open-source Firebase alternative. Combines Postgres, auth, file storage, realtime subscriptions, and edge functions in one platform. The default backend for indie SaaS with a generous free tier.

Often Used Together

Complementary tools that pair well with PartyKit

nextjs

Next.js

Frontend & UI

98Excellent
View
cloudflare-workers

Cloudflare Workers

Serverless Edge

54Limited
View

Learning Resources

Docs, videos, tutorials, and courses

Get Started

Repository and installation options

View on GitHub

github.com/partykit/partykit

npmnpm install partykit

Quick Start

Copy and adapt to get going fast

// server.ts (PartyKit server)
import type * as Party from 'partykit/server';

export default class MyServer implements Party.Server {
  constructor(readonly room: Party.Room) {}

  onMessage(message: string, sender: Party.Connection) {
    this.room.broadcast(message, [sender.id]);
  }
}

Community Notes

Real experiences from developers who've used this tool