{"adoption": {"forks": 610, "observed_at": "2026-08-28T04:06:29.098653+00:00", "stars": 2231}, "canonical_url": "https://ross.abutalabs.com/products/effectivescala", "card": {"archived": false, "artifact_type": "learning-resource", "description": "Twitter's Effective Scala Guide", "domain": ["programming-languages", "developer-tools", "tutorials"], "enriched": true, "function": ["documentation"], "health_score": 20, "homepage": "https://twitter.github.io/effectivescala", "language": "HTML", "license": "NOASSERTION", "license_family": "other", "maturity": "maintenance", "member_repos": ["twitter/effectivescala"], "name": "twitter/effectivescala", "platform": ["cross-platform"], "pushed_at": "2023-04-10T11:47:00+00:00", "repo": "twitter/effectivescala", "stars": 2231, "tags": ["scala", "style-guide", "best-practices", "programming-guide", "twitter", "functional-programming", "concurrency", "markdown-document"], "topics": [], "urls": [], "use_cases": ["learn Scala best practices from Twitter's production experience", "find recommended Scala style and formatting conventions", "understand how to use Scala futures and concurrency effectively", "decide which Scala features to embrace or avoid", "improve functional programming style in Scala", "onboard engineers to idiomatic Scala for high-volume services"], "what_it_is": "Twitter's Effective Scala guide, a document distilling Twitter's experience and best practices for writing Scala in production, covering formatting, types, collections, concurrency, functional and object-oriented programming, and error handling. The repository contains the markdown source and build tooling (PEG markdown and groff) used to render and publish the guide to GitHub Pages.", "when_to_avoid": ["you need a tutorial for learning Scala from scratch", "you need up-to-date coverage of the latest Scala 3 features", "you want runnable code or a tool rather than a written guide", "you need an officially maintained specification rather than opinionated advice"], "when_to_choose": ["you want concise, battle-tested guidance on writing effective Scala", "your team builds high-volume distributed services in Scala", "you need a reference for Scala idioms like Options, pattern matching, and case classes as algebraic data types", "you want a style guide to align a Scala codebase"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/effectivescala", "repo": "twitter/effectivescala", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:29.098653+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:44:36.837438+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0058a88c0c34c9ddf86cfb9425c0365b27cd3e858d7c6e0943a68a72cb6521a", "fetched_at": "2026-08-28T04:06:29.098653+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twitter/effectivescala"}, {"content_hash": "6ec6f8481f2eda34def5301adca2833b8158020ae18bd1836964dca1d1439d0a", "fetched_at": "2026-08-29T10:25:03.234666+00:00", "kind": "homepage", "missing": false, "url": "https://twitter.github.io/effectivescala"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:29.098653+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:44:36.837438+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0058a88c0c34c9ddf86cfb9425c0365b27cd3e858d7c6e0943a68a72cb6521a", "fetched_at": "2026-08-28T04:06:29.098653+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twitter/effectivescala"}, {"content_hash": "6ec6f8481f2eda34def5301adca2833b8158020ae18bd1836964dca1d1439d0a", "fetched_at": "2026-08-29T10:25:03.234666+00:00", "kind": "homepage", "missing": false, "url": "https://twitter.github.io/effectivescala"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:44:36.837438+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0058a88c0c34c9ddf86cfb9425c0365b27cd3e858d7c6e0943a68a72cb6521a", "fetched_at": "2026-08-28T04:06:29.098653+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twitter/effectivescala"}, {"content_hash": "6ec6f8481f2eda34def5301adca2833b8158020ae18bd1836964dca1d1439d0a", "fetched_at": "2026-08-29T10:25:03.234666+00:00", "kind": "homepage", "missing": false, "url": "https://twitter.github.io/effectivescala"}], "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:06:29.098653+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:29.098653+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:29.098653+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:44:36.837438+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0058a88c0c34c9ddf86cfb9425c0365b27cd3e858d7c6e0943a68a72cb6521a", "fetched_at": "2026-08-28T04:06:29.098653+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twitter/effectivescala"}, {"content_hash": "6ec6f8481f2eda34def5301adca2833b8158020ae18bd1836964dca1d1439d0a", "fetched_at": "2026-08-29T10:25:03.234666+00:00", "kind": "homepage", "missing": false, "url": "https://twitter.github.io/effectivescala"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:29.098653+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:29.098653+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:44:36.837438+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0058a88c0c34c9ddf86cfb9425c0365b27cd3e858d7c6e0943a68a72cb6521a", "fetched_at": "2026-08-28T04:06:29.098653+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twitter/effectivescala"}, {"content_hash": "6ec6f8481f2eda34def5301adca2833b8158020ae18bd1836964dca1d1439d0a", "fetched_at": "2026-08-29T10:25:03.234666+00:00", "kind": "homepage", "missing": false, "url": "https://twitter.github.io/effectivescala"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:29.098653+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:29.098653+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:29.098653+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:44:36.837438+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0058a88c0c34c9ddf86cfb9425c0365b27cd3e858d7c6e0943a68a72cb6521a", "fetched_at": "2026-08-28T04:06:29.098653+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twitter/effectivescala"}, {"content_hash": "6ec6f8481f2eda34def5301adca2833b8158020ae18bd1836964dca1d1439d0a", "fetched_at": "2026-08-29T10:25:03.234666+00:00", "kind": "homepage", "missing": false, "url": "https://twitter.github.io/effectivescala"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:29.098653+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:29.098653+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:44:36.837438+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0058a88c0c34c9ddf86cfb9425c0365b27cd3e858d7c6e0943a68a72cb6521a", "fetched_at": "2026-08-28T04:06:29.098653+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twitter/effectivescala"}, {"content_hash": "6ec6f8481f2eda34def5301adca2833b8158020ae18bd1836964dca1d1439d0a", "fetched_at": "2026-08-29T10:25:03.234666+00:00", "kind": "homepage", "missing": false, "url": "https://twitter.github.io/effectivescala"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:44:36.837438+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0058a88c0c34c9ddf86cfb9425c0365b27cd3e858d7c6e0943a68a72cb6521a", "fetched_at": "2026-08-28T04:06:29.098653+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twitter/effectivescala"}, {"content_hash": "6ec6f8481f2eda34def5301adca2833b8158020ae18bd1836964dca1d1439d0a", "fetched_at": "2026-08-29T10:25:03.234666+00:00", "kind": "homepage", "missing": false, "url": "https://twitter.github.io/effectivescala"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:44:36.837438+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0058a88c0c34c9ddf86cfb9425c0365b27cd3e858d7c6e0943a68a72cb6521a", "fetched_at": "2026-08-28T04:06:29.098653+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twitter/effectivescala"}, {"content_hash": "6ec6f8481f2eda34def5301adca2833b8158020ae18bd1836964dca1d1439d0a", "fetched_at": "2026-08-29T10:25:03.234666+00:00", "kind": "homepage", "missing": false, "url": "https://twitter.github.io/effectivescala"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:44:36.837438+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0058a88c0c34c9ddf86cfb9425c0365b27cd3e858d7c6e0943a68a72cb6521a", "fetched_at": "2026-08-28T04:06:29.098653+00:00", "kind": "readme", "missing": false, "url": "https://github.com/twitter/effectivescala"}, {"content_hash": "6ec6f8481f2eda34def5301adca2833b8158020ae18bd1836964dca1d1439d0a", "fetched_at": "2026-08-29T10:25:03.234666+00:00", "kind": "homepage", "missing": false, "url": "https://twitter.github.io/effectivescala"}], "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": 5328, "days_push": 1241, "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}}