{"adoption": {"forks": 296, "observed_at": "2026-08-28T04:08:13.608346+00:00", "stars": 3674}, "canonical_url": "https://ross.abutalabs.com/products/groupie", "card": {"archived": false, "artifact_type": "library", "description": "Groupie helps you display and manage complex RecyclerView layouts.", "domain": ["mobile-development", "android-tools", "frontend"], "enriched": true, "function": ["ui-components", "state-management"], "health_score": 20, "homepage": null, "language": "Java", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["lisawray/groupie"], "name": "lisawray/groupie", "platform": ["jvm"], "pushed_at": "2023-10-03T04:12:10+00:00", "repo": "lisawray/groupie", "stars": 3674, "tags": ["recyclerview", "android-adapter", "view-binding", "kotlin", "list-ui", "android", "mobile"], "topics": [], "urls": [], "use_cases": ["build complex recyclerview layouts on android", "add headers and footers to list sections", "handle expandable groups in a recyclerview", "reduce recyclerview adapter boilerplate", "manage asynchronous content updates in lists", "use view binding with recyclerview adapters"], "what_it_is": "Groupie is an Android library that simplifies building complex RecyclerView layouts by treating content as logical groups with automatic change notifications. It abstracts away adapter boilerplate like view types, viewholders, and span sizes, with optional view binding and data binding support modules.", "when_to_avoid": ["you need a simple static list where a plain adapter suffices", "your project uses Jetpack Compose instead of RecyclerView", "you need a library under very active development"], "when_to_choose": ["you have complex, nested, or sectioned RecyclerView content", "you want automatic change notifications and diff handling", "you want to eliminate adapter and viewholder boilerplate", "you use view binding or data binding in your Android app"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/groupie", "repo": "lisawray/groupie", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:13.608346+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:31:17.817880+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d15740528b4c72ec9824514bc3a3095dfa0c0a7246e1da5cf20b2a4f015ef6fe", "fetched_at": "2026-08-28T04:08:13.608346+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lisawray/groupie"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:13.608346+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:31:17.817880+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d15740528b4c72ec9824514bc3a3095dfa0c0a7246e1da5cf20b2a4f015ef6fe", "fetched_at": "2026-08-28T04:08:13.608346+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lisawray/groupie"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:31:17.817880+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d15740528b4c72ec9824514bc3a3095dfa0c0a7246e1da5cf20b2a4f015ef6fe", "fetched_at": "2026-08-28T04:08:13.608346+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lisawray/groupie"}], "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:13.608346+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:13.608346+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:13.608346+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:31:17.817880+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d15740528b4c72ec9824514bc3a3095dfa0c0a7246e1da5cf20b2a4f015ef6fe", "fetched_at": "2026-08-28T04:08:13.608346+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lisawray/groupie"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:13.608346+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:13.608346+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:31:17.817880+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d15740528b4c72ec9824514bc3a3095dfa0c0a7246e1da5cf20b2a4f015ef6fe", "fetched_at": "2026-08-28T04:08:13.608346+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lisawray/groupie"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:13.608346+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:13.608346+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:13.608346+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:31:17.817880+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d15740528b4c72ec9824514bc3a3095dfa0c0a7246e1da5cf20b2a4f015ef6fe", "fetched_at": "2026-08-28T04:08:13.608346+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lisawray/groupie"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:13.608346+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:13.608346+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:31:17.817880+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d15740528b4c72ec9824514bc3a3095dfa0c0a7246e1da5cf20b2a4f015ef6fe", "fetched_at": "2026-08-28T04:08:13.608346+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lisawray/groupie"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:31:17.817880+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d15740528b4c72ec9824514bc3a3095dfa0c0a7246e1da5cf20b2a4f015ef6fe", "fetched_at": "2026-08-28T04:08:13.608346+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lisawray/groupie"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:31:17.817880+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d15740528b4c72ec9824514bc3a3095dfa0c0a7246e1da5cf20b2a4f015ef6fe", "fetched_at": "2026-08-28T04:08:13.608346+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lisawray/groupie"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:31:17.817880+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d15740528b4c72ec9824514bc3a3095dfa0c0a7246e1da5cf20b2a4f015ef6fe", "fetched_at": "2026-08-28T04:08:13.608346+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lisawray/groupie"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "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": 3653, "days_push": 1065, "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}}