{"adoption": {"forks": 585, "observed_at": "2026-08-28T04:09:29.719684+00:00", "stars": 5798}, "canonical_url": "https://ross.abutalabs.com/products/holder", "card": {"archived": false, "artifact_type": "library", "description": ":city_sunrise: Client-side image placeholders.", "domain": ["web-development", "frontend", "graphics"], "enriched": true, "function": ["image-processing", "ui-components", "developer-tools"], "health_score": 20, "homepage": "http://holderjs.com", "language": "JavaScript", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["imsky/holder"], "name": "imsky/holder", "platform": ["browser"], "pushed_at": "2023-10-07T03:19:47+00:00", "repo": "imsky/holder", "stars": 5798, "tags": ["image-placeholders", "svg", "canvas", "frontend-development", "holderjs", "nodejs", "web-server"], "topics": ["hacktoberfest"], "urls": [], "use_cases": ["render image placeholders in a web page during development", "generate placeholder images with custom size and colors client-side", "replace missing images with SVG placeholders", "create mockup images for Bootstrap layouts", "add placeholder images without extra HTTP requests", "customize placeholder text, fonts, and themes in the browser"], "what_it_is": "Holder.js is a client-side JavaScript library that renders image placeholders in the browser using SVG or Canvas. It generates customizable placeholder images (size, colors, text, themes) directly from URL-based directives without extra network requests.", "when_to_avoid": ["you need real stock or generated photos as placeholders (use a placeholder image service instead)", "you need server-side or build-time image generation", "your project requires actively maintained dependencies with frequent updates"], "when_to_choose": ["you need lightweight, dependency-free image placeholders rendered entirely client-side", "you want URL-driven customization of size, colors, text, and themes", "you are building UI mockups or prototypes that need placeholder images", "you want to avoid 404s and extra network requests for placeholder images"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/holder", "repo": "imsky/holder", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:29.719684+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:52:46.729309+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0064f2e108347e793e8e3646a863cd5d8d0b0659e064fa497a558026b890b2a7", "fetched_at": "2026-08-28T04:09:29.719684+00:00", "kind": "readme", "missing": false, "url": "https://github.com/imsky/holder"}, {"content_hash": "6ab92ae24a8e4f1a0d5e1cd677f44ec5cbf2c2f3b38c045bf7ca094c115a7c61", "fetched_at": "2026-08-29T08:48:12.441602+00:00", "kind": "homepage", "missing": false, "url": "http://holderjs.com"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:29.719684+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:52:46.729309+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0064f2e108347e793e8e3646a863cd5d8d0b0659e064fa497a558026b890b2a7", "fetched_at": "2026-08-28T04:09:29.719684+00:00", "kind": "readme", "missing": false, "url": "https://github.com/imsky/holder"}, {"content_hash": "6ab92ae24a8e4f1a0d5e1cd677f44ec5cbf2c2f3b38c045bf7ca094c115a7c61", "fetched_at": "2026-08-29T08:48:12.441602+00:00", "kind": "homepage", "missing": false, "url": "http://holderjs.com"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:52:46.729309+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0064f2e108347e793e8e3646a863cd5d8d0b0659e064fa497a558026b890b2a7", "fetched_at": "2026-08-28T04:09:29.719684+00:00", "kind": "readme", "missing": false, "url": "https://github.com/imsky/holder"}, {"content_hash": "6ab92ae24a8e4f1a0d5e1cd677f44ec5cbf2c2f3b38c045bf7ca094c115a7c61", "fetched_at": "2026-08-29T08:48:12.441602+00:00", "kind": "homepage", "missing": false, "url": "http://holderjs.com"}], "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:09:29.719684+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:29.719684+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:29.719684+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:52:46.729309+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0064f2e108347e793e8e3646a863cd5d8d0b0659e064fa497a558026b890b2a7", "fetched_at": "2026-08-28T04:09:29.719684+00:00", "kind": "readme", "missing": false, "url": "https://github.com/imsky/holder"}, {"content_hash": "6ab92ae24a8e4f1a0d5e1cd677f44ec5cbf2c2f3b38c045bf7ca094c115a7c61", "fetched_at": "2026-08-29T08:48:12.441602+00:00", "kind": "homepage", "missing": false, "url": "http://holderjs.com"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:29.719684+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:29.719684+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:52:46.729309+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0064f2e108347e793e8e3646a863cd5d8d0b0659e064fa497a558026b890b2a7", "fetched_at": "2026-08-28T04:09:29.719684+00:00", "kind": "readme", "missing": false, "url": "https://github.com/imsky/holder"}, {"content_hash": "6ab92ae24a8e4f1a0d5e1cd677f44ec5cbf2c2f3b38c045bf7ca094c115a7c61", "fetched_at": "2026-08-29T08:48:12.441602+00:00", "kind": "homepage", "missing": false, "url": "http://holderjs.com"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:29.719684+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:29.719684+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:29.719684+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:52:46.729309+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0064f2e108347e793e8e3646a863cd5d8d0b0659e064fa497a558026b890b2a7", "fetched_at": "2026-08-28T04:09:29.719684+00:00", "kind": "readme", "missing": false, "url": "https://github.com/imsky/holder"}, {"content_hash": "6ab92ae24a8e4f1a0d5e1cd677f44ec5cbf2c2f3b38c045bf7ca094c115a7c61", "fetched_at": "2026-08-29T08:48:12.441602+00:00", "kind": "homepage", "missing": false, "url": "http://holderjs.com"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:29.719684+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:29.719684+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:52:46.729309+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0064f2e108347e793e8e3646a863cd5d8d0b0659e064fa497a558026b890b2a7", "fetched_at": "2026-08-28T04:09:29.719684+00:00", "kind": "readme", "missing": false, "url": "https://github.com/imsky/holder"}, {"content_hash": "6ab92ae24a8e4f1a0d5e1cd677f44ec5cbf2c2f3b38c045bf7ca094c115a7c61", "fetched_at": "2026-08-29T08:48:12.441602+00:00", "kind": "homepage", "missing": false, "url": "http://holderjs.com"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:52:46.729309+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0064f2e108347e793e8e3646a863cd5d8d0b0659e064fa497a558026b890b2a7", "fetched_at": "2026-08-28T04:09:29.719684+00:00", "kind": "readme", "missing": false, "url": "https://github.com/imsky/holder"}, {"content_hash": "6ab92ae24a8e4f1a0d5e1cd677f44ec5cbf2c2f3b38c045bf7ca094c115a7c61", "fetched_at": "2026-08-29T08:48:12.441602+00:00", "kind": "homepage", "missing": false, "url": "http://holderjs.com"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:52:46.729309+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0064f2e108347e793e8e3646a863cd5d8d0b0659e064fa497a558026b890b2a7", "fetched_at": "2026-08-28T04:09:29.719684+00:00", "kind": "readme", "missing": false, "url": "https://github.com/imsky/holder"}, {"content_hash": "6ab92ae24a8e4f1a0d5e1cd677f44ec5cbf2c2f3b38c045bf7ca094c115a7c61", "fetched_at": "2026-08-29T08:48:12.441602+00:00", "kind": "homepage", "missing": false, "url": "http://holderjs.com"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:52:46.729309+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0064f2e108347e793e8e3646a863cd5d8d0b0659e064fa497a558026b890b2a7", "fetched_at": "2026-08-28T04:09:29.719684+00:00", "kind": "readme", "missing": false, "url": "https://github.com/imsky/holder"}, {"content_hash": "6ab92ae24a8e4f1a0d5e1cd677f44ec5cbf2c2f3b38c045bf7ca094c115a7c61", "fetched_at": "2026-08-29T08:48:12.441602+00:00", "kind": "homepage", "missing": false, "url": "http://holderjs.com"}], "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": 5195, "days_push": 1061, "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}}