{"adoption": {"forks": 365, "observed_at": "2026-08-28T04:04:31.937325+00:00", "stars": 1370}, "canonical_url": "https://ross.abutalabs.com/products/datacamp-light", "card": {"archived": false, "artifact_type": "library", "description": "Convert any blog or website to an interactive learning platform for data science", "domain": ["education", "data-science", "web-development"], "enriched": true, "function": ["sdk", "plugin-system"], "health_score": 40, "homepage": null, "language": "TypeScript", "license": "AGPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["datacamp/datacamp-light"], "name": "datacamp/datacamp-light", "platform": ["browser"], "pushed_at": "2025-03-27T16:00:14+00:00", "repo": "datacamp/datacamp-light", "stars": 1370, "tags": ["interactive-learning", "coding-exercises", "r", "python", "embeddable-widget", "datacamp", "education", "web-server", "nodejs"], "topics": [], "urls": [], "use_cases": ["embed interactive python exercises in a blog post", "turn a tutorial website into a data science course", "add runnable R code exercises to documentation", "create an interactive learning platform from markdown tutorials", "check learner code automatically with submission correctness tests", "let readers run code in the browser without setup"], "what_it_is": "DataCamp Light is a JavaScript widget that embeds interactive R and Python coding exercises into any blog, website, or markdown document, turning it into an interactive learning platform. Sessions run on DataCamp's servers and support Submission Correctness Tests via testwhat (R) and pythonwhat (Python).", "when_to_avoid": ["you need fully offline or self-hosted code execution since sessions run on DataCamp's servers", "you need languages other than R or Python", "you require full control over the execution environment or data privacy"], "when_to_choose": ["you publish data science educational content and want hands-on coding exercises", "you want R or Python practice embedded in existing web pages with minimal setup", "you want automatic grading of learner submissions"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/datacamp-light", "repo": "datacamp/datacamp-light", "role": "main", "score": 29}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.937325+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:40:54.627739+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "314ff493b8f4a7155cd85d7a23cdf750f6f5f8ba265884673a5d0f6f7f0ac50e", "fetched_at": "2026-08-28T04:04:31.937325+00:00", "kind": "readme", "missing": false, "url": "https://github.com/datacamp/datacamp-light"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.937325+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:40:54.627739+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "314ff493b8f4a7155cd85d7a23cdf750f6f5f8ba265884673a5d0f6f7f0ac50e", "fetched_at": "2026-08-28T04:04:31.937325+00:00", "kind": "readme", "missing": false, "url": "https://github.com/datacamp/datacamp-light"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:40:54.627739+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "314ff493b8f4a7155cd85d7a23cdf750f6f5f8ba265884673a5d0f6f7f0ac50e", "fetched_at": "2026-08-28T04:04:31.937325+00:00", "kind": "readme", "missing": false, "url": "https://github.com/datacamp/datacamp-light"}], "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:04:31.937325+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.937325+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.937325+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:40:54.627739+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "314ff493b8f4a7155cd85d7a23cdf750f6f5f8ba265884673a5d0f6f7f0ac50e", "fetched_at": "2026-08-28T04:04:31.937325+00:00", "kind": "readme", "missing": false, "url": "https://github.com/datacamp/datacamp-light"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.937325+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.937325+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:40:54.627739+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "314ff493b8f4a7155cd85d7a23cdf750f6f5f8ba265884673a5d0f6f7f0ac50e", "fetched_at": "2026-08-28T04:04:31.937325+00:00", "kind": "readme", "missing": false, "url": "https://github.com/datacamp/datacamp-light"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.937325+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.937325+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.937325+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:40:54.627739+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "314ff493b8f4a7155cd85d7a23cdf750f6f5f8ba265884673a5d0f6f7f0ac50e", "fetched_at": "2026-08-28T04:04:31.937325+00:00", "kind": "readme", "missing": false, "url": "https://github.com/datacamp/datacamp-light"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.937325+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.937325+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:40:54.627739+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "314ff493b8f4a7155cd85d7a23cdf750f6f5f8ba265884673a5d0f6f7f0ac50e", "fetched_at": "2026-08-28T04:04:31.937325+00:00", "kind": "readme", "missing": false, "url": "https://github.com/datacamp/datacamp-light"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:40:54.627739+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "314ff493b8f4a7155cd85d7a23cdf750f6f5f8ba265884673a5d0f6f7f0ac50e", "fetched_at": "2026-08-28T04:04:31.937325+00:00", "kind": "readme", "missing": false, "url": "https://github.com/datacamp/datacamp-light"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:40:54.627739+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "314ff493b8f4a7155cd85d7a23cdf750f6f5f8ba265884673a5d0f6f7f0ac50e", "fetched_at": "2026-08-28T04:04:31.937325+00:00", "kind": "readme", "missing": false, "url": "https://github.com/datacamp/datacamp-light"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:40:54.627739+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "314ff493b8f4a7155cd85d7a23cdf750f6f5f8ba265884673a5d0f6f7f0ac50e", "fetched_at": "2026-08-28T04:04:31.937325+00:00", "kind": "readme", "missing": false, "url": "https://github.com/datacamp/datacamp-light"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 13, "longevity": 100, "rhythm": 8}, "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": 3877, "days_push": 524, "days_rel": 524, "gap_med": null, "n_releases_24m": 1}, "score": 29, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}