gitweets改版,复刻微信「朋友圈」
Posted | stdout
去年搓了个 gitweets,一个 .html 实现了「微博」,拿git历史当feed流~发推
这个周末看着 coding plan 还剩 20% 要到期,没用完,怎么办呢?想来想去,挖大坑干不完,小修小改,就拿这个 gitweets 继续填坑了
首先是让AI把界面改成模仿微信 朋友圈,啪一下,很快啊,结果让人非常印象深刻,很逼真

现在的AI真厉害。让我去调CSS可能这辈子都搞不出来这个效果了。
后面是我的一些唠叨,不感兴趣的可以关闭页面,或者去上面那个围观一下。
想起来独乐乐不如众乐乐,要不,支持个评论功能?
项目的初衷是 static page,要实现互动肯定得用一些API了。
最能想到的思路,走传统的 github issue 什么的,和这个 gitweets 最大的出发点冲突了:一个 git repo 包含所有数据,随时搬家,不用导出。
而且麻烦的是,post 是绑定到 commit 上的。如果你用一个 JSON 之类的来存评论,势必也会新增一个 commit,这样会污染post时间线。
突然想起来一个古老的东西,git notes,这是连 ChatGPT 和 Claude 都没想到的邪路,不过它们很快确认这个办法甚好,可行。
git notes选型定下里,建立这个数据模型让我纠结了很久。围绕 github 开展流程,让我一度误入歧途
- oauth 登录,不要任何scope
- 用来存 github notes的repo邀请登录人加入项目
- 浏览器通过该用户access token发起 notes append
最后想明白了,压根不应该走浏览器这一套。而是只能走后端代劳,用 Fine-Grained PAT 来和 github API 交互
其间还考虑 github 越来越拉垮,想避免 vendor lock-in,直接走git http协议。
首先想到的是 Cloudflare 那个牛逼的 zig 写的 100kb 的 wasm 可以 http 读写任意 git 仓库
git protocol engine is written in pure Zig (no libc), compiled to a ~100KB WASM binary. Support for both v1 and v2 of the git protocol. Support capabilities including ls-refs, shallow clones (deepen, deepen-since, deepen-relative), and incremental fetch with have/want negotiation.
仔细读了下文档,让AI一起调研,发现tmd这玩意仅限 Worker 内部使用,只能读写 CF 内部的 假 git,不支持读写外部任意 git http。
用 isomorphic-git 坑也挺多 。还是先走 github API 吧
这个 git notes 要走REST API 有查询放大 3+N 的问题,怕掉用次数爆掉,于是让AI走 GraphQL。我自己手动是搓不动 GraphQL,太难了。AI虽然是 flash 普通智商版本,也分分钟拼接好。一次成功。真猛 😭
于是 Vibe 出来了。
搓完了想起一个问题,如果有人刷评论怎么办?于是让AI搓了个 /.admin 管理页面。也是秒写好。太方便了。
明显欠缺的功能搓完之后,感觉又进入了贤者时间,索然无味了。
Comments