# ApoorvSaxena/lozad.js

🔥  Highly performant, light ~1kb and configurable lazy loader in pure JS with no dependencies for responsive images, iframes and more

Repository: https://github.com/ApoorvSaxena/lozad.js
Canonical: https://ross.abutalabs.com/products/lozadjs
Homepage: https://apoorv.pro/lozad.js/demo/
Language: JavaScript
License: MIT
License Family: permissive
Topics: performance, javascript, lazy-loading, lazyload, html, images, hacktoberfest
Last push: 2025-11-18T11:58:15+00:00

## Health v2 (maintenance only)
Score: 46/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 52, release rhythm 8, longevity 100
- inputs: {"age_days": 3292, "days_push": 288, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 7494, forks 435 (observed 2026-08-28T04:10:00.314630+00:00)

## 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.

## 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

## 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

## 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

## Facets
- artifact type: library
- maturity: stable
- function: image-processing, developer-tools
- domain: web-development, frontend, performance
- platform: browser
- tags: lazy-loading, intersection-observer, zero-dependency, responsive-images, performance-optimization, nodejs

## Member repositories
- ApoorvSaxena/lozad.js (main) score 46

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:10:00.314630+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T17:37:33.688714+00:00, confidence not recorded.
  - readme: https://github.com/ApoorvSaxena/lozad.js (fetched 2026-08-28T04:10:00.314630+00:00, sha 5eaf6d2d85e2)
  - homepage: https://apoorv.pro/lozad.js/demo/ (fetched 2026-08-29T08:33:02.654285+00:00, sha e14d9b689462)
- Data as of 2026-08-30T08:39:29.467469+00:00.
