评论系统方案横向对比

Git 托管、自建后端、第三方托管、社交平台、自己写,五条路线二十多个方案逐个拆开比。数据存在谁那儿、读者留言要付出什么,这两件事决定了其余全部差异。附 2026-08-25 逐个仓库核过的活跃度。

本站的评论区是今年 7 月上线的,用的 Waline,不过前端自己魔改过。

这篇文章来横向对比一些其他的评论系统,如果你也博客建站可以参考一下。

相关:评论区完全指南评论区的广告处置规则网站统计方案横向对比

两个维度分类

真正把方案分开的是两件事:数据存储位置,以及读者留一条言需要什么条件

路线存储位置留言门槛维护方案代表
Git 托管代码托管平台一个 GitHub 账号Nothinggiscus、utterances、Staticman
自建后端自托管无门槛一个常驻进程 + 一个库Waline、Artalk、Twikoo、Remark42、Isso
第三方托管服务商多半要注册Money!Disqus、Hyvor Talk、来必力
社交平台社交平台社交平台账号NothingBluesky、Mastodon、Webmention
自己写自托管你说了算ALLWorkers + D1、Supabase、表单服务

提示

决定评论区活跃度的从来不是你用了 Waline 还是 Artalk,而是读者能不能不注册就留言——这条比后面所有功能对比加起来都重要,我先把它放在最前面。

一、Git 托管型

思路是把代码托管平台当数据库,评论存进 Issues 或 Discussions,前端纯 JS 调 API 读写。

giscus

12K star,基于 GitHub Discussions。装一个 GitHub App、前端引一个 <script> 就成功,自带嵌套回复、Reactions、完整 Markdown 和代码高亮,评论顺带变成 GitHub 上的一条 Discussion,还有额外的可发现性。

三个要求:

1、仓库必须是公开的

2、读者必须有 GitHub 账号并授权 giscus 这个 App,没有账号或者不想登录的直接就是不评论了

3、没有导出评论的功能

提示

配置上有个小技巧:分类选 Announcements 类型,因为这种分类普通用户没法自己发起新讨论,里面只会有 giscus 建的那些,评论区干净得多。

utterances

giscus 的前身,基于 Issues 而不是 Discussions,9.7 千 star,但最后一次提交停在 2024-08(2026-08-25 查)。功能更少,而且每篇文章占一个 Issue,仓库的 issue 列表会变成一片评论。现在没什么理由再选它。

Staticman:这一类里最特别的一个

前面两个是把评论存在别人家,Staticman 是把评论变成你仓库里的数据文件:它收下表单提交,校验之后直接 commit 成 _data/comments/ 下面的 YAML 或 JSON,下次构建时当成静态内容渲染出来。想审核就让它提 PR,你合了才上线。

这套的好处是别家给不了的:评论最终是纯静态文件,加载零开销,自带版本历史,备份等于备份仓库,而且读者不需要任何账号——填个表就行。Jekyll 圈子里用得比较多。

代价也很实在:评论要等一次构建才出现(快的话几十秒,慢的话看 CI 排队),公共实例长期不稳,认真用就得自部署,而且它自己也不太动了——2.4 千 star,最后一次提交 2024-04,README 里还写着要 Node.js 8.11.3。

gitalk / Gitment / Beaudar

老一批 GitHub Issues 方案。

gitalk 现在还有提交(7.2 千 star,2026-07),但它的结构性问题没变:OAuth 换 token 需要 client secret,纯前端方案要么把 secret 摆出来,要么依赖一个第三方代理服务器帮你换。

Gitment 停在 2021-10,别用了。

Beaudar 是 utterances 的中文优化 fork,改善了国内加载和中文显示,还在更(2025-12),但只有 111 star,属于「能用,但出了问题只有你自己」。

二、自建后端型:独立博客圈的主流

自己跑一个服务,读者填个昵称邮箱就能留言,不需要任何账号。

Waline

Valine 的精神继任者,中文圈生态最大的一个,3.1 千 star,更新很勤(2026-08-24 还有提交)。

情况
技术栈Node.js
数据库SQLite / MySQL / PostgreSQL / MongoDB 等一长串
部署Vercel 一键、Docker、裸机 Node 都行
特性Markdown、表情、阅读量统计、点赞、邮件与多种 Webhook 推送、评论者等级、置顶、黑名单、敏感词、Akismet、图片上传、@ 提及、私密评论、独立后台

它的问题是功能太多带出来的:环境变量能拉一长串,文档里还留着不少 LeanCloud 时代的历史包袱,Node 进程的内存占用比 Go 那几个高一截。

Waline 使用缺点

上面那条是看文档就能知道的。下面这些是本站挑出来的都是配置项解决不了的那种

1、反垃圾只扫正文如果广告全在昵称和网址里,官方这个过滤器根本够不着

2、弹窗和报错不归你管。删评论的 confirm、六处报错的 alert 都埋在 Vue 组件闭包里,从外面改不到,想换成站内模态框只能去顶掉全局的 window.alert / window.confirm

