{"adoption": {"forks": 78, "observed_at": "2026-08-28T04:04:08.473614+00:00", "stars": 1252}, "canonical_url": "https://ross.abutalabs.com/products/cloudflare-partykit", "card": {"archived": false, "artifact_type": "library", "description": "PartyKit, for Workers", "domain": ["web-development", "developer-tools"], "enriched": true, "function": ["websocket", "rpc", "middleware", "state-management", "scheduling"], "health_score": 97, "homepage": null, "language": "TypeScript", "license": "ISC", "license_family": "permissive", "maturity": "active", "member_repos": ["cloudflare/partykit"], "name": "cloudflare/partykit", "platform": [], "pushed_at": "2026-08-03T15:14:06+00:00", "repo": "cloudflare/partykit", "stars": 1252, "tags": ["durable-objects", "cloudflare-workers", "realtime", "collaboration", "yjs", "crdt", "pubsub", "partykit", "real-time", "ai-agents", "cloudflare", "nodejs", "typescript", "web-server"], "topics": ["agents", "ai", "collaboration", "durable-objects", "real-time"], "urls": [], "use_cases": ["build real-time multiplayer apps on Cloudflare Workers", "add websocket rooms with broadcasting to Durable Objects", "implement collaborative editing with Yjs and CRDTs", "run pubsub at scale across global Durable Object instances", "sync server state to clients in real time", "schedule tasks at scale on Workers", "build AI agents with persistent realtime connections"], "what_it_is": "PartyServer is a TypeScript library that enhances Cloudflare Durable Objects for building real-time applications with WebSockets, lifecycle hooks, and broadcasting. It includes companion packages for resilient WebSocket clients, Yjs collaborative editing, pubsub at scale, state sync, and task scheduling.", "when_to_avoid": ["you are not deploying on Cloudflare Workers", "you need a self-hosted realtime server outside Cloudflare", "you need a fully mature, long-stable library rather than a work in progress"], "when_to_choose": ["you are building on Cloudflare Workers and Durable Objects", "you need realtime websocket features with reconnection and resilience", "you want collaborative editing or multiplayer state sync", "you need pubsub or scheduled tasks backed by Durable Objects"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/cloudflare-partykit", "repo": "cloudflare/partykit", "role": "main", "score": 84}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:08.473614+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T05:07:32.529777+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "204e7836db279468cc722a5c5ba648e92df7f6cd89dfe70142ffea73f87a901d", "fetched_at": "2026-08-28T04:04:08.473614+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cloudflare/partykit"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:08.473614+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T05:07:32.529777+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "204e7836db279468cc722a5c5ba648e92df7f6cd89dfe70142ffea73f87a901d", "fetched_at": "2026-08-28T04:04:08.473614+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cloudflare/partykit"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T05:07:32.529777+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "204e7836db279468cc722a5c5ba648e92df7f6cd89dfe70142ffea73f87a901d", "fetched_at": "2026-08-28T04:04:08.473614+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cloudflare/partykit"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:04:08.473614+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:08.473614+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:08.473614+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T05:07:32.529777+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "204e7836db279468cc722a5c5ba648e92df7f6cd89dfe70142ffea73f87a901d", "fetched_at": "2026-08-28T04:04:08.473614+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cloudflare/partykit"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:08.473614+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:08.473614+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T05:07:32.529777+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "204e7836db279468cc722a5c5ba648e92df7f6cd89dfe70142ffea73f87a901d", "fetched_at": "2026-08-28T04:04:08.473614+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cloudflare/partykit"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:08.473614+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:08.473614+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:08.473614+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T05:07:32.529777+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "204e7836db279468cc722a5c5ba648e92df7f6cd89dfe70142ffea73f87a901d", "fetched_at": "2026-08-28T04:04:08.473614+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cloudflare/partykit"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:08.473614+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:08.473614+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T05:07:32.529777+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "204e7836db279468cc722a5c5ba648e92df7f6cd89dfe70142ffea73f87a901d", "fetched_at": "2026-08-28T04:04:08.473614+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cloudflare/partykit"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T05:07:32.529777+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "204e7836db279468cc722a5c5ba648e92df7f6cd89dfe70142ffea73f87a901d", "fetched_at": "2026-08-28T04:04:08.473614+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cloudflare/partykit"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T05:07:32.529777+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "204e7836db279468cc722a5c5ba648e92df7f6cd89dfe70142ffea73f87a901d", "fetched_at": "2026-08-28T04:04:08.473614+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cloudflare/partykit"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T05:07:32.529777+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "204e7836db279468cc722a5c5ba648e92df7f6cd89dfe70142ffea73f87a901d", "fetched_at": "2026-08-28T04:04:08.473614+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cloudflare/partykit"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 95, "longevity": 59, "rhythm": 84}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 828, "days_push": 30, "days_rel": 30, "gap_med": 0, "n_releases_24m": 188}, "score": 84, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}