Comments are, in my opinion, a great way to get feedback from your user. But having user generated content on a static site like this blog here is a challenge. Most people with static blogs reach out to 3rd-party providers. There are plenty of vendors out there. SaaS or self-hosted - the fact remains: Either your site is no longer completely static or you give up some freedom.
Option 1: Using a SaaS provider
It seems to be convenient to use an external service and embed some magic
<script>-tag to your site and call it a day.
One of the most mentioned services Disqus uses this method.
It will probably cost you some small amount of money regardless of which hoster you use.
Maybe some simpler ones will also have a free tier with limited functionalities.
But the real price you pay is the loss of control over the user experience and, far worse in my opinion, the control of your own data.
The data of your users.
The privacy of your users.
If that is not already enough, you will also be on the mercy of the vendor.
If (or more likely when) they close or increase their prices you could lose all your valuable comments.
This is definitely not an option for me.
Option 2: Self host a comment system
Self-hosted solutions like Isso or HashOver help to get back control over your data and look and feel. But now you have to manage databases, have a lot more components to update regularly and the most important thing: You are no longer completely static. And here goes all the advantages of a static site down the drain.
Option 3: Off site discussion
Another alternative is to use external discussion platforms like Twitter, Mastadon or Reddit. You have more or less the same disadvantages as using an external comment SaaS provider; maybe minus the price tag. This is probably an okay-ish solution if you already have a community built up on other platforms. Otherwise, I don’t think having the discussion decoupled from your actual articles is a great thing.
Option 4: Off site discussion with fancy “import”
This is IMHO probably one of the best solution at the moment. The external service could be something like Github issues or a Google Form. You just have to link your readers to the site where they can post a comment. Implementing a automated import should be mostly straightforward. The only problem could be Spam and illegal content. But moderation will always be a problem.
I’ve been thinking about this for a long time. There is no question that you need an external service if you want to keep your site completely static. Either 3rd-party or self hosted. So I thought: Is there any communication channel that every online citizen has and that everybody can use? Yes, there is! The good old E-Mail.
Is a 30 years old protocol a solution?
E-Mail is old. Really old. The history goes back half a century. After all, the modern mail system is about 30 years old. Nonetheless, it’s going strong with over 3.7 billion users and around 300 billion sent and received mails per day1.
I’m quite sure that every visitor of my blog here has an email address. Probably even multiple mail addresses. On the receiver site, you can self-host your own mail server or you can use another provider. Of course, the mail server itself is a complicated piece of technology. Hosting a (simple) dynamic CMS system is in fact easier than maintaining a mail server. But because everyone already uses a mail server anyway, there is no extra effort necessary.
I personally think this is definitely a valid and quite good solution.
How to use it?
It’s really simple. Just put a small sentence on the end of your articles and explain that you are receiving feedback via E-Mail. At best, add a mailto-link that your readers just need to click on to open their favourite mail client.
A little bit more advanced would be an HTML form that automatically opens the mail client with prefilled subject or body text. The subject should probably reference to the name of your article. Such form could look like this:
<form action="mailto:email@example.com?subject=article-slug" method="post"> <fieldset> <legend>Your comment:</legend> <p> <input type="text" name="name"> <label for="name">Name: </label> </p> <p> <input type="text" name="mail"> <label for="mail">E-Mail: </label> </p> <p> <textarea name="comment"></textarea> <label for="comment">Comment: </label> </p> </fieldset> </form>
After receiving an E-Mail, you have to update your static website yourself. Depending of your site generator, it should be fairly easy to set this up. Since I am using zola, I will most likely write an update or a new post about my experience implementing it with zola later on.
It there a way to automate it?
Yes! Reading mails from a mail server is quite easy due to standard protocols like IMAP. I could imagine a feature in my build pipeline that pulls the latest comments from a mail server and integrate them directly into the generated static html site. It could run as a cronjob or I could trigger it manually.
As soon as I find some spare time, I will implement all this. Let’s start coding!
Update #1 (February 26, 2020)
I added a comment form that sends me an email with your comment. Nothing fancy and without any automation at the moment. But at least it’s an obvious way to gather feedback from my readers.
Source: http://www.radicati.com/wp/wp-content/uploads/2017/01/Email-Statistics-Report-2017-2021-Executive-Summary.pdf ↩