3、不配图片上传接口就是 base64 内联,图片直接编码进正文发给服务端,稍微大一点就撞请求体上限,而且是点了才发现失败。不打算接图床就 imageUploader: false 显式关掉,直接关闭插入图片那个按钮

4、登录问题,如果评论使用不同的域名,手机端可能登录不上,而且手机端的后台系统也有UI自适应兼容问题

5、官方快速上手让你把挂载点写成 <div id="waline">,而 waline 这个名字太容易被文章标题撞上!会导致评论区会被整个挂进文章中段,页面底部则永远停在「评论加载中」。挂载点的 id 得取个标题绝不会 slug 出来的值!

Artalk

Go 写的,单二进制,2.3 千 star,活跃(2026-08)。默认 SQLite 零配置,也支持 MySQL / PostgreSQL;下载一个文件直接跑,或者一个 Docker 容器。

优点很集中:内存占用极低,侧边栏式后台(不用跳到独立页面),i18n 做得比同类好,提供 OpenAPI,还支持一个实例给多个站点用。

Twikoo

2.3 千 star,活跃(2026-08)。UI 是这几个里最精致的,管理面板直接嵌在评论框的齿轮图标里,很顺手;支持从 Valine、Artalk、Disqus 导入。

Remark42

Go 写的隐私优先方案,5.6 千 star,活跃(2026-08-24),数据库是 BoltDB——就是一个文件。

支持 Google、GitHub、Microsoft、Apple、Telegram 等一堆 OAuth,也支持匿名评论;只存哈希后的用户 ID 和用户名,无追踪脚本,内置导出和删除,官方自称资源占用极低。合规这件事上它是最省心的一个。

两个问题:开了匿名之后没有内置的垃圾过滤,必须自己接反垃圾服务;中文社区几乎没人用,出问题只能读源码和英文 issue,UI 也是偏西式的审美。

Isso

德语项目,Python + SQLite,老牌 Disqus 替代品。

仓库搬到了 isso-comments/isso,5.3 千 star,2026-08 还有提交。

它的定位是「只想要能留言」:Markdown、默认 15 分钟内可编辑或删除自己的评论、审核队列里的评论通过前不公开、配置文件一眼看完。没有 OAuth,UI 相当朴素。依赖极低,适合真的很小的机器。

Commento-现成的反面教材

因为它把「选型时活跃度该占多少权重」这件事演示得非常完整:

阶段状况
Commento原本口碑不错,主打隐私无追踪,后来开源版停滞,作者转向付费托管
Commento++社区 fork,最后一次提交停在 2023-06
Comentario目前活跃维护的继任者(GitLab 上,2026-08-24 还在动),Go + PostgreSQL,多站点、SSO、评论投票、Akismet/Perspective 反垃圾

评论系统是要长期跑在你服务器上的东西,作者跑路意味着以后的安全补丁得你自己打

其他

方案状况(2026-08-25 查)
Cusdis极轻量、主打隐私的 Disqus 平替,仓库已归档,只读了,别再上新站
SchnackNode.js,不支持匿名、必须第三方登录(作者的理由是这样天然挡机器人),最后提交 2023-03
HashOverPHP,适合共享虚拟主机,非常老派
Discourse开源讨论平台,既能当评论也能当完整论坛,官方建议 2 GB 内存起。个人博客用它是大炮打蚊子,除非你真有一个活跃社区
CoralMozilla 系出身,面向新闻媒体,MongoDB,还在更但同样偏重

Valine:不推荐新项目

必须提一句,因为老教程里到处都是它。纯前端直连 LeanCloud,没有真正的后端,没有自带后台(要另装 Valine-Admin),社区多次反映评论者的邮箱、IP 等信息可能被前端接口拉到,LeanCloud 国内版还要备案绑域名。仓库最后一次提交 2024-12。

三、第三方托管型:省事,代价是控制权

Disqus

最省事,也是被吐槽最多的。注册即用,跨站身份、通知、反垃圾全包,后台成熟。

三个大问题:

1、评论必须登录、免费版带广告、中国大陆基本访问不了;

2、它是所有方案里最重的一个,一个评论区能拖出一长串第三方请求;

3、隐私保护不行,数据被追踪

DisqusJS 是社区为了绕开墙做的前端代理层,未登录时只能读不能写,属于打补丁。

Hyvor Talk

商业化的隐私友好方案,做了很多年,对隐私很认真,定价(2026-08-25 的官方定价页):

价格额度站点数
Personal€5/月,只能按年付2,500 credits/月1
Premium€12/月10 万 credits/月10
Business€40/月25 万 credits/月50

没有免费档,只有 14 天试用。网上流传的「$5 起」和「€12 起」都不算错,只是各说了一半

来必力(LiveRe)

韩国产品,国内可访问。免费版有广告、加载慢、City 版功能阉割得厉害,口碑一般。国内站点实在不想自建可以考虑,但体验称不上好。

四、社交平台型:新路线

思路是不自己存评论,而是把某条社交帖子的回复拉过来当评论区显示。

Bluesky

发文时同步发一条 Bluesky 帖子,把帖子 URL 写进 frontmatter,前端调 app.bsky.feed.getPostThread 拉回复渲染。现成的库也有,React 项目 npm install 之后一个 <BlueskyComments /> 就能用。

账号验证、托管、存储、反垃圾、内容审核这些烦人的事全归平台,后端都不用写,讨论还天然有传播性。代价是只读(要回复得去 Bluesky 上发)、读者得有账号、国内基本用不了、数据在别人手里。

Mastodon

同样的思路换成 ActivityPub。有意思的是它可以做成完全静态:写个脚本定期拉取帖子的所有回复,写成和文章同名的评论文件,下次构建自动合入;有人改了删了也会跟着同步,整个过程由 CI 提 PR 完成,前端一行 JS 都不需要。

绕了一圈,这其实又回到了 Staticman 那个形态——评论最终是仓库里的静态文件。缺点是有延迟,取决于 CI 跑多勤。

Webmention

IndieWeb 那套标准,门槛偏高,适合 IndieWeb 信仰者。

Telegram 讨论组

中文圈更现实的一个变体:建一个频道加一个关联讨论组,文章同步推送到频道,读者在讨论组里回复,前端把那条消息的回复嵌进页面。国内直连不了,但对已经有 TG 群的博主来说,评论区和读者群本来就是同一批人,合并反而更活。

Cactus Comments

基于 Matrix 协议,可以接自己的 homeserver。理念很好,实际用的人极少。

五、全自研

评论系统需要的东西其实少得很:一张表、一个写接口、一个读接口、一层反垃圾。真正难的是审核后台、通知、防刷这些边角

做法说明
Cloudflare Workers + D1免费额度内跑个人博客绰绰有余,没有常驻进程,冷启动可忽略。要自己写后台
Supabase / PocketBase直接给你一张表加一套鉴权和行级权限,前端调 SDK。省掉的是鉴权,不是审核
表单服务 + 人工合入Formspree、Netlify Forms 这类收下提交发到你邮箱,你手动写进仓库。听着原始,但对每月十条评论的站点完全够用,而且垃圾评论进不了页面

我自己的实际状态是半自研:评论后端仍然是 Waline,一行源码没改;但登录、头像上传、账号页那套是自己写的,账号页里那个评论编辑器也是自己实现的——不含 Waline 的运行时,只照抄了它的 DOM 结构和类名。

这么干的收获是明确的:边角自己写,核心别自己写。存储、通知、反垃圾、审核这些东西,你写出来的第一版一定不如跑了五年的开源项目;但「登录之后头像跟着账号走」这种和你站点强耦合的部分,指望配置项永远差一口气。

六、横向对比总表

活跃度那一栏是 2026-08-25 现查的仓库最后提交时间,不是抄来的。

方案要后端读者要登录数据归属国内可用占用活跃度
giscusGitHub 账号GitHub不稳活跃
utterancesGitHub 账号GitHub不稳停在 2024-08
StaticmanNode是(可自部署)你的仓库看部署停在 2024-04
WalineNode你自己活跃
ArtalkGo你自己极低活跃
TwikooNode你自己活跃
Remark42Go可选你自己极低活跃
IssoPython你自己极低活跃
ComentarioGo + PG可选你自己活跃
CusdisNode你自己已归档
Valine无(LeanCloud)LeanCloud停滞
DisqusSaaSDisqus无(但很重)商业
Hyvor TalkSaaS可选Hyvor商业
BlueskyBluesky 账号Bluesky生态期
自己写随你看做法你说了算你自己看做法看你

七、怎么选

按最在意的那一条走,四个问题就够了。

一、你的读者是谁? 清一色开发者 → giscus,别折腾。有非技术读者 → Git 托管型和社交平台型全部出局,必须能匿名或者只填邮箱。

二、你有没有 VPS,愿不愿意维护。 没有或者不愿意 → giscus、Bluesky、Staticman,或者付钱买 Hyvor。愿意 → 进自建。

三、自建选哪个。 小内存机器、想要部署最干净 → Artalk。想要功能一步到位、中文资料最多 → Waline。看重 UI 观感 → Twikoo。英文站、隐私优先 → Remark42。只要「能留言」这一个功能 → Isso。

四、国内可访问性重不重要。 重要 → Disqus、Bluesky、Mastodon 全出局,giscus 也要打个问号。

结语

我的建议是别在选型上花太多时间。主流方案之间的差距,远小于「有没有评论区」和「评论区有没有人用」之间的差距。

先随便挑一个能跑起来的,把通知和备份配好,剩下的以后再说:只要你没选 giscus,数据都能搬

提示

本文提到的版本、价格和维护状态是 2026-08-25 现查的。开源项目变化很快,落地前建议再去仓库看一眼最近一次提交的时间。

评论

评论加载中……

登录后再评论

注册要用邮箱收个验证码,只为确认邮箱能收信,不会拿去做别的。账号设置