{"adoption": {"forks": 147, "observed_at": "2026-08-28T04:03:20.102448+00:00", "stars": 1040}, "canonical_url": "https://ross.abutalabs.com/products/booktree", "card": {"archived": false, "artifact_type": "learning-resource", "description": "A Book Tree", "domain": ["education", "tutorials", "developer-tools", "awesome-lists"], "enriched": true, "function": ["documentation", "data-visualization"], "health_score": 20, "homepage": "https://phodal.github.io/booktree/", "language": "JavaScript", "license": "CC0-1.0", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["phodal/booktree"], "name": "phodal/booktree", "platform": [], "pushed_at": "2018-07-24T12:58:20+00:00", "repo": "phodal/booktree", "stars": 1040, "tags": ["reading-list", "book-recommendations", "learning-roadmap", "dependency-tree", "visualization", "web-server", "javascript"], "topics": [], "urls": [], "use_cases": ["find books to level up as a developer", "get a reading roadmap for design patterns and refactoring", "learn which books to read in what order for frontend frameworks", "find a machine learning book reading path", "discover architecture and continuous delivery books", "contribute book recommendations to a community reading list"], "what_it_is": "A curated developer reading list visualized as dependency trees of recommended technical books, covering topics like code quality, design patterns, frontend frameworks, machine learning, continuous delivery, DSLs, and architecture. Book data is stored as JSON with dependency links and rendered as interactive SVG roadmaps on a static site.", "when_to_avoid": ["you need up-to-date book coverage - the project has not seen releases since 2018", "you want interactive courses or tutorials rather than book recommendations", "you need content in English - most descriptions are in Chinese"], "when_to_choose": ["you want opinionated, dependency-ordered book recommendations for software craftsmanship", "you prefer visual roadmaps over flat book lists", "you want a lightweight static site you can fork and extend with your own reading paths"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/booktree", "repo": "phodal/booktree", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.102448+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:03:31.617666+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e80824e87b7e5524a782c62ba4718199b0c5a9095eeab37f0728aec1227a967c", "fetched_at": "2026-08-28T04:03:20.102448+00:00", "kind": "readme", "missing": false, "url": "https://github.com/phodal/booktree"}, {"content_hash": "d34bc3645eda2c346dcea0aff1585f2694b3b372997e1b3e8eb8e070138a07de", "fetched_at": "2026-08-29T13:04:14.948082+00:00", "kind": "homepage", "missing": false, "url": "https://phodal.github.io/booktree/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.102448+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:03:31.617666+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e80824e87b7e5524a782c62ba4718199b0c5a9095eeab37f0728aec1227a967c", "fetched_at": "2026-08-28T04:03:20.102448+00:00", "kind": "readme", "missing": false, "url": "https://github.com/phodal/booktree"}, {"content_hash": "d34bc3645eda2c346dcea0aff1585f2694b3b372997e1b3e8eb8e070138a07de", "fetched_at": "2026-08-29T13:04:14.948082+00:00", "kind": "homepage", "missing": false, "url": "https://phodal.github.io/booktree/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:03:31.617666+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e80824e87b7e5524a782c62ba4718199b0c5a9095eeab37f0728aec1227a967c", "fetched_at": "2026-08-28T04:03:20.102448+00:00", "kind": "readme", "missing": false, "url": "https://github.com/phodal/booktree"}, {"content_hash": "d34bc3645eda2c346dcea0aff1585f2694b3b372997e1b3e8eb8e070138a07de", "fetched_at": "2026-08-29T13:04:14.948082+00:00", "kind": "homepage", "missing": false, "url": "https://phodal.github.io/booktree/"}], "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:03:20.102448+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.102448+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.102448+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:03:31.617666+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e80824e87b7e5524a782c62ba4718199b0c5a9095eeab37f0728aec1227a967c", "fetched_at": "2026-08-28T04:03:20.102448+00:00", "kind": "readme", "missing": false, "url": "https://github.com/phodal/booktree"}, {"content_hash": "d34bc3645eda2c346dcea0aff1585f2694b3b372997e1b3e8eb8e070138a07de", "fetched_at": "2026-08-29T13:04:14.948082+00:00", "kind": "homepage", "missing": false, "url": "https://phodal.github.io/booktree/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.102448+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.102448+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:03:31.617666+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e80824e87b7e5524a782c62ba4718199b0c5a9095eeab37f0728aec1227a967c", "fetched_at": "2026-08-28T04:03:20.102448+00:00", "kind": "readme", "missing": false, "url": "https://github.com/phodal/booktree"}, {"content_hash": "d34bc3645eda2c346dcea0aff1585f2694b3b372997e1b3e8eb8e070138a07de", "fetched_at": "2026-08-29T13:04:14.948082+00:00", "kind": "homepage", "missing": false, "url": "https://phodal.github.io/booktree/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.102448+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.102448+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.102448+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:03:31.617666+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e80824e87b7e5524a782c62ba4718199b0c5a9095eeab37f0728aec1227a967c", "fetched_at": "2026-08-28T04:03:20.102448+00:00", "kind": "readme", "missing": false, "url": "https://github.com/phodal/booktree"}, {"content_hash": "d34bc3645eda2c346dcea0aff1585f2694b3b372997e1b3e8eb8e070138a07de", "fetched_at": "2026-08-29T13:04:14.948082+00:00", "kind": "homepage", "missing": false, "url": "https://phodal.github.io/booktree/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.102448+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.102448+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:03:31.617666+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e80824e87b7e5524a782c62ba4718199b0c5a9095eeab37f0728aec1227a967c", "fetched_at": "2026-08-28T04:03:20.102448+00:00", "kind": "readme", "missing": false, "url": "https://github.com/phodal/booktree"}, {"content_hash": "d34bc3645eda2c346dcea0aff1585f2694b3b372997e1b3e8eb8e070138a07de", "fetched_at": "2026-08-29T13:04:14.948082+00:00", "kind": "homepage", "missing": false, "url": "https://phodal.github.io/booktree/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:03:31.617666+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e80824e87b7e5524a782c62ba4718199b0c5a9095eeab37f0728aec1227a967c", "fetched_at": "2026-08-28T04:03:20.102448+00:00", "kind": "readme", "missing": false, "url": "https://github.com/phodal/booktree"}, {"content_hash": "d34bc3645eda2c346dcea0aff1585f2694b3b372997e1b3e8eb8e070138a07de", "fetched_at": "2026-08-29T13:04:14.948082+00:00", "kind": "homepage", "missing": false, "url": "https://phodal.github.io/booktree/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:03:31.617666+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e80824e87b7e5524a782c62ba4718199b0c5a9095eeab37f0728aec1227a967c", "fetched_at": "2026-08-28T04:03:20.102448+00:00", "kind": "readme", "missing": false, "url": "https://github.com/phodal/booktree"}, {"content_hash": "d34bc3645eda2c346dcea0aff1585f2694b3b372997e1b3e8eb8e070138a07de", "fetched_at": "2026-08-29T13:04:14.948082+00:00", "kind": "homepage", "missing": false, "url": "https://phodal.github.io/booktree/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:03:31.617666+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e80824e87b7e5524a782c62ba4718199b0c5a9095eeab37f0728aec1227a967c", "fetched_at": "2026-08-28T04:03:20.102448+00:00", "kind": "readme", "missing": false, "url": "https://github.com/phodal/booktree"}, {"content_hash": "d34bc3645eda2c346dcea0aff1585f2694b3b372997e1b3e8eb8e070138a07de", "fetched_at": "2026-08-29T13:04:14.948082+00:00", "kind": "homepage", "missing": false, "url": "https://phodal.github.io/booktree/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3912, "days_push": 2962, "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}}