Architecture Blueprint AI 情报站系统架构图与数据流图
GitHub + Actions + Next.js + Vercel

一套适合个人 AI 产品的低维护架构。

System architecture & data flow for AI Signal Desk

这个 AI 情报站的核心目标不是“功能多”,而是“每天稳定产出高信号信息,并且不需要手工维护”。所以我选择了把代码、数据、自动更新和部署放进同一条简单而稳的链路里。

推荐理由:这套架构最适合个人产品。它用 GitHub 仓库做代码与数据的统一来源,用 GitHub Actions 定时更新内容,用 Next.js 负责页面渲染,用 Vercel 负责上线和自动发布。结构清晰、维护成本低、后续扩展也很顺。

系统架构图

下面这部分回答的是“谁负责什么”。你可以把它理解成从外部世界到最终页面的模块分工图。

Module Responsibility
数据来源层

GitHub

用于抓取 AI 热门项目和热门 Agent Skills 的公共搜索结果与仓库元信息。

Projects / Skills

Hacker News

提供高信号的社区讨论热度,补足“开源项目之外大家在聊什么”。

Social signal

Reddit

从 AI 相关社区里提取过去 24 小时更偏一线使用者视角的热点话题。

Community pulse

RSS / Blog

来自 OpenAI、Anthropic、Google AI 等公开 Feed,用来提供稳定媒体与官方信号。

Media / official feeds
处理层

抓取脚本

分别由 fetch-github.tsfetch-social.tsfetch-skills.ts 负责抓取三类来源。

Source-specific ingestion

归一化 / 打标 / 评分

用统一 schema 把不同来源的数据压成一种结构,再做标签分类、热度计算和去重。

Normalize / tag / score

快照与索引

生成 data/latestdata/dailydata/indexes,分别服务首页、历史页和趋势页。

Snapshot persistence

异常保护

如果某个来源失败,系统会尽量回退到上一次有效快照,而不是把整页打空。

Fallback & resilience
应用与发布层

Next.js 页面层

Today、History、Trends 直接读取仓库里的 JSON,不依赖数据库即可静态生成。

Static rendering

GitHub Actions

每 6 小时定时跑一次数据更新,把新的 data 文件写回仓库。

Scheduled refresh

GitHub 仓库

代码和数据都沉淀在仓库里,形成唯一事实来源,方便回溯与迭代。

Code + data source of truth

Vercel

监听主分支变更自动构建和发布,保证新数据写回仓库后能自然转成新页面。

Deployment & hosting

数据流图

这部分回答的是“数据怎么流动”。它强调时间顺序,从外部来源开始,一直到用户打开网页看到最终结果。

Data Flow
01

抓取外部来源

GitHub、HN、Reddit、RSS 等公开来源先被抓取脚本读取,拿到原始项目、帖子、新闻与技能候选项。

02

标准化成统一结构

不同来源的字段会被统一映射成同一种 signal 结构,便于后续排序、打标、渲染与历史沉淀。

03

打标签、评分、去重

系统为每条信息补上主题标签,并按热度、相关性、时效性综合打分,同时对重复信号做合并。

04

生成最新快照、历史快照和趋势索引

最新页面读 latest,历史页读 daily,趋势页读 indexes。这一步把“信息流”变成了“可持续浏览的知识结构”。

05

Next.js 读取 JSON 构建页面

应用层不再直接抓外部接口,而是静态读取仓库里的 JSON,因此页面更稳定,访问也更轻。

06

Vercel 发布成可访问的网站

一旦 GitHub 仓库有新数据或新代码,Vercel 就会重新构建并发布,最终用户看到的是最新但仍然稳定的静态页面。

异常与降级

这个站点的稳定性不依赖“所有来源都永远成功”,而依赖“即使某个来源失败,系统也还能给出可用结果”。

Resilience

单源失败不拖垮全站

  • 某个 RSS、Reddit 或 GitHub 查询失败时,其他来源仍然继续工作。
  • 这样不会因为一个来源的波动把三大榜单全部打空。

保留历史快照

  • 每日快照让页面即使在某次抓取失败时也有可回退内容。
  • 这既增强稳定性,也让趋势分析天然成立。

数据与页面解耦

  • 页面构建只消费仓库中的 JSON,而不是运行时直接请求外部来源。
  • 因此访问阶段更稳定,问题集中在更新阶段更容易定位。

你接下来可以怎么扩展

这套架构不是终点,而是一个很好的产品起点。它的价值在于:之后想加什么功能,都有明确挂载点。

Next Possibilities

内容增强

  • 为英文资讯补中文摘要
  • 加“为什么值得看”的一段 PM 视角解释
  • 做每日 / 每周导读

来源增强

  • 后续可安全接入 X 作为增强来源
  • 可加入更多 AI Newsletter、研究机构或垂类媒体
  • 可单独为某个主题加专属来源池

产品增强

  • 收藏夹和个人标注
  • 按主题自动生成周报
  • 做成更完整的 AI 研究工作台

关键实现文件

如果你想从代码角度追进去,下面这些文件最能代表这个系统的核心结构。

Core Files

数据抓取

负责从外部来源收集候选信号。

scripts/fetch-github.ts
scripts/fetch-social.ts
scripts/fetch-skills.ts

聚合与生成

负责把候选数据加工成页面可直接消费的 JSON。

scripts/build-dashboard.ts
src/lib/normalize.ts
src/lib/schema.ts

页面与自动化

负责渲染 Today / History / Trends,并把定时更新跑起来。

src/app/page.tsx
src/app/trends/page.tsx
.github/workflows/update-data.yml