Poll: What's your favorite static site generator?

158 points by diggan ↗ HN
Lately, I've been testing out different static site generators but it's a sea of alternatives. My favorite so far is Punch but the non-existing support for articles/blog-posts and subfolders makes it not so good...

So, what's your favorite?

(Let me know if I missed someone, poll options are taking from here: https://gist.github.com/4181764)

123 comments

[ 11.9 ms ] story [ 2181 ms ] thread
no hyde?
Nope, not one hour ago. Added it as an option now.
I like Pelican (for blogs). Python, reST + Jinja.

Looks like your list is basically Ruby, Node and PHP, excluding all the Python and other language options.

A big fan of Pelican as well
Yeah, the list is only Ruby, JS and PHP currently but will add more generators from other languages as soon as possible.
nanoc, middleman and nestacms. i really like that you can push static markdown to the server it'll be exported to html automatically with static file caching as an added bonus. More elegant and easier to manage then a CMS or WebApp with Varnish.
just converted my site from wordpress to jekyll, and I'm quite happy... mostly because of the simply syntax highlighting
nanoc [1]. It takes more effort to set up the basic rules for your site, but it's incredibly powerful. For example, my blog [2] can generate archive pages for my articles by year, month, and tag, with the generation handled entirely in "user space," without any undocumented hacks to the system or extenal pre/postprocessing. Another site I created using nanoc has the ability to take recipes that are specified only in the YAML content metadata, and expand them into full-fledged HTML pages - again, entirely in "user space."

In general, I find the ability to use code to control the site's generation very refreshing - the static site generators I had used beforehand (for example, Webgen) rely on configuration files to determine the rendering process, which for sufficiently complicated sites can be hard to trace. By contrast, nanoc's Rules file allows you to see and control exactly how a given file will be processed.

The code is also very well-written (it resists using the hard-to-follow Ruby magic that Rails and company tend to use), although were I Denis Defreyne, I would have written some sort of plugin manager by now.

[1] http://nanoc.stoneship.org/

[2] https://bitbucket.org/leafstorm/leafstorm.us/src

bash and wget.

Simple example:

    for f in `ls *.php`; do  wget http://myexample.com/$f -O $f.html; done;
    rename 's/\.php\.html/.html/' *
    sed -i 's/\.php/.html/g' *.html
Kinda.

When I need a 'static' site I just use whichever CMS/framework is best and wget --mirror the output.

That sounds horrible. All of the added complexity of a heavyweight framework without any of the advantages. Most frameworks have an option to cache the output if you want to go that route, then you'll get the performance of a static site without losing the flexibility.
I'm using octopress at the moment but it's terribly slow for anything over the trival level. Just a few hundred pages and it's minutes between generations.
Avoiding that problem was one of the main goals of Nikola's development, which is why it has a whole dependency build thing (based on doit, similar to a Makefile).

I have a 1200+ post blog so it was that or death by boredom :-)

I like ikiwiki a lot because it plays nicely with git and there are many useful plugins: http://ikiwiki.info/
I do not particularly like ikiwiki, but I use it and have no good reason to switch.
Coleslaw, ye olde Common Lisp static site generator (with optional dynamic backends, if that's how you roll)

http://www.cliki.net/coleslaw

Wow. the Cliki has gotten a makeover since the last time I checked it.
Ha. The optional dynamic backend got taken out during a rewrite in August but it was never very interesting. The new plugin and theme support is much more interesting. ;)
Coleslaw looks very interesting, especially with the use of Git. Added it as an poll alternative!
Holy frak! So why did I just wrote a homebrew static site generator in CL two weeks ago? :D.

Anyway, it was a) a great experience, and b) gave me some insights into why building systems (stuff like rebar, rake, etc.) look the way they do.

Neat. :) Is yours online anywhere?
It's a kludge, but here you go: https://gist.github.com/4190622

The original GitHub repo is private right now, because I'm not yet ready to reveal the site I'm building :). I plan to launch in two-three weeks; I'm working on content and styling right now.

Where is Movable Type?
It's in the list now!
Years ago we want to do this and I didn't know any tool for it. I develop the application internally and we used wget mirroring to statically deploy it.

Initially I thought it would suck but turns out wget is way better than I thought. With the combination of ssh etc. We build a simple script that deploys takes mirror of the website and deploys it.

After about 5-6 years, it's still in production with no issues. Internally it's a wiki style, simple database model home grown ASP.NET application.

That sounds pretty cool. Have you considered publishing it under an open-source license?
I haven't actually, mostly making something open source takes time, if you don't have that extra time pretty much no one will use it. (at least that's my experience)
exactly, i developed a solution based on pavuk (which has a bit more options then wget) - still in use as far as I know after almost 8 years!
I tried jekyll, octopress and toto. ended up with toto and a hosted my blog on a free instance on heroku.
Hakyll, since it has Haskell type safety goodness and is very customizable (it's basically a Haskell EDSL for static site generation):

http://jaspervdj.be/hakyll/

The other nice thing about Hakyll is that it uses Pandoc, so it supports different input and output formats (such as HTML slide generation from Markdown).

1+ for hakyll, has built in customizable deploy command too
I just started using Hakyll and it's really awesome. It's very configurable, and integrating with Pandoc makes it very versatile.

Maybe this doesn't matter to most people, but having Pandoc means support for math (e.g. TeX) is standard.

I have a fairly complicated setup at the moment, and yet it still has less than 100 lines of configuration.

Also, being in Haskell, I've found it pretty fast so far despite being written in and configured with a very high-level language.

I'm short, Hakyll is awesome. Much better than my old solution which was a bunch of hacked-together php. (I was using my school's shared Apache server, a don't judge me :P.)

  > I'm short, Hakyll is awesome.
A good solution for the vertically challenged. :)
Ah yes, phone typos strike again. You'd think I would have learned to proof-read my posts by now...
> Maybe this doesn't matter to most people, but having Pandoc means support for math (e.g. TeX) is standard.

I like the optimism in that "maybe" at the beginning of the sentence.

Started to learning Haskell few weeks ago. Love to see it. BTW, nice site theme.
rst2html and Makefiles. Sometimes Sphinx.