Who doesn’t want comments on their blog? After all, the uninformed opinions of random people are a great addition to any thoughtful post. But what do you do if you don’t have a dynamic website? This blog, for instance, is served out of Amazon S3, which only allows static content; no databases allowed.
The first thing to consider is whether you want comments on your blog in the first place. You do? Moving on.
Comments sans database are a frequent requirement and, as a result, there are as many solutions as there are cowboys in the west. How do you choose among them? Patience! I’m about to list all notable blog comment services and solutions, categorized by Bad, Ugly, and Good. Feel free to skip to the Good section for my recommendations. Let’s-a go!
Whether or not you still choose to go with them is up to you, but I avoid all blogs that use Disqus and you should too.
Trying to find something similar to Disqus that’s not Disqus is hard. A lot of the third-party services charge a fortune of buried gold for something that’s, honestly, not that complicated. Muut charges $36/month (billed annually!) for their most basic service for a custom domain. $36/month – for blog comments!
More like IntenseDebacle.
Looking further, I found a free solution here that uses Firebase. My excitement abated once I saw that it requires four external .js scripts, and entirely vanished once I tried their “working demo” which crashed the tab.
Here’s the thing. You don’t need over-scoped features (it’s just blog comments, yo) and you don’t need your blog to be an extension of social media like every other loser’s blog out there. You don’t need Facebook or Twitter integration, and you’d even prefer not to have it. You don’t need spam moderation through machine learning algorithms (which is just creepy), and you certainly don’t need to pay $100/month so some idiots can comment on your blog.
Fortunately, I did manage to find a couple of solutions that I was pleased with. What are they? Glad you asked.
Isso labels itself as similar to Disqus, but it’s really not. The main difference is that it’s self-hosted, so comments don’t go through a shady third-party service. However, this also means that Isso is a bit more complicated to set up. Still, it looks great, and the anonymous commenting feature is a huge plus. If you are planning to give Isso a try, consider following this handy tutorial.
Staticman is undoubtedly an interesting and elegant solution. It works by pushing new comments made on your blog into your GitHub repo as data files. Then, if you have automatic builds set up, your site will be automatically regenerated with the new content.
If your site is already hosted on something like GitHub Pages or Netlify Pages, you don’t have to do anything extra to get Staticman working. Otherwise, you’ll have to set up continuous integration – I recommend Travis, which is free for public repositories.
There is one caveat you should be aware of with this method. One of the great benefits of static pages is that they can be cached with a CDN such as Amazon’s CloudFront2, resulting in responsive load times and a better user experience. If you go with Staticman and you want comments appearing quickly, you’ll have to invalidate your CDN’s cache after each rebuild of the page3. Are you prepared to make this sacrifice?
In this three-way Mexican standoff between bad, ugly, and good options, who wins? At this point, only you can decide. Yes, you!
I myself will be attempting to set up an Isso server once I have the time. I strongly considered Staticman, but I don’t want my CloudFront cache invalidated each time some dumbass leaves a comment. Isso seems to be a more flexible solution, and I don’t mind paying a few dollars a month for a server.
Comments will go up on this blog as soon as they’re ready. Until then, feel free to drop me a telegram with any questions or concerns. Until we meet again…
I don’t know if we have capitalism to blame, human greed, or just stupidity. ↩
Comments not appearing quickly ain’t a good user experience, either. Ideally, they should be visible within a few minutes. However, if you’re fine with comments appearing, say, once a day, you can forego cache invalidations. Or, if you don’t mind the extra work, you can set up comment moderation with Staticman – your site will only be rebuilt whenever you approve a comment. ↩