A Comment System!
This post is over a year old, the information may no longer be up to date.
Website • 14 July 2020
I’ve never actually had a comment system on any of my websites. Not because I haven’t wanted to, but because I never really found one that I liked or did what I wanted, Disqus is good but it has a lot of privacy and security concerns that cause it to not be worth the hassle.
There is other systems out there, but when I moved over to Jekyll and GitHub Pages I realized that a lot of them don’t work for my use case, they require proper backends such as MySQL to store data which obviously with GitHub Pages, isn’t possible.
So I went on a search, a discovery, or some sh*t like that, and came across something called staticman which looked like a very likely and good solution, but then I found their documentation was out of date and it doesn’t work without setting it up on a standalone Heroku app which, after I deployed kept throwing errors at me so that quickly went in the bin and I went back to the drawing board.
Then I had a thought, and it genuinely went something like this:
“StaticMan uses GitHub issues for a comment system, why don’t I do that?”
“I mean, this is true but if it works and it doesn’t slow down the website, I count that as a win”
This was a discussion I had with myself at 3AM and then by midnight the next day I had a commenting system using GitHub issues.
Now, granted, it is quite possibly the ugliest code I’ve ever written and you have to go to GitHub to actually comment on the post, but GitHub does all of the data cleaning, I don’t have to worry about learning a new system to manage comments and in all honesty, it’s sick as hell to use.
I’ll probably write a tutorial up on it once it’s finished, it’s in a beta stage at the moment but that’s only because I haven’t quite worked out how to use the GitHub reactions API yet and I still have to work on when I lock or close the issue on GitHub, it tells anyone who views the post that the commenting has been closed, but these are little things that will be added in due course.