Remove Disqus
前陣子有整理了一下部落格的東西,大致上作的事情是:
- 拿掉 Google Analytic
- 拿掉所有的 SNS 按鈕
- 拿掉 Disqus
- 換 web font 服務
首先是拿掉 Google Analytic 這件事,其實我已經想很久了,一部分原因是不想餵資料資料給 Google,另一個原因則是剛好現在舊的 Universal Analytic 已經停用了,一定要改成用 GA4,所以趁這個機會就乾脆的拿掉了,不過還是會好奇哪些內容比較有人看,所以又花了點時間研究了 web log 分析軟體,因為不想多架服務,老牌的 AWStats 介面現在實在是無法接受,所以現在選的是 goaccess 當成 terminal 工具來用,不過它其實還蠻強的,選項很多,要當成服務跑也可以。另外就是如果還是偏好前端的追蹤, Twitter(現在的X) 上也有朋友推薦了 GoatCounter 和 umami,分別是 golang 和 js 寫的服務,有開源也有線上的服務,有限度的服務使用額度,當然自架的話也可以,不意外的都需要資料庫,非開源專案的話也有一個 Plausible 看起來不錯。
第二個是 SNS 按鈕,其實以前有三個按鈕,分別是 Google+、Facebook 和 Twitter,然後我都是用 iframe 掛上按鈕的,這樣比較不用擔心直接掛第三方 js 的各種問題(隱私、安全),不過 Google+ 收掉了,FB 按鈕因為 Firefox container 的關係我其實也都看不到,後來忘了什麼原因也拿掉了,最後只剩下 Twitter 的,結果最近發現我掛按鈕使用的那個 Web Intent 也被改的無法在 iframe 內顯示按鈕了,所以就乾脆的剩下的全拿掉,最後只留下一個用 Web Share API 的按鈕。
然後是 Disqus,其實留言系統原理簡單不難,但是真的要做的話也是很麻煩,一來要有資料庫,這樣現在很多的靜態網頁產生工具就先死一票了、二來還要有能檔 spam 的能力,所以 Disqus 的出現真的是補了一個很大的缺口,我以前是很喜歡 Disqus 的,畢竟它是這種需求數一數二的先行者,該公司的工程師也很認真的研究 3rd party script 的技巧,我現在工作也有一部分是在寫 3rd party script,對此有興趣之餘,也對於這東西的麻煩之處很有感,不過現實就是開公司就是還是要賺錢,所以慢慢的它也是走向我比較不喜歡的方向,開始大量收集資料,然後甚至有人說開始有插入廣告了,不過除此之外,更大的一個原因是在我這邊的使用率實在太低,如果都沒人用的話,一直掛著也只是訪客被收集資料而已,於是我決定把整個迴響區塊都拔掉,帶來的副作用當然就是以前一些少數的留言也都消失了。
我在拿掉迴響後沒兩天,就剛好看到 HackMD 也拿掉 Disqus 的消息,跟著原推文下去找其實也有不少的替代方案,像是 cusdis、用 GitHub 的 giscus 和 utterances 等,其實 Wappalyzer 上也有些替代方案(然後也可以看到 Disqus 佔有率目前還很高)。
其實還有另外一種類型的替代方案,就是去支援新的 protocol,像是 ActivityPub 和 Webmention ,第一次看到 ActivityPub 加上靜態網站產生器的方案時,我就想起以前消失在 spam 的洪流之中的 trackback 機制,不過靜態網站產生器和 ActivityHub 相性不是那麼好,它其實也是和留言系統一樣,需要有 API endpoint 和資料庫,所以有辦法做到支援的選擇也沒很多,相關的服務和專案也相對不成熟,還需要不少手工;另外一個選擇 Webmention,則可以參考 Jason 的「透過 webmention 來搜集 blog 的社群迴響」,基本上是可以透過第三方服務來弄成純前端的方案。
最後一個就是 web font 了,其實本來沒有要調整這塊,只是上面幾項改完,發現網站幾乎要沒有追蹤器了,只剩下 Google Fonts 相關的 request,Google Fonts 一直是被歸類為潛在的追蹤器,實際上到底有沒有被偷偷用來當做追蹤器也無法證實,總之我就試著尋找替代方案,一開始想的是自己放檔案,因為我只有用到兩個英文字型,不過結果大小差了 10 倍,不進一步調整不行,就在這時候看到了 Laravel 因為 GDPR 的關係改用Bunny Fonts 了,大概研究了一下,bunny.net 本身是 CDN 服務商,而 Bunny Fonts 就是主打無追蹤,所以 GDPR 沒問題,另一個特點就是介面和 Google Fonts 相容,也就是說只要把 domain name 換掉就好(我的狀況是還有 CSP 要修改)。
然後最後的結果就是如文章上面的圖片一樣,現在大部分頁面,EFF Privacy Badger 的檢查結果已經是沒有需要阻擋的東西了,只有部分文章有內嵌 Tweet 或 YouTube 影片的,就還是會顯示有潛在的追蹤器。