Static Site Generators: Jekyll vs Octopress vs Middleman

So, I finally rebuilt this site last week. With so many choices, choosing a framework can be tough. After a lot of research, I narrowed it down to Jekyll, Octopress, or Middleman. Now, I just had to choose…

Why use a static site generator?

Over the years, torspark.com has gone through several variations and false starts.

It was originally a Wordpress several years ago, but that never felt quite right. I prefer working in Ruby, so it was never fun digging back into the PHP world to customize a plugin or theme. Plus, Wordpress is just too bloated for my needs.

I considered building a full-fledged Rails or Sinatra application, but that seemed like overkill.

Static sites are great for ditching databases & conserving server resources. They let you serve content to more people faster & for less money. Static site generators have come a long way. In fact, they’re a pleasure to work with now. If I can manage to avoid using a database on a project, I will. Or I’ll build a static frontend site and just pull in data via javascript.

Jekyll

Jekyll Logo

I’ve used Jekyll to build a few client sites before, so I was pretty familiar with it. Github pages integration is nice, but limited by not being able to use custom plugins. Of course, you can still build your site locally and then push it up, but you could do that with Octopress or Middleman too.

I work faster with HAML and SASS, and I was able to hack on Jekyll enough to let me do so (for the most part), but it never felt very clean. I started building out this site in Jekyll for awhile, but never finished it.

Jekyll is the most popular static site generator, but it just wasn’t for me.

Octopress

Octopress Logo

Octopress is built on top of Jekyll. It’s designed to be more opinionated and blog-friendly.

Octopress gets the job done, but it’s docs and development seem to be lacking. Essentially a highly customized version of Jekyll, it will always be slower to get new Jekyll features. This also makes upgrading a huge pain.

I have a partially built Octopress version of this site rotting away somewhere on my hard drive too…

Update: 2/7/15
Ben Mathis over at Octopress recently announced that he’s working to overhaul the Octopress ecosystem to bring things more inline with the Jekyll framework. This is good news, because it means upgrades will be much easier in the future. However, if you’re just getting started, I’d recommend waiting to use Octopress until after version 3.0 is released.

Middleman

Middleman Logo

Finally, after two false starts, I’ve found the perfect static site builder for me. Middleman is billed as a “static site generator using all the shortcuts and tools in modern web development.” That’s true—Middleman comes with HAML, SASS, & Coffeescript built in. Meaning I don’t have to waste time hacking on it to speed up my workflow.

It has a blog plugin to match everything Octopress can do. If you’re familiar with Rails, it’s easy to add helpers and extra functionality in a similar fashion. The built-in Live Reload feature is awesome. I usually set up some form of live-reloading to speed up frontend development on my projects, and having it built-in was just icing on the cake.

Conclusion

Jekyll and Octopress are both good choices, but I found that Middleman lets me work faster and happier. Jekyll is probably the easiest to get started with, but if you know ruby, Middleman gives you a lot more power & freedom. Any static sites I build in the foreseeable future will be built with Middleman.

Want to Know More?

If you have any questions or comments, feel free to contact me. I love talking about this stuff, and I make sure to answer every email.

Hey There!

Say Hi!