Why I'm Reinventing Disqus

July 21st, 2010 by Jacob Barkdull

Why am I reinventing Disqus? That is the question I've been getting asked since I "announced" on Identi.ca that I'd be replacing Disqus with a free (AGPL) comment system that I was to write. Well, I am not the inventor of Disqus, so technically I can't reinvent something I didn't forehand invent. And because I'm not about to run a service for millions of people, my comment system won't have accounts (though it will have the possibility of setting a password so that only certain persons can post with their certain names.)

I've also been getting the pragmatic question of "Why replace it, if it works? Source Code isn't worth having to reinvent Disqus." Well I guess I should point out a few things I don't like about Disqus, both technically and ethically. So let's start with the obvious.

Where my Comment System is at (features and how it works):

There are only a few things that need to be implemented before my comment system will be fit for the job: 1. Replies, with notification of replies to the email supplied, 2. 1. A way to ensure that only certain people can post with certain names (i.e. No visitor can use the name "Webmaster" or "Jacob Barkdull" in my case.), 2. Delete option, comments have to be able to be deleted, 3. 2. Clean up code.

Looking at where the comment system started, it had just "Name" and "Comment" fields, the form had to be placed on the page as HTML, and each page had to be entered into the script manually. Now, to place comments on pages you use a simple <script> tag, it automatically detects which page it is on and displays comments for just that page, there are "Name", "E-mail Address", "Website", and "Comment" fields, all but the "Comment" field remembers what you entered even if you navigate away from the page (using browser "cookies" which expire a month after the last comment posted), simple BBCode support, URLs automatically become links, referrer checking, and permalinks.

When a user posts a comment, a .TXT XML file is created in a directory specified in the script, default is "/comments". The first comment is called "1.xml", second is called "2.xml", and so on, so to delete a comment you just delete the corresponding file. This of course isn't practical it needs to be easy, which is why I plan on implementing a "Delete" option, it's just a matter of how to do it securely.

Well, currently, Disqus is technologically superior to my comment system, but already ethically inferior for the reasons above. You can view the comment system's source code here. Anyone interested in helping me develop this or if you need help using it, please contact me, or do-what-you-do-at-Identi.ca at me.

And finally this article is the first web page to use the comment system,
so enjoy it before I break it trying to implement replies ;)


On the Blog RSS

May 9th, 2021

GNOME 40 is finally out and I'm happy to say a small contribution of mine made it into the release. My contribution adds a new feature to GNOME System Monitor version 40. Few articles about GNOME 40 mention it, but some power users might find my contribution useful.

November 15th, 2019
If you leave this option checked when you export your image, any pixels you erased will be saved in the exported image. They will not be truly erased, just made fully transparent. In other words, the data that describes the color of each pixel will be preserved, they will just be made invisible. This option has privacy implications. With it enabled, what you erase from an image may still be present in transparent pixels.
May 2nd, 2015

Over the past few days I've been in talks with a nice fellow named Kamil Jablonski, a concept artist, graphic designer, and web developer who recently contributed a Polish locale for HashOver. He shared with me a logo design for HashOver, that after some back and forth became, in my opinion, a very cool design.

Subscribe to Newsletter

Want to get the latest news and updates about my software, blog posts and behind the scenes information? Than subscribe to my newsletter to stay up-to-date!