{"adoption": {"forks": 137, "observed_at": "2026-08-28T04:07:02.144677+00:00", "stars": 2575}, "canonical_url": "https://ross.abutalabs.com/products/landscapist", "card": {"archived": false, "artifact_type": "library", "description": "🌻 A pluggable, lightweight, highly optimized Jetpack Compose and Kotlin Multiplatform image loading library that fetches and displays network images.", "domain": ["mobile-development", "frontend", "cross-platform"], "enriched": true, "function": ["image-processing", "ui-components"], "health_score": 99, "homepage": "https://skydoves.github.io/landscapist/", "language": "Kotlin", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["skydoves/landscapist"], "name": "skydoves/landscapist", "platform": ["jvm", "cross-platform"], "pushed_at": "2026-08-26T21:16:16+00:00", "repo": "skydoves/landscapist", "stars": 2575, "tags": ["jetpack-compose", "kotlin-multiplatform", "image-loading", "glide", "coil", "fresco", "network-images", "android"], "topics": ["android", "kotlin", "compose", "jetpack-compose", "image", "image-loading", "library", "skydoves", "compose-glide", "landscapist", "network", "compose-coil", "compose-fresco"], "urls": [], "use_cases": ["load and display network images in Jetpack Compose", "show images with placeholder and crossfade animation in Compose", "use a shared image loading library across Kotlin Multiplatform apps", "swap between Glide, Coil, or Fresco backends in Compose", "apply blur transformation to images in Compose", "trace image loading states in a Compose app"], "what_it_is": "Landscapist is a pluggable, highly optimized image loading library for Jetpack Compose and Kotlin Multiplatform that fetches and displays network images. It integrates with Glide, Coil, and Fresco and offers loading state tracing, placeholders, and animations like crossfade, blur, and circular reveal.", "when_to_avoid": ["you're not using Jetpack Compose or Kotlin Multiplatform (e.g., classic Android Views)", "you need a general-purpose image loader outside the Compose ecosystem", "you require backends other than Glide, Coil, or Fresco"], "when_to_choose": ["you're building an Android or Kotlin Multiplatform UI with Jetpack Compose and need optimized network image loading", "you want pluggable image-loading behaviors, plugins, and animations without writing boilerplate", "you need recomposition-optimized composables (Restartable/Skippable) for image performance"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/landscapist", "repo": "skydoves/landscapist", "role": "main", "score": 96}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:02.144677+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:22:44.994151+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aa07f253ce2927419ccf82d8606e4a23a2996c1acfedae968acb8cae7f97f45b", "fetched_at": "2026-08-28T04:07:02.144677+00:00", "kind": "readme", "missing": false, "url": "https://github.com/skydoves/landscapist"}, {"content_hash": "357bd0d63b261751ba86915f389bad8043903dd6ea30b1cd64c97696c2cc61de", "fetched_at": "2026-08-29T10:05:21.209353+00:00", "kind": "homepage", "missing": false, "url": "https://skydoves.github.io/landscapist/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:02.144677+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:22:44.994151+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aa07f253ce2927419ccf82d8606e4a23a2996c1acfedae968acb8cae7f97f45b", "fetched_at": "2026-08-28T04:07:02.144677+00:00", "kind": "readme", "missing": false, "url": "https://github.com/skydoves/landscapist"}, {"content_hash": "357bd0d63b261751ba86915f389bad8043903dd6ea30b1cd64c97696c2cc61de", "fetched_at": "2026-08-29T10:05:21.209353+00:00", "kind": "homepage", "missing": false, "url": "https://skydoves.github.io/landscapist/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:22:44.994151+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aa07f253ce2927419ccf82d8606e4a23a2996c1acfedae968acb8cae7f97f45b", "fetched_at": "2026-08-28T04:07:02.144677+00:00", "kind": "readme", "missing": false, "url": "https://github.com/skydoves/landscapist"}, {"content_hash": "357bd0d63b261751ba86915f389bad8043903dd6ea30b1cd64c97696c2cc61de", "fetched_at": "2026-08-29T10:05:21.209353+00:00", "kind": "homepage", "missing": false, "url": "https://skydoves.github.io/landscapist/"}], "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:07:02.144677+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:02.144677+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:02.144677+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:22:44.994151+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aa07f253ce2927419ccf82d8606e4a23a2996c1acfedae968acb8cae7f97f45b", "fetched_at": "2026-08-28T04:07:02.144677+00:00", "kind": "readme", "missing": false, "url": "https://github.com/skydoves/landscapist"}, {"content_hash": "357bd0d63b261751ba86915f389bad8043903dd6ea30b1cd64c97696c2cc61de", "fetched_at": "2026-08-29T10:05:21.209353+00:00", "kind": "homepage", "missing": false, "url": "https://skydoves.github.io/landscapist/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:02.144677+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:02.144677+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:22:44.994151+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aa07f253ce2927419ccf82d8606e4a23a2996c1acfedae968acb8cae7f97f45b", "fetched_at": "2026-08-28T04:07:02.144677+00:00", "kind": "readme", "missing": false, "url": "https://github.com/skydoves/landscapist"}, {"content_hash": "357bd0d63b261751ba86915f389bad8043903dd6ea30b1cd64c97696c2cc61de", "fetched_at": "2026-08-29T10:05:21.209353+00:00", "kind": "homepage", "missing": false, "url": "https://skydoves.github.io/landscapist/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:02.144677+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:02.144677+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:02.144677+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:22:44.994151+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aa07f253ce2927419ccf82d8606e4a23a2996c1acfedae968acb8cae7f97f45b", "fetched_at": "2026-08-28T04:07:02.144677+00:00", "kind": "readme", "missing": false, "url": "https://github.com/skydoves/landscapist"}, {"content_hash": "357bd0d63b261751ba86915f389bad8043903dd6ea30b1cd64c97696c2cc61de", "fetched_at": "2026-08-29T10:05:21.209353+00:00", "kind": "homepage", "missing": false, "url": "https://skydoves.github.io/landscapist/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:02.144677+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:02.144677+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:22:44.994151+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aa07f253ce2927419ccf82d8606e4a23a2996c1acfedae968acb8cae7f97f45b", "fetched_at": "2026-08-28T04:07:02.144677+00:00", "kind": "readme", "missing": false, "url": "https://github.com/skydoves/landscapist"}, {"content_hash": "357bd0d63b261751ba86915f389bad8043903dd6ea30b1cd64c97696c2cc61de", "fetched_at": "2026-08-29T10:05:21.209353+00:00", "kind": "homepage", "missing": false, "url": "https://skydoves.github.io/landscapist/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:22:44.994151+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aa07f253ce2927419ccf82d8606e4a23a2996c1acfedae968acb8cae7f97f45b", "fetched_at": "2026-08-28T04:07:02.144677+00:00", "kind": "readme", "missing": false, "url": "https://github.com/skydoves/landscapist"}, {"content_hash": "357bd0d63b261751ba86915f389bad8043903dd6ea30b1cd64c97696c2cc61de", "fetched_at": "2026-08-29T10:05:21.209353+00:00", "kind": "homepage", "missing": false, "url": "https://skydoves.github.io/landscapist/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:22:44.994151+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aa07f253ce2927419ccf82d8606e4a23a2996c1acfedae968acb8cae7f97f45b", "fetched_at": "2026-08-28T04:07:02.144677+00:00", "kind": "readme", "missing": false, "url": "https://github.com/skydoves/landscapist"}, {"content_hash": "357bd0d63b261751ba86915f389bad8043903dd6ea30b1cd64c97696c2cc61de", "fetched_at": "2026-08-29T10:05:21.209353+00:00", "kind": "homepage", "missing": false, "url": "https://skydoves.github.io/landscapist/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:22:44.994151+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aa07f253ce2927419ccf82d8606e4a23a2996c1acfedae968acb8cae7f97f45b", "fetched_at": "2026-08-28T04:07:02.144677+00:00", "kind": "readme", "missing": false, "url": "https://github.com/skydoves/landscapist"}, {"content_hash": "357bd0d63b261751ba86915f389bad8043903dd6ea30b1cd64c97696c2cc61de", "fetched_at": "2026-08-29T10:05:21.209353+00:00", "kind": "homepage", "missing": false, "url": "https://skydoves.github.io/landscapist/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 91}, "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": 2169, "days_push": 7, "days_rel": 63, "gap_med": 13, "n_releases_24m": 34}, "score": 96, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}