{"adoption": {"forks": 48275, "observed_at": "2026-08-28T04:05:19.524252+00:00", "stars": 1666}, "canonical_url": "https://ross.abutalabs.com/products/javascript-exercises", "card": {"archived": false, "artifact_type": "learning-resource", "description": null, "domain": ["education", "programming-languages", "tutorials"], "enriched": true, "function": ["testing", "developer-tools"], "health_score": 79, "homepage": null, "language": "JavaScript", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["TheOdinProject/javascript-exercises"], "name": "TheOdinProject/javascript-exercises", "platform": ["cross-platform"], "pushed_at": "2026-08-20T10:21:02+00:00", "repo": "TheOdinProject/javascript-exercises", "stars": 1666, "tags": ["javascript-exercises", "jest", "the-odin-project", "practice-problems", "curriculum", "beginner-friendly", "nodejs"], "topics": ["exercise", "javascript"], "urls": [], "use_cases": ["practice javascript fundamentals with guided exercises", "learn javascript alongside the odin project curriculum", "test my javascript solutions with jest", "find beginner javascript coding challenges", "practice git workflow by forking and committing exercise solutions", "get hands-on javascript practice problems with example solutions"], "what_it_is": "A collection of JavaScript practice exercises designed to complement The Odin Project curriculum. Each exercise includes a task description, a stub JavaScript file, and Jest tests that learners run to verify their solutions.", "when_to_avoid": ["you need an advanced or production-oriented JavaScript codebase", "you want a standalone course not tied to The Odin Project curriculum", "you are looking for exercises in languages other than JavaScript"], "when_to_choose": ["you are following The Odin Project and need the companion exercises", "you want structured, test-driven JavaScript practice from beginner level", "you want exercises with preconfigured Jest testing and reference solutions"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/javascript-exercises", "repo": "TheOdinProject/javascript-exercises", "role": "main", "score": 76}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:19.524252+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:42:57.523677+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d0889111ed0f8ecf3d562122817be108d4646bcbaf37f178a320637b1f52510c", "fetched_at": "2026-08-28T04:05:19.524252+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TheOdinProject/javascript-exercises"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:19.524252+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:42:57.523677+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d0889111ed0f8ecf3d562122817be108d4646bcbaf37f178a320637b1f52510c", "fetched_at": "2026-08-28T04:05:19.524252+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TheOdinProject/javascript-exercises"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:42:57.523677+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d0889111ed0f8ecf3d562122817be108d4646bcbaf37f178a320637b1f52510c", "fetched_at": "2026-08-28T04:05:19.524252+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TheOdinProject/javascript-exercises"}], "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:19.524252+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:19.524252+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:19.524252+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:42:57.523677+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d0889111ed0f8ecf3d562122817be108d4646bcbaf37f178a320637b1f52510c", "fetched_at": "2026-08-28T04:05:19.524252+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TheOdinProject/javascript-exercises"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:19.524252+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:19.524252+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:42:57.523677+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d0889111ed0f8ecf3d562122817be108d4646bcbaf37f178a320637b1f52510c", "fetched_at": "2026-08-28T04:05:19.524252+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TheOdinProject/javascript-exercises"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:19.524252+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:19.524252+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:19.524252+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:42:57.523677+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d0889111ed0f8ecf3d562122817be108d4646bcbaf37f178a320637b1f52510c", "fetched_at": "2026-08-28T04:05:19.524252+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TheOdinProject/javascript-exercises"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:19.524252+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:19.524252+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:42:57.523677+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d0889111ed0f8ecf3d562122817be108d4646bcbaf37f178a320637b1f52510c", "fetched_at": "2026-08-28T04:05:19.524252+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TheOdinProject/javascript-exercises"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:42:57.523677+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d0889111ed0f8ecf3d562122817be108d4646bcbaf37f178a320637b1f52510c", "fetched_at": "2026-08-28T04:05:19.524252+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TheOdinProject/javascript-exercises"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:42:57.523677+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d0889111ed0f8ecf3d562122817be108d4646bcbaf37f178a320637b1f52510c", "fetched_at": "2026-08-28T04:05:19.524252+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TheOdinProject/javascript-exercises"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:42:57.523677+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d0889111ed0f8ecf3d562122817be108d4646bcbaf37f178a320637b1f52510c", "fetched_at": "2026-08-28T04:05:19.524252+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TheOdinProject/javascript-exercises"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3303, "days_push": 13, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 76, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}