title: The World's Greatest (Free) Static Site Builders / Generators
The World's Greatest (Free) Static Site Builders / Generators
- I. Ruby - Middleman or Jekyll?
- II. Python - Pelican or Nikola?
- III. JavaScript - Wintersmith or Metallsmith?
- IV. Go - Hugo?
- V. PHP, Haskell, Lisp, Rust, C, etc.
And the Winner is...
by Thomas Reynolds et al (★4 756 / 870 043 Downloads) -
web: middlemanapp.com
,
github: middleman/middleman
,
gem: middleman
Static Site Spotlight:
ROSSConf • Sass Language • Adventure Time! Middleman Sample • Many More
by Tom Preston-Werner, Nick Quaranto,
Parker Moore, Jordon Bedwell, Matt Rogers et al (★22 380 / 1 756 295 Downloads) -
web: jekyllrb.com
,
github: jekyll/jekyll
,
gem: jekyll
Static Site Spotlight:
Vienna.rb • Vienna.html • Facebook React • Bootstrap • Stack Overflow Blog • PHP: The Right Way • Open Data Handbook v2 • Adventure Time! Jekyll Sample • Many More And More
Middleman - Embedded Ruby (ERB) Template Language
<!DOCTYPE html>
<html>
<%%= partial "partials/head" %>
<body>
<%%= partial "partials/header" %>
<div id="main-wrapper">
<div class="container">
<%%= yield %>
</div>
</div>
<%%= partial "partials/footer" %>
</body>
</html>
(Source: layouts/layout.erb
)
Jekyll - Liquid Template Language
<!DOCTYPE html>
<html>
{%% include head.html %}
<body>
{%% include header.html %}
<div id="main-wrapper">
<div class="container">
{{{ content }}
</div>
</div>
{%% include footer.html %}
</body>
</html>
(Source: _layouts/default.html
)
Middleman - YAML + Markdown
---
layout: post
title: "Food Chain (Season 6)"
date: 2014-06-12 10:33:56
categories: season6 episodes
shortdesc: Finn and Jake learn about the food chain by becoming the food chain.
banner: /images/foodchain.jpg
---
The episode begins with candy children that have bodies resembling different
shapes sliding down a slide, shouting with excitement. The kids are viewed
from an horizontal angle in the next scene as they go through a playground-like structure.
<!--more-->
Finn and Jake are examining the 'Catapilla Family'.
After watching Princess Bubblegum teach the children about the Food Chain
...
(Source: posts/2014-06-12-season-6-food-chain.md
)
Jekyll - YAML + Markdown
---
layout: post
title: "Food Chain (Season 6)"
date: 2014-06-12 10:33:56
categories: season6 episodes
shortdesc: Finn and Jake learn about the food chain by becoming the food chain.
banner: /images/foodchain.jpg
---
The episode begins with candy children that have bodies resembling different
shapes sliding down a slide, shouting with excitement. The kids are viewed
from an horizontal angle in the next scene as they go through a playground-like structure.
<!--more-->
Finn and Jake are examining the 'Catapilla Family'.
After watching Princess Bubblegum teach the children about the Food Chain
...
(Source: _posts/2014-06-12-season-6-food-chain.md
)
Middleman - Ruby
set :css_dir, 'stylesheets'
set :js_dir, 'javascripts'
set :images_dir, 'images'
set :site_title, 'Adventure Time!'
set :banner, '/images/about.jpg'
set :description, 'Adventure Time is an American animated television series...'
activate :blog do |blog|
blog.sources = "posts/{year}-{month}-{day}-{title}.html"
blog.summary_separator = "<!--more-->"
blog.tag_template = "tag.html"
blog.calendar_template = "calendar.html"
end
page "/feed.xml", layout: false
(Source: config.rb
)
Jekyll - YAML
title: Adventure Time!
email: [email protected]
banner: "/images/about.jpg"
description: > Adventure Time is an American animated television series...
The series follows the adventures of Finn, a human boy, and his best friend...
a dog with magical powers to change shape and grow and shrink at will...
baseurl: ""
url: "http://yourdomain.com"
excerpt_separator: "<!--more-->"
(Source: _config.yml
)
- | Middleman | Jekyll |
---|---|---|
GitHub Stars (+1s) | ★4 756 | ★22 380 |
Gem Downloads | 870 043 | 1 756 295 |
- | - | - |
Settings / Configuration | Ruby | YAML |
HTML Templates | Ruby (ERB) | Liquid |
. Layouts | Yes | Yes |
. Includes | Yes | Yes |
Front Matter / Meta Data | YAML | YAML |
CSS Preprocessing | Sass | Sass |
HTML "Shortcodes" | Markdown | Markdown |
- Nanoc by Denis Defreyne et al (★1 225)
- Ruhoh by Jade Dominguez et al (★611)
- Bonsai by Ben Schwarz et al (★269)
- Awestruct by Bob McWhirter et al (★208)
- WebGen by Thomas Leitner et al (★77)
- ZenWeb by Ryan Davis et al (★50)
- and many more
Note: Sorted by GitHub Stars (+1s)
by Alexis Metaireau et al (★5 231 / 14 749 Downloads Last Month) -
web: getpelican.com
,
github: getpelican/pelican
,
pypi: pelican
Static Site Spotlight:
Pelican Blog • Linux Kernel Archives • Many More
by Roberto Alsina et al (★874 / 6 038 Downloads Last Month) -
web: getnikola.com
,
github: getnikola/nikola
,
pypi: Nikola
Static Site Spotlight:
- | Pelican | Nikola |
---|---|---|
GitHub Stars (+1s) | ★5 231 | ★874 |
Downloads Last Month | 14 749 | 6 038 |
- | - | - |
Settings / Configuration | Python | Python |
HTML Templates | Jinja2 | Jinja2 |
. Layouts | Yes | Yes |
. Includes | Yes | Yes |
Front Matter / Meta Data | reStructuredText | reStructuredText |
CSS Preprocessing | - | - |
HTML "Shortcodes" | reStructuredText | reStructuredText |
Note: CSS Preprocessing - LESS or Sass supported with plugins
- Cactus by Koen Bok et al (★2 450)
- Hyde by Lakshmi et al (★1 234)
- Letterpress by Ling Wang et al (★513)
- and many more
Note: Sorted by GitHub Stars (+1s)
by Johan Nordberg et al (★2 578 / 3 113 Downloads Last Month) -
web: wintersmith.io
,
github: jnordberg/wintersmith
,
npm: wintersmith
Static Site Spotlight:
Wintersmith Examples • Adventure Time! Wintersmith Sample • Many More
by Ian Storm Taylor et al (★4 070 / 40 213 Downloads Last Month) -
web: metalsmith.io
,
github: segmentio/metalsmith
,
npm: metalsmith
Static Site Spotlight:
Metalsmith • Metalsmith Examples
Wintersmith - Jade Template Language
doctype html
html(lang="en")
include ./partials/head
body
include ./partials/header
div(id="main-wrapper")
div(class="container")
include ./partials/homepagemiddle
include ./partials/footer
(Source: templates/index.jade)
- | Wintersmith | Metalsmith |
---|---|---|
GitHub Stars (+1s) | ★2 578 | ★4 070 |
Downloads Last Month | 3 113 | 40 213 |
- | - | - |
Settings / Configuration | JSON | JavaScript |
HTML Templates | Jade | Handlebars (HBS) |
. Layouts | Yes | Yes |
. Includes | Yes | Yes |
Front Matter / Meta Data | YAML | YAML |
CSS Preprocessing | - | Plugins |
HTML "Shortcodes" | Markdown | Markdown |
- Hexo by Tommy Chen et al (★7 346)
- Harp by Brock Whitten et al (★3 417)
- Blacksmith by et al (★571)
- and many more
Note: Sorted by GitHub Stars (+1s)
by Steve Francia et al (★6 701) -
web: gohugo.io
,
github: spf13/hugo
Static Site Spotlight:
Balsamiq Documentation • Adventure Time! Hugo Sample • Many More
Hugo - Go Temmplate Language
<!DOCTYPE html>
<html>
{{{ partial "head.html" . }}
<body>
{{{ partial "header.html" . }}
<div id="main-wrapper">
<div class="container">
<article class="box post">
<div class="image featured" style="background-image: url('{{{ .Site.BaseUrl }}{{{ .Params.banner }}');"></div>
<header>
<h2>{{{ .Title }}</h2>
<p>{{{ .Params.shortdesc }}</p>
</header>
{{{ .Content }}
</article>
</div>
</div>
{{{ partial "footer.html" . }}
</body>
</html>
(Source: layouts/_default/single.html)
- | Hugo |
---|---|
GitHub Stars (+1s) | ★6 701 |
- | - |
Settings / Configuration | TOML |
HTML Templates | Go Templates |
. Layouts | Yes |
. Includes | Yes |
Front Matter / Meta Data | TOML |
CSS Preprocessing | - |
HTML "Shortcodes" | Markdown |
Site Builder | GitHub Stars |
---|---|
Jekyll | ★22 380 |
Hugo | ★6 701 |
Pelican | ★5 231 |
Middleman | ★4 756 |
Metallsmith | ★4 070 |
Wintersmith | ★2 578 |
Nicola | ★874 |
Configuration / Settings
-
- Use a data format: YAML • TOML • JSON
-
- Use a (scripting) language: Ruby • Python • JavaScript
HTML Templates
-
- Use a "classic" template language: Liquid • Jinja • Handlebars (HBS) • Go Templates
-
- Use a (scripting) language: Embedded Ruby (ERB) • Embedded JavaScript (EJS)
-
- Use a "compact" template language: Jade • Haml
CSS Preprocessing
-
- No, thanks
-
- Sass • LESS • Stylus
HTML "Shortcodes"
-
- No, thanks
-
- Markdown • ReStructuredText (ReST)
WordPress (Static Site) Exporter Plugin
by Ben Balter et al (★561),
wordpress: plugins/jekyll-exporter
,
github: benbalter/wordpress-to-jekyll-exporter
Articles / Booklets
- Static Website Generators Reviewed: Jekyll, Middleman, Roots, Hugo by Mathias Biilmann Christensen; Smashing Magazine; Nov 2015
- Why Static Website Generators Are The Next Big Thing by Mathias Biilmann Christensen; Smashing Magazine; Nov 2015
- Static Site Generators: Modern Tools for Static Website Development by Brian Rinaldi; Free O'Reilly E-Booklet; Sept 2015
News
Events
- Vienna.html Meetup - Next Meetup Feb 2016 @ sektor5 - Vienna, Austria
- Static Web Tech Meetup - @ San Francisco, California
- {static is} The New Dynamic Meetup - @ New York City, New York
Q: What about PHP, Haskell, Lisp, Bash, Rust, C, [Your Language Here], etc.?
A: See the Static Site Builder / Generator Directories: