{"adoption": {"forks": 5811, "observed_at": "2026-08-28T04:11:53.557698+00:00", "stars": 29574}, "canonical_url": "https://ross.abutalabs.com/products/500lines", "card": {"archived": false, "artifact_type": "learning-resource", "description": "500 Lines or Less", "domain": ["education", "developer-tools", "tutorials", "programming-languages"], "enriched": true, "function": ["developer-tools", "documentation"], "health_score": 20, "homepage": null, "language": "JavaScript", "license": "NOASSERTION", "license_family": "other", "maturity": "maintenance", "member_repos": ["aosabook/500lines"], "name": "aosabook/500lines", "platform": ["cross-platform"], "pushed_at": "2023-08-19T11:18:34+00:00", "repo": "aosabook/500lines", "stars": 29574, "tags": ["book", "open-source-architecture", "software-design", "educational-code", "aosa"], "topics": [], "urls": [], "use_cases": ["learn how compilers, databases, and spreadsheets work by reading small implementations", "study software architecture and design tradeoffs", "find educational code examples for teaching programming", "understand how experienced engineers structure small programs", "learn by reading well-crafted minimal codebases"], "what_it_is": "The source repository for the book '500 Lines or Less', the fourth volume in the Architecture of Open Source Applications series. Each chapter walks through a small program (at most 500 lines of code) that solves a canonical software engineering problem, explaining design decisions and tradeoffs.", "when_to_avoid": ["you need production-ready, maintained software", "you want comprehensive large-scale system documentation", "you need a library or tool to integrate into a project"], "when_to_choose": ["you want to learn software design through small, readable real examples", "you are teaching or self-studying software architecture", "you want canonical problems (compilers, databases, spreadsheets) explained from scratch"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/500lines", "repo": "aosabook/500lines", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:11:53.557698+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T16:52:55.168056+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a398c9e4e70664c1211b0008dc1e487c79bc69901f1754532c3eea1c17a936c7", "fetched_at": "2026-08-28T04:11:53.557698+00:00", "kind": "readme", "missing": false, "url": "https://github.com/aosabook/500lines"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:11:53.557698+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T16:52:55.168056+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a398c9e4e70664c1211b0008dc1e487c79bc69901f1754532c3eea1c17a936c7", "fetched_at": "2026-08-28T04:11:53.557698+00:00", "kind": "readme", "missing": false, "url": "https://github.com/aosabook/500lines"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T16:52:55.168056+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a398c9e4e70664c1211b0008dc1e487c79bc69901f1754532c3eea1c17a936c7", "fetched_at": "2026-08-28T04:11:53.557698+00:00", "kind": "readme", "missing": false, "url": "https://github.com/aosabook/500lines"}], "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:11:53.557698+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:11:53.557698+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:11:53.557698+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T16:52:55.168056+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a398c9e4e70664c1211b0008dc1e487c79bc69901f1754532c3eea1c17a936c7", "fetched_at": "2026-08-28T04:11:53.557698+00:00", "kind": "readme", "missing": false, "url": "https://github.com/aosabook/500lines"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:11:53.557698+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:11:53.557698+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T16:52:55.168056+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a398c9e4e70664c1211b0008dc1e487c79bc69901f1754532c3eea1c17a936c7", "fetched_at": "2026-08-28T04:11:53.557698+00:00", "kind": "readme", "missing": false, "url": "https://github.com/aosabook/500lines"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:11:53.557698+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:11:53.557698+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:11:53.557698+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T16:52:55.168056+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a398c9e4e70664c1211b0008dc1e487c79bc69901f1754532c3eea1c17a936c7", "fetched_at": "2026-08-28T04:11:53.557698+00:00", "kind": "readme", "missing": false, "url": "https://github.com/aosabook/500lines"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:11:53.557698+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:11:53.557698+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T16:52:55.168056+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a398c9e4e70664c1211b0008dc1e487c79bc69901f1754532c3eea1c17a936c7", "fetched_at": "2026-08-28T04:11:53.557698+00:00", "kind": "readme", "missing": false, "url": "https://github.com/aosabook/500lines"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T16:52:55.168056+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a398c9e4e70664c1211b0008dc1e487c79bc69901f1754532c3eea1c17a936c7", "fetched_at": "2026-08-28T04:11:53.557698+00:00", "kind": "readme", "missing": false, "url": "https://github.com/aosabook/500lines"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T16:52:55.168056+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a398c9e4e70664c1211b0008dc1e487c79bc69901f1754532c3eea1c17a936c7", "fetched_at": "2026-08-28T04:11:53.557698+00:00", "kind": "readme", "missing": false, "url": "https://github.com/aosabook/500lines"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T16:52:55.168056+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a398c9e4e70664c1211b0008dc1e487c79bc69901f1754532c3eea1c17a936c7", "fetched_at": "2026-08-28T04:11:53.557698+00:00", "kind": "readme", "missing": false, "url": "https://github.com/aosabook/500lines"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+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": 4686, "days_push": 1110, "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}}