{"adoption": {"forks": 27014, "observed_at": "2026-08-28T04:12:18.618569+00:00", "stars": 58532}, "canonical_url": "https://ross.abutalabs.com/products/angularjs", "card": {"archived": true, "artifact_type": "framework", "description": "AngularJS - HTML enhanced for web apps!", "domain": ["web-development", "frontend", "developer-tools"], "enriched": true, "function": ["frontend-framework", "templating", "state-management", "routing", "middleware"], "health_score": 10, "homepage": "https://angularjs.org", "language": "JavaScript", "license": "MIT", "license_family": "permissive", "maturity": "abandoned", "member_repos": ["angular/angular.js"], "name": "angular/angular.js", "platform": ["browser"], "pushed_at": "2024-04-12T17:43:16+00:00", "repo": "angular/angular.js", "stars": 58532, "tags": ["angularjs", "mvw", "two-way-data-binding", "dependency-injection", "end-of-life", "spa", "javascript", "nodejs"], "topics": [], "urls": [], "use_cases": ["build a single-page web application with two-way data binding", "extend HTML with custom directives and components", "maintain a legacy AngularJS 1.x codebase", "structure a client-side app with dependency injection and MVC patterns", "add client-side routing and deep linking to a web app"], "what_it_is": "AngularJS is a JavaScript MVW framework that extends HTML with directives and provides two-way data binding, dependency injection, and client-side routing for building single-page web applications. Official support ended in January 2022; the actively developed successor lives at angular.io.", "when_to_avoid": ["starting any new project - it is end-of-life with no security patches", "you want long-term support or modern tooling - use Angular, React, or Vue instead", "your app needs modern JavaScript features or TypeScript-first development"], "when_to_choose": ["you are maintaining or migrating an existing AngularJS 1.x application", "you need a mature, well-documented framework for a legacy browser environment", "you are learning how classic SPA frameworks work"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/angularjs", "repo": "angular/angular.js", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:12:18.618569+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T16:18:20.001230+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "048e5d9e1004befa8269a2a58473a277235fe358547c6284c6d8209c462429b5", "fetched_at": "2026-08-28T04:12:18.618569+00:00", "kind": "readme", "missing": false, "url": "https://github.com/angular/angular.js"}, {"content_hash": "31a6d41efba11908813fa6c564814762056816c847b4185bab1112447367b9cd", "fetched_at": "2026-08-28T18:01:42.462061+00:00", "kind": "homepage", "missing": false, "url": "https://angularjs.org"}, {"content_hash": "8f3cc541c1f5a97c11765373a5d5ba9ea3445ead5a2bef95ec11b98341fb6629", "fetched_at": "2026-08-28T18:01:42.470958+00:00", "kind": "site_page", "missing": false, "url": "https://docs.angularjs.org/misc/faq"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:12:18.618569+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T16:18:20.001230+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "048e5d9e1004befa8269a2a58473a277235fe358547c6284c6d8209c462429b5", "fetched_at": "2026-08-28T04:12:18.618569+00:00", "kind": "readme", "missing": false, "url": "https://github.com/angular/angular.js"}, {"content_hash": "31a6d41efba11908813fa6c564814762056816c847b4185bab1112447367b9cd", "fetched_at": "2026-08-28T18:01:42.462061+00:00", "kind": "homepage", "missing": false, "url": "https://angularjs.org"}, {"content_hash": "8f3cc541c1f5a97c11765373a5d5ba9ea3445ead5a2bef95ec11b98341fb6629", "fetched_at": "2026-08-28T18:01:42.470958+00:00", "kind": "site_page", "missing": false, "url": "https://docs.angularjs.org/misc/faq"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T16:18:20.001230+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "048e5d9e1004befa8269a2a58473a277235fe358547c6284c6d8209c462429b5", "fetched_at": "2026-08-28T04:12:18.618569+00:00", "kind": "readme", "missing": false, "url": "https://github.com/angular/angular.js"}, {"content_hash": "31a6d41efba11908813fa6c564814762056816c847b4185bab1112447367b9cd", "fetched_at": "2026-08-28T18:01:42.462061+00:00", "kind": "homepage", "missing": false, "url": "https://angularjs.org"}, {"content_hash": "8f3cc541c1f5a97c11765373a5d5ba9ea3445ead5a2bef95ec11b98341fb6629", "fetched_at": "2026-08-28T18:01:42.470958+00:00", "kind": "site_page", "missing": false, "url": "https://docs.angularjs.org/misc/faq"}], "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:12:18.618569+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:12:18.618569+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:12:18.618569+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T16:18:20.001230+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "048e5d9e1004befa8269a2a58473a277235fe358547c6284c6d8209c462429b5", "fetched_at": "2026-08-28T04:12:18.618569+00:00", "kind": "readme", "missing": false, "url": "https://github.com/angular/angular.js"}, {"content_hash": "31a6d41efba11908813fa6c564814762056816c847b4185bab1112447367b9cd", "fetched_at": "2026-08-28T18:01:42.462061+00:00", "kind": "homepage", "missing": false, "url": "https://angularjs.org"}, {"content_hash": "8f3cc541c1f5a97c11765373a5d5ba9ea3445ead5a2bef95ec11b98341fb6629", "fetched_at": "2026-08-28T18:01:42.470958+00:00", "kind": "site_page", "missing": false, "url": "https://docs.angularjs.org/misc/faq"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:12:18.618569+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:12:18.618569+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T16:18:20.001230+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "048e5d9e1004befa8269a2a58473a277235fe358547c6284c6d8209c462429b5", "fetched_at": "2026-08-28T04:12:18.618569+00:00", "kind": "readme", "missing": false, "url": "https://github.com/angular/angular.js"}, {"content_hash": "31a6d41efba11908813fa6c564814762056816c847b4185bab1112447367b9cd", "fetched_at": "2026-08-28T18:01:42.462061+00:00", "kind": "homepage", "missing": false, "url": "https://angularjs.org"}, {"content_hash": "8f3cc541c1f5a97c11765373a5d5ba9ea3445ead5a2bef95ec11b98341fb6629", "fetched_at": "2026-08-28T18:01:42.470958+00:00", "kind": "site_page", "missing": false, "url": "https://docs.angularjs.org/misc/faq"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:12:18.618569+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:12:18.618569+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:12:18.618569+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T16:18:20.001230+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "048e5d9e1004befa8269a2a58473a277235fe358547c6284c6d8209c462429b5", "fetched_at": "2026-08-28T04:12:18.618569+00:00", "kind": "readme", "missing": false, "url": "https://github.com/angular/angular.js"}, {"content_hash": "31a6d41efba11908813fa6c564814762056816c847b4185bab1112447367b9cd", "fetched_at": "2026-08-28T18:01:42.462061+00:00", "kind": "homepage", "missing": false, "url": "https://angularjs.org"}, {"content_hash": "8f3cc541c1f5a97c11765373a5d5ba9ea3445ead5a2bef95ec11b98341fb6629", "fetched_at": "2026-08-28T18:01:42.470958+00:00", "kind": "site_page", "missing": false, "url": "https://docs.angularjs.org/misc/faq"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:12:18.618569+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:12:18.618569+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T16:18:20.001230+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "048e5d9e1004befa8269a2a58473a277235fe358547c6284c6d8209c462429b5", "fetched_at": "2026-08-28T04:12:18.618569+00:00", "kind": "readme", "missing": false, "url": "https://github.com/angular/angular.js"}, {"content_hash": "31a6d41efba11908813fa6c564814762056816c847b4185bab1112447367b9cd", "fetched_at": "2026-08-28T18:01:42.462061+00:00", "kind": "homepage", "missing": false, "url": "https://angularjs.org"}, {"content_hash": "8f3cc541c1f5a97c11765373a5d5ba9ea3445ead5a2bef95ec11b98341fb6629", "fetched_at": "2026-08-28T18:01:42.470958+00:00", "kind": "site_page", "missing": false, "url": "https://docs.angularjs.org/misc/faq"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T16:18:20.001230+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "048e5d9e1004befa8269a2a58473a277235fe358547c6284c6d8209c462429b5", "fetched_at": "2026-08-28T04:12:18.618569+00:00", "kind": "readme", "missing": false, "url": "https://github.com/angular/angular.js"}, {"content_hash": "31a6d41efba11908813fa6c564814762056816c847b4185bab1112447367b9cd", "fetched_at": "2026-08-28T18:01:42.462061+00:00", "kind": "homepage", "missing": false, "url": "https://angularjs.org"}, {"content_hash": "8f3cc541c1f5a97c11765373a5d5ba9ea3445ead5a2bef95ec11b98341fb6629", "fetched_at": "2026-08-28T18:01:42.470958+00:00", "kind": "site_page", "missing": false, "url": "https://docs.angularjs.org/misc/faq"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T16:18:20.001230+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "048e5d9e1004befa8269a2a58473a277235fe358547c6284c6d8209c462429b5", "fetched_at": "2026-08-28T04:12:18.618569+00:00", "kind": "readme", "missing": false, "url": "https://github.com/angular/angular.js"}, {"content_hash": "31a6d41efba11908813fa6c564814762056816c847b4185bab1112447367b9cd", "fetched_at": "2026-08-28T18:01:42.462061+00:00", "kind": "homepage", "missing": false, "url": "https://angularjs.org"}, {"content_hash": "8f3cc541c1f5a97c11765373a5d5ba9ea3445ead5a2bef95ec11b98341fb6629", "fetched_at": "2026-08-28T18:01:42.470958+00:00", "kind": "site_page", "missing": false, "url": "https://docs.angularjs.org/misc/faq"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T16:18:20.001230+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "048e5d9e1004befa8269a2a58473a277235fe358547c6284c6d8209c462429b5", "fetched_at": "2026-08-28T04:12:18.618569+00:00", "kind": "readme", "missing": false, "url": "https://github.com/angular/angular.js"}, {"content_hash": "31a6d41efba11908813fa6c564814762056816c847b4185bab1112447367b9cd", "fetched_at": "2026-08-28T18:01:42.462061+00:00", "kind": "homepage", "missing": false, "url": "https://angularjs.org"}, {"content_hash": "8f3cc541c1f5a97c11765373a5d5ba9ea3445ead5a2bef95ec11b98341fb6629", "fetched_at": "2026-08-28T18:01:42.470958+00:00", "kind": "site_page", "missing": false, "url": "https://docs.angularjs.org/misc/faq"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases", "archived"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 6084, "days_push": 873, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 10, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}