{"adoption": {"forks": 155, "observed_at": "2026-08-28T04:05:25.879828+00:00", "stars": 1712}, "canonical_url": "https://ross.abutalabs.com/products/sitemapjs", "card": {"archived": false, "artifact_type": "library", "description": "Sitemap-generating framework for node.js", "domain": ["web-development", "developer-tools", "apis"], "enriched": true, "function": ["web-framework", "cli", "serialization", "developer-tools"], "health_score": 96, "homepage": null, "language": "TypeScript", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["ekalinin/sitemap.js"], "name": "ekalinin/sitemap.js", "platform": ["cli", "cross-platform"], "pushed_at": "2026-08-18T06:23:51+00:00", "repo": "ekalinin/sitemap.js", "stars": 1712, "tags": ["sitemap", "sitemap-xml", "seo", "streaming", "esm-only", "typescript", "nodejs"], "topics": ["sitemap", "sitemap-xml", "nodejs", "sitemap-generator"], "urls": [], "use_cases": ["generate a sitemap.xml from a list of urls", "create sitemap index files for sites with more than 50k urls", "serve a dynamically updated sitemap from an express server", "validate and parse existing sitemap xml files", "generate gzipped sitemaps for large websites", "build sitemaps programmatically in a node.js build pipeline"], "what_it_is": "sitemap.js is a Node.js library and CLI for generating, parsing, validating, and updating sitemap XML files. It uses streaming to efficiently build sitemaps and sitemap indexes from large lists of URLs, and can serve them from servers like Express.", "when_to_avoid": ["your site is not built with Node.js or JavaScript tooling", "you need a framework-agnostic static site generator that produces sitemaps automatically", "you need multi-language sitemap generation beyond what the library supports out of the box"], "when_to_choose": ["you need to generate standards-compliant sitemap XML in a Node.js application", "you have a large number of URLs and need streaming generation or sitemap indexes", "you want both a programmatic API and a CLI for one-off sitemap tasks", "you need to parse, validate, or update existing sitemaps"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/sitemapjs", "repo": "ekalinin/sitemap.js", "role": "main", "score": 89}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.879828+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:34:52.438547+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5a8fd3cc0045d0b6d20ca978273862c01453b3cee6c5332946b810f896f91722", "fetched_at": "2026-08-28T04:05:25.879828+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ekalinin/sitemap.js"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.879828+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:34:52.438547+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5a8fd3cc0045d0b6d20ca978273862c01453b3cee6c5332946b810f896f91722", "fetched_at": "2026-08-28T04:05:25.879828+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ekalinin/sitemap.js"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:34:52.438547+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5a8fd3cc0045d0b6d20ca978273862c01453b3cee6c5332946b810f896f91722", "fetched_at": "2026-08-28T04:05:25.879828+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ekalinin/sitemap.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:05:25.879828+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.879828+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.879828+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:34:52.438547+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5a8fd3cc0045d0b6d20ca978273862c01453b3cee6c5332946b810f896f91722", "fetched_at": "2026-08-28T04:05:25.879828+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ekalinin/sitemap.js"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.879828+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.879828+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:34:52.438547+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5a8fd3cc0045d0b6d20ca978273862c01453b3cee6c5332946b810f896f91722", "fetched_at": "2026-08-28T04:05:25.879828+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ekalinin/sitemap.js"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.879828+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.879828+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.879828+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:34:52.438547+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5a8fd3cc0045d0b6d20ca978273862c01453b3cee6c5332946b810f896f91722", "fetched_at": "2026-08-28T04:05:25.879828+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ekalinin/sitemap.js"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.879828+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.879828+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:34:52.438547+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5a8fd3cc0045d0b6d20ca978273862c01453b3cee6c5332946b810f896f91722", "fetched_at": "2026-08-28T04:05:25.879828+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ekalinin/sitemap.js"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:34:52.438547+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5a8fd3cc0045d0b6d20ca978273862c01453b3cee6c5332946b810f896f91722", "fetched_at": "2026-08-28T04:05:25.879828+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ekalinin/sitemap.js"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:34:52.438547+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5a8fd3cc0045d0b6d20ca978273862c01453b3cee6c5332946b810f896f91722", "fetched_at": "2026-08-28T04:05:25.879828+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ekalinin/sitemap.js"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:34:52.438547+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5a8fd3cc0045d0b6d20ca978273862c01453b3cee6c5332946b810f896f91722", "fetched_at": "2026-08-28T04:05:25.879828+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ekalinin/sitemap.js"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 100, "rhythm": 72}, "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": 5544, "days_push": 15, "days_rel": 186, "gap_med": 3, "n_releases_24m": 6}, "score": 89, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}