Static site generators convert (or compile) a bunch of different resource files into one website, which means that the content can be kept separate from the layout code and any site assets like images can also be kept apart. So, if you’ve been on the lookout for a good static site generator for your website, here are the 10 best static site generators you can use in 2019.
Best Static Site Generators of 2019
Undoubtedly the king of static site generators, Jekyll is unsurprisingly the most used static site generator as it offers the greatest documentation, largest community and best support out there. Jekyll prides itself on being blog-aware and as a result making a static blog on Jekyll is really easy, requiring only the basics of web development. It really shines, because of its easy setup features for beginners, at the same time having really powerful features for those with the knowledge to use them.
Jekyll lets you create and use different plugins, tags, and even make your own converters for any markup language you want to use with Jekyll. The default markup language for Jekyll, like most of the others, is Markdown. Jekyll has plugins for compiling Less, Stylus, generate tag clouds, user pages for blogs, and a lot more.
To install Jekyll, just enter this command in Ruby: gem install jekyll
Hexo is a lightweight static blog framework that prides itself on its blazing fast site generation speed. Hexo is great for bloggers with large amounts of content who want a simple static site generator. It offers easy migration options from other blogging platforms like WordPress, Joomla, Jekyll, Octopress and RSS.
One of the great things about Hexo is that you can use the most of the plugins that are made for Octopress and by extension, plugins made for Jekyll with very minor modifications.
Hexo supports Markdown, YAML for front matter and configuration. Keeping with its speedy nature Hexo lets you deploy to sites like GitHub, Heroku and Rsync with just one command.
To install Hexo using Node.js just enter this command: npm install hexo-cli -g
Pelican is a static site generator built on Python. It features multi-language content posting, code (syntax) highlighting, as well as easy generation of RSS and Atom Feeds. Pelican has a nice selection of Plugins, all of which are hosted on a central GitHub repository. It supports 3 document formats by default: Markdown, reStructuredText, and Ascii Doc.
Pelican is quite unique, since it is built on Python. It supports the powerful Jinja Template Engine which is python based to allow easy creation of beautiful themes and templates for Pelican. In terms of migration support, Pelican offers support for WordPress and Tumblr. Rather than the usual YAML files for configuration, Pelican uses a .py file named pelicanconf.py for configuration and settings.
The service recently received an update which introduced a number of enhancements, fixes and tweaks to improve performance. The latest update includes improved copy/link behavior for large static files, new static syntax to link to static content, a new draft status for pages, and improvements to the importer among other things.
You can install Pelican using pip and typing in the following command: pip install pelican
The service also makes use of GraphQL at build time to retrieve data and content from sources, giving it a modern and consistent interface that ensures each page receives the exact data needed when being built. It’s also worth noting that Gatsby builds pages as progressive single page apps, which means that the entire static site is downloaded and can be navigated immediately.
Gatsby can be easily picked up by developers who’ve worked with React before, but if you’ve not worked with React before the learning curve could prove to be a bit steep.
You can easily install Gatsby using the Gatsby command line tool and the following command: npm install –global gatsby-cli
Middleman is a Ruby-powered static site generator which follows an easy-first approach to building static sites. It has powerful features for maintaining static blogs, like easy tag generation, quick commands for listing categorized articles and pagination.
Middleman offers support for most of the modern tools of web development like HAML, Coffeescript, Sass, and the rest. Its default templating engine is eRb, but it allows you to switch to a custom template engine of your choice. All Tilt-enabled template engines (the full list can be found here) work on Middleman.
It natively supports 2 configuration formats – YAML, JSON. Frontmatter for your content must also be YAML or JSON depending on the configuration format you’re using. Furthermore, Middleman does not offer any migration support, so if you want to make an existing blog static, Middleman may not be the best idea for now.
You can install Middleman using Ruby using this command: gem install middleman
Metalsmith is also a good option if you’re looking for a plugin based static site generator. The service prides itself of being ‘an extremely simple, pluggable static site generator’ which allows users to add plugins for basically any feature they need. The sheer number of plugins offered by Metalsmith beats nearly every competitor, which gives it the versatility of being more than just a simple static site generator.
In its own words, “Since everything is a plugin, the core library is actually just an abstraction for manipulating a directory of files”. What this finally adds up to, is that you can use Metalsmith just as easily as a project scaffolder, an ebook generator, a build tool, and much more.
Metalsmith is also based on Node.js and it can be installed using the node package manager using this command: $ npm install metalsmith
Another great general purpose static site generator, Hugo comes with a bunch of decent all-round features like templates and partials support, pagination, and ‘taxonomies’ which is basically a unique content categorization system. This will allows you to classify posts easily on the basis of not just tags, but also in any other way you wish, like categories or series, directly from frontmatter.
Hugo comes with support for three data file types – YAML, JSON and TOML – giving users the freedom to choose whichever they’re most comfortable with. Instead of plugins, Hugo makes use of ‘shortcodes’ which will let you use rich content inside your Markdown file.
Hugo is written in the Go programming language, and it offers separate installation files for different platforms on its GitHub page. You can follow these installation instructions to install Hugo on your device.
In case you use Homebrew, then Hugo and all dependencies can be installed with: brew install hugo
Octopress is essentially a modified Jekyll fork, but due to its popularity we’ve included it on this list. The service is basically Jekyll for hackers (and rails developers) and it can be used to easily build a blog as it comes with a number of plugins by default.
For customization, Octopress’ code makes it easier for users to modify code and write their own code. What’s really great is that a number of plugins for Octopress are compatible with Jekyll (and vice-versa) so you can try out both the services without worrying about compatibility issues.
The installation process for Octopress might be a bit complicated for beginners, however, but you can do the same by following these steps:
- Clone the GitHub repo
- git clone
- cd octopress
- Install dependencies
- gem install bundler
- rbenv rehash; # If you use rbenv, rehash to be able to run the bundle command
- bundle install
- Install the default Octopress theme
- rake install
Docpad is a dynamic static site generator which extends the capabilities of normal static site generators, offering features like database querying through a unique query engine, importing pages from external databases, and re-rendering the webpage on each request.
Docpad has native support for pre processors, like Coffeescript, Stylus and LESS, and uses plugins for supporting template engines, pre processors and markup languages, so you can choose whatever combinations you want by using the necessary plugin. Docpad also supports importing pages from external sources like Tumblr, GitHub and Dropbox through plugins.
Docpad is a feature rich platform, with lots of plugins and great documentation and it’s built on Node.js for server interactions.
To install Docpad, use the following command using npm: npm install -g npm; npm install -g [email protected]
Harp is another great static site generator which comes with in-built pre-processing for Jade, Markdown, LESS, Sass, Coffeescript, EjS and Stylus without any extra configuration. The service lets you use layouts/partial paradigm with Jade and EjS, which needs special plugins on other static site generators.
Harp is also built on Node.js and can work hand in hand with the Harp platforms, which lets you create web pages from your Dropbox folder. The service can also compile pages for use on GitHub pages, PhoneGap, and Heroku as well.
In order to install Harp, use npm and run the following command: sudo npm install -g harp
Try Out These Static Site Generators Right Away
Well, that rounds up our list of the 10 best static site generators you should try. The list consists of a variety of different options, each of them offering a unique set of features for a variety of use cases. Depending on the project at hand, you can choose any one of the aforementioned static site generators and create your static webpage in no time. Got any suggestions? Let us know in the comments down below and we’ll update the list accordingly.