{"adoption": {"forks": 216, "observed_at": "2026-08-28T04:05:16.276355+00:00", "stars": 1646}, "canonical_url": "https://ross.abutalabs.com/products/html-proofer", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Test your rendered HTML files to make sure they're accurate.", "domain": ["web-development", "testing", "developer-tools", "documentation"], "enriched": true, "function": ["testing", "e2e-testing", "developer-tools", "ci-cd"], "health_score": 97, "homepage": null, "language": "Ruby", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["gjtorikian/html-proofer"], "name": "gjtorikian/html-proofer", "platform": ["ruby", "cli", "cross-platform"], "pushed_at": "2026-07-28T16:54:44+00:00", "repo": "gjtorikian/html-proofer", "stars": 1646, "tags": ["html-validation", "link-checker", "static-site", "accessibility-checks", "continuous-integration"], "topics": ["ruby", "link-checker", "html"], "urls": [], "use_cases": ["check my static site for broken links", "validate html output in ci", "find images missing alt tags", "verify external links are not dead", "test generated html files for errors", "check favicon and opengraph metadata validity"], "what_it_is": "HTMLProofer is a Ruby tool that validates rendered HTML files, checking for broken internal and external links, missing image alt tags, invalid scripts, favicons, and OpenGraph metadata. It is designed for use in continuous integration pipelines and offers both a command-line program and a Ruby API.", "when_to_avoid": ["you need subjective checks like spell checking or indentation linting", "your project is not ruby-based and you prefer a non-ruby toolchain", "you need to validate html in a live browser with javascript rendering"], "when_to_choose": ["you generate html output (e.g., a static site or documentation) and want automated quality checks", "you need reliable link and image validation in a ci pipeline", "you want standards-based html checks with low false positives"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/html-proofer", "repo": "gjtorikian/html-proofer", "role": "main", "score": 91}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.276355+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:45:23.131889+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "148c4911780ea0e7049b389f83c75ede5e3d65fa89542ecc8d0bb9c9c5ea2dce", "fetched_at": "2026-08-28T04:05:16.276355+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gjtorikian/html-proofer"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.276355+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:45:23.131889+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "148c4911780ea0e7049b389f83c75ede5e3d65fa89542ecc8d0bb9c9c5ea2dce", "fetched_at": "2026-08-28T04:05:16.276355+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gjtorikian/html-proofer"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:45:23.131889+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "148c4911780ea0e7049b389f83c75ede5e3d65fa89542ecc8d0bb9c9c5ea2dce", "fetched_at": "2026-08-28T04:05:16.276355+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gjtorikian/html-proofer"}], "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:05:16.276355+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.276355+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.276355+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:45:23.131889+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "148c4911780ea0e7049b389f83c75ede5e3d65fa89542ecc8d0bb9c9c5ea2dce", "fetched_at": "2026-08-28T04:05:16.276355+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gjtorikian/html-proofer"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.276355+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.276355+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:45:23.131889+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "148c4911780ea0e7049b389f83c75ede5e3d65fa89542ecc8d0bb9c9c5ea2dce", "fetched_at": "2026-08-28T04:05:16.276355+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gjtorikian/html-proofer"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.276355+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.276355+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.276355+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:45:23.131889+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "148c4911780ea0e7049b389f83c75ede5e3d65fa89542ecc8d0bb9c9c5ea2dce", "fetched_at": "2026-08-28T04:05:16.276355+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gjtorikian/html-proofer"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.276355+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:16.276355+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:45:23.131889+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "148c4911780ea0e7049b389f83c75ede5e3d65fa89542ecc8d0bb9c9c5ea2dce", "fetched_at": "2026-08-28T04:05:16.276355+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gjtorikian/html-proofer"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:45:23.131889+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "148c4911780ea0e7049b389f83c75ede5e3d65fa89542ecc8d0bb9c9c5ea2dce", "fetched_at": "2026-08-28T04:05:16.276355+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gjtorikian/html-proofer"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:45:23.131889+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "148c4911780ea0e7049b389f83c75ede5e3d65fa89542ecc8d0bb9c9c5ea2dce", "fetched_at": "2026-08-28T04:05:16.276355+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gjtorikian/html-proofer"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:45:23.131889+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "148c4911780ea0e7049b389f83c75ede5e3d65fa89542ecc8d0bb9c9c5ea2dce", "fetched_at": "2026-08-28T04:05:16.276355+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gjtorikian/html-proofer"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 94, "longevity": 100, "rhythm": 83}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4935, "days_push": 36, "days_rel": 36, "gap_med": 81, "n_releases_24m": 6}, "score": 91, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}