{"adoption": {"forks": 1539, "observed_at": "2026-08-28T04:11:01.946091+00:00", "stars": 13068}, "canonical_url": "https://ross.abutalabs.com/products/iglistkit", "card": {"archived": false, "artifact_type": "framework", "description": "A data-driven UICollectionView framework for building fast and flexible lists.", "domain": ["mobile-development", "frontend", "developer-tools"], "enriched": true, "function": ["ui-components", "state-management", "animation"], "health_score": 96, "homepage": "https://instagram.github.io/IGListKit/", "language": "Objective-C", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["Instagram/IGListKit"], "name": "Instagram/IGListKit", "platform": ["cpp"], "pushed_at": "2026-08-19T23:51:03+00:00", "repo": "Instagram/IGListKit", "stars": 13068, "tags": ["uicollectionview", "diffing", "objective-c", "list-ui", "swift-interop", "ios", "mobile", "swift"], "topics": ["uicollectionview", "ios", "objective-c", "diffing", "instagram"], "urls": [], "use_cases": ["build fast scrolling feeds in an iOS app", "update collection view lists without manual batch updates", "render heterogeneous list content with multiple cell types", "diff and animate changes between list data states", "migrate UITableView screens to UICollectionView-based architecture", "build reusable list components for a large iOS codebase"], "what_it_is": "IGListKit is a data-driven UICollectionView framework from Instagram engineering for building fast, flexible list interfaces on iOS and tvOS. It provides a decoupled diffing algorithm so developers never call performBatchUpdates or reloadData manually, with reusable cells and support for multiple data types.", "when_to_avoid": ["you are building for Android, web, or non-Apple platforms", "your UI is simple enough that plain UICollectionView suffices", "you are starting a brand-new SwiftUI project with no UIKit lists", "you need SwiftUI-native list tooling rather than UIKit-based components"], "when_to_choose": ["you are building complex, high-performance list or feed UIs on iOS or tvOS", "you need automatic diffing and animated updates for collection data", "you want an Objective-C framework with full Swift interop", "you need a battle-tested framework used in production at Instagram scale"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/iglistkit", "repo": "Instagram/IGListKit", "role": "main", "score": 81}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:11:01.946091+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:13:33.493894+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5fcf475d6d07b506fcf9526c1b1bc97991e97e263b15e8ac46354aa82d52c5d9", "fetched_at": "2026-08-28T04:11:01.946091+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Instagram/IGListKit"}, {"content_hash": "97d2a3acbdbc39902b409a80fe5f405e9568939c6b4bced8123daa6724c19824", "fetched_at": "2026-08-29T08:09:05.492408+00:00", "kind": "homepage", "missing": false, "url": "https://instagram.github.io/IGListKit/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:11:01.946091+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:13:33.493894+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5fcf475d6d07b506fcf9526c1b1bc97991e97e263b15e8ac46354aa82d52c5d9", "fetched_at": "2026-08-28T04:11:01.946091+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Instagram/IGListKit"}, {"content_hash": "97d2a3acbdbc39902b409a80fe5f405e9568939c6b4bced8123daa6724c19824", "fetched_at": "2026-08-29T08:09:05.492408+00:00", "kind": "homepage", "missing": false, "url": "https://instagram.github.io/IGListKit/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:13:33.493894+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5fcf475d6d07b506fcf9526c1b1bc97991e97e263b15e8ac46354aa82d52c5d9", "fetched_at": "2026-08-28T04:11:01.946091+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Instagram/IGListKit"}, {"content_hash": "97d2a3acbdbc39902b409a80fe5f405e9568939c6b4bced8123daa6724c19824", "fetched_at": "2026-08-29T08:09:05.492408+00:00", "kind": "homepage", "missing": false, "url": "https://instagram.github.io/IGListKit/"}], "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:11:01.946091+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:11:01.946091+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:11:01.946091+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:13:33.493894+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5fcf475d6d07b506fcf9526c1b1bc97991e97e263b15e8ac46354aa82d52c5d9", "fetched_at": "2026-08-28T04:11:01.946091+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Instagram/IGListKit"}, {"content_hash": "97d2a3acbdbc39902b409a80fe5f405e9568939c6b4bced8123daa6724c19824", "fetched_at": "2026-08-29T08:09:05.492408+00:00", "kind": "homepage", "missing": false, "url": "https://instagram.github.io/IGListKit/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:11:01.946091+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:11:01.946091+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:13:33.493894+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5fcf475d6d07b506fcf9526c1b1bc97991e97e263b15e8ac46354aa82d52c5d9", "fetched_at": "2026-08-28T04:11:01.946091+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Instagram/IGListKit"}, {"content_hash": "97d2a3acbdbc39902b409a80fe5f405e9568939c6b4bced8123daa6724c19824", "fetched_at": "2026-08-29T08:09:05.492408+00:00", "kind": "homepage", "missing": false, "url": "https://instagram.github.io/IGListKit/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:11:01.946091+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:11:01.946091+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:11:01.946091+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:13:33.493894+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5fcf475d6d07b506fcf9526c1b1bc97991e97e263b15e8ac46354aa82d52c5d9", "fetched_at": "2026-08-28T04:11:01.946091+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Instagram/IGListKit"}, {"content_hash": "97d2a3acbdbc39902b409a80fe5f405e9568939c6b4bced8123daa6724c19824", "fetched_at": "2026-08-29T08:09:05.492408+00:00", "kind": "homepage", "missing": false, "url": "https://instagram.github.io/IGListKit/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:11:01.946091+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:11:01.946091+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:13:33.493894+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5fcf475d6d07b506fcf9526c1b1bc97991e97e263b15e8ac46354aa82d52c5d9", "fetched_at": "2026-08-28T04:11:01.946091+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Instagram/IGListKit"}, {"content_hash": "97d2a3acbdbc39902b409a80fe5f405e9568939c6b4bced8123daa6724c19824", "fetched_at": "2026-08-29T08:09:05.492408+00:00", "kind": "homepage", "missing": false, "url": "https://instagram.github.io/IGListKit/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:13:33.493894+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5fcf475d6d07b506fcf9526c1b1bc97991e97e263b15e8ac46354aa82d52c5d9", "fetched_at": "2026-08-28T04:11:01.946091+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Instagram/IGListKit"}, {"content_hash": "97d2a3acbdbc39902b409a80fe5f405e9568939c6b4bced8123daa6724c19824", "fetched_at": "2026-08-29T08:09:05.492408+00:00", "kind": "homepage", "missing": false, "url": "https://instagram.github.io/IGListKit/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:13:33.493894+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5fcf475d6d07b506fcf9526c1b1bc97991e97e263b15e8ac46354aa82d52c5d9", "fetched_at": "2026-08-28T04:11:01.946091+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Instagram/IGListKit"}, {"content_hash": "97d2a3acbdbc39902b409a80fe5f405e9568939c6b4bced8123daa6724c19824", "fetched_at": "2026-08-29T08:09:05.492408+00:00", "kind": "homepage", "missing": false, "url": "https://instagram.github.io/IGListKit/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:13:33.493894+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5fcf475d6d07b506fcf9526c1b1bc97991e97e263b15e8ac46354aa82d52c5d9", "fetched_at": "2026-08-28T04:11:01.946091+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Instagram/IGListKit"}, {"content_hash": "97d2a3acbdbc39902b409a80fe5f405e9568939c6b4bced8123daa6724c19824", "fetched_at": "2026-08-29T08:09:05.492408+00:00", "kind": "homepage", "missing": false, "url": "https://instagram.github.io/IGListKit/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 100, "rhythm": 47}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3647, "days_push": 14, "days_rel": 197, "gap_med": 109, "n_releases_24m": 2}, "score": 81, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}