{"adoption": {"forks": 137, "observed_at": "2026-08-28T04:04:38.869527+00:00", "stars": 1410}, "canonical_url": "https://ross.abutalabs.com/products/front-end-canteen", "card": {"archived": false, "artifact_type": "learning-resource", "description": "你的前端食堂，吃好每一顿饭🍥", "domain": ["frontend", "web-development", "tutorials", "education"], "enriched": true, "function": ["documentation", "developer-tools"], "health_score": 28, "homepage": null, "language": null, "license": null, "license_family": "other", "maturity": "maintenance", "member_repos": ["Geekhyt/front-end-canteen"], "name": "Geekhyt/front-end-canteen", "platform": ["browser"], "pushed_at": "2025-03-27T17:24:29+00:00", "repo": "Geekhyt/front-end-canteen", "stars": 1410, "tags": ["frontend-interview", "javascript", "css", "vue", "react", "webpack", "blog-collection", "chinese-language", "web-server", "nodejs"], "topics": ["javascript", "html5", "css", "nodejs", "vue", "react", "webpack", "blog", "fe"], "urls": [], "use_cases": ["prepare for frontend developer interviews", "learn JavaScript fundamentals like closures and event loop", "study CSS concepts and layout techniques", "review Vue and React interview questions", "understand HTTP and web security topics", "find frontend engineering and tooling guides", "learn browser internals with illustrated explanations"], "what_it_is": "A curated Chinese-language collection of frontend engineering articles, tutorials, and interview preparation materials covering JavaScript, CSS, Vue, React, Webpack, networking, and browser internals. It serves as a personal blog-style knowledge base ('Frontend Canteen') with links to original articles on Juejin and other platforms.", "when_to_avoid": ["you need runnable code or a software library", "you prefer English-language learning resources", "you need up-to-date content on the latest frontend frameworks"], "when_to_choose": ["you want curated Chinese-language frontend learning articles", "you are preparing for frontend job interviews", "you need a broad index of frontend topics from JS to networking"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/front-end-canteen", "repo": "Geekhyt/front-end-canteen", "role": "main", "score": 38}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:38.869527+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:38:26.541291+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "940224c3b6f7f7fddcb9eb85553e616e9aaf993e3594975c1e931e1c09e883b5", "fetched_at": "2026-08-28T04:04:38.869527+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Geekhyt/front-end-canteen"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:38.869527+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:38:26.541291+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "940224c3b6f7f7fddcb9eb85553e616e9aaf993e3594975c1e931e1c09e883b5", "fetched_at": "2026-08-28T04:04:38.869527+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Geekhyt/front-end-canteen"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:38:26.541291+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "940224c3b6f7f7fddcb9eb85553e616e9aaf993e3594975c1e931e1c09e883b5", "fetched_at": "2026-08-28T04:04:38.869527+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Geekhyt/front-end-canteen"}], "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:38.869527+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:38.869527+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:38.869527+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:38:26.541291+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "940224c3b6f7f7fddcb9eb85553e616e9aaf993e3594975c1e931e1c09e883b5", "fetched_at": "2026-08-28T04:04:38.869527+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Geekhyt/front-end-canteen"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:38.869527+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:38.869527+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:38:26.541291+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "940224c3b6f7f7fddcb9eb85553e616e9aaf993e3594975c1e931e1c09e883b5", "fetched_at": "2026-08-28T04:04:38.869527+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Geekhyt/front-end-canteen"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:38.869527+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:38.869527+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:38.869527+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:38:26.541291+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "940224c3b6f7f7fddcb9eb85553e616e9aaf993e3594975c1e931e1c09e883b5", "fetched_at": "2026-08-28T04:04:38.869527+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Geekhyt/front-end-canteen"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:38.869527+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:38.869527+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:38:26.541291+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "940224c3b6f7f7fddcb9eb85553e616e9aaf993e3594975c1e931e1c09e883b5", "fetched_at": "2026-08-28T04:04:38.869527+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Geekhyt/front-end-canteen"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:38:26.541291+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "940224c3b6f7f7fddcb9eb85553e616e9aaf993e3594975c1e931e1c09e883b5", "fetched_at": "2026-08-28T04:04:38.869527+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Geekhyt/front-end-canteen"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:38:26.541291+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "940224c3b6f7f7fddcb9eb85553e616e9aaf993e3594975c1e931e1c09e883b5", "fetched_at": "2026-08-28T04:04:38.869527+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Geekhyt/front-end-canteen"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:38:26.541291+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "940224c3b6f7f7fddcb9eb85553e616e9aaf993e3594975c1e931e1c09e883b5", "fetched_at": "2026-08-28T04:04:38.869527+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Geekhyt/front-end-canteen"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 13, "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": 2620, "days_push": 524, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 38, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}