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:

  • The Learning Experience. Building this entire blog from scratch has been one of the most rewarding, enriching, and educational experiences that I have had in my entire career. It was my first real experience with .NET Core. And since I hadn't done any web development in almost eight years, it was also my first exposure to JQuery, Bootstrap, Mermaid, Font Awesome, Moment.JS... yeah, I was that rusty. So why wouldn't I build a commenting system, especially since it gave me a chance to get back into JavaScript programming?
  • 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 In It For The Money. Disqus is very up-front about the fact that they make money by advertising -- they state it in their privacy policy. I don't want ads on my site; in fact, I have no interest in monetizing this site at all.

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.

Anonymity

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.


  1. The sign-up process does offer your Twitter/GitHub username as your username on the site. You're still totally free to change it.

  2. So if you need to do any of these things, let me know via the Contact page and I'll take care of it.

 

Comments


 

Want to leave a comment? Sign up!
Already signed up? Sign in!