{"adoption": {"forks": 156, "observed_at": "2026-08-28T04:04:03.571332+00:00", "stars": 1228}, "canonical_url": "https://ross.abutalabs.com/products/mostly-adequate-guide-ru", "card": {"archived": false, "artifact_type": "learning-resource", "description": "Mostly adequate guide to FP (in javascript, translated to russian)", "domain": ["programming-languages", "tutorials"], "enriched": true, "function": ["documentation", "developer-tools"], "health_score": 20, "homepage": null, "language": "JavaScript", "license": "NOASSERTION", "license_family": "other", "maturity": "maintenance", "member_repos": ["MostlyAdequate/mostly-adequate-guide-ru"], "name": "MostlyAdequate/mostly-adequate-guide-ru", "platform": ["browser", "cross-platform"], "pushed_at": "2023-05-04T21:52:12+00:00", "repo": "MostlyAdequate/mostly-adequate-guide-ru", "stars": 1228, "tags": ["functional-programming", "javascript", "tutorial", "book", "russian-translation", "reactive-programming", "nodejs"], "topics": ["javascript", "functional-programming", "tutorial", "reactive-programming"], "urls": [], "use_cases": ["learn functional programming in javascript", "understand monads and functors with practical examples", "read an fp guide in russian", "practice functional programming exercises in the browser", "apply functional techniques to everyday javascript code"], "what_it_is": "A Russian translation of the 'Mostly Adequate Guide to Functional Programming', an open-source book teaching functional programming concepts using JavaScript. It covers topics like currying, functors, monads, and reactive programming with runnable examples and browser-checkable exercises.", "when_to_avoid": ["you want a guide for a statically typed functional language like Haskell or Scala", "you need a comprehensive reference rather than an introductory tutorial", "you require actively updated content for the latest javascript features"], "when_to_choose": ["you want to learn functional programming using a language you already use at work", "you prefer a free, example-driven book with interactive exercises", "you need the material in russian"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/mostly-adequate-guide-ru", "repo": "MostlyAdequate/mostly-adequate-guide-ru", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:03.571332+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:15:09.497178+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8ae1d2b1780e51355415636d78092374b2320d29c4c149896eb3406a39623f37", "fetched_at": "2026-08-28T04:04:03.571332+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MostlyAdequate/mostly-adequate-guide-ru"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:03.571332+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:15:09.497178+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8ae1d2b1780e51355415636d78092374b2320d29c4c149896eb3406a39623f37", "fetched_at": "2026-08-28T04:04:03.571332+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MostlyAdequate/mostly-adequate-guide-ru"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:15:09.497178+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8ae1d2b1780e51355415636d78092374b2320d29c4c149896eb3406a39623f37", "fetched_at": "2026-08-28T04:04:03.571332+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MostlyAdequate/mostly-adequate-guide-ru"}], "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:03.571332+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:03.571332+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:03.571332+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:15:09.497178+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8ae1d2b1780e51355415636d78092374b2320d29c4c149896eb3406a39623f37", "fetched_at": "2026-08-28T04:04:03.571332+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MostlyAdequate/mostly-adequate-guide-ru"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:03.571332+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:03.571332+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:15:09.497178+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8ae1d2b1780e51355415636d78092374b2320d29c4c149896eb3406a39623f37", "fetched_at": "2026-08-28T04:04:03.571332+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MostlyAdequate/mostly-adequate-guide-ru"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:03.571332+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:03.571332+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:03.571332+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:15:09.497178+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8ae1d2b1780e51355415636d78092374b2320d29c4c149896eb3406a39623f37", "fetched_at": "2026-08-28T04:04:03.571332+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MostlyAdequate/mostly-adequate-guide-ru"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:03.571332+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:03.571332+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:15:09.497178+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8ae1d2b1780e51355415636d78092374b2320d29c4c149896eb3406a39623f37", "fetched_at": "2026-08-28T04:04:03.571332+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MostlyAdequate/mostly-adequate-guide-ru"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:15:09.497178+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8ae1d2b1780e51355415636d78092374b2320d29c4c149896eb3406a39623f37", "fetched_at": "2026-08-28T04:04:03.571332+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MostlyAdequate/mostly-adequate-guide-ru"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:15:09.497178+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8ae1d2b1780e51355415636d78092374b2320d29c4c149896eb3406a39623f37", "fetched_at": "2026-08-28T04:04:03.571332+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MostlyAdequate/mostly-adequate-guide-ru"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:15:09.497178+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8ae1d2b1780e51355415636d78092374b2320d29c4c149896eb3406a39623f37", "fetched_at": "2026-08-28T04:04:03.571332+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MostlyAdequate/mostly-adequate-guide-ru"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4019, "days_push": 1217, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}