博客自 2012 年从 WordPress 迁移到静态站点后,就选择了 Disqus 作为评论系统。 但最近 Disqus 硬广告过于频繁,迫切寻找新的评论系统。
Disqus 官方 明确说明,要去掉广告就付费。
What if I want to remove Ads? If you’d like to remove Disqus Ads from your integration, you may purchase and ads-free subscription from your Subscription and Billing page. More information on Disqus ads-free subscriptions may be found here.
OK,那再见吧 Disqus,我会找到可靠、免费、易用的评论系统。 最后既然是寻找新的评论系统,现在 2023 年了, 我希望这个新系统充分使用云服务的便利,要做到 免费、可靠、易运维。
在进入探索之前,我先梳理一下自己的原则和选型要求:
从功能上面分析需要的能力:
非功能需求:
通过明晰这些原则和要求,可以更有针对性地选择合适的评论系统,确保满足核心功能和非功能需求。接下来,将根据这些原则,继续探讨如何选择和搭建评论系统。
现在我们初步试验一些方案并进行一些探索,以方便我们熟悉一下当前常见系统的特性和水准。
我同时还看了一些外部的一些方案评测报告:
根据初步方案探索,我可以明确部署形态基本如下:
这是一个横向对比表格,列举我一些关心的特性以及候选者在这些特性方面的表现。除了上述提到几款常见软件, 我还额外调研了海外常用的评论 SaaS 服务:
Name | self-host | Official SaaS | SaaS Free | Star | Import Disqus | export data | Comments |
---|---|---|---|---|---|---|---|
Utterances | x | v | v | 7.8k | v | Github account required | |
Cusdis | v | v | v? | 2.3k | v | v? | import from Disqus failed |
Cactus Comments | v | v | 100 | Matrix Protocol, blocked | |||
Commento | x | v | $10/month | v | v | ||
Graph Comment | v | Free to $7 | |||||
Hyvor Talk | x | v | $12/month | ||||
IntenseDebate | v | ? | x | too old | |||
Isso | v | x | 4.8k | v | sqlite storage | ||
Mutt | v | $16/month | |||||
Remark42 | v | x | 4.3k | v | v | full featured, one file storage | |
ReplyBox | v | $5/month | |||||
Staticman | v | 2.3k | v | using github as storage | |||
Talkyard | v | €4.5/ month | |||||
Waline | v | 1.5k | v | v | Multi Storage / Service Provider supported | ||
Twikoo | v | x | 1.1k | v | v | FaaS / MongoDB |
根据横向对比我们可以得出几个结论:
小结
符合我需求的几款产品是:Utterances、Cusdis、Waline。
我最后选择了 utterances 和 Waline 进行 PoC, 其中我的英文博客使用了 utterances, 中文博客使用了 Waline。
为什么不选择 Cusdis 和 Twikoo?因为 Cusdis 使用 PostgreSQL, 而 Twikoo 存储使用腾讯云函数(免费额度有限)或者 MongoDB, 存储上 Waline 选择更多。 另外,作为同类型方案,Waline 是三者贡献者数量最多的,Commit 数量也最多, 社区更有保障。
一个搞笑的点,如果这里使用 h3 标题叫做「Waline」,会直接在这里插入一个当前博客的评论框
部署图:
具体操作,跟随官方文档即可:
AUTHOR_EMAIL
SENDER_NAME
SENDER_EMAIL
实施 PR(仅包含前端,因为后端代码包含了密钥,不便于分享): feat: comments on waline · alswl/blog.alswl.com@e34e348
utterances 的部署则更为简单,一个 PR 就可以启用。 feat: comment using utteranc · alswl/en.blog.alswl.com@29028f6 (github.com)
也没有什么特色,主打简单省事,考虑我英文博客访问量极低,就简单方案。
最后我选择了 Waline / utterances 作为我的评论系统,两者的部署成本都是 0。
妥协牺牲了一些访问速度、安全性,但进一步增强了数据可控性,完成了 self-host。 从稳定性上面来看,尽管这个系统链路变复杂了,单机上也存在可用性风险, 但依托 Vercel / LeanCloud / Brevo 三家 SaaS 服务商,整体风险可控。
毕竟只是一个小小评论系统,0 成本 + 正常工作就行了。
欢迎在下面评测测试一下哦~