惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

F
Full Disclosure
WordPress大学
WordPress大学
小众软件
小众软件
Cloudbric
Cloudbric
AWS News Blog
AWS News Blog
腾讯CDC
量子位
人人都是产品经理
人人都是产品经理
大猫的无限游戏
大猫的无限游戏
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
V
Vulnerabilities – Threatpost
Scott Helme
Scott Helme
Hugging Face - Blog
Hugging Face - Blog
博客园_首页
C
CXSECURITY Database RSS Feed - CXSecurity.com
The Hacker News
The Hacker News
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
IT之家
IT之家
Jina AI
Jina AI
Attack and Defense Labs
Attack and Defense Labs
S
SegmentFault 最新的问题
Simon Willison's Weblog
Simon Willison's Weblog
The Cloudflare Blog
阮一峰的网络日志
阮一峰的网络日志
T
Tailwind CSS Blog
Last Week in AI
Last Week in AI
博客园 - 【当耐特】
Google Online Security Blog
Google Online Security Blog
美团技术团队
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
Visual Studio Blog
罗磊的独立博客
L
LINUX DO - 最新话题
博客园 - Franky
博客园 - 叶小钗
Apple Machine Learning Research
Apple Machine Learning Research
The Last Watchdog
The Last Watchdog
J
Java Code Geeks
AI
AI
C
Cisco Blogs
酷 壳 – CoolShell
酷 壳 – CoolShell
C
Cyber Attacks, Cyber Crime and Cyber Security
Cisco Talos Blog
Cisco Talos Blog
博客园 - 三生石上(FineUI控件)
雷峰网
雷峰网
Help Net Security
Help Net Security
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
云风的 BLOG
云风的 BLOG
I
Intezer
S
Securelist

ByteofDev

Making Postgres 42,000x slower because I am unemployed A Quick(ish) Introduction to Tuning Postgres JavaScript numbers have an (adoption) problem My 2025 JavaScript Wishlist JavaScript Benchmarking Is a Mess A deep dive into distributed database architectures 10 ways to speed up web image loading Tailwind has a scalability problem. How can we solve that? Lerna vs Turborepo vs Rush: Which is better in 2023? The 6 JavaScript Projects to watch in 2023 Top 5 Alternatives to React in 2023 How to use ESM on the web and in Node.js React vs Svelte: Which is better in 2023? 10 ways to speed up JavaScript loading What is Bun, and does it live up to the hype? State of JS 2021 Results and Analysis State of the Web: React 10 ways to speed up web font loading State of the Web: Atomic CSS State of the Web: Static Site Generators State of the Web: Bundlers & Build Tools Migrating ByteofDev from SvelteKit to Astro State of the Web: Serverless Functions State of the Web: Deno Array.map() versus Array.forEach() A quick introduction to JavaScript Maps How I Built the Fastest JavaScript Data Differ State of the Web: WebAssembly When you should and shouldn't use React
Replacing Disqus Commenting
Jacob Jackson · 2024-03-22 · via ByteofDev

As all Twitter X users know, one of the most essential parts of the internet is yelling about how everyone else is wrong sharing your opinions and ideas. Siloed web communities (looking at you, Reddit) often fulfill these needs, creating a more isolated, echo chamber-like environment. One of the best ways to prevent this echo chamber and encourage more productive conversation across groups is to talk outside of these communities.

In the case of blogs and articles, this means commenting widgets, which allow users to post their thoughts at the bottom of those articles, no matter which community they come from. Unfortunately, in the past few years, this area has been neglected, with most websites using tools like Wordpress commenting, which are very barebones, or tools like Disqus, which are bloated, proprietary, and privacy-unfriendly.

In this article, I will talk about my journey looking at various commenting systems, and why I created a new commenting system, ConvoComet, to replace Disqus in this blog and elsewhere.

It’s slow

Disqus is infamously slow. It is full of a lot of heavy scripts that slow down the user experience. In fact, here is a comparison of the size of just Disqus’s commenting widget versus an article on this blog, measuring both the uncompressed size of the page and the actual size of the resources travelling over the network (compressed). This includes all assets: HTML, CSS, JS, and other data.

Smaller is better. Obviously.

As you can see, adding the Disqus widget would more than quintuple the weight of this page, adding 570kb to be transferred over the network to the original size of 115kb. While it is reasonable for a highly interactive widget to require more resources than a static page, this is far too much. And, as we will see, some of these files sent over the network are not exactly beneficial to the user.

It tracks you

Here is a screenshot of what my adblocker (uBlock Origin, if you are curious), when using the Disqus commenting widget.

Nice! Lots of great companies! Remind me, what the heck is AGKN? Seriously, if you know, please tell me

14 trackers! While those are rookie numbers compared to some Google products, they still represent user’s data being sent to various companies unnecessarily. Unfortunately, there are worse aspects yet. Disqus doesn’t just track users—they actively advertise on their widget. Disqus’s free tier requires putting ads on the commenting widget. While this can be disabled by paying, as far as I can tell, the tracking related to it (aside from the actual ad-click tracking) remains one way or another. Oh yeah, and you can’t tell what is happening beyond what their opaque privacy policies contain.

A fun, relaxing read

Or, if you want it decoded, you can take a look at ToS;DR, a handy service that grades company ToSs based on its user rights and privacy, and have your fears proven wrong—they are only rated an E, not an F. Oh wait—E is the lowest grade. Welp.

And there are many other issues…

  • It is entirely proprietary
  • It requires a sign in
  • A lot of features are locked behind pricy plans
  • There is no way to host it on your own infrastructure

The list goes on.

What about other existing solutions?

There are many alternative commenting systems, but I found them to be unsatisfactory for other reasons._createMdxContent

OpenWeb

OpenWeb is basically just Disqus but rebranded and with more customized integration for larger customers. Also, they recently spent $100 million on an advertising platform.

I am addressing these both at once because they are both very similar. They have most of the features I would want, but both are poorly maintained. Cusdis and Commento had their last release 3 and 2 1/2 years ago, respectively.

This solution is great for some cases, but a few limitations prevent me from using WordPress’s comment system. First, this blog is statically generated using Astro, so migrating to WordPress would be a lot of work. Also, WordPress is missing some comment features like spam protection, forcing me to use other plugins like Akismet and Jetpack.

Yet Another Solution: ConvoComet

Eventually, I decided to build my own commenting system that would solve all of these problems. This led to ConvoComet. ConvoComet is a commenting system I designed from the ground up intending to create a much faster, and more private experience. Here is the same chart as before, but comparing ConvoComet’s widget to Disqus.

As you can tell, I love graphs

As you can see, the difference is massive. While this benchmark is in no way scientific nor a completely accurate representation of the user experience, a difference this large cannot be ignored. ConvoComet also improves in other aspects, like privacy. Here is a screenshot of what uBlock Origin blocks when accessing the ConvoComet widget.

ConvoComet is also open source, allows anonymous commenting, and should be self-hostable soon (currently, it is tied to Cloudflare infrastructure, so the only available options are to configure all of that infrastructure yourself or use the hosted version). There are still many missing features and bugs, but I am making fast progress on it. You can check out the source code, or try it out below this article. Let me know what you think, and if you want to try it for your own blog, check out the hosted version. I will probably also write another article with more technical details, so stay tuned.