{"adoption": {"forks": 435, "observed_at": "2026-08-28T04:10:00.314630+00:00", "stars": 7494}, "canonical_url": "https://ross.abutalabs.com/products/lozadjs", "card": {"archived": false, "artifact_type": "library", "description": "🔥  Highly performant, light ~1kb and configurable lazy loader in pure JS with no dependencies for responsive images, iframes and more", "domain": ["web-development", "frontend", "performance"], "enriched": true, "function": ["image-processing", "developer-tools"], "health_score": 52, "homepage": "https://apoorv.pro/lozad.js/demo/", "language": "JavaScript", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["ApoorvSaxena/lozad.js"], "name": "ApoorvSaxena/lozad.js", "platform": ["browser"], "pushed_at": "2025-11-18T11:58:15+00:00", "repo": "ApoorvSaxena/lozad.js", "stars": 7494, "tags": ["lazy-loading", "intersection-observer", "zero-dependency", "responsive-images", "performance-optimization", "nodejs"], "topics": ["performance", "javascript", "lazy-loading", "lazyload", "html", "images", "hacktoberfest"], "urls": [], "use_cases": ["lazy load images on scroll for faster page loads", "defer loading of iframes and embedded ads", "lazy load videos and audio elements", "implement responsive image loading with picture elements", "lazy load background images including multiple backgrounds", "use low quality image placeholders (LQIP)", "lazy load dynamically added DOM elements"], "what_it_is": "Lozad.js is a lightweight (~1kb) pure JavaScript lazy-loading library with no dependencies, built on the IntersectionObserver and MutationObserver APIs. It lazily loads images, iframes, videos, audios, background images, and responsive images, including dynamically added elements and LQIP placeholders.", "when_to_avoid": ["you need to support very old browsers without IntersectionObserver and cannot polyfill", "you need advanced features like native loading='lazy' alternatives or scroll-position-based fallbacks", "you need a framework-specific lazy loading solution with built-in integration"], "when_to_choose": ["you need a tiny, dependency-free lazy loader for a website", "you want broad element support (img, picture, iframe, video, audio, backgrounds)", "you need to lazy load dynamically inserted content", "browser support for IntersectionObserver is acceptable"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/lozadjs", "repo": "ApoorvSaxena/lozad.js", "role": "main", "score": 46}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:10:00.314630+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:37:33.688714+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5eaf6d2d85e2ad45c97f61ccd76af4b4d86c4ce210ccec1c59270a70396f4d32", "fetched_at": "2026-08-28T04:10:00.314630+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ApoorvSaxena/lozad.js"}, {"content_hash": "e14d9b6894624b6ba955979134d73f2cf23ce70fbb509b25d285e124114f214d", "fetched_at": "2026-08-29T08:33:02.654285+00:00", "kind": "homepage", "missing": false, "url": "https://apoorv.pro/lozad.js/demo/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:10:00.314630+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:37:33.688714+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5eaf6d2d85e2ad45c97f61ccd76af4b4d86c4ce210ccec1c59270a70396f4d32", "fetched_at": "2026-08-28T04:10:00.314630+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ApoorvSaxena/lozad.js"}, {"content_hash": "e14d9b6894624b6ba955979134d73f2cf23ce70fbb509b25d285e124114f214d", "fetched_at": "2026-08-29T08:33:02.654285+00:00", "kind": "homepage", "missing": false, "url": "https://apoorv.pro/lozad.js/demo/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:37:33.688714+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5eaf6d2d85e2ad45c97f61ccd76af4b4d86c4ce210ccec1c59270a70396f4d32", "fetched_at": "2026-08-28T04:10:00.314630+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ApoorvSaxena/lozad.js"}, {"content_hash": "e14d9b6894624b6ba955979134d73f2cf23ce70fbb509b25d285e124114f214d", "fetched_at": "2026-08-29T08:33:02.654285+00:00", "kind": "homepage", "missing": false, "url": "https://apoorv.pro/lozad.js/demo/"}], "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:10:00.314630+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:10:00.314630+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:10:00.314630+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:37:33.688714+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5eaf6d2d85e2ad45c97f61ccd76af4b4d86c4ce210ccec1c59270a70396f4d32", "fetched_at": "2026-08-28T04:10:00.314630+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ApoorvSaxena/lozad.js"}, {"content_hash": "e14d9b6894624b6ba955979134d73f2cf23ce70fbb509b25d285e124114f214d", "fetched_at": "2026-08-29T08:33:02.654285+00:00", "kind": "homepage", "missing": false, "url": "https://apoorv.pro/lozad.js/demo/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:10:00.314630+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:10:00.314630+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:37:33.688714+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5eaf6d2d85e2ad45c97f61ccd76af4b4d86c4ce210ccec1c59270a70396f4d32", "fetched_at": "2026-08-28T04:10:00.314630+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ApoorvSaxena/lozad.js"}, {"content_hash": "e14d9b6894624b6ba955979134d73f2cf23ce70fbb509b25d285e124114f214d", "fetched_at": "2026-08-29T08:33:02.654285+00:00", "kind": "homepage", "missing": false, "url": "https://apoorv.pro/lozad.js/demo/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:10:00.314630+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:10:00.314630+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:10:00.314630+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:37:33.688714+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5eaf6d2d85e2ad45c97f61ccd76af4b4d86c4ce210ccec1c59270a70396f4d32", "fetched_at": "2026-08-28T04:10:00.314630+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ApoorvSaxena/lozad.js"}, {"content_hash": "e14d9b6894624b6ba955979134d73f2cf23ce70fbb509b25d285e124114f214d", "fetched_at": "2026-08-29T08:33:02.654285+00:00", "kind": "homepage", "missing": false, "url": "https://apoorv.pro/lozad.js/demo/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:10:00.314630+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:10:00.314630+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:37:33.688714+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5eaf6d2d85e2ad45c97f61ccd76af4b4d86c4ce210ccec1c59270a70396f4d32", "fetched_at": "2026-08-28T04:10:00.314630+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ApoorvSaxena/lozad.js"}, {"content_hash": "e14d9b6894624b6ba955979134d73f2cf23ce70fbb509b25d285e124114f214d", "fetched_at": "2026-08-29T08:33:02.654285+00:00", "kind": "homepage", "missing": false, "url": "https://apoorv.pro/lozad.js/demo/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:37:33.688714+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5eaf6d2d85e2ad45c97f61ccd76af4b4d86c4ce210ccec1c59270a70396f4d32", "fetched_at": "2026-08-28T04:10:00.314630+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ApoorvSaxena/lozad.js"}, {"content_hash": "e14d9b6894624b6ba955979134d73f2cf23ce70fbb509b25d285e124114f214d", "fetched_at": "2026-08-29T08:33:02.654285+00:00", "kind": "homepage", "missing": false, "url": "https://apoorv.pro/lozad.js/demo/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:37:33.688714+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5eaf6d2d85e2ad45c97f61ccd76af4b4d86c4ce210ccec1c59270a70396f4d32", "fetched_at": "2026-08-28T04:10:00.314630+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ApoorvSaxena/lozad.js"}, {"content_hash": "e14d9b6894624b6ba955979134d73f2cf23ce70fbb509b25d285e124114f214d", "fetched_at": "2026-08-29T08:33:02.654285+00:00", "kind": "homepage", "missing": false, "url": "https://apoorv.pro/lozad.js/demo/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:37:33.688714+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5eaf6d2d85e2ad45c97f61ccd76af4b4d86c4ce210ccec1c59270a70396f4d32", "fetched_at": "2026-08-28T04:10:00.314630+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ApoorvSaxena/lozad.js"}, {"content_hash": "e14d9b6894624b6ba955979134d73f2cf23ce70fbb509b25d285e124114f214d", "fetched_at": "2026-08-29T08:33:02.654285+00:00", "kind": "homepage", "missing": false, "url": "https://apoorv.pro/lozad.js/demo/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 52, "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": 3292, "days_push": 288, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 46, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}