dumbmatter.com

Online home of Jeremy Scheff

Jekyll and other static site generators are, currently, harmful to the free, open source software movement

My blog is powered by WordPress. WordPress remains at its core a monstrous amalgamation of PHP spaghetti code. Thus, despite the fact that WordPress is free (beer+speech), easy to use, well supported, well documented, and all that jazz... it still pains my hacker sensibilities to use it. For similar reasons, a lot of hacker types are moving away from WordPress and similar blog software to static site generators like jekyll.

Basically, the idea is that you define the components of your site (pages, blog posts, etc) in a text-based markup language, and then the static site generator will process the text files and produce static HTML files for your website. This approach has numerous advantages, mainly due to the fact that no code runs on your web-accessible server. This makes it both fast and secure. But static pages have one major drawback: if everything is just static HTML pages, there's no easy way to allow for dynamic features like comments (and, to a lesser extent, search). Using something like WordPress, you get dynamic features automatically.

Most people solve the comments problem by using Disqus. All you have to do is put a little bit of Javascript on your page, and Disqus will handle comments for you. It's simple, looks pretty, and integrates with all the social networking sites.

But there is one problem: Disqus isn't open source. So we have all these hackers rushing to switch their blogs over to static site generators with Disqus comments, which is effectively an exodus from completely free systems like WordPress to proprietary systems like Disqus. I find this to be problematic for all the same reasons that RMS and others have outlined about proprietary software (and also software as a service) over the years.

But the allure of these static site generators is such that they feel like they are the pinnacle of open source hackery goodness. The generators themselves are generally open source, and they work similarly to all the open source command line tools we know and love. But, until there is a better solution for comments than Disqus, static site generators encourage dependence on proprietary software.

So I guess what I'm saying is that we need an open source (preferably AGPL) Disqus. Or, if such a service already exists and I've just not heard of it (certainly I'm not the first one to make this point), then we need to do a heck of a lot better promoting it. Otherwise, all the user-generated content in the form of blog comments will be perpetually locked in Disqus's proprietary vault.

Edit 2012-02-02: In the comments, Haschek provided a link to a project called Juvia which is "an open source commenting system ... similar to Disqus and IntenseDebate". If you have the same concerns as me, take a look at Juvia if you're in need of a standalone commenting system.

Edit 2017-01-22: Uh... I think I'm moving this blog to a static site generator, for all the typical reasons. What about comments? I think... no comments. I guess that's kind of sad, but comments seem like more of a marginal benefit now, at least for my rarely-updated blog.

53 archived comments

  1. What's funny is, you seemed to be annoyed about this.. yet you freely use "free software" and "open source" interchangeably.

    Comment by joey — August 29, 2011 @ 8:07 pm

  2. joey: I don't see how that's relevant. In the context of this post, the distinction between free software and open source software doesn't matter. When it does matter (which is rarely), I'm more precise.

    Comment by admin — August 29, 2011 @ 8:49 pm

  3. Maybe it's just me, but Disqus comments never seem to work for me. If I want to leave a comment and it's Disqus, I generally don't. Much as WordPress software irritates me by stripping out code it doesn't like, I'd switch back to Windows before tying myself to Disqus.

    Comment by Laurel L. Russwurm — August 30, 2011 @ 2:12 am

  4. A few months ago, I read from Karsten Wade on identi.ca a mention about this, suggesting Automatic Inc people probably would be the best candidate for hosting a Disqus like SaaS, but opensource at its core. I know SaaS is something you are warning about, but probably some JavaScript could probably develop a kind of plugin to Jekyll or so, in order to let people share hosted comments subsystem.

    I really don't understand how the Disqus API works in a static html page, but probably this is the hardest thing to achieve in order to being able to embed comments hosted in other site.

    Comment by Jesús Franco — August 30, 2011 @ 2:16 am

  5. @joey: Perhaps you are confusing concern with annoyance. Also, you are an arse weasel.

    Comment by anon — August 30, 2011 @ 4:47 am

  6. The way I see it, if those systems make static webpages, why don't we add static comments to that? Anyway, a lot of us are already using some form of captcha or comments moderation, so it could be seen as comment moderation and after moderated they would appear on the static webpage.

    Comment by Gustavo Campanelli — August 30, 2011 @ 1:53 pm

  7. Perhaps my comment system isn't superior to Disqus yet, but I think it does a very nice job in comparison to other comment systems like WordPress' and that other one people using Drupal seem to like. There are only a few things it needs still:

    1. Better style
    2. Ability to edit comments
    3. Some form of restricting name usage

    As it sits, everything is saved on the server running the script. I actually put in code to stop the script from being used on remote websites. It wouldn't be hard for someone to take my comment system, remove those few lines, and thereby create a service like Disqus. If anyone's interested, it's AGPL, so go for it :)

    Comment by Jacob Barkdull — August 30, 2011 @ 2:12 pm

  8. My main issue with your post is, that it blames Jekyll and other static site generators for the spreading use of Disqus. I've seen as many wordpress and other non-static sites use Disqus as I've seen static ones, simply because Disqus gets the job done, and most comment systems that come with various blog software (WordPress included) are horribly broken and useless.

    It's not the static generators that hurt FOSS, it's Disqus. Present an open source alternative, that works at least half aswell, and many people (myself included) will switch that very instant. But as it currently stands, if I want comments on my site, I don't really have any other option except rolling my own. And that's the last thing I'll do.

    Comment by Gergely Nagy — August 30, 2011 @ 6:10 pm

  9. "Present an open source alternative, that works at least half aswell, and many people (myself included) will switch that very instant."

    Here in lies the crux of the matter. Open sores folks are always the first to tell others what they should and shouldn't use in the name of "freedom", but don't provide an equivalent or better solution to the problem. In this guys case, he throws blame at the innocent out of frustration, seems quite childish.

    Comment by sulfide — August 30, 2011 @ 10:00 pm

  10. here is someone working on a clone:
    http://www.tildehash.com/?article=why-im-reinventing-disqus

    Comment by eMBee — August 30, 2011 @ 11:36 pm

  11. Well, there's Dokuwiki (http://www.dokuwiki.org/) which is GPL and works as a blog with comments with the BlogTNG plugin (http://www.dokuwiki.org/plugin:blogtng), especially if used with the mnml-blog template/skin/theme/whatever-you-want-to-call-it (http://www.dokuwiki.org/template:mnml-blog)

    The author of the template's site: http://blog.andreas-haerter.com/

    And mine: http://linuxisit.com

    Has been working well for me.

    cheers
    mark

    Comment by mark — August 31, 2011 @ 12:44 am

  12. mark: Correct me if I'm wrong, but that just looks like a WordPress equivalent shoehorned into a wiki engine. I don't see how that serves the same market as static site generators.

    Comment by admin — August 31, 2011 @ 12:48 am

  13. [...] jazz… it still pains my hacker sensibilities to use it. For similar reasons, a lot of hacker... Read more... Categories: Linux     Share | Related [...]

    Pingback by Static Site Generators, Harmful to Free/Open... | Linux | Syngu — August 31, 2011 @ 1:39 am

  14. Joomla! is the answer.. Opensource and powerful, with plenty of commenting systems plus loads of other great extensions and themes. Problem solved!

    Comment by Patrick — August 31, 2011 @ 7:44 am

  15. admin/jeremy,

    Yes, that's correct. When I posted I was just thinking of Free alternatives, not specifically static site generators. My bad. Still, though, it might be work a look.

    cheers
    mark

    Comment by mark — August 31, 2011 @ 8:03 am

  16. Patrick: As I said to Mark, there is no shortage of open source blog software. The issue is static site generators, which Joomla most certainly is not.

    Comment by admin — August 31, 2011 @ 8:32 am

  17. [...] Jekyll and other static site generators are, currently, harmful to the free, open source software mo... My blog is powered by WordPress. WordPress remains at its core a monstrous amalgamation of PHP spaghetti code. Thus, despite the fact that WordPress is free (beer+speech), easy to use, well supported, well documented, and all that jazz… it still pains my hacker sensibilities to use it. For similar reasons, a lot of hacker types are moving away from WordPress and similar blog software to static site generators like jekyll. [...]

    Pingback by Links 31/8/2011: RHEL 7, LibreOffice 3.4.3 | Techrights — August 31, 2011 @ 8:48 pm

  18. Firstly, we're making a mistake by comparing a technological advantage (that static site generators present) DIRECTLY to a philosophical one (the opensource movement).

    There are a lot of reasons why opensource is encouraged. One of them is that hackers can play around and improve the system. But if we don't have a simple opensource JavaScript based (and PHP backend) self-hosted "script" that acts like Disqus, then are we really hackers? We talk about WordPress a lot, yet can't implement a subset of it (the commenting system)?

    The problem is not with static site generators then, it's with us! Static site generators do have a lot of advantages (by compromising dynamicity), but we can't blame the technology on it's face value just because of our philosophical beliefs.

    We just need to create a good commenting system, and get over it.

    Comment by Revolves — September 4, 2011 @ 12:07 pm

  19. Dude, your talkin bout blogs. Not software for the NSA. Blogs. Why are you so concerned about "speghetti code" when you are so willing to use such a horrid service as Disqus anyways? It doesn't concern you that you can't use your "hacker" skillz on you current Disqus installations?

    Comment by Ed — September 4, 2011 @ 12:29 pm

  20. Revolves: I largely agree with you. My point is only that, in encouraging the use of static site generators now, we're effectively encouraging people to use non-free software and to lose control of their data. The fact that you or me or someone else could write a free replacement for Disqus doesn't change the fact that such a free replacement doesn't currently exist (or it isn't widely known, or it's not usable, or ...).

    Ed: I'm not "so concerned" about spaghetti code. I use WordPress and think it's great, even if it's not 100% perfect. And I'm not willing to use a horrid service like Disqus which is why I am still using WordPress intead of jekyll or something similar. Working on a free Disqus replacement is on my list of things to do if I lose my current job, but as I don't personally have the time to do it now, I just wrote a short blog about it to hopefully motivate someone else to do it.

    Comment by admin — September 4, 2011 @ 12:38 pm

  21. Ghandi said "You must be the change you wish to see." The uncharitable translation is "PDI or STFU."

    "Free software movement" is a historical term, no longer relevant in the social coding, GitHub world which the free software movement, when it existed, made possible; we should admire them and be grateful for them, but pretending they still mean anything is not for grownups to do.

    Even if it did still exist, the idea that you can harm a free software movement by writing and releasing free software is ridiculous. When you write a blog post, first condense the whole post to one sentence and ask yourself if the sentence makes any sense.

    Disqus annoys me too, click my name for why, but less falling sky, more simple hacks.

    Comment by Giles Bowkett — September 4, 2011 @ 12:40 pm

  22. Giles: If I condensed this post into one sentence, it'd be "Static site generators are cool, but the only way to easily get comments is to use a proprietary service, which sucks and is a step back in freedom relative to traditional solutions like WordPress." I think that sentence makes sense.

    Comment by admin — September 4, 2011 @ 12:48 pm

  23. Stupid post aside, this is funny because before WP became the dominant blog platform, there was Movable Type which, while it had its own license problems, did static site generation, including updating pages on new comments.

    Comment by Jay — September 4, 2011 @ 3:02 pm

  24. Jay: WordPress has various plugins that can do the same thing, but they aren't as fun as dedicated static site generators. It's the workflow that is key differentiator for jekyll and friends.

    Comment by admin — September 4, 2011 @ 3:22 pm

  25. This is a solution looking for a problem. Just because a site is statically generated doesn't mean that you can't display dynamically generated content. You don't need to invent some bloated, open SaaS platform for blog comments. Just keep it simple, stupid. If you can't figure out how to embed dynamic content into a static page then your tech blog is going to have a much more immediate dilemma than being powered by WordPress.

    Comment by mvanveen — September 4, 2011 @ 5:48 pm

  26. It seems like your attacking a software solution based on the fact you don't like how most people solve their dynamic sitepart problem. And to put the icing on the cake you want others to develop software for you.

    You can create a javascript/ajax based commenting system that you can include with one file. If you use CouchDB you don't even need a server side language.

    Another solution is to hack the static generator to allow parts to be dynamic. No one ordered you to treat the generator as a black box.

    Comment by david — September 4, 2011 @ 6:37 pm

  27. I don't think you've phrased properly what you actually mean (which is probably what I just did in this sentence) but I use jekyll on serverascode.com and also disqus. I'd prefer not to use disqus, but I want a static site, plain html, no php AND comments.

    It'd be great if there as an open disqus of some kind. But it'd be great if there was an open social network as well. Clearly this takes some cash given how the Internet currently works. If the internet was more like distributed torrents or something. :) But then I'd be out of a job. :)

    Comment by curtis — September 4, 2011 @ 10:02 pm

  28. mvanveen: You are correct, but in practice, most people just use Disqus and forget it. Free software isn't just about writing some arcane lisp software that solves everything for you and only you.

    david: I don't think you read the article. It concludes with "So I guess what I'm saying is that we need an open source (preferably AGPL) Disqus." I am aware that it is technically possible to do damn near anything, but the point is that nobody's sufficiently done it yet so in practice content is being locked up in proprietary systems. This is a step back relative to things like WordPress.

    Comment by admin — September 4, 2011 @ 10:07 pm

  29. I personally think the largest concern with using something like disqus is the fact that they're most likely selling your users' data to other parties in the process, e.g. whomever visits your site becomes the product in the form of data for 3rd parties.

    Anywhom.

    Comment by David — September 11, 2011 @ 9:06 pm

  30. I like disqus but @David if you say Disqus is selling users' data I should check that out.

    Comment by SEO Singapore — October 4, 2011 @ 12:21 am

  31. Use Ikiwiki or similar. Static html that is regenerated as needed (i.e. for comments) from sources stored in a vcs. Ikiwiki is a nice, modern Perl code base. Others are available in other languages.

    Comment by Kelly Clowers — October 13, 2011 @ 3:58 pm

  32. David – Disqus doesn't sell your information to 3rd parties. Our privacy policy is here: http://docs.disqus.com/help/30/

    Comment by Ben Vinegar — November 14, 2011 @ 6:37 pm

  33. Ben: You're kind of splitting hairs here. From the policy: "We may use and disclose non-personal information for any number of reasons and with any number of third parties". I'm guessing David has issue with that statement, especially given that you define the IP address as "non-personal".

    Many people, whether you agree with them or not, do not feel comfortable being tracked as they move between pages with Disqus comments. Of course the same concerns apply to similar services, like Google Analytics (which I do use).

    Comment by Xavier — November 18, 2011 @ 5:38 pm

  34. It's apparently tangential but perhaps fundamental to the issue at-hand to inquire: What's the utility of comments, anyway? We each probably have our opinion on the topic. I generally find them useful for my ego, occasionally interesting or even enlightening, and overall offer either the silo of your WP database or effective 3rd-party ownership of Disqus.

    I don't have a particular issue with Disqus, and have used the service periodically. I currently don't enable comments, and have considered how I might direct motivated readers to Twitter or email instead. Greg Knauss is trying something similarly minded, but much lighter, with Zezim (http://extramoon.tumblr.com/). I have no idea how far he's getting with it; it may collapse or already have.

    Comment by Daniel Black — December 13, 2011 @ 4:01 pm

  35. The Ruby guys could use Juvia:

    "Juvia is an open source commenting system. It allows you to outsource your commenting needs to an external system so that you don't have to build your own commenting system for each website or each web app. Embedding a Juvia commenting page only involves pasting a JavaScript snippet into your web page."

    https://github.com/phusion/juvia

    It looks very promising and it is very actively developed. I really that there is someone who has enough time porting this to the PHP world :)

    Comment by Haschek — February 2, 2012 @ 3:03 pm

  36. [...] criticism of static generators is that they encourage the use of proprietary systems such as Disqus. However, [...]

    Pingback by 5 Minimalist Static Blog Generators to Check Out - Plugin Directory — March 22, 2012 @ 1:41 pm

  37. One potential option is to limit commenting to people who make pull requests on GitHub. :)

    Comment by Jonathan — March 28, 2012 @ 4:25 pm

  38. Here's a Rails commenting app from '07: http://code.google.com/p/comment-it/

    Comment by Faraz Yashar — April 2, 2012 @ 9:34 pm

  39. [...] Kontrolle über seine Daten an eine externe Stelle abgegeben muss oder nicht. Diese Bedenken hat Jeremy Scheff auf den Punkt [...]

    Pingback by Die eigene Homepage: CMS, Blogkompilierer und statisches XHTML « gambaru.de — April 20, 2012 @ 11:01 pm

  40. What about having no comments at all on your website. The web is still free and we can all trackback, comment on Twitter/Identi.ca, etc.

    RMS by the way has all his page without comment and apparently static. I really see no harm on it. It's just a matter of freedom of choice. Most likely 99% will stick with WordPress.

    Comment by Lucas Arruda — June 4, 2012 @ 12:47 pm

  41. Perhaps late to the game, considering when most of the comments here were made, but there's a man who has a decent alternative: http://camendesign.com/code/nononsense_forum

    It's not really commenting since everything is done via a forum, but it's quite clean, indiscriminate and free + open source. Much better than any of the convoluted solution presented so far.

    Comment by svr89 — June 11, 2012 @ 12:43 pm

  42. > But the allure of these static site generators is such that they feel like they are the pinnacle of open source hackery goodness.

    I try to avoid embedding any external services on a website - even if it was "free" or "open source".

    A week ago I've looked through the options for my ex-WP blog, which is now migrated to Jekyll.

    For 1-2 hours I compared Disqus to IntenseDebate and the like. Feeling repelled while doing so, I finally found this solution:

    http://hezmatt.org/~mpalmer/blog/2011/07/19/static-comments-in-jekyll.html

    It's even utilizing ones existing email spam filter for coping with comments.

    So here we have it: The pinnacle of open source hackery goodness 😉

    Comment by Dice — August 19, 2012 @ 2:41 pm

  43. You could use openshift free and fire up a juvia app/instance and then use that for commenting...

    https://github.com/openshift/juvia-example

    Comment by Jonathan Brown — September 16, 2012 @ 12:44 pm

  44. Hello,

    I use Jekyll for building my website and I have no problems for comments:
    An HTML form allow the users to post comments, and the comments are sent to a CGI script.
    The CGI script sends me the comments by email, and I use the Jekyll static comments plugin render them.

    Here is a blog post about this Jekyll plugin:
    http://hezmatt.org/~mpalmer/blog/2011/07/19/static-comments-in-jekyll.html

    Comment by grumpyHacker — July 25, 2013 — 1:56 pm

  45. Harmful? Since when non-open source projects are harmful to anything? This is like saying that deers are harmful to the porcupine movement. Closed and open source software are two elements of an overall software ecology. Of course it's always great to have open source equivalents, but from that to harm I think you are stretching your title by a ton ... and I'm probably contributing by posting something that states the blatantly obvious

    Comment by me — July 28, 2013 @ 9:48 am

  46. Have a look at discourse.org

    It's spearheaded by Jeff Atwood from StackOverflow, 100% open source and already employed by big sites like HowToGeek and BoingBoing as a replacement for Disqus. It's not strictly a commenting engine, it's an entire forum platform, but it works supremely well as both.

    I love the new approach that static site generators like Jekyll are bringing to the table, and I don't fear for open source whatsoever. What we'll do is offload the dynamic content to open source "apps" like Discourse and Juvia; everyone's happy and the open web powers onward.

    Comment by Erlend Sogge Heggen — August 13, 2013 @ 8:26 am

  47. You seem to be annoyed about Disqus (which is legit). Personally, I'm not commenting on those websites.
    But please, don't say "Static site generators are harmful to the free, open source software movement" because this is just false. Your title is untruthful, if you want to complain about Disqus, don't "attack" Jekyll or the others generators.
    Most site generators are licensed under ISC, GPL or other free licenses, so I don't understand what's the problem.
    If you don't want to use Disqus, don't do it. There are plenty of comment systems (jskomment, commentcava and we also have a Jekyll plugin).
    I have two Jekyll blogs (without comments) and I have not the impression to violate free software.

    Comment by Ypnose — August 19, 2013 @ 3:47 pm

  48. I can appreciate your sentiment, but there are two major issues here:

    1) The allure for me is that I no longer have a database I have to maintain. That's one reason I prefer offloading my commenting engine to someone else. People aren't moving away from WordPress because Jekyll is any more open-source, a major component is that we don't have to worry about all the security patches, database management and online mode.

    2) WordPress comment filtering sucks. That's why people use Livefyre or Disqus move to those platforms, because they do a better job. You mentioned that if there was something better that's open source then you'd use it, but it brings us right back to having to manage some sort of database.

    I agree with a lot of the other comments, the post title seems more like link bait than a valid argument.

    Comment by Chase Adams — December 28, 2013 @ 5:44 pm

  49. I'm actually developing an open source alternative to Disqus, licensed under the AGPL as you suggested :-)

    It's Debiki Embedded Comments, http://www.debiki.com/embedded-comments

    It's available as a service too, in case people would like to try it out or use it without setting up their own server.

    Debiki has some Wiki-like features; it currently uses a novel 2D layout that hopefully contributes to a more varied discussion; and it has various features intended to save people's time.

    Feedback would be very welcome.

    I noticed you mentioned Juvia. There's also Isso, http://posativ.org/isso.

    Comment by KajMagnus — February 8, 2014 @ 8:40 pm

  50. Free, open source projects are harmful to free, open source projects?
    Wait, what?...

    Comment by av — May 14, 2015 @ 3:14 pm

  51. I created a service which allows to receive comments on Github Pages. Rather than storing it in the service database, it uses the Github API to commit comments in Jekyll files. You can try it there : https://commentit.io

    Comment by Guillaume Royer — October 5, 2015 @ 6:37 am

  52. Have you heard of sandstorm.io? This seems like a perfect problem for a sandstorm app...

    Comment by Micah — September 25, 2016 @ 5:53 pm

  53. Can we build this with PouchDB and CouchDB and sending data over CORS at this point? Essentially, we'd be crafting our own comments API for our own database, leveraging the sync feature of PouchDB (and CouchDB) to keep things up to date and synced up.

    Comment by Costa — December 20, 2016 @ 4:56 am