Get Advice Icon

Need advice about which tool to choose?Ask the StackShare community!

Hugo
Hugo

564
355
+ 1
113
Jekyll
Jekyll

932
675
+ 1
203
Add tool

Jekyll or Hugo — Help me decide

Build speed

Generally speaking, Hugo builds sites much faster than Jekyll. In this benchmark, Jekyll took 187.15s to build a 10,000 page site that Hugo built in 2.95s. Hugo is written in Go and one of its chief goals is to stay extremely fast. Jekyll is written in Ruby, and while its plugin system makes it very extensible, it can’t keep up with generators like Hugo.

Jekyll vs. Hugo build times

Comparing Jekyll and Hugo build times (forestry.io)

Should build speed matter that much to you? It depends. If you’re building a small site with a few dozen pages that you’ll only edit from time to time, probably not. But if you’re creating an active site whose content will grow and grow over time, choosing a static site generator (SSG) with a faster build speed will make both your development environment and your build pipeline more pleasant to work with.

Extensibility

Jekyll is extensible via plugins written in Ruby and boasts a large ecosystem of them—see awesome-jekyll-plugins. These do anything from creating XML sitemaps and RSS feeds to adding analytics and comments. Hugo does not have plugins but does have built in features to handle those things plus shortcodes to perform common tasks like embedding Youtube videos. You can create your own shortcodes too. These are not, however, nearly as flexible as Jekyll plugins.

If your source content fits into Hugo’s (very flexible) content model, you can probably get by with a combination of Hugo’s shortcodes and partials. But if your source content looks nothing like what the end result will be, you might hit a wall with Hugo. Some very advanced Jekyll sites transform source content several times before it gets rendered to HTML, content that may not even live in the filesystem but is fetched on the fly by a plugin. If that sounds more like your project, definitely verify that whatever SSG you consider lets you achieve that level of customization, especially with Hugo. That said, there is a way to fetch external content from REST APIs with Hugo.

Content

Jekyll is blog-aware, meaning that it has built-in features that help you make a full-featured blog faster, such as drafts, permalinks, categories and posts. Put another way, Jekyll wants you to have a blog (one blog, really). As you read the docs, you’ll see a lot of references to that—blog post-like content must live in a _posts folder, for example. In Jekyll-land, there are pages and posts, the difference being that pages don’t have dates. This is a bit more like a traditional CMS like WordPress. The upside of this is a lower learning curve, as it’s pretty clear where things go, and if you are writing a blog you have less decisions to make. The downside is that you might feel constrained down the road if you want to add brand new sections to your site.

.
├── _config.yml
├── _data
|   └── members.yml
├── _drafts
|   ├── begin-with-the-crazy-ideas.md
|   └── on-simplicity-in-technology.md
├── _includes
|   ├── footer.html
|   └── header.html
├── _layouts
|   ├── default.html
|   └── post.html
├── _posts
|   ├── 2007-10-29-why-every-programmer-should-play-nethack.md
|   └── 2009-04-26-barcamp-boston-4-roundup.md
├── _sass
|   ├── _base.scss
|   └── _layout.scss
├── _site
├── .jekyll-metadata
└── index.html # can also be an 'index.md' with valid YAML Frontmatter

Common Jekyll directory structure (jekyllrb.com)

Hugo is another story. Hugo lets you decide where your content goes, all of it. What’s a page? What’s a post? You decide! Grab a cup of coffee and read the Content Organization page in the Hugo docs to get the full scoop, and don’t feel bad if you don’t get it the first time around. This makes Hugo extremely powerful—you can have completely separate blogs and other list-like content sections with entirely different layouts and configurations running on the same site. You can output content in formats other than HTML, even JSON. The only thing to watch out for is the learning curve. If it’s your first time with Hugo, you might want to build a few throwaway Hugo sites first before you start drawing up the grand plans for your real project.

.
├── archetypes
├── config.toml
├── content
├── data
├── layouts
├── static
└── themes

Directory structure for a new Hugo site (gohugo.io)

Themes

Both Jekyll and Hugo have the concept of themes. Themes are like website templates but structured in a way that the underlying static site generator understands. Using a theme can greatly reduce the amount of HTML, CSS and JavaScript you need to write for a new site. There are tons of Jekyll themes out there, this is just one of many sites that collect them. There are comparatively less Hugo themes but many of them are linked to directly from Hugo’s themes site, making them easier to find and giving you a guarantee that they passed some basic criteria in order to be listed. Both Hugo and Jekyll support overriding pieces of themes, but Hugo’s more advanced template lookup order means that you can often do it with more precision.

Jekyll Hyde theme screenshot

Hyde is a popular theme for Jekyll

Hugo Hucore theme screenshot

Hucore is a minimal theme for Hugo based on Hemingway2

Further reading

Here are some other topics worth exploring as you make your decisions:

  • Templates: Jekyll uses Liquid templates which will be more familiar to most developers, whereas Hugo uses the more restrictive but faster Go templating language

  • Assets: Jekyll has some built-in support for asset pipelines as well as quite a few plugins for it; Hugo leaves this up to you (though it may have support in the future)

Contributed by Josh Dzielak

Hugo vs Jekyll: What are the differences?

Developers describe Hugo as "A Fast and Flexible Static Site Generator built with love by spf13 in GoLang". Hugo is a static site generator written in Go. It is optimized for speed, easy use and configurability. Hugo takes a directory with content and templates and renders them into a full html website. Hugo makes use of markdown files with front matter for meta data. On the other hand, Jekyll is detailed as "Blog-aware, static site generator in Ruby". Think of Jekyll as a file-based CMS, without all the complexity. Jekyll takes your content, renders Markdown and Liquid templates, and spits out a complete, static website ready to be served by Apache, Nginx or another web server. Jekyll is the engine behind GitHub Pages, which you can use to host sites right from your GitHub repositories.

Hugo and Jekyll belong to "Static Site Generators" category of the tech stack.

Some of the features offered by Hugo are:

  • Run Anywhere - Hugo is quite possibly the easiest to install software you've ever used, simply download and run. Hugo doesn't depend on administrative privileges, databases, runtimes, interpreters or external libraries. Sites built with Hugo can be deployed on S3, Github Pages, Dropbox or any web host.
  • Fast & Powerful - Hugo is written for speed and performance. Great care has been taken to ensure that Hugo build time is as short as possible. We're talking milliseconds to build your entire site for most setups.
  • Flexible - Hugo is designed to work how you do. Organize your content however you want with any URL structure. Declare your own content types. Define your own meta data in YAML, TOML or JSON.

On the other hand, Jekyll provides the following key features:

  • Simple - No more databases, comment moderation, or pesky updates to install—just your content.
  • Static - Markdown (or Textile), Liquid, HTML & CSS go in. Static sites come out ready for deployment.
  • Blog-aware - Permalinks, categories, pages, posts, and custom layouts are all first-class citizens here.

"Lightning fast" is the top reason why over 35 developers like Hugo, while over 65 developers mention "Github pages integration" as the leading cause for choosing Jekyll.

Hugo and Jekyll are both open source tools. It seems that Jekyll with 38K GitHub stars and 8.28K forks on GitHub has more adoption than Hugo with 36K GitHub stars and 4.05K GitHub forks.

According to the StackShare community, Jekyll has a broader approval, being mentioned in 110 company stacks & 123 developers stacks; compared to Hugo, which is listed in 36 company stacks and 60 developer stacks.

What is Hugo?

Hugo is a static site generator written in Go. It is optimized for speed, easy use and configurability. Hugo takes a directory with content and templates and renders them into a full html website. Hugo makes use of markdown files with front matter for meta data.

What is Jekyll?

Think of Jekyll as a file-based CMS, without all the complexity. Jekyll takes your content, renders Markdown and Liquid templates, and spits out a complete, static website ready to be served by Apache, Nginx or another web server. Jekyll is the engine behind GitHub Pages, which you can use to host sites right from your GitHub repositories.
Get Advice Icon

Need advice about which tool to choose?Ask the StackShare community!

Why do developers choose Hugo?
Why do developers choose Jekyll?

Sign up to add, upvote and see more prosMake informed product decisions

What companies use Hugo?
What companies use Jekyll?

Sign up to get full access to all the companiesMake informed product decisions

What tools integrate with Hugo?
What tools integrate with Jekyll?

Sign up to get full access to all the tool integrationsMake informed product decisions

What are some alternatives to Hugo and Jekyll?
Hexo
Hexo is a fast, simple and powerful blog framework. It parses your posts with Markdown or other render engine and generates static files with the beautiful theme. All of these just take seconds.
WordPress
The core software is built by hundreds of community volunteers, and when you’re ready for more there are thousands of plugins and themes available to transform your site into almost anything you can imagine. Over 60 million people have chosen WordPress to power the place on the web they call “home” — we’d love you to join the family.
Gatsby
Gatsby lets you build blazing fast sites with your data, whatever the source. Liberate your sites from legacy CMSs and fly into the future.
Middleman
Middleman is a command-line tool for creating static websites using all the shortcuts and tools of the modern web development environment.
VuePress
A minimalistic static site generator with a Vue-powered theming system, and a default theme optimized for writing technical documentation. It was created to support the documentation needs of Vue's own sub projects.
See all alternatives
Decisions about Hugo and Jekyll
Josh Dzielak
Josh Dzielak
Developer Advocate at DeveloperMode · | 4 upvotes · 16.4K views
Hugo
Hugo
Jekyll
Jekyll

Earlier this year, I migrated my personal website (dzello.com) from Jekyll to Hugo. My goal with the migration was to make the development environment as pleasant as possible and to make it really easy to add new types of content. For example, I knew I wanted to add a consulting page and some portfolio-style pages to show off talks I had given and projects I had worked on.

I had heard about how fast Hugo was, so I tried it out with my content after using a simple migration tool. The results were impressive - the startup and rebuild times were in milliseconds, making the process of iterating on content or design less cumbersome. Then I started to see how I could use Hugo to create new page types and was very impressed by the flexibility of the content model. It took me a few days to really understand where content should go with Hugo, but then I felt very confident that I could create many different types of pages - even multiple blogs if I wanted - using a consistent syntax and with full control of the layouts and the URLs.

After about 6 months, I've been very happy with the results of the migration. The dev environment is light and fast and I feel at ease adding new pages and sections to the site.

See more
Todd Gardner
Todd Gardner
President at TrackJS · | 4 upvotes · 52.4K views
atTrackJSTrackJS
Gatsby
Gatsby
Read the Docs
Read the Docs
ReadMe.io
ReadMe.io
GitHub Pages
GitHub Pages
Jekyll
Jekyll

We recently needed to rebuild our documentation site, currently built using Jekyll hosted on GitHub Pages. We wanted to update the content and refresh the style to make it easier to find answers.

We considered hosted services that could accept our markdown content, like ReadMe.io and Read the Docs, however both seemed expensive for essentially hosting the same platform we already had for free.

I also looked at the Gatsby Static Site generator to modernize Jekyll. I don't think this is a fit, as our documentation is relatively simple and relies heavily on Markdown. Jekyll excels at Markdown, while Gatsby seemed to struggle with it.

We chose to stick with the current platform and just refresh our template and style with some add-on JavaScript.

See more
Interest over time
Reviews of Hugo and Jekyll
No reviews found
How developers use Hugo and Jekyll
Avatar of Wing Tang Wong
Wing Tang Wong uses HugoHugo

The Static Content Generator engine, Hugo, is what I use to convert the Markdown content of my site into HTML for serving to the public.

Using Hugo as a backend to generate content for a statically hosted frontend reduces the security risk of hosting a dynamically interactive site.

Avatar of Bob P
Bob P uses JekyllJekyll

With limited knowledge of CSS/HTML5, Jekyll makes it easy to create templates for static HTML5 sites. Unless I really need a database for something, this is the tool I prefer for standing up websites.

Avatar of David Somers
David Somers uses JekyllJekyll

I settled on Jekyll to be the CMS for my research blog. Out of the box it works, and over time I added to it... why write a dissertation when you can instead hack templates to tweak things.

Avatar of ioi0
ioi0 uses JekyllJekyll

This static site generator is used with "contentful-import" ruby plugin, which allows to fetch data from Contentfull and generate new web-pages based on it. Easy and fun to use.

Avatar of CloudRepo
CloudRepo uses JekyllJekyll

We wanted to pay the cost for website generation up front. Doing this allows us to put our website up in AWS S3 where it can be served reliably and for cheap.

Avatar of Sud Web
Sud Web uses JekyllJekyll

We use Jekyll to build our website. We created a collection for talks. We handle speakers and sponsors via data files.

Avatar of Giant Swarm
Giant Swarm uses HugoHugo

We use Hugo to build our documentation website based on Markdown content.

Avatar of Loog
Loog uses HugoHugo

We use Hugo to generate all of our secondary sites including documentation, blog and help center.

Avatar of Yoandy Rodriguez
Yoandy Rodriguez uses HugoHugo

Hugo is my favorite static site generator. It's the engine behind my personal blog.

Avatar of Zetaops
Zetaops uses HugoHugo

REST Backend developed for location data access.

How much does Hugo cost?
How much does Jekyll cost?
Pricing unavailable
Pricing unavailable