1k-github-stars
用交互式矩形树图可视化 6 万+ GitHub 仓库,快速发现高价值开源项目与每日趋势
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
用交互式矩形树图可视化 6 万+ GitHub 仓库,快速发现高价值开源项目与每日趋势
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
你有没有过这样的困惑:GitHub 上有上亿个仓库,到底哪些值得 star?每次找开源项目要么靠搜索引擎,要么靠别人推荐,总感觉在盲人摸象。1k GitHub Stars 这个项目,用一种极其直观的方式解决了这个问题——它把 6 万多个 GitHub 仓库做成了交互式矩形树图(Treemap),让你一眼看清整个开源生态的版图与趋势。
图1:项目首页——GitHub 仓库的全局视图

GitHub 是全球最大的开源代码托管平台,仓库数量早已突破亿级。对于想找工具、学技术、发现趋势的开发者来说,最大的痛点不是找不到项目,而是在海量项目中找到真正有价值的那一个。
传统的发现方式依赖搜索引擎或 curated lists(如 awesome 系列),但这些方式要么依赖关键词匹配,要么依赖人工维护,总有滞后性和主观性。1k GitHub Stars 的思路是:用数据可视化代替人工推荐——把所有高质量仓库的 stars 数量作为面积,用矩形大小直观展示,形成一张类似世界地图的「开源宇宙图」。
默认视图展示所有经过筛选的优质仓库。它通过一套 repo-classifier 算法自动过滤掉了「列表类」项目(如 awesome-xxx、roadmap、tutorial、interview 等),只保留真正有代码实质的项目。矩形面积越大,说明 stars 越多;颜色代表不同编程语言。
这是最有意思的视图。它每天根据 GitHub API 的快照数据,计算每个仓库在过去 24 小时的 star 增量,highlight 出正在快速上涨的项目。如果某个 AI 框架或工具突然爆火,在这里你能在几分钟内发现它。筛选条件是:仓库年龄至少 7 天、baseline stars 至少 2500——这个门槛过滤掉了新仓库的噪声。
第三个视图把刚才被过滤掉的列表类项目单独展示。对于想找学习路线、面试题库、工具合集的人来说,这个视图反而更实用。
项目基于 Next.js 16.2.2 和 React 19.2.4,但使用了 output: 'export' 模式,完全生成静态 HTML/CSS/JS,部署到 Cloudflare Pages 上。这意味着:
npm run pages:deploydata/repos.json(约 9MB),包含 6 万多条仓库记录矩形树图的核心算法在 lib/squarify.ts 中实现。这是一种将一维数据(stars 数量)映射到二维平面的算法,保证每个矩形既能保持数据比例,又尽可能接近正方形,方便人眼比较大小。整个可视化组件 components/Treemap.tsx 长达 38KB,是项目中最复杂的代码。
lib/colors.ts 和 lib/tiers.ts 分别负责语言颜色映射和 star 区间分层。每个语言有一个专属颜色,stars 被分成多个区间(Tiers),高星仓库占据更大面积,低星的聚合为「Others」。Header.tsx 提供了面包屑导航,支持语言下钻(drill-down)——点击某语言的整个色块,视图就会缩放到只显示该语言的项目。
这是项目的智能核心。lib/repo-classifier.ts 定义了两套过滤规则:
强制包含白名单:像 microsoft/PowerToys、openai/codex、anthropics/claude-code 这些虽然名字中含有关键词,但实际上是真正的代码项目,会被强制保留。
关键词排除规则:名称或描述中出现 awesome、roadmap、guide、tutorial、interview、cookbook 等词的项目,大概率是列表类而非工具类,被过滤到 Awesome 视图。
这个项目对用户来说完全零门槛。打开 https://github-treemap.pages.dev 就能用,不需要安装任何东西,不需要注册账号。搜索功能支持在当前视图中匹配仓库名称、描述和语言标签。如果你想自己部署:
git clone https://github.com/xiaoxiunique/1k-github-stars
cd 1k-github-stars
npm install # 或 pnpm install / bun install
npm run dev # 本地预览
部署到 Cloudflare Pages 同样简单,安装 Wrangler CLI 后执行 npm run pages:deploy 即可。项目还提供了 scripts/refresh-growth.mjs 脚本用于定时刷新 star 增长数据。
数据静态性:6 万条数据是定期快照而非实时更新,每日趋势的「今日」是快照对比,不是真正的当天数据。
筛选主观性:repo-classifier 的过滤规则基于关键词,必然存在误判——比如一个名为「react-awesome-tutorial」但实际上是有代码的工具,会被错误排除。
无后端架构:纯静态网站意味着无法做个性化推荐或动态排序,所有交互都发生在客户端浏览器中,9MB 的 JSON 数据在首次加载时需要一定时间。
1k GitHub Stars 代表了一种趋势:用可视化 + 数据驱动代替人工编辑来做开源发现。随着 GitHub 仓库数量持续增长,传统的 curated lists 已经无法覆盖全部优质项目,而基于 stars、增长趋势、代码实质性的自动发现工具,恰好填补了这个空白。
项目本身 star 数虽然不高(162),但它的思路已经被不少类似工具借鉴。如果你对数据可视化、GitHub API、Next.js 静态站点感兴趣,这个项目是极佳的学习参考。