{"adoption": {"forks": 73, "observed_at": "2026-08-28T04:08:38.109605+00:00", "stars": 4174}, "canonical_url": "https://ross.abutalabs.com/products/proposal-signals", "card": {"archived": false, "artifact_type": "learning-resource", "description": "A proposal to add signals to JavaScript.", "domain": ["web-development", "frontend", "programming-languages", "developer-tools"], "enriched": true, "function": ["state-management", "frontend-framework", "developer-tools"], "health_score": 58, "homepage": null, "language": null, "license": "MIT", "license_family": "permissive", "maturity": "experimental", "member_repos": ["tc39/proposal-signals"], "name": "tc39/proposal-signals", "platform": ["browser", "cross-platform"], "pushed_at": "2026-01-25T20:23:21+00:00", "repo": "tc39/proposal-signals", "stars": 4174, "tags": ["tc39", "javascript-proposal", "signals", "reactivity", "stage-1", "specification", "ecmascript", "polyfill", "nodejs"], "topics": [], "urls": [], "use_cases": ["standardize reactive state management in javascript", "build a framework reactivity core on a shared signal graph", "track how the tc39 signals proposal is progressing", "experiment with signals via a polyfill before standardization", "align signal implementations across javascript frameworks", "understand the proposed semantics for computed and reactive values"], "what_it_is": "A TC39 Stage 1 proposal to standardize a signals primitive for JavaScript, defining the core semantics of a reactive signal graph rather than a developer-facing API. It is intended as a common foundation that frameworks like Angular, Vue, Solid, Svelte, and Preact can build their reactivity systems on, with a polyfill available for experimentation.", "when_to_avoid": ["You need a production-ready signals library with a stable developer-facing API today", "You expect the proposal's API to remain unchanged, since it is still Stage 1 and may evolve significantly", "You just want reactive state in an app without caring about framework interoperability or standardization", "You need a finished ECMAScript feature - this is not yet part of the language standard"], "when_to_choose": ["You are a framework author evaluating a common underlying signal graph to back your reactivity system", "You want to follow or contribute to the standardization effort for signals in JavaScript", "You need interoperable reactive state primitives across multiple frameworks", "You want to prototype against the proposed semantics using the companion polyfill"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/proposal-signals", "repo": "tc39/proposal-signals", "role": "main", "score": 57}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:38.109605+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:22:43.622411+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1b7faae956e7feec942d435d0a6a5a378563e9c2970e55f3c6869e2bc1655a05", "fetched_at": "2026-08-28T04:08:38.109605+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tc39/proposal-signals"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:38.109605+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:22:43.622411+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1b7faae956e7feec942d435d0a6a5a378563e9c2970e55f3c6869e2bc1655a05", "fetched_at": "2026-08-28T04:08:38.109605+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tc39/proposal-signals"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:22:43.622411+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1b7faae956e7feec942d435d0a6a5a378563e9c2970e55f3c6869e2bc1655a05", "fetched_at": "2026-08-28T04:08:38.109605+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tc39/proposal-signals"}], "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:08:38.109605+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:38.109605+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:38.109605+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:22:43.622411+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1b7faae956e7feec942d435d0a6a5a378563e9c2970e55f3c6869e2bc1655a05", "fetched_at": "2026-08-28T04:08:38.109605+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tc39/proposal-signals"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:38.109605+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:38.109605+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:22:43.622411+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1b7faae956e7feec942d435d0a6a5a378563e9c2970e55f3c6869e2bc1655a05", "fetched_at": "2026-08-28T04:08:38.109605+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tc39/proposal-signals"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:38.109605+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:38.109605+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:38.109605+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:22:43.622411+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1b7faae956e7feec942d435d0a6a5a378563e9c2970e55f3c6869e2bc1655a05", "fetched_at": "2026-08-28T04:08:38.109605+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tc39/proposal-signals"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:38.109605+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:38.109605+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:22:43.622411+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1b7faae956e7feec942d435d0a6a5a378563e9c2970e55f3c6869e2bc1655a05", "fetched_at": "2026-08-28T04:08:38.109605+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tc39/proposal-signals"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:22:43.622411+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1b7faae956e7feec942d435d0a6a5a378563e9c2970e55f3c6869e2bc1655a05", "fetched_at": "2026-08-28T04:08:38.109605+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tc39/proposal-signals"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:22:43.622411+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1b7faae956e7feec942d435d0a6a5a378563e9c2970e55f3c6869e2bc1655a05", "fetched_at": "2026-08-28T04:08:38.109605+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tc39/proposal-signals"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:22:43.622411+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1b7faae956e7feec942d435d0a6a5a378563e9c2970e55f3c6869e2bc1655a05", "fetched_at": "2026-08-28T04:08:38.109605+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tc39/proposal-signals"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 64, "longevity": 79, "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": 1115, "days_push": 220, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 57, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}