Please Leave A Message
Why I'm Building My Own Commenting System
by JamesQMurphy | March 12, 2020
Today, I released Version 0.4.0 of my website. The big new feature? You can now leave public comments on blog post pages. In order to leave a comment, you need to create an account, either by validating an email address, or by signing in with either Twitter or GitHub. The commenting system is built from the ground up, and like the rest of the site, the source code is available on GitHub.
With well-established, battle-tested commenting engines like Disqus, Discourse, and Intense Debate out there, why would I choose to build my own commenting system? Well, there are a couple of reasons:
- Data Under My Control. Comments have to live in a data store somewhere, and I wanted to make sure that I had control over that data store. More on that in a bit.
I'm not a blogger; I just have a blog
When I started researching commenting systems, I encountered a lot of articles that discussed how comments affect search engine optimization and how they could be used to drive traffic to your site. Some of these authors seemed to reason that the only possible justification for blog comments was to increase revenue. So naturally, Disqus targets their sales pitch accordingly. Consider their bullet points on their home page:
- Engage your audience (ok, that one I can get behind, and at least they put it first)
- Retain your readers
- Understand your success
- Monetize engagement
These bullet points presume that you're a blogger and that you're in it for the money. Sure, a successful blog would be great, but I don't make my living as a blogger.
And Where Do Those Comments Live, By The Way?
Consider what happened with Disqus a few years ago. They were bought by a marketing company named Zeta, primarily for the user data (source). There was a predictable backlash against Disqus, but if you wanted to switch to a different comment system, you would lose all those comments.
A blog's comments are an integral part of the blog, and I simply did not want the comments to be affected by the business plans of unrelated companies. The comments of this blog are stored in an Amazon DynamoDb table, and I can move that data if I absolutely need to.
I also believe that the ability to be anonymous online is the only way to foster constructive, honest communication. Of course, it can also foster spam and abuse, but with proper moderation, these can be kept in check. This website literally has my name on it, so I will be watching over the comments like a helicopter parent.
I do require that you create an account if you want to post comments. But you get to choose your own username, and all I require is either a valid email address, or an account with Twitter or GitHub. And if you choose to sign up using one of those services, you still get to choose your own username1. That's right -- even if you're the Bronx Zoo's Cobra on Twitter, your username on this site can be something completely different, and nobody else will know.
And I'm Still Working On It
Building a secure, feature-complete commenting system is no easy task. Disqus is the most popular blog commenting system for a reason. It works well, it's got a decent set of features, and if you actually are a blogger by profession, you should definitely consider using it.
My commenting system is certainly not feature complete (yet). As of this writing, you can't edit or delete your own comments. You can't vote comments up or down, and you can't flag them.2 I'll be implementing these features over the next couple of
weeks months. I'll also be expanding on user profiles (editable descriptions, profile images, etc.)
But in the meantime... feel feel to sign up and leave a comment! And of course, let me know if you run into any issues.