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.
Complete lack of Source Code:
Under "User-Posted Content" in the Disqus "Terms of Service" it reads:
"By posting content, you are granting permission to us and others to access and use it in connection with the Services, the Site and otherwise in connection with our business. For your content, you can label your compilations with one of several possible licenses."
This is good, I want people to use my "content", but it doesn't say how it may be used. And it fails to explain what a "compilation" is and how you are supposed to "label" them with one of supposed "several possible licenses." Even if I could figure out how to do this, there still exists two problems:
First: "Your use of a license in connection with your compilation does not affect Disqus's right to access and use it in connection with the Services, the Site or otherwise in connection with our business."
Second: Users are still unable to choose the GNU Free Documentation License, Creative Commons Attribution-ShareAlike License, nor any other free license suitable for their digital comments.
And who exactly is the owner of the comments when Disqus claims broad rights to use the "content" in anyway they see fit and when you, the visitor, and Disqus automatically agree with these terms when either you or the visitor use Disqus?
One Central Controlling Entity:
Disqus is one central controlling entity, if Disqus decides to do "maintenance" or they begin to have server problems, everyone using Disqus comments now has not only no way visitors may leave comments, but also no way to display previously posted comments.
And if worst comes to worst and Disqus disappears (as is possible with companies) everyone is left without comments -- without even the possibility of retrieving comments -- unlike if the comments are controlled by each website's "webmaster".
Requiring Users To Enter An E-mail Address:
With Disqus you have multiple login options, such as Twitter, Facebook, Yahoo, OpenID, and others, but you also have the option of posting comments as a "Guest" the problem is: With Disqus you cannot be anonymous, because even the "Guest" option requires you use a vaild e-mail address. All my comment system requires is that a comment is actually entered in the "Comment" field.
Near 4 Second Pause On Page Load:
I find issue with the added near 4 second pause on every page just to display Disqus comments, Disqus handles this well, but not well enough in my opinion. Because when pages load with Disqus comments there appears a little "Loading..." message, that eventually gets replaced by the comments and the form to post comments, the problem with the way they do this is when you refresh the page it jolts, kicking the scroll down the length of the comments until Disqus has loaded where it then kicks the scroll back up the length of the comments. Though, I could live with that technical problem (my visitors might not have a problem.) I cannot, however, live without source code any longer.
Doesn't integrate Identi.ca & Others:
While Disqus integrates Twitter, Facebook, Tumblr, and others, it does not integrate Identi.ca, it doesn't even try to gather "Reactions" from Identi.ca. I'm perhaps looking to much into this one, as Identi.ca has replaced Twitter for me, perhaps Identi.ca isn't popular enough for Disqus to implement support for, but because Identi.ca is Free Software and because Identi.ca's API is compatible with Twitter, it should be easy to implement support for.
- Update: More problems with Disqus are in the comments.
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
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 ;)