{"adoption": {"forks": 129, "observed_at": "2026-08-28T04:08:51.065065+00:00", "stars": 4475}, "canonical_url": "https://ross.abutalabs.com/products/signals", "card": {"archived": false, "artifact_type": "library", "description": "Manage state with style in every framework", "domain": ["frontend", "web-development"], "enriched": true, "function": ["state-management", "frontend-framework"], "health_score": 99, "homepage": "https://preactjs.com/blog/introducing-signals/", "language": "TypeScript", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["preactjs/signals"], "name": "preactjs/signals", "platform": ["browser", "cross-platform"], "pushed_at": "2026-08-17T12:48:14+00:00", "repo": "preactjs/signals", "stars": 4475, "tags": ["signals", "reactivity", "preact", "react", "typescript", "fine-grained-reactivity", "nodejs"], "topics": ["preact", "react", "reactivity", "signals", "state-management"], "urls": [], "use_cases": ["manage shared app state without selectors or wrapper functions", "replace useState or Redux with fine-grained reactive state in React", "derive computed values that update automatically when dependencies change", "optimize rendering performance in large Preact or React apps", "use reactive state outside of components, such as in business logic modules", "add SSR-compatible state management to a React app"], "what_it_is": "Signals is a performant, reactive state management library from the Preact team, providing signal, computed, effect, and batch primitives with automatic dependency tracking. It ships framework integrations for Preact and React so components re-render automatically when signal values change, with minimal bundle overhead.", "when_to_avoid": ["you use Vue, Svelte, or Angular with their own built-in reactivity", "you need a full state management solution with devtools, middleware, and time-travel debugging", "your team standardizes on a single store pattern like Redux or Zustand"], "when_to_choose": ["you use Preact or React and want lightweight, fast state management", "you need reactive state usable inside and outside components", "bundle size and update performance are priorities", "you want gradual adoption alongside hooks or class components"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/signals", "repo": "preactjs/signals", "role": "main", "score": 94}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:51.065065+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:20:34.911887+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "802550bbfa888f9ff354edf3d682ef5c80ea41d4ac54d46dba4fa4d0c006319c", "fetched_at": "2026-08-28T04:08:51.065065+00:00", "kind": "readme", "missing": false, "url": "https://github.com/preactjs/signals"}, {"content_hash": "1ebb21e5d8585b7832fdc457ac534a592d423191df84abc9592c13cc2bdd912d", "fetched_at": "2026-08-29T09:07:30.384599+00:00", "kind": "homepage", "missing": false, "url": "https://preactjs.com/blog/introducing-signals/"}, {"content_hash": "41c2e63f3f20f32dc0e83e373105b708f36a055b930e32cb13188e7a9e3d03f2", "fetched_at": "2026-08-29T09:07:30.402110+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/about/project-goals"}, {"content_hash": "1baad012dd68f8ddb52fcab1334e8a3071847e2235d673021ea24c15f0d5def0", "fetched_at": "2026-08-29T09:07:30.394027+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/guide/v10/getting-started"}, {"content_hash": "e8598d9fe64a64cd2cacb4d39048253586a18af5a6fe23a87b38b395f329086d", "fetched_at": "2026-08-29T09:07:30.395986+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/about/we-are-using"}, {"content_hash": "d273d297244e1912d11cccfac2b61df09513166ae692872697c0666541a94577", "fetched_at": "2026-08-29T09:07:30.397631+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/about/libraries-addons"}, {"content_hash": "2d1aa7e409935eb3aa0fcfa59f4cb6774a40fec990891ceee74492fa1a6ba5a2", "fetched_at": "2026-08-29T09:07:30.400216+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/about/demos-examples"}, {"content_hash": "2e2a90dfd4a8af62bffc724fdf633241b0a68925a60bb252581b248b6b3c5e03", "fetched_at": "2026-08-29T09:07:30.403883+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/about/browser-support"}, {"content_hash": "db5d02aa0bb31049a72d6426e4ef644f9b1ebed1da254adff4418ed570fb9169", "fetched_at": "2026-08-29T09:07:30.405930+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/guide/v11/signals"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:51.065065+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:20:34.911887+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "802550bbfa888f9ff354edf3d682ef5c80ea41d4ac54d46dba4fa4d0c006319c", "fetched_at": "2026-08-28T04:08:51.065065+00:00", "kind": "readme", "missing": false, "url": "https://github.com/preactjs/signals"}, {"content_hash": "1ebb21e5d8585b7832fdc457ac534a592d423191df84abc9592c13cc2bdd912d", "fetched_at": "2026-08-29T09:07:30.384599+00:00", "kind": "homepage", "missing": false, "url": "https://preactjs.com/blog/introducing-signals/"}, {"content_hash": "41c2e63f3f20f32dc0e83e373105b708f36a055b930e32cb13188e7a9e3d03f2", "fetched_at": "2026-08-29T09:07:30.402110+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/about/project-goals"}, {"content_hash": "1baad012dd68f8ddb52fcab1334e8a3071847e2235d673021ea24c15f0d5def0", "fetched_at": "2026-08-29T09:07:30.394027+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/guide/v10/getting-started"}, {"content_hash": "e8598d9fe64a64cd2cacb4d39048253586a18af5a6fe23a87b38b395f329086d", "fetched_at": "2026-08-29T09:07:30.395986+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/about/we-are-using"}, {"content_hash": "d273d297244e1912d11cccfac2b61df09513166ae692872697c0666541a94577", "fetched_at": "2026-08-29T09:07:30.397631+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/about/libraries-addons"}, {"content_hash": "2d1aa7e409935eb3aa0fcfa59f4cb6774a40fec990891ceee74492fa1a6ba5a2", "fetched_at": "2026-08-29T09:07:30.400216+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/about/demos-examples"}, {"content_hash": "2e2a90dfd4a8af62bffc724fdf633241b0a68925a60bb252581b248b6b3c5e03", "fetched_at": "2026-08-29T09:07:30.403883+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/about/browser-support"}, {"content_hash": "db5d02aa0bb31049a72d6426e4ef644f9b1ebed1da254adff4418ed570fb9169", "fetched_at": "2026-08-29T09:07:30.405930+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/guide/v11/signals"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:20:34.911887+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "802550bbfa888f9ff354edf3d682ef5c80ea41d4ac54d46dba4fa4d0c006319c", "fetched_at": "2026-08-28T04:08:51.065065+00:00", "kind": "readme", "missing": false, "url": "https://github.com/preactjs/signals"}, {"content_hash": "1ebb21e5d8585b7832fdc457ac534a592d423191df84abc9592c13cc2bdd912d", "fetched_at": "2026-08-29T09:07:30.384599+00:00", "kind": "homepage", "missing": false, "url": "https://preactjs.com/blog/introducing-signals/"}, {"content_hash": "41c2e63f3f20f32dc0e83e373105b708f36a055b930e32cb13188e7a9e3d03f2", "fetched_at": "2026-08-29T09:07:30.402110+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/about/project-goals"}, {"content_hash": "1baad012dd68f8ddb52fcab1334e8a3071847e2235d673021ea24c15f0d5def0", "fetched_at": "2026-08-29T09:07:30.394027+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/guide/v10/getting-started"}, {"content_hash": "e8598d9fe64a64cd2cacb4d39048253586a18af5a6fe23a87b38b395f329086d", "fetched_at": "2026-08-29T09:07:30.395986+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/about/we-are-using"}, {"content_hash": "d273d297244e1912d11cccfac2b61df09513166ae692872697c0666541a94577", "fetched_at": "2026-08-29T09:07:30.397631+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/about/libraries-addons"}, {"content_hash": "2d1aa7e409935eb3aa0fcfa59f4cb6774a40fec990891ceee74492fa1a6ba5a2", "fetched_at": "2026-08-29T09:07:30.400216+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/about/demos-examples"}, {"content_hash": "2e2a90dfd4a8af62bffc724fdf633241b0a68925a60bb252581b248b6b3c5e03", "fetched_at": "2026-08-29T09:07:30.403883+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/about/browser-support"}, {"content_hash": "db5d02aa0bb31049a72d6426e4ef644f9b1ebed1da254adff4418ed570fb9169", "fetched_at": "2026-08-29T09:07:30.405930+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/guide/v11/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:51.065065+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:51.065065+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:51.065065+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:20:34.911887+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "802550bbfa888f9ff354edf3d682ef5c80ea41d4ac54d46dba4fa4d0c006319c", "fetched_at": "2026-08-28T04:08:51.065065+00:00", "kind": "readme", "missing": false, "url": "https://github.com/preactjs/signals"}, {"content_hash": "1ebb21e5d8585b7832fdc457ac534a592d423191df84abc9592c13cc2bdd912d", "fetched_at": "2026-08-29T09:07:30.384599+00:00", "kind": "homepage", "missing": false, "url": "https://preactjs.com/blog/introducing-signals/"}, {"content_hash": "41c2e63f3f20f32dc0e83e373105b708f36a055b930e32cb13188e7a9e3d03f2", "fetched_at": "2026-08-29T09:07:30.402110+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/about/project-goals"}, {"content_hash": "1baad012dd68f8ddb52fcab1334e8a3071847e2235d673021ea24c15f0d5def0", "fetched_at": "2026-08-29T09:07:30.394027+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/guide/v10/getting-started"}, {"content_hash": "e8598d9fe64a64cd2cacb4d39048253586a18af5a6fe23a87b38b395f329086d", "fetched_at": "2026-08-29T09:07:30.395986+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/about/we-are-using"}, {"content_hash": "d273d297244e1912d11cccfac2b61df09513166ae692872697c0666541a94577", "fetched_at": "2026-08-29T09:07:30.397631+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/about/libraries-addons"}, {"content_hash": "2d1aa7e409935eb3aa0fcfa59f4cb6774a40fec990891ceee74492fa1a6ba5a2", "fetched_at": "2026-08-29T09:07:30.400216+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/about/demos-examples"}, {"content_hash": "2e2a90dfd4a8af62bffc724fdf633241b0a68925a60bb252581b248b6b3c5e03", "fetched_at": "2026-08-29T09:07:30.403883+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/about/browser-support"}, {"content_hash": "db5d02aa0bb31049a72d6426e4ef644f9b1ebed1da254adff4418ed570fb9169", "fetched_at": "2026-08-29T09:07:30.405930+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/guide/v11/signals"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:51.065065+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:51.065065+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:20:34.911887+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "802550bbfa888f9ff354edf3d682ef5c80ea41d4ac54d46dba4fa4d0c006319c", "fetched_at": "2026-08-28T04:08:51.065065+00:00", "kind": "readme", "missing": false, "url": "https://github.com/preactjs/signals"}, {"content_hash": "1ebb21e5d8585b7832fdc457ac534a592d423191df84abc9592c13cc2bdd912d", "fetched_at": "2026-08-29T09:07:30.384599+00:00", "kind": "homepage", "missing": false, "url": "https://preactjs.com/blog/introducing-signals/"}, {"content_hash": "41c2e63f3f20f32dc0e83e373105b708f36a055b930e32cb13188e7a9e3d03f2", "fetched_at": "2026-08-29T09:07:30.402110+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/about/project-goals"}, {"content_hash": "1baad012dd68f8ddb52fcab1334e8a3071847e2235d673021ea24c15f0d5def0", "fetched_at": "2026-08-29T09:07:30.394027+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/guide/v10/getting-started"}, {"content_hash": "e8598d9fe64a64cd2cacb4d39048253586a18af5a6fe23a87b38b395f329086d", "fetched_at": "2026-08-29T09:07:30.395986+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/about/we-are-using"}, {"content_hash": "d273d297244e1912d11cccfac2b61df09513166ae692872697c0666541a94577", "fetched_at": "2026-08-29T09:07:30.397631+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/about/libraries-addons"}, {"content_hash": "2d1aa7e409935eb3aa0fcfa59f4cb6774a40fec990891ceee74492fa1a6ba5a2", "fetched_at": "2026-08-29T09:07:30.400216+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/about/demos-examples"}, {"content_hash": "2e2a90dfd4a8af62bffc724fdf633241b0a68925a60bb252581b248b6b3c5e03", "fetched_at": "2026-08-29T09:07:30.403883+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/about/browser-support"}, {"content_hash": "db5d02aa0bb31049a72d6426e4ef644f9b1ebed1da254adff4418ed570fb9169", "fetched_at": "2026-08-29T09:07:30.405930+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/guide/v11/signals"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:51.065065+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:51.065065+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:51.065065+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:20:34.911887+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "802550bbfa888f9ff354edf3d682ef5c80ea41d4ac54d46dba4fa4d0c006319c", "fetched_at": "2026-08-28T04:08:51.065065+00:00", "kind": "readme", "missing": false, "url": "https://github.com/preactjs/signals"}, {"content_hash": "1ebb21e5d8585b7832fdc457ac534a592d423191df84abc9592c13cc2bdd912d", "fetched_at": "2026-08-29T09:07:30.384599+00:00", "kind": "homepage", "missing": false, "url": "https://preactjs.com/blog/introducing-signals/"}, {"content_hash": "41c2e63f3f20f32dc0e83e373105b708f36a055b930e32cb13188e7a9e3d03f2", "fetched_at": "2026-08-29T09:07:30.402110+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/about/project-goals"}, {"content_hash": "1baad012dd68f8ddb52fcab1334e8a3071847e2235d673021ea24c15f0d5def0", "fetched_at": "2026-08-29T09:07:30.394027+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/guide/v10/getting-started"}, {"content_hash": "e8598d9fe64a64cd2cacb4d39048253586a18af5a6fe23a87b38b395f329086d", "fetched_at": "2026-08-29T09:07:30.395986+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/about/we-are-using"}, {"content_hash": "d273d297244e1912d11cccfac2b61df09513166ae692872697c0666541a94577", "fetched_at": "2026-08-29T09:07:30.397631+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/about/libraries-addons"}, {"content_hash": "2d1aa7e409935eb3aa0fcfa59f4cb6774a40fec990891ceee74492fa1a6ba5a2", "fetched_at": "2026-08-29T09:07:30.400216+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/about/demos-examples"}, {"content_hash": "2e2a90dfd4a8af62bffc724fdf633241b0a68925a60bb252581b248b6b3c5e03", "fetched_at": "2026-08-29T09:07:30.403883+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/about/browser-support"}, {"content_hash": "db5d02aa0bb31049a72d6426e4ef644f9b1ebed1da254adff4418ed570fb9169", "fetched_at": "2026-08-29T09:07:30.405930+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/guide/v11/signals"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:51.065065+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:51.065065+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:20:34.911887+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "802550bbfa888f9ff354edf3d682ef5c80ea41d4ac54d46dba4fa4d0c006319c", "fetched_at": "2026-08-28T04:08:51.065065+00:00", "kind": "readme", "missing": false, "url": "https://github.com/preactjs/signals"}, {"content_hash": "1ebb21e5d8585b7832fdc457ac534a592d423191df84abc9592c13cc2bdd912d", "fetched_at": "2026-08-29T09:07:30.384599+00:00", "kind": "homepage", "missing": false, "url": "https://preactjs.com/blog/introducing-signals/"}, {"content_hash": "41c2e63f3f20f32dc0e83e373105b708f36a055b930e32cb13188e7a9e3d03f2", "fetched_at": "2026-08-29T09:07:30.402110+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/about/project-goals"}, {"content_hash": "1baad012dd68f8ddb52fcab1334e8a3071847e2235d673021ea24c15f0d5def0", "fetched_at": "2026-08-29T09:07:30.394027+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/guide/v10/getting-started"}, {"content_hash": "e8598d9fe64a64cd2cacb4d39048253586a18af5a6fe23a87b38b395f329086d", "fetched_at": "2026-08-29T09:07:30.395986+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/about/we-are-using"}, {"content_hash": "d273d297244e1912d11cccfac2b61df09513166ae692872697c0666541a94577", "fetched_at": "2026-08-29T09:07:30.397631+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/about/libraries-addons"}, {"content_hash": "2d1aa7e409935eb3aa0fcfa59f4cb6774a40fec990891ceee74492fa1a6ba5a2", "fetched_at": "2026-08-29T09:07:30.400216+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/about/demos-examples"}, {"content_hash": "2e2a90dfd4a8af62bffc724fdf633241b0a68925a60bb252581b248b6b3c5e03", "fetched_at": "2026-08-29T09:07:30.403883+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/about/browser-support"}, {"content_hash": "db5d02aa0bb31049a72d6426e4ef644f9b1ebed1da254adff4418ed570fb9169", "fetched_at": "2026-08-29T09:07:30.405930+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/guide/v11/signals"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:20:34.911887+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "802550bbfa888f9ff354edf3d682ef5c80ea41d4ac54d46dba4fa4d0c006319c", "fetched_at": "2026-08-28T04:08:51.065065+00:00", "kind": "readme", "missing": false, "url": "https://github.com/preactjs/signals"}, {"content_hash": "1ebb21e5d8585b7832fdc457ac534a592d423191df84abc9592c13cc2bdd912d", "fetched_at": "2026-08-29T09:07:30.384599+00:00", "kind": "homepage", "missing": false, "url": "https://preactjs.com/blog/introducing-signals/"}, {"content_hash": "41c2e63f3f20f32dc0e83e373105b708f36a055b930e32cb13188e7a9e3d03f2", "fetched_at": "2026-08-29T09:07:30.402110+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/about/project-goals"}, {"content_hash": "1baad012dd68f8ddb52fcab1334e8a3071847e2235d673021ea24c15f0d5def0", "fetched_at": "2026-08-29T09:07:30.394027+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/guide/v10/getting-started"}, {"content_hash": "e8598d9fe64a64cd2cacb4d39048253586a18af5a6fe23a87b38b395f329086d", "fetched_at": "2026-08-29T09:07:30.395986+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/about/we-are-using"}, {"content_hash": "d273d297244e1912d11cccfac2b61df09513166ae692872697c0666541a94577", "fetched_at": "2026-08-29T09:07:30.397631+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/about/libraries-addons"}, {"content_hash": "2d1aa7e409935eb3aa0fcfa59f4cb6774a40fec990891ceee74492fa1a6ba5a2", "fetched_at": "2026-08-29T09:07:30.400216+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/about/demos-examples"}, {"content_hash": "2e2a90dfd4a8af62bffc724fdf633241b0a68925a60bb252581b248b6b3c5e03", "fetched_at": "2026-08-29T09:07:30.403883+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/about/browser-support"}, {"content_hash": "db5d02aa0bb31049a72d6426e4ef644f9b1ebed1da254adff4418ed570fb9169", "fetched_at": "2026-08-29T09:07:30.405930+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/guide/v11/signals"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:20:34.911887+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "802550bbfa888f9ff354edf3d682ef5c80ea41d4ac54d46dba4fa4d0c006319c", "fetched_at": "2026-08-28T04:08:51.065065+00:00", "kind": "readme", "missing": false, "url": "https://github.com/preactjs/signals"}, {"content_hash": "1ebb21e5d8585b7832fdc457ac534a592d423191df84abc9592c13cc2bdd912d", "fetched_at": "2026-08-29T09:07:30.384599+00:00", "kind": "homepage", "missing": false, "url": "https://preactjs.com/blog/introducing-signals/"}, {"content_hash": "41c2e63f3f20f32dc0e83e373105b708f36a055b930e32cb13188e7a9e3d03f2", "fetched_at": "2026-08-29T09:07:30.402110+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/about/project-goals"}, {"content_hash": "1baad012dd68f8ddb52fcab1334e8a3071847e2235d673021ea24c15f0d5def0", "fetched_at": "2026-08-29T09:07:30.394027+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/guide/v10/getting-started"}, {"content_hash": "e8598d9fe64a64cd2cacb4d39048253586a18af5a6fe23a87b38b395f329086d", "fetched_at": "2026-08-29T09:07:30.395986+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/about/we-are-using"}, {"content_hash": "d273d297244e1912d11cccfac2b61df09513166ae692872697c0666541a94577", "fetched_at": "2026-08-29T09:07:30.397631+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/about/libraries-addons"}, {"content_hash": "2d1aa7e409935eb3aa0fcfa59f4cb6774a40fec990891ceee74492fa1a6ba5a2", "fetched_at": "2026-08-29T09:07:30.400216+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/about/demos-examples"}, {"content_hash": "2e2a90dfd4a8af62bffc724fdf633241b0a68925a60bb252581b248b6b3c5e03", "fetched_at": "2026-08-29T09:07:30.403883+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/about/browser-support"}, {"content_hash": "db5d02aa0bb31049a72d6426e4ef644f9b1ebed1da254adff4418ed570fb9169", "fetched_at": "2026-08-29T09:07:30.405930+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/guide/v11/signals"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:20:34.911887+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "802550bbfa888f9ff354edf3d682ef5c80ea41d4ac54d46dba4fa4d0c006319c", "fetched_at": "2026-08-28T04:08:51.065065+00:00", "kind": "readme", "missing": false, "url": "https://github.com/preactjs/signals"}, {"content_hash": "1ebb21e5d8585b7832fdc457ac534a592d423191df84abc9592c13cc2bdd912d", "fetched_at": "2026-08-29T09:07:30.384599+00:00", "kind": "homepage", "missing": false, "url": "https://preactjs.com/blog/introducing-signals/"}, {"content_hash": "41c2e63f3f20f32dc0e83e373105b708f36a055b930e32cb13188e7a9e3d03f2", "fetched_at": "2026-08-29T09:07:30.402110+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/about/project-goals"}, {"content_hash": "1baad012dd68f8ddb52fcab1334e8a3071847e2235d673021ea24c15f0d5def0", "fetched_at": "2026-08-29T09:07:30.394027+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/guide/v10/getting-started"}, {"content_hash": "e8598d9fe64a64cd2cacb4d39048253586a18af5a6fe23a87b38b395f329086d", "fetched_at": "2026-08-29T09:07:30.395986+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/about/we-are-using"}, {"content_hash": "d273d297244e1912d11cccfac2b61df09513166ae692872697c0666541a94577", "fetched_at": "2026-08-29T09:07:30.397631+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/about/libraries-addons"}, {"content_hash": "2d1aa7e409935eb3aa0fcfa59f4cb6774a40fec990891ceee74492fa1a6ba5a2", "fetched_at": "2026-08-29T09:07:30.400216+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/about/demos-examples"}, {"content_hash": "2e2a90dfd4a8af62bffc724fdf633241b0a68925a60bb252581b248b6b3c5e03", "fetched_at": "2026-08-29T09:07:30.403883+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/about/browser-support"}, {"content_hash": "db5d02aa0bb31049a72d6426e4ef644f9b1ebed1da254adff4418ed570fb9169", "fetched_at": "2026-08-29T09:07:30.405930+00:00", "kind": "site_page", "missing": false, "url": "https://preactjs.com/guide/v11/signals"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 100, "rhythm": 86}, "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": 1486, "days_push": 16, "days_rel": 19, "gap_med": 0, "n_releases_24m": 100}, "score": 94, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}