Websites are divided into static and dynamic websites. Dynamic websites are usually powered by a CMS (Content Management System) like WordPress, Joomla, and Drupal. CMS builds the page from the database and HTML templates every time a user requests it. On the other hand, Static Sites are websites that are served from a web server to the client without any changes. Static Sites are on the rise nowadays because they offer more speed, security, and simplicity in development than dynamic websites.
Static Site Generators are a set of tools which simplify the process of generating static webpages from HTML, CSS, and Markdown. The following is a list of the top free and open source Static Site Generators.
Jekyll is one of the most popular SSGs (Static Site Generators). It is open source, and built with Ruby. It powers GitHub Pages, so it is easy to host your generated website on GitHub for free. Jekyll also offers importers to help you import your website or blog. Some importer examples are importers for WordPress, Ghost, Tumblr, Blogger, Drupal, Joomla, and many more.
Hugo is a free and open source SSG. It is built using Go Programming Language. It is extremely fast, and offers a Go-based templating system. It has a robust theming system which enables you to produce the theme you desire, whether it is a simple or a complicated one.
Gatsby is an open source SSG, and depends on React and GraphQL to generate the static pages. It has a huge collection of plugins (more than 2000 plugins) for almost any use-case, from e-commerce websites, to blogs, and user dashboards.
Publii is a desktop-based CMS application for Windows, Mac and Linux which is built using Electron and Vue.js. It makes creating static websites fast and hassle-free, even for beginners. It provides an easy-to-understand UI much like server-based CMSs such as WordPress. It has a built-in WordPress Importer to easily transfer your blog posts, pages and categories over in just a few minutes.
What makes Publii even more unique is that the app runs locally on your desktop rather than on the site's server, and doesn't need internet access; so you can create, update and modify your site offline, then upload the site changes to your server at the click of a button. Publii supports multiple upload options, including standard HTTP/HTTPS servers, Netlify, Amazon S3, GitHub Pages and Google Cloud or SFTP.
Nuxt is an open source framework which enables you to convert your Vue-based website into a static site while retaining all SEO customizations. It also supports server-side rendering, and PWA (Progressive Web Apps).
Gridsome is an MIT-licensed open source SSG built on top of Vue and is powered by GraphQL. It supports PWAs, and automatic code splitting.
Next.js is React-based and offers hybrid static & server rendering, TypeScript support, automatic compilation and bundling, route pre-fetching, incremental static generation, internationalization, and many more.
Hexo is powered by Node.js and offers various plugins to support different template engines as EJS, Pug, Nunjucks, and many others. It also offers a huge library of customizable themes.
VuePress is a minimalistic SSG powered by Vue. It generates pre-rendered static HTML for each page, and runs as an SPA (Single-Page Application) once a page is loaded.
Docusaurus is an MIT-licensed open source SSG developed by Facebook. It is built with React. You use Markdown to write docs and blog posts and Docusaurus will convert them into a set of static HTML files. It supports Document Versioning, and localization with the help of CrowdIn (70+ languages).
Pelican is written in Python. It supports integration with external services as Google Analytics and Disqus, generation of Atom and RSS feeds, and site themes using Jinja2 templates. It supports importing existing content from WordPress, Dotclear, and other services. It also offers modular plugin system and corresponding plugin repository.
Middleman is a Ruby based SSG. It supports Sass, CoffeeScript, and ERb or Haml for templating.
Lektor is a static CMS (Content Management System) which is written in Python. It is 100% File Based which means that all source data is well structured and can be tracked in a version control system or cloud storage like Dropbox. It also comes with a flexible and beautiful admin interface so you can edit your pages without having to touch the raw sources. Lektor also offers plugins that can be used to customize a wide range of functionality.
UmiJS is an extensible enterprise-level front-end application framework with built-in support for React, react-router, jest, webpack, rollup, etc. It offers PWA support, and route-level code splitting. It also supports plugins and presets.
Zola is a Static Site Generator in a single binary with everything built-in (no dependencies). It is built using Rust programming Language. It is flexible, scalable, blazing fast, and has a built-in support for themes.
Scully is a static site generator for Angular projects. It offers many tools to give developers fine-grained control over their angular projects. It also offers a powerful plugin system.
Franklin is a simple and customizable SSG written in Julia programming Language. It is oriented towards technical blogging (code, maths, …) and light, fast-loading pages.
Cryogen is a simple static site generator written in Clojure. It has Disqus support, and offers Klipse integration. It also offers Sitemap and RSS feed generation.
Static Site Generators are on the rise nowadays due to many advantages like speed, security, and ease of development. Anyone can easily find the suitable tool according to his needs and experience.