本篇文章更新時間:2026/01/25
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知。
一介資男的 LINE 社群開站囉!歡迎入群聊聊~
如果本站內容對你有幫助,歡迎使用 BFX Pay 加密貨幣 或 新台幣 贊助支持。
用 Bluesky 打造部落格留言區:一個開放協議帶來的輕量解法
編輯前言:這篇文章來自作者 Micah Cantor 的實作分享:I added a Bluesky comment section to my blog。他提出一個對靜態網站作者相當友善的留言區解法:直接引用 Bluesky 的回覆串。對於不想維護後端、又希望增加互動的創作者來說,是個很值得參考的設計思路。
核心觀點 (Key Takeaways)
- 靜態網站也能有留言區,只要把「互動」外包給 Bluesky。
- Bluesky 的開放協議(AT Protocol)讓嵌入評論變得簡單且不易被平台綁架。
- 作者選擇自行開發,而非使用套件,原因是:樣式客製化與未來擴充性。
深入解析
這篇文章的核心其實不只技術,而是「如何在不維護後端服務的前提下,讓靜態網站擁有社交互動」。對於透過 CDN 託管的部落格來說,建立動態留言系統意味着付出維運成本,而作者明確表態:「他不想當無薪 DevOps」。
Micah 在讀到 Cory Zue 的分享後,意識到 Bluesky 提供了一條極具彈性的道路:
Bluesky 負責驗證、託管、反垃圾與內容管理,而你只需接 API 顯示留言。
這種分工模式讓留言區重新回到「前端功能」,而不需要伺服器支援。
-
為何不是 Disqus、Twitter 或 GitHub Discussions?
Micah 的理由其實很有哲學味:Bluesky 建立在開放協議 AT Proto 上,抗平台壟斷,且作為完整的社交平台,對話品質自然優於 GitHub 的 Discussions。 -
自行重寫而不是用套件?
雖然已有 Zue 的bluesky-comments套件,作者仍選擇自行打造約 200 行的版本,原因包括: -
想客製化 UI
-
未來好擴充
-
實作不算複雜(靠 Bluesky 的 TypeScript SDK 即可)
接著他描述整個技術流程,包含:
- 在 MDX 文章 metadata 中指定
bskyPostId。 - 用 Tanstack React Query 管理 API 請求與 loading/error 狀態。
- 呼叫 Bluesky API 的
getPostThread抓取回覆串。 - 只解析純文字內容(忽略 rich content)。
- 用簡單的縮排與左側邊框呈現 threaded UI。
- 最後附上連結,引導讀者去 Bluesky 回覆。
整段過程看似技術細節,但其實反映了一種輕巧、可維護、又尊重開放網路精神的設計方式。
筆者心得與啟發
這篇文章讓我重新思考「靜態網站也能很社交」這件事。許多創作者因為不想維護後端,乾脆放棄留言區。但 Micah 的作法證明,藉由開放平台,我們可以把複雜度外包出去,而仍保有控制權。
我特別認同作者強調的「不被平台收編」概念。把留言寄放在 Bluesky,而不是依賴封閉商業產品(如 Disqus),不但降低隱私風險,也避免未來被鎖死的問題。
實際應用上,如果你:
- 有靜態部落格
- 想加入互動但不願維護後端
- 認同開放協議、生態可攜
那麼這種「嵌入式外部社交回覆」模型,值得參考或自行實作。
我很喜歡這篇文章呈現出的精神:保持簡單、擁抱開放、讓工具替你工作。
