Joining the Club: Switching from Disqus to Isso for Comments

January 25th, 2020 – Athens, Ohio –

This site does not get a lot of traffic. It probably never will. In the same way, I don’t have a huge need for comments on blog posts, projects, and so on. That said, I like to give people the option to comment on something if they feel the desire to, so from the launch of this site until very recently, Disqus was embedded (when ‘comments: true’ in the Jekyll front-matter at least). As I am building a static site into HTML files, Disqus was a perfectly fine option, especially in 2015 when I first built this iteration of the site.

As time has gone on, Disqus has gone the way of many free online services, making their money by scooping up and selling the data of its users (or just displaying hideous ads). Not only that but embedding their code adds hundreds of kilobytes and at least a few requests to the page load. That slowdown was a large reason that many sites went the ‘Click to Load Comments’ route, which affected folks deciding whether they would comment at all. Considering that my entire site (excluding images) is under 500kb, loading 500kb+ just for the rarely-used commenting feature started to look like a worse and worse decision.

At this point I considered just removing comments altogether, as others have done, making their case convincingly:

I just couldn’t bring myself to not have an option (aside from email or social media) for someone to interact with a piece of content on my site, so I looked for alternatives. Two stood out head and shoulders above the rest: Commento and Isso. Here are some of the great posts by others who went through the same search before I did:

The more I looked into Isso, and based on some of the glowing recommendations above, the better it seemed to fit what I was looking for:

I wanted to have a few sources for installation and configuration information, just in case. Here are the resources that I found helpful:

Things I Learned Installing Isso

Isso Config File

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[general]
dbpath = /home/isso/comments.db
host = https://willpresley.com/
log-file = /home/isso/isso.log

[admin]
enabled = true
password = {password-here}

[server]
listen = http://localhost:8080
public-endpoint = https://comments.willpresley.com

[moderation]
enabled = true

[hash]
salt = 3EFech7co8Ohlsad4324aso6Adsbaimi
algorithm = pbkdf2

Nginx Host Setup

Uses some includes from the HTML5 Boilerplate Nginx Server Configs git repo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
server {
    listen 443 ssl http2;

    server_name comments.willpresley.com;

    include h5bp/ssl/policy_intermediate.conf;
    include h5bp/basic.conf;
    include h5bp/security/content-security-policy-witheval.conf;
    include h5bp/security/strict-transport-security.conf;

    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
    ssl_certificate /etc/letsencrypt/live/comments.willpresley.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/comments.willpresley.com/privkey.pem;

    location / {
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_pass http://127.0.0.1:8080;
    }
}

server {
    listen 80;
    server_name comments.willpresley.com;
    return 301 https://$host$request_uri;
}

More Reading