我给博客添加了 Bluesky 评论区
摘要
作者Micah Cantor为其静态博客实现了Bluesky评论区功能。由于静态网站难以托管动态评论系统,作者借鉴Cory Zue的方案,利用Bluesky开放的AT Protocol API直接嵌入评论。相比Twitter、Disqus等方案,Bluesky基于开放协议、不受单一实体控制,且作为社交平台更适合承载对话。整个实现仅约200行代码,采用只读模式展示回复,放弃了复杂的OAuth发帖功能。
内容框架与概述
文章开篇阐述了静态博客添加评论系统的困境——传统方案需要额外维护动态服务器,成本高且耗时。作者受Cory Zue博文启发,发现Bluesky可以作为评论托管的理想选择,因为它处理了账户验证、存储、垃圾信息过滤和内容审核等复杂问题。
在技术选型部分,作者对比了Twitter嵌入、Disqus、giscus(基于GitHub Discussions)等方案,最终选择Bluesky。其核心优势在于基于开放的AT Protocol构建,避免被"威权亿万富翁"控制的风险,同时作为完整社交平台比GitHub更适合承载讨论。
实现细节方面,作者放弃了OAuth授权发帖功能(虽已调通但UI复杂度过高),转而采用只读模式。技术栈包括React Server Components、Parcel、MDX、TypeScript和Bluesky SDK,使用getPostThread端点获取回复,配合Tanstack react-query处理请求状态。UI设计保持简洁,仅提取文本内容,用缩进和左边框展示嵌套回复结构。
核心概念及解读
AT Protocol:Bluesky底层的开放社交媒体协议,使得任何开发者都可以通过公开API访问数据,这是本方案可行的技术基础。
静态站点生成(SSG):作者的博客采用CDN托管的静态生成方式,无法直接运行动态评论服务,这一限制促使其寻找第三方托管方案。
React Server Components:作者的网站架构,配合MDX允许在Markdown中嵌入JavaScript,通过metadata对象声明关联的Bluesky帖子ID。
getPostThread端点:Bluesky API的核心接口,接收AT Protocol URI,返回帖子及其所有回复数据,是实现评论抓取的关键。
只读评论模式:相比完整的发帖功能,只读展示大幅降低了实现复杂度,用户需跳转Bluesky原帖参与讨论,但体验损失可接受。
原文信息
| 字段 | 内容 |
|---|---|
| 原文 | I added a Bluesky comment section to my blog |
| 作者 | |
| 发表日期 | 2026-01-24 |
此摘要卡片由 AI 自动生成