My blog is statically generated, so it needs an external service to handle the comments. At first I chose Disqus because it’s know for being free and easy to setup. However, it has ads, tracks a lot of data and tolls on the page loading performance. The reason I chose using Hugo was for the bare performance I would get but, for this reason using Disqus sounded completely counterproductive.
Disqus is a bad idea
Disqus makes 76 HTTP Requests per load
In this article from Supun Kavinda they found that with a blank installation page where the only added dependency is Disqus. Disqus makes 76 requests and 2MB of data with no comments and it took 7 seconds to load.
11 Third Trackers
Also this person found 11 different third party trackers on the page. Disqus was acquired by an advertising company called Zeta Global and they started placing Pixels/Trackers all over your page if you are using Disqus.
Webmentions are a better idea
A tweet was the thing that started all this, it wasn’t even about webmentions. It was about which SSG generation was the fastest (spoiler: Hugo) from the creator of of 11ty Zach Leatherman and at the bottom of his articles there is a section of how many retweets/likes and comments from a tweet he published about the article. That was the first time I’ve ever seen webmentions.
What are webmentions?
Webmention is a simple way to notify any URL when you mention it on your site. From the receiver’s perspective, it’s a way to request notifications when other sites mention it.
How to use webmentions?
Setup webmention.io and brid.gy
The first you need to do is to add your domain to your profile on twitter.
Then add the same domain to webmention.io to sign up your website. It will prompt a twitter login.
After doing this setup, you just have to add this to the head of your site:
<link rel="webmention" href="https://webmention.io/[your domain]/webmention" /> <link rel="pingback" href="https://webmention.io/[your domain]/xmlrpc" />
Brid.gy connecting is really straightforward.
Add webmentions to your site
You can make a JSON request to the webmention.io api. From there you can retrieve all the domain webmentions or page specific.
https://webmention.io/api/mentions.jf2?domain=[your domain]&token=[your token]
Thanks for reading, let’s connect
Thanks for reading my blog. Feel free to reach out to me if you have any questions or want to connect. You can also make a pull request if you want to improve the article :)))Edit this page on Github