{"adoption": {"forks": 353, "observed_at": "2026-08-28T04:09:43.488551+00:00", "stars": 6451}, "canonical_url": "https://ross.abutalabs.com/products/react-virtuoso", "card": {"archived": false, "artifact_type": "library", "description": "The most powerful virtual list component for React", "domain": ["frontend", "web-development", "performance"], "enriched": true, "function": ["ui-components", "frontend-framework"], "health_score": 99, "homepage": "https://virtuoso.dev", "language": "TypeScript", "license": null, "license_family": "other", "maturity": "active", "member_repos": ["petyosi/react-virtuoso"], "name": "petyosi/react-virtuoso", "platform": ["cross-platform"], "pushed_at": "2026-08-17T08:15:23+00:00", "repo": "petyosi/react-virtuoso", "stars": 6451, "tags": ["react", "virtualization", "virtual-list", "virtual-scrolling", "chat-ui", "infinite-scroll", "typescript", "component-library", "web-server", "nodejs"], "topics": ["react", "virtualizedlist", "component-library", "feed", "chat", "virtual", "hacktoberfest"], "urls": [], "use_cases": ["render large lists with thousands of items in react", "virtualized chat message list with auto-scroll", "infinite scrolling feed with load more", "grouped list with sticky headers", "virtualized data table with sticky columns", "masonry image gallery layout", "variable height items without hardcoding heights"], "what_it_is": "React Virtuoso is a React component library for virtualized rendering of lists, grids, tables, masonry layouts, and chat message lists. It handles variable-sized items automatically without manual height measurements and supports features like grouped sticky headers, endless scrolling, and reverse-scrolling chat interfaces.", "when_to_avoid": ["you're not using React", "you only render a handful of items and virtualization adds unnecessary complexity", "you need the commercial VirtuosoMessageList chat component without a license budget", "you need a fully MIT-licensed chat message list component"], "when_to_choose": ["you need to render very long or unbounded lists in React with smooth performance", "item heights are unknown or variable", "you're building a chat UI, feed, or grouped list with sticky headers", "you want lists, grids, tables, and masonry from one library"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/react-virtuoso", "repo": "petyosi/react-virtuoso", "role": "main", "score": 98}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:43.488551+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:44:39.813618+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1bc941b85377ea7751186bd1a8eedd85dff1cb53de5377f11da8ab07c4631ddc", "fetched_at": "2026-08-28T04:09:43.488551+00:00", "kind": "readme", "missing": false, "url": "https://github.com/petyosi/react-virtuoso"}, {"content_hash": "a0d76100877c090ff5075b97feb1f7ea4dd5e2cc191853776ea98d67a182c0ad", "fetched_at": "2026-08-29T08:41:42.413479+00:00", "kind": "homepage", "missing": false, "url": "https://virtuoso.dev"}, {"content_hash": "8e0b02bcec271e92b77d79b4e9f85dffde44246c22306630dcf2d82452fbecca", "fetched_at": "2026-08-29T08:41:42.422611+00:00", "kind": "site_page", "missing": false, "url": "https://virtuoso.dev/pricing"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:43.488551+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:44:39.813618+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1bc941b85377ea7751186bd1a8eedd85dff1cb53de5377f11da8ab07c4631ddc", "fetched_at": "2026-08-28T04:09:43.488551+00:00", "kind": "readme", "missing": false, "url": "https://github.com/petyosi/react-virtuoso"}, {"content_hash": "a0d76100877c090ff5075b97feb1f7ea4dd5e2cc191853776ea98d67a182c0ad", "fetched_at": "2026-08-29T08:41:42.413479+00:00", "kind": "homepage", "missing": false, "url": "https://virtuoso.dev"}, {"content_hash": "8e0b02bcec271e92b77d79b4e9f85dffde44246c22306630dcf2d82452fbecca", "fetched_at": "2026-08-29T08:41:42.422611+00:00", "kind": "site_page", "missing": false, "url": "https://virtuoso.dev/pricing"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:44:39.813618+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1bc941b85377ea7751186bd1a8eedd85dff1cb53de5377f11da8ab07c4631ddc", "fetched_at": "2026-08-28T04:09:43.488551+00:00", "kind": "readme", "missing": false, "url": "https://github.com/petyosi/react-virtuoso"}, {"content_hash": "a0d76100877c090ff5075b97feb1f7ea4dd5e2cc191853776ea98d67a182c0ad", "fetched_at": "2026-08-29T08:41:42.413479+00:00", "kind": "homepage", "missing": false, "url": "https://virtuoso.dev"}, {"content_hash": "8e0b02bcec271e92b77d79b4e9f85dffde44246c22306630dcf2d82452fbecca", "fetched_at": "2026-08-29T08:41:42.422611+00:00", "kind": "site_page", "missing": false, "url": "https://virtuoso.dev/pricing"}], "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:43.488551+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:43.488551+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:43.488551+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:44:39.813618+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1bc941b85377ea7751186bd1a8eedd85dff1cb53de5377f11da8ab07c4631ddc", "fetched_at": "2026-08-28T04:09:43.488551+00:00", "kind": "readme", "missing": false, "url": "https://github.com/petyosi/react-virtuoso"}, {"content_hash": "a0d76100877c090ff5075b97feb1f7ea4dd5e2cc191853776ea98d67a182c0ad", "fetched_at": "2026-08-29T08:41:42.413479+00:00", "kind": "homepage", "missing": false, "url": "https://virtuoso.dev"}, {"content_hash": "8e0b02bcec271e92b77d79b4e9f85dffde44246c22306630dcf2d82452fbecca", "fetched_at": "2026-08-29T08:41:42.422611+00:00", "kind": "site_page", "missing": false, "url": "https://virtuoso.dev/pricing"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:43.488551+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:43.488551+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:44:39.813618+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1bc941b85377ea7751186bd1a8eedd85dff1cb53de5377f11da8ab07c4631ddc", "fetched_at": "2026-08-28T04:09:43.488551+00:00", "kind": "readme", "missing": false, "url": "https://github.com/petyosi/react-virtuoso"}, {"content_hash": "a0d76100877c090ff5075b97feb1f7ea4dd5e2cc191853776ea98d67a182c0ad", "fetched_at": "2026-08-29T08:41:42.413479+00:00", "kind": "homepage", "missing": false, "url": "https://virtuoso.dev"}, {"content_hash": "8e0b02bcec271e92b77d79b4e9f85dffde44246c22306630dcf2d82452fbecca", "fetched_at": "2026-08-29T08:41:42.422611+00:00", "kind": "site_page", "missing": false, "url": "https://virtuoso.dev/pricing"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:43.488551+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:43.488551+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:43.488551+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:44:39.813618+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1bc941b85377ea7751186bd1a8eedd85dff1cb53de5377f11da8ab07c4631ddc", "fetched_at": "2026-08-28T04:09:43.488551+00:00", "kind": "readme", "missing": false, "url": "https://github.com/petyosi/react-virtuoso"}, {"content_hash": "a0d76100877c090ff5075b97feb1f7ea4dd5e2cc191853776ea98d67a182c0ad", "fetched_at": "2026-08-29T08:41:42.413479+00:00", "kind": "homepage", "missing": false, "url": "https://virtuoso.dev"}, {"content_hash": "8e0b02bcec271e92b77d79b4e9f85dffde44246c22306630dcf2d82452fbecca", "fetched_at": "2026-08-29T08:41:42.422611+00:00", "kind": "site_page", "missing": false, "url": "https://virtuoso.dev/pricing"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:43.488551+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:43.488551+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:44:39.813618+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1bc941b85377ea7751186bd1a8eedd85dff1cb53de5377f11da8ab07c4631ddc", "fetched_at": "2026-08-28T04:09:43.488551+00:00", "kind": "readme", "missing": false, "url": "https://github.com/petyosi/react-virtuoso"}, {"content_hash": "a0d76100877c090ff5075b97feb1f7ea4dd5e2cc191853776ea98d67a182c0ad", "fetched_at": "2026-08-29T08:41:42.413479+00:00", "kind": "homepage", "missing": false, "url": "https://virtuoso.dev"}, {"content_hash": "8e0b02bcec271e92b77d79b4e9f85dffde44246c22306630dcf2d82452fbecca", "fetched_at": "2026-08-29T08:41:42.422611+00:00", "kind": "site_page", "missing": false, "url": "https://virtuoso.dev/pricing"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:44:39.813618+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1bc941b85377ea7751186bd1a8eedd85dff1cb53de5377f11da8ab07c4631ddc", "fetched_at": "2026-08-28T04:09:43.488551+00:00", "kind": "readme", "missing": false, "url": "https://github.com/petyosi/react-virtuoso"}, {"content_hash": "a0d76100877c090ff5075b97feb1f7ea4dd5e2cc191853776ea98d67a182c0ad", "fetched_at": "2026-08-29T08:41:42.413479+00:00", "kind": "homepage", "missing": false, "url": "https://virtuoso.dev"}, {"content_hash": "8e0b02bcec271e92b77d79b4e9f85dffde44246c22306630dcf2d82452fbecca", "fetched_at": "2026-08-29T08:41:42.422611+00:00", "kind": "site_page", "missing": false, "url": "https://virtuoso.dev/pricing"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:44:39.813618+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1bc941b85377ea7751186bd1a8eedd85dff1cb53de5377f11da8ab07c4631ddc", "fetched_at": "2026-08-28T04:09:43.488551+00:00", "kind": "readme", "missing": false, "url": "https://github.com/petyosi/react-virtuoso"}, {"content_hash": "a0d76100877c090ff5075b97feb1f7ea4dd5e2cc191853776ea98d67a182c0ad", "fetched_at": "2026-08-29T08:41:42.413479+00:00", "kind": "homepage", "missing": false, "url": "https://virtuoso.dev"}, {"content_hash": "8e0b02bcec271e92b77d79b4e9f85dffde44246c22306630dcf2d82452fbecca", "fetched_at": "2026-08-29T08:41:42.422611+00:00", "kind": "site_page", "missing": false, "url": "https://virtuoso.dev/pricing"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:44:39.813618+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1bc941b85377ea7751186bd1a8eedd85dff1cb53de5377f11da8ab07c4631ddc", "fetched_at": "2026-08-28T04:09:43.488551+00:00", "kind": "readme", "missing": false, "url": "https://github.com/petyosi/react-virtuoso"}, {"content_hash": "a0d76100877c090ff5075b97feb1f7ea4dd5e2cc191853776ea98d67a182c0ad", "fetched_at": "2026-08-29T08:41:42.413479+00:00", "kind": "homepage", "missing": false, "url": "https://virtuoso.dev"}, {"content_hash": "8e0b02bcec271e92b77d79b4e9f85dffde44246c22306630dcf2d82452fbecca", "fetched_at": "2026-08-29T08:41:42.422611+00:00", "kind": "site_page", "missing": false, "url": "https://virtuoso.dev/pricing"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 100, "rhythm": 98}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2679, "days_push": 16, "days_rel": 16, "gap_med": 3.5, "n_releases_24m": 59}, "score": 98, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}