{"adoption": {"forks": 136, "observed_at": "2026-08-28T04:04:33.993275+00:00", "stars": 1381}, "canonical_url": "https://ross.abutalabs.com/products/yalljs", "card": {"archived": true, "artifact_type": "library", "description": "A fast, flexible, and small SEO-friendly lazy loader.", "domain": ["web-development", "frontend", "performance"], "enriched": true, "function": ["image-processing", "web-framework", "developer-tools"], "health_score": 10, "homepage": null, "language": "JavaScript", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["malchata/yall.js"], "name": "malchata/yall.js", "platform": ["browser"], "pushed_at": "2026-05-30T07:40:38+00:00", "repo": "malchata/yall.js", "stars": 1381, "tags": ["lazy-loading", "intersection-observer", "video", "background-images", "webperf", "seo-friendly", "nodejs"], "topics": ["lazy-loading", "webperf", "lazyload-script", "lazyloading", "lazyload", "lazy-load", "performance", "image", "autoplay", "background", "poster", "video"], "urls": [], "use_cases": ["lazy load autoplaying videos that replace animated gifs", "lazy load video poster images", "lazy load css background images", "improve page load performance and web vitals", "lazy load elements added dynamically in a single page app", "seo-friendly lazy loading for images and video"], "what_it_is": "yall.js is a small, SEO-friendly lazy loading library for the browser that handles autoplaying <video> elements, video poster images, and CSS background images using Intersection Observer. Version 4 focuses on cases not covered by native lazy loading, and can watch the DOM via Mutation Observer for dynamically added elements in single-page applications.", "when_to_avoid": ["you only need to lazy load <img>, <picture>, or <iframe> elements - use native loading=\"lazy\" instead", "you need a full-featured lazy loader supporting all element types as in older versions", "your target browsers lack Intersection Observer support and you can't polyfill"], "when_to_choose": ["you need to lazy load videos or css background images that native lazy loading doesn't cover", "you want a tiny, dependency-free script with Intersection Observer support", "your SPA injects lazy-loadable elements after initial page load"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/yalljs", "repo": "malchata/yall.js", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:33.993275+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:40:11.390033+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cff841a2ffe45261c8b7e650c2635b16dba6b591b9ed5f138bb50bde6d582506", "fetched_at": "2026-08-28T04:04:33.993275+00:00", "kind": "readme", "missing": false, "url": "https://github.com/malchata/yall.js"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:33.993275+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:40:11.390033+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cff841a2ffe45261c8b7e650c2635b16dba6b591b9ed5f138bb50bde6d582506", "fetched_at": "2026-08-28T04:04:33.993275+00:00", "kind": "readme", "missing": false, "url": "https://github.com/malchata/yall.js"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:40:11.390033+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cff841a2ffe45261c8b7e650c2635b16dba6b591b9ed5f138bb50bde6d582506", "fetched_at": "2026-08-28T04:04:33.993275+00:00", "kind": "readme", "missing": false, "url": "https://github.com/malchata/yall.js"}], "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:33.993275+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:33.993275+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:33.993275+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:40:11.390033+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cff841a2ffe45261c8b7e650c2635b16dba6b591b9ed5f138bb50bde6d582506", "fetched_at": "2026-08-28T04:04:33.993275+00:00", "kind": "readme", "missing": false, "url": "https://github.com/malchata/yall.js"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:33.993275+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:33.993275+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:40:11.390033+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cff841a2ffe45261c8b7e650c2635b16dba6b591b9ed5f138bb50bde6d582506", "fetched_at": "2026-08-28T04:04:33.993275+00:00", "kind": "readme", "missing": false, "url": "https://github.com/malchata/yall.js"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:33.993275+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:33.993275+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:33.993275+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:40:11.390033+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cff841a2ffe45261c8b7e650c2635b16dba6b591b9ed5f138bb50bde6d582506", "fetched_at": "2026-08-28T04:04:33.993275+00:00", "kind": "readme", "missing": false, "url": "https://github.com/malchata/yall.js"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:33.993275+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:33.993275+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:40:11.390033+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cff841a2ffe45261c8b7e650c2635b16dba6b591b9ed5f138bb50bde6d582506", "fetched_at": "2026-08-28T04:04:33.993275+00:00", "kind": "readme", "missing": false, "url": "https://github.com/malchata/yall.js"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:40:11.390033+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cff841a2ffe45261c8b7e650c2635b16dba6b591b9ed5f138bb50bde6d582506", "fetched_at": "2026-08-28T04:04:33.993275+00:00", "kind": "readme", "missing": false, "url": "https://github.com/malchata/yall.js"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:40:11.390033+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cff841a2ffe45261c8b7e650c2635b16dba6b591b9ed5f138bb50bde6d582506", "fetched_at": "2026-08-28T04:04:33.993275+00:00", "kind": "readme", "missing": false, "url": "https://github.com/malchata/yall.js"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:40:11.390033+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "cff841a2ffe45261c8b7e650c2635b16dba6b591b9ed5f138bb50bde6d582506", "fetched_at": "2026-08-28T04:04:33.993275+00:00", "kind": "readme", "missing": false, "url": "https://github.com/malchata/yall.js"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 85, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["archived"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3555, "days_push": 95, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 10, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}