{"adoption": {"forks": 39, "observed_at": "2026-08-28T04:04:45.754552+00:00", "stars": 1450}, "canonical_url": "https://ross.abutalabs.com/products/react-cool-inview", "card": {"archived": false, "artifact_type": "library", "description": "😎 🖥️ React hook to monitor an element enters or leaves the viewport (or another element).", "domain": ["frontend", "web-development", "performance"], "enriched": true, "function": ["ui-components", "animation", "image-processing"], "health_score": 20, "homepage": "https://react-cool-inview.netlify.app", "language": "TypeScript", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["wellyshen/react-cool-inview"], "name": "wellyshen/react-cool-inview", "platform": ["browser", "cross-platform"], "pushed_at": "2023-08-12T16:39:11+00:00", "repo": "wellyshen/react-cool-inview", "stars": 1450, "tags": ["react-hook", "intersection-observer", "viewport-detection", "lazy-loading", "infinite-scroll", "scroll-tracking", "typescript", "nodejs"], "topics": ["react", "hook", "inview", "viewport", "visibility", "lazy-loading", "scrolling", "animations", "impressions", "intersection-observer", "monitor", "scroll-direction", "performance", "typescript", "component"], "urls": [], "use_cases": ["lazy load images when they scroll into view", "implement infinite scroll in react", "trigger animations when element enters viewport", "track ad impressions in react app", "detect scroll direction in react", "monitor element visibility with intersection observer"], "what_it_is": "A lightweight React hook and component that monitors when elements enter or leave the viewport using the Intersection Observer API. It supports use cases like lazy-loading images and videos, infinite scroll, triggering animations, tracking impressions, and detecting scroll direction.", "when_to_avoid": ["you are not using React and need a vanilla Intersection Observer wrapper", "you need scroll position or parallax effects rather than enter/leave visibility events", "you require active maintenance and frequent updates, as the latest release was in 2023"], "when_to_choose": ["you need performant viewport visibility detection in a React app without blocking the main thread", "you want a flexible hook-based API for lazy-loading, infinite scroll, or impression tracking", "you need scroll direction detection alongside visibility monitoring"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/react-cool-inview", "repo": "wellyshen/react-cool-inview", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:45.754552+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:35:58.061407+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8918ff00e40af208c32d20353f3c46bb854624507c42389003752245f8ef4811", "fetched_at": "2026-08-28T04:04:45.754552+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wellyshen/react-cool-inview"}, {"content_hash": "147d133e6c275f16f0db7bad244386abae8883fb2e0302140269d1000c03a912", "fetched_at": "2026-08-29T11:45:46.109248+00:00", "kind": "homepage", "missing": false, "url": "https://react-cool-inview.netlify.app"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:45.754552+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:35:58.061407+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8918ff00e40af208c32d20353f3c46bb854624507c42389003752245f8ef4811", "fetched_at": "2026-08-28T04:04:45.754552+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wellyshen/react-cool-inview"}, {"content_hash": "147d133e6c275f16f0db7bad244386abae8883fb2e0302140269d1000c03a912", "fetched_at": "2026-08-29T11:45:46.109248+00:00", "kind": "homepage", "missing": false, "url": "https://react-cool-inview.netlify.app"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:35:58.061407+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8918ff00e40af208c32d20353f3c46bb854624507c42389003752245f8ef4811", "fetched_at": "2026-08-28T04:04:45.754552+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wellyshen/react-cool-inview"}, {"content_hash": "147d133e6c275f16f0db7bad244386abae8883fb2e0302140269d1000c03a912", "fetched_at": "2026-08-29T11:45:46.109248+00:00", "kind": "homepage", "missing": false, "url": "https://react-cool-inview.netlify.app"}], "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:45.754552+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:45.754552+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:45.754552+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:35:58.061407+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8918ff00e40af208c32d20353f3c46bb854624507c42389003752245f8ef4811", "fetched_at": "2026-08-28T04:04:45.754552+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wellyshen/react-cool-inview"}, {"content_hash": "147d133e6c275f16f0db7bad244386abae8883fb2e0302140269d1000c03a912", "fetched_at": "2026-08-29T11:45:46.109248+00:00", "kind": "homepage", "missing": false, "url": "https://react-cool-inview.netlify.app"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:45.754552+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:45.754552+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:35:58.061407+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8918ff00e40af208c32d20353f3c46bb854624507c42389003752245f8ef4811", "fetched_at": "2026-08-28T04:04:45.754552+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wellyshen/react-cool-inview"}, {"content_hash": "147d133e6c275f16f0db7bad244386abae8883fb2e0302140269d1000c03a912", "fetched_at": "2026-08-29T11:45:46.109248+00:00", "kind": "homepage", "missing": false, "url": "https://react-cool-inview.netlify.app"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:45.754552+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:45.754552+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:45.754552+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:35:58.061407+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8918ff00e40af208c32d20353f3c46bb854624507c42389003752245f8ef4811", "fetched_at": "2026-08-28T04:04:45.754552+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wellyshen/react-cool-inview"}, {"content_hash": "147d133e6c275f16f0db7bad244386abae8883fb2e0302140269d1000c03a912", "fetched_at": "2026-08-29T11:45:46.109248+00:00", "kind": "homepage", "missing": false, "url": "https://react-cool-inview.netlify.app"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:45.754552+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:45.754552+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:35:58.061407+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8918ff00e40af208c32d20353f3c46bb854624507c42389003752245f8ef4811", "fetched_at": "2026-08-28T04:04:45.754552+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wellyshen/react-cool-inview"}, {"content_hash": "147d133e6c275f16f0db7bad244386abae8883fb2e0302140269d1000c03a912", "fetched_at": "2026-08-29T11:45:46.109248+00:00", "kind": "homepage", "missing": false, "url": "https://react-cool-inview.netlify.app"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:35:58.061407+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8918ff00e40af208c32d20353f3c46bb854624507c42389003752245f8ef4811", "fetched_at": "2026-08-28T04:04:45.754552+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wellyshen/react-cool-inview"}, {"content_hash": "147d133e6c275f16f0db7bad244386abae8883fb2e0302140269d1000c03a912", "fetched_at": "2026-08-29T11:45:46.109248+00:00", "kind": "homepage", "missing": false, "url": "https://react-cool-inview.netlify.app"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:35:58.061407+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8918ff00e40af208c32d20353f3c46bb854624507c42389003752245f8ef4811", "fetched_at": "2026-08-28T04:04:45.754552+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wellyshen/react-cool-inview"}, {"content_hash": "147d133e6c275f16f0db7bad244386abae8883fb2e0302140269d1000c03a912", "fetched_at": "2026-08-29T11:45:46.109248+00:00", "kind": "homepage", "missing": false, "url": "https://react-cool-inview.netlify.app"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:35:58.061407+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8918ff00e40af208c32d20353f3c46bb854624507c42389003752245f8ef4811", "fetched_at": "2026-08-28T04:04:45.754552+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wellyshen/react-cool-inview"}, {"content_hash": "147d133e6c275f16f0db7bad244386abae8883fb2e0302140269d1000c03a912", "fetched_at": "2026-08-29T11:45:46.109248+00:00", "kind": "homepage", "missing": false, "url": "https://react-cool-inview.netlify.app"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2344, "days_push": 1117, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}