跳到正文
WC.

把 GitHub 当后端

•1 分钟阅读•基础设施•
•
#github#giscus#static-sites

你可以跑一个带评论和动态的静态站,而不跑数据库也不跑 API。做法就是把 GitHub 当成你从不用运维的后端。

身份、存储、动态通常意味着鉴权、数据库和某种实时更新。对个人站或小项目来说,零件太多了。

静态站把 GitHub 用作身份、讨论和构建时活动数据后端的架构图。

我希望读者能评论,也希望展示近期工作——又不想再起一个服务或为评论 SaaS 付费。所以把这两块都统一到同一平台:GitHub。

评论来自 Giscus。它把 GitHub Discussions 嵌进页面。每篇文章或项目对应一条讨论;评论者用 GitHub 登录、在那边回复。没有自己的表、没有自己的审核界面——就是仓库的 Discussions 页。

贡献图是另一块。我在构建时通过 GraphQL API 拉取,把结果写到 public/ 里的一个 JSON,首页像读别的静态资源一样读它。同一套身份、同一套平台。谁说了什么、做了什么,都在这一个地方。

取舍很明确。只有有 GitHub 账号的人能评论。如果你的受众就是开发者、开源贡献者、技术向读者,这个约束可以接受。

贡献数据的新鲜度等于上次部署。我不是在展示实时动态,而是上次构建的快照。对个人站够了,没人需要我 commit 的实时 feed。

所以后端就是 GitHub:身份靠 OAuth 和用户名,存储靠 Discussions 和 API,动态靠贡献日历。我不运维、不扩容、不打补丁。

站保持静态、技术栈保持最小,我只需要维护内容和构建。对很多小站来说,这是对的取舍——一个你不用跑的平台,一次无聊到底的部署。

继续阅读

没有后端的评论

我想在文章和项目页有评论区,但不想自己跑数据库或写 API。 静态站很好,直到你需要有地方存状态。评论就是这种——别人的数据,挂在你的内容上。常见选择要么很重(Disqus,广告和追踪),要么是坑(自建 Commento、审核、垃圾)。我不想再维护一个服务,也不想为评论 SaaS 付钱,免得以后不想管了还得惦记。…

•1 分钟阅读•基础设施
giscuscommentsstatic-sites
用 Resend 和 Cloudflare 从静态站发 newsletter

静态站不会在有人打开页面时跑代码,这正是目的。但 newsletter 需要动态:接收订阅、发确认邮件、处理点击、把联系人加进列表、发欢迎信。那怎么既保持站点静态,又完整掌控整个流程? 我的做法是:用 Resend 发信,用 Cloudflare Pages Functions 提供那一小块 API。HTML…

•1 分钟阅读•基础设施
newsletterresendcloudflare
把定期 newsletter 当成构建步骤

多数「发定期摘要」的建议都假设你需要一个调度器:cron、定时触发的 Lambda,或托管服务「每周二 9 点跑」。如果你的内容在 CMS 里全天更新、你只想在固定时间抓一版,那没问题。但若站点是静态的、内容只在部署时变化,调度器就是错误的抽象。 我把摘要当成 CI 里的一步,紧接在站点 build 和 deploy…

•1 分钟阅读•基础设施
newsletterstatic-sitesci
静态站邮件的摩擦

给静态站加邮件本该是已解决的问题。 我只需要:收联系表单提交、用自己域名发回复。听起来简单,但现代邮件服务商生态感觉非常碎片化。 一开始试了 MailChannels,号称在反垃圾上比别家强。但物理规律不变——文档差、开发体验到处是摩擦,理论优势就没意义。我花在折腾配置上的时间比写代码还多。 Formspree…

•1 分钟阅读•基础设施
infrastructuremailgunstatic-sites