{"adoption": {"forks": 1708, "observed_at": "2026-08-28T04:09:57.942657+00:00", "stars": 7270}, "canonical_url": "https://ross.abutalabs.com/products/overreactedio", "card": {"archived": false, "artifact_type": "learning-resource", "description": "Personal blog by Dan Abramov.", "domain": ["web-development", "frontend", "developer-tools", "tutorials"], "enriched": true, "function": ["documentation", "static-site-generator", "markdown"], "health_score": 74, "homepage": "https://overreacted.io", "language": "TypeScript", "license": null, "license_family": "other", "maturity": "active", "member_repos": ["gaearon/overreacted.io"], "name": "gaearon/overreacted.io", "platform": [], "pushed_at": "2026-07-04T03:29:12+00:00", "repo": "gaearon/overreacted.io", "stars": 7270, "tags": ["blog", "react", "gatsby", "personal-blog", "static-site", "dan-abramov", "overreacted", "nodejs", "web-server", "javascript"], "topics": [], "urls": [], "use_cases": ["read deep-dive articles explaining how React works internally", "learn how setState and React reconcilers work under the hood", "understand React Server Components through long-form tutorials", "study how a personal developer blog is built with Gatsby and TypeScript", "find well-written explanations of JavaScript fundamentals like classes and prototypes"], "what_it_is": "The source code for overreacted.io, Dan Abramov's personal blog containing in-depth essays on React internals, JavaScript, and web development. The repository is a static site (built with Gatsby) whose content is the educational resource itself.", "when_to_avoid": ["you need a reusable library or tool to install in your project", "you want up-to-date official React documentation rather than opinionated essays", "you need a maintained software product with a license and releases"], "when_to_choose": ["you want to learn React internals from one of its core maintainers", "you need high-quality long-form explanations of JavaScript and React concepts", "you want a reference example of a Gatsby-based blog setup"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/overreactedio", "repo": "gaearon/overreacted.io", "role": "main", "score": 73}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:57.942657+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:38:55.456972+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "409ce77823e04bac408a12fb22732ee0a33d5bebe4d7b7cd4419dff6590490a3", "fetched_at": "2026-08-29T08:34:34.436566+00:00", "kind": "homepage", "missing": false, "url": "https://overreacted.io"}, {"content_hash": "937909774a05af6ae39d1620a9875e097aa351d5c840b01ee9aa27cbfc25d0c4", "fetched_at": "2026-08-29T08:34:34.447963+00:00", "kind": "site_page", "missing": false, "url": "https://overreacted.io/how-does-setstate-know-what-to-do"}, {"content_hash": "04e340099a5a4b73230d66a7c6696f1b136074635ac3c62ab59d75370f76f414", "fetched_at": "2026-08-29T08:34:34.450195+00:00", "kind": "site_page", "missing": false, "url": "https://overreacted.io/how-does-react-tell-a-class-from-a-function"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:57.942657+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:38:55.456972+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "409ce77823e04bac408a12fb22732ee0a33d5bebe4d7b7cd4419dff6590490a3", "fetched_at": "2026-08-29T08:34:34.436566+00:00", "kind": "homepage", "missing": false, "url": "https://overreacted.io"}, {"content_hash": "937909774a05af6ae39d1620a9875e097aa351d5c840b01ee9aa27cbfc25d0c4", "fetched_at": "2026-08-29T08:34:34.447963+00:00", "kind": "site_page", "missing": false, "url": "https://overreacted.io/how-does-setstate-know-what-to-do"}, {"content_hash": "04e340099a5a4b73230d66a7c6696f1b136074635ac3c62ab59d75370f76f414", "fetched_at": "2026-08-29T08:34:34.450195+00:00", "kind": "site_page", "missing": false, "url": "https://overreacted.io/how-does-react-tell-a-class-from-a-function"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:38:55.456972+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "409ce77823e04bac408a12fb22732ee0a33d5bebe4d7b7cd4419dff6590490a3", "fetched_at": "2026-08-29T08:34:34.436566+00:00", "kind": "homepage", "missing": false, "url": "https://overreacted.io"}, {"content_hash": "937909774a05af6ae39d1620a9875e097aa351d5c840b01ee9aa27cbfc25d0c4", "fetched_at": "2026-08-29T08:34:34.447963+00:00", "kind": "site_page", "missing": false, "url": "https://overreacted.io/how-does-setstate-know-what-to-do"}, {"content_hash": "04e340099a5a4b73230d66a7c6696f1b136074635ac3c62ab59d75370f76f414", "fetched_at": "2026-08-29T08:34:34.450195+00:00", "kind": "site_page", "missing": false, "url": "https://overreacted.io/how-does-react-tell-a-class-from-a-function"}], "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:09:57.942657+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:57.942657+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:57.942657+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:38:55.456972+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "409ce77823e04bac408a12fb22732ee0a33d5bebe4d7b7cd4419dff6590490a3", "fetched_at": "2026-08-29T08:34:34.436566+00:00", "kind": "homepage", "missing": false, "url": "https://overreacted.io"}, {"content_hash": "937909774a05af6ae39d1620a9875e097aa351d5c840b01ee9aa27cbfc25d0c4", "fetched_at": "2026-08-29T08:34:34.447963+00:00", "kind": "site_page", "missing": false, "url": "https://overreacted.io/how-does-setstate-know-what-to-do"}, {"content_hash": "04e340099a5a4b73230d66a7c6696f1b136074635ac3c62ab59d75370f76f414", "fetched_at": "2026-08-29T08:34:34.450195+00:00", "kind": "site_page", "missing": false, "url": "https://overreacted.io/how-does-react-tell-a-class-from-a-function"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:57.942657+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:57.942657+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:38:55.456972+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "409ce77823e04bac408a12fb22732ee0a33d5bebe4d7b7cd4419dff6590490a3", "fetched_at": "2026-08-29T08:34:34.436566+00:00", "kind": "homepage", "missing": false, "url": "https://overreacted.io"}, {"content_hash": "937909774a05af6ae39d1620a9875e097aa351d5c840b01ee9aa27cbfc25d0c4", "fetched_at": "2026-08-29T08:34:34.447963+00:00", "kind": "site_page", "missing": false, "url": "https://overreacted.io/how-does-setstate-know-what-to-do"}, {"content_hash": "04e340099a5a4b73230d66a7c6696f1b136074635ac3c62ab59d75370f76f414", "fetched_at": "2026-08-29T08:34:34.450195+00:00", "kind": "site_page", "missing": false, "url": "https://overreacted.io/how-does-react-tell-a-class-from-a-function"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:57.942657+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:57.942657+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:57.942657+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:38:55.456972+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "409ce77823e04bac408a12fb22732ee0a33d5bebe4d7b7cd4419dff6590490a3", "fetched_at": "2026-08-29T08:34:34.436566+00:00", "kind": "homepage", "missing": false, "url": "https://overreacted.io"}, {"content_hash": "937909774a05af6ae39d1620a9875e097aa351d5c840b01ee9aa27cbfc25d0c4", "fetched_at": "2026-08-29T08:34:34.447963+00:00", "kind": "site_page", "missing": false, "url": "https://overreacted.io/how-does-setstate-know-what-to-do"}, {"content_hash": "04e340099a5a4b73230d66a7c6696f1b136074635ac3c62ab59d75370f76f414", "fetched_at": "2026-08-29T08:34:34.450195+00:00", "kind": "site_page", "missing": false, "url": "https://overreacted.io/how-does-react-tell-a-class-from-a-function"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:57.942657+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:57.942657+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:38:55.456972+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "409ce77823e04bac408a12fb22732ee0a33d5bebe4d7b7cd4419dff6590490a3", "fetched_at": "2026-08-29T08:34:34.436566+00:00", "kind": "homepage", "missing": false, "url": "https://overreacted.io"}, {"content_hash": "937909774a05af6ae39d1620a9875e097aa351d5c840b01ee9aa27cbfc25d0c4", "fetched_at": "2026-08-29T08:34:34.447963+00:00", "kind": "site_page", "missing": false, "url": "https://overreacted.io/how-does-setstate-know-what-to-do"}, {"content_hash": "04e340099a5a4b73230d66a7c6696f1b136074635ac3c62ab59d75370f76f414", "fetched_at": "2026-08-29T08:34:34.450195+00:00", "kind": "site_page", "missing": false, "url": "https://overreacted.io/how-does-react-tell-a-class-from-a-function"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:38:55.456972+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "409ce77823e04bac408a12fb22732ee0a33d5bebe4d7b7cd4419dff6590490a3", "fetched_at": "2026-08-29T08:34:34.436566+00:00", "kind": "homepage", "missing": false, "url": "https://overreacted.io"}, {"content_hash": "937909774a05af6ae39d1620a9875e097aa351d5c840b01ee9aa27cbfc25d0c4", "fetched_at": "2026-08-29T08:34:34.447963+00:00", "kind": "site_page", "missing": false, "url": "https://overreacted.io/how-does-setstate-know-what-to-do"}, {"content_hash": "04e340099a5a4b73230d66a7c6696f1b136074635ac3c62ab59d75370f76f414", "fetched_at": "2026-08-29T08:34:34.450195+00:00", "kind": "site_page", "missing": false, "url": "https://overreacted.io/how-does-react-tell-a-class-from-a-function"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:38:55.456972+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "409ce77823e04bac408a12fb22732ee0a33d5bebe4d7b7cd4419dff6590490a3", "fetched_at": "2026-08-29T08:34:34.436566+00:00", "kind": "homepage", "missing": false, "url": "https://overreacted.io"}, {"content_hash": "937909774a05af6ae39d1620a9875e097aa351d5c840b01ee9aa27cbfc25d0c4", "fetched_at": "2026-08-29T08:34:34.447963+00:00", "kind": "site_page", "missing": false, "url": "https://overreacted.io/how-does-setstate-know-what-to-do"}, {"content_hash": "04e340099a5a4b73230d66a7c6696f1b136074635ac3c62ab59d75370f76f414", "fetched_at": "2026-08-29T08:34:34.450195+00:00", "kind": "site_page", "missing": false, "url": "https://overreacted.io/how-does-react-tell-a-class-from-a-function"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:38:55.456972+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "409ce77823e04bac408a12fb22732ee0a33d5bebe4d7b7cd4419dff6590490a3", "fetched_at": "2026-08-29T08:34:34.436566+00:00", "kind": "homepage", "missing": false, "url": "https://overreacted.io"}, {"content_hash": "937909774a05af6ae39d1620a9875e097aa351d5c840b01ee9aa27cbfc25d0c4", "fetched_at": "2026-08-29T08:34:34.447963+00:00", "kind": "site_page", "missing": false, "url": "https://overreacted.io/how-does-setstate-know-what-to-do"}, {"content_hash": "04e340099a5a4b73230d66a7c6696f1b136074635ac3c62ab59d75370f76f414", "fetched_at": "2026-08-29T08:34:34.450195+00:00", "kind": "site_page", "missing": false, "url": "https://overreacted.io/how-does-react-tell-a-class-from-a-function"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 90, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases", "no_license", "no_readme"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2833, "days_push": 60, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 73, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}