{"adoption": {"forks": 240, "observed_at": "2026-08-28T04:03:37.131796+00:00", "stars": 1108}, "canonical_url": "https://ross.abutalabs.com/products/workers-chat-demo", "card": {"archived": false, "artifact_type": "application", "description": null, "domain": ["web-development", "developer-tools"], "enriched": true, "function": ["websocket", "chat-interface", "rate-limiting", "webhook"], "health_score": 67, "homepage": null, "language": "JavaScript", "license": "BSD-3-Clause", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["cloudflare/workers-chat-demo"], "name": "cloudflare/workers-chat-demo", "platform": ["cloud", "serverless"], "pushed_at": "2026-04-23T22:45:10+00:00", "repo": "cloudflare/workers-chat-demo", "stars": 1108, "tags": ["cloudflare-workers", "durable-objects", "websocket-hibernation", "edge-computing", "demo-app", "chat-rooms", "real-time", "javascript", "web-server"], "topics": [], "urls": [], "use_cases": ["build a real-time chat app on cloudflare workers", "learn how durable objects coordinate websocket connections", "implement per-ip rate limiting with durable objects", "example of websocket hibernation api usage", "deploy a stateful serverless app at the edge", "reference code for broadcasting messages between connected users"], "what_it_is": "A demo real-time chat application built on Cloudflare Workers using Durable Objects, with one object per chat room coordinating WebSocket connections and storing message history. It also demonstrates using Durable Objects as stateless per-IP rate limiters.", "when_to_avoid": ["you need a production-ready chat product with auth, moderation, or rich features", "you are not deploying on Cloudflare Workers", "you need chat rooms that scale beyond a single-threaded Durable Object per room"], "when_to_choose": ["you want a small, well-commented reference for Durable Objects and WebSockets on Cloudflare", "you need real-time message broadcasting with stored chat history at the edge", "you want to see stateless coordination objects used for rate limiting"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/workers-chat-demo", "repo": "cloudflare/workers-chat-demo", "role": "main", "score": 67}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.131796+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:43:45.278696+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7a7088b3dd6770b6a64a466aa9f1e80e7b076efb749a7760373150e2b5e1b719", "fetched_at": "2026-08-28T04:03:37.131796+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cloudflare/workers-chat-demo"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.131796+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:43:45.278696+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7a7088b3dd6770b6a64a466aa9f1e80e7b076efb749a7760373150e2b5e1b719", "fetched_at": "2026-08-28T04:03:37.131796+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cloudflare/workers-chat-demo"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:43:45.278696+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7a7088b3dd6770b6a64a466aa9f1e80e7b076efb749a7760373150e2b5e1b719", "fetched_at": "2026-08-28T04:03:37.131796+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cloudflare/workers-chat-demo"}], "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:03:37.131796+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.131796+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.131796+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:43:45.278696+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7a7088b3dd6770b6a64a466aa9f1e80e7b076efb749a7760373150e2b5e1b719", "fetched_at": "2026-08-28T04:03:37.131796+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cloudflare/workers-chat-demo"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.131796+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.131796+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:43:45.278696+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7a7088b3dd6770b6a64a466aa9f1e80e7b076efb749a7760373150e2b5e1b719", "fetched_at": "2026-08-28T04:03:37.131796+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cloudflare/workers-chat-demo"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.131796+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.131796+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.131796+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:43:45.278696+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7a7088b3dd6770b6a64a466aa9f1e80e7b076efb749a7760373150e2b5e1b719", "fetched_at": "2026-08-28T04:03:37.131796+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cloudflare/workers-chat-demo"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.131796+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.131796+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:43:45.278696+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7a7088b3dd6770b6a64a466aa9f1e80e7b076efb749a7760373150e2b5e1b719", "fetched_at": "2026-08-28T04:03:37.131796+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cloudflare/workers-chat-demo"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:43:45.278696+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7a7088b3dd6770b6a64a466aa9f1e80e7b076efb749a7760373150e2b5e1b719", "fetched_at": "2026-08-28T04:03:37.131796+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cloudflare/workers-chat-demo"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:43:45.278696+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7a7088b3dd6770b6a64a466aa9f1e80e7b076efb749a7760373150e2b5e1b719", "fetched_at": "2026-08-28T04:03:37.131796+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cloudflare/workers-chat-demo"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:43:45.278696+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7a7088b3dd6770b6a64a466aa9f1e80e7b076efb749a7760373150e2b5e1b719", "fetched_at": "2026-08-28T04:03:37.131796+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cloudflare/workers-chat-demo"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 78, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2169, "days_push": 132, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 67, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}