2026-01-26

我给博客添加了 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 自动生成