在靜態部落格中加入互動:Bluesky 留言區的技術與哲學

本篇文章更新時間: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 即可)

接著他描述整個技術流程,包含:

  1. 在 MDX 文章 metadata 中指定 bskyPostId
  2. 用 Tanstack React Query 管理 API 請求與 loading/error 狀態。
  3. 呼叫 Bluesky API 的 getPostThread 抓取回覆串。
  4. 只解析純文字內容(忽略 rich content)。
  5. 用簡單的縮排與左側邊框呈現 threaded UI。
  6. 最後附上連結,引導讀者去 Bluesky 回覆。

整段過程看似技術細節,但其實反映了一種輕巧、可維護、又尊重開放網路精神的設計方式。

筆者心得與啟發

這篇文章讓我重新思考「靜態網站也能很社交」這件事。許多創作者因為不想維護後端,乾脆放棄留言區。但 Micah 的作法證明,藉由開放平台,我們可以把複雜度外包出去,而仍保有控制權。

我特別認同作者強調的「不被平台收編」概念。把留言寄放在 Bluesky,而不是依賴封閉商業產品(如 Disqus),不但降低隱私風險,也避免未來被鎖死的問題。

實際應用上,如果你:

  • 有靜態部落格
  • 想加入互動但不願維護後端
  • 認同開放協議、生態可攜

那麼這種「嵌入式外部社交回覆」模型,值得參考或自行實作。

我很喜歡這篇文章呈現出的精神:保持簡單、擁抱開放、讓工具替你工作。


Share:

作者: Chun

資訊愛好人士。主張「人人都該為了偷懶而進步」。期許自己成為斜槓到變進度條 100% 的年輕人。[///////////____36%_________]

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


文章
Filter
Apply Filters
Mastodon