{"adoption": {"forks": 1302, "observed_at": "2026-08-28T04:10:43.673836+00:00", "stars": 10654}, "canonical_url": "https://ross.abutalabs.com/products/historyjs", "card": {"archived": false, "artifact_type": "library", "description": "History.js gracefully supports the HTML5 History/State APIs (pushState, replaceState, onPopState) in all browsers. Including continued support for data, titles, replaceState. Supports jQuery, MooTools and Prototype.  For HTML5 browsers this means that you can modify the URL directly, without needing to use hashes anymore. For HTML4 browsers it will revert back to using the old onhashchange functionality.", "domain": ["web-development", "frontend", "browser-extensions"], "enriched": true, "function": ["routing", "state-management", "middleware"], "health_score": 20, "homepage": "http://browserstate.github.com/history.js/demo/", "language": "JavaScript", "license": "NOASSERTION", "license_family": "other", "maturity": "abandoned", "member_repos": ["browserstate/history.js"], "name": "browserstate/history.js", "platform": ["browser", "cross-platform"], "pushed_at": "2022-02-12T07:34:30+00:00", "repo": "browserstate/history.js", "stars": 10654, "tags": ["polyfill", "html5-history-api", "pushstate", "hashchange", "jquery-plugin", "legacy-browser-support", "javascript"], "topics": ["html5-history-api", "html5-history", "javascript", "polyfill", "hashchange"], "urls": [], "use_cases": ["normalize browser history APIs across browsers", "support pushState in legacy HTML4 browsers", "manage client-side routing state without page reloads", "handle back/forward button navigation in single-page apps", "modify the URL without hashes in older browsers"], "what_it_is": "History.js is a JavaScript library that provides a normalized wrapper around the HTML5 History/State APIs (pushState, replaceState, onPopState) across all browsers, falling back to hashchange-based behavior in HTML4 browsers. It supports adapters for jQuery, MooTools, and Prototype and is now maintained only in a legacy/archival condition.", "when_to_avoid": ["you target only modern browsers - use the native HTML5 History API instead", "you need an actively maintained library with ongoing bug fixes", "you are starting a new single-page application - modern frameworks have built-in routing"], "when_to_choose": ["you must support legacy HTML4 browsers that lack native pushState", "you need consistent history behavior across very old browser versions", "you are maintaining an existing codebase already built on History.js"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/historyjs", "repo": "browserstate/history.js", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:10:43.673836+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:18:12.961996+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "842174a348a7afe80b031a3bd9f560fd001c2622a57ae37d346973e4edc2c93e", "fetched_at": "2026-08-28T04:10:43.673836+00:00", "kind": "readme", "missing": false, "url": "https://github.com/browserstate/history.js"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:10:43.673836+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:18:12.961996+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "842174a348a7afe80b031a3bd9f560fd001c2622a57ae37d346973e4edc2c93e", "fetched_at": "2026-08-28T04:10:43.673836+00:00", "kind": "readme", "missing": false, "url": "https://github.com/browserstate/history.js"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:18:12.961996+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "842174a348a7afe80b031a3bd9f560fd001c2622a57ae37d346973e4edc2c93e", "fetched_at": "2026-08-28T04:10:43.673836+00:00", "kind": "readme", "missing": false, "url": "https://github.com/browserstate/history.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:10:43.673836+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:10:43.673836+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:10:43.673836+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:18:12.961996+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "842174a348a7afe80b031a3bd9f560fd001c2622a57ae37d346973e4edc2c93e", "fetched_at": "2026-08-28T04:10:43.673836+00:00", "kind": "readme", "missing": false, "url": "https://github.com/browserstate/history.js"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:10:43.673836+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:10:43.673836+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:18:12.961996+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "842174a348a7afe80b031a3bd9f560fd001c2622a57ae37d346973e4edc2c93e", "fetched_at": "2026-08-28T04:10:43.673836+00:00", "kind": "readme", "missing": false, "url": "https://github.com/browserstate/history.js"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:10:43.673836+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:10:43.673836+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:10:43.673836+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:18:12.961996+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "842174a348a7afe80b031a3bd9f560fd001c2622a57ae37d346973e4edc2c93e", "fetched_at": "2026-08-28T04:10:43.673836+00:00", "kind": "readme", "missing": false, "url": "https://github.com/browserstate/history.js"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:10:43.673836+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:10:43.673836+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:18:12.961996+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "842174a348a7afe80b031a3bd9f560fd001c2622a57ae37d346973e4edc2c93e", "fetched_at": "2026-08-28T04:10:43.673836+00:00", "kind": "readme", "missing": false, "url": "https://github.com/browserstate/history.js"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:18:12.961996+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "842174a348a7afe80b031a3bd9f560fd001c2622a57ae37d346973e4edc2c93e", "fetched_at": "2026-08-28T04:10:43.673836+00:00", "kind": "readme", "missing": false, "url": "https://github.com/browserstate/history.js"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:18:12.961996+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "842174a348a7afe80b031a3bd9f560fd001c2622a57ae37d346973e4edc2c93e", "fetched_at": "2026-08-28T04:10:43.673836+00:00", "kind": "readme", "missing": false, "url": "https://github.com/browserstate/history.js"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:18:12.961996+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "842174a348a7afe80b031a3bd9f560fd001c2622a57ae37d346973e4edc2c93e", "fetched_at": "2026-08-28T04:10:43.673836+00:00", "kind": "readme", "missing": false, "url": "https://github.com/browserstate/history.js"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 5704, "days_push": 1663, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}