Jekyll Layouts Explained: How to Structure Your Site Templates
A complete guide to Jekyll layouts — how they work, layout inheritance, passing data, and building a clean layout hierarchy for any Jekyll site.
Layouts are Jekyll’s template system — reusable HTML wrappers that surround your content. Every page on your Jekyll site uses a layout, even if you have not thought about it explicitly. Understanding how layouts work, and how to structure them, is one of the most important skills in Jekyll development.
What is a layout?
A layout is an HTML file in the _layouts/ directory that contains a `<div class="read-progress" id="read-progress"></div>
Jekyll Front Matter: The Complete Guide
Everything you need to know about Jekyll front matter — YAML syntax, built-in variables, custom fields, defaults, and real-world examples for posts, pages, and collections.
Front matter is how Jekyll knows what to do with a file. Without it, Jekyll treats a file as a static asset and copies it unchanged. With it, Jekyll processes the file through its template engine, applies a layout, and builds a page with all the data you specified.
Understanding front matter is foundational to using Jekyll effectively. This guide covers everything from basic syntax to advanced defaults.
What is front matter?
Front matter is a block of YAML at the top of a file, enclosed between triple-dashed lines:
---
layout: post
title: "My First Post"
date: 2026-07-29
---
Content goes here.
The triple dashes are required — both opening and closing. Jekyll strips the front matter block before rendering the content and makes all the variables available in your Liquid templates.
Any file in a Jekyll site that has front matter (even empty front matter ---
---) is processed by Jekyll. Files without front matter are copied as-is.
YAML basics
Front matter uses YAML (YAML Ain’t Markup Language). You only need to know a handful of YAML patterns to write effective front matter.
Strings:
title: "My Post Title"
title: My Post Title # quotes are optional for simple strings
description: "A post about Jekyll front matter — the basics and beyond."
Numbers:
nav_order: 3
weight: 10
Booleans:
published: true
featured: false
toc: true
Lists (arrays):
tags:
- jekyll
- tutorial
- yaml
# Or inline:
tags: [jekyll, tutorial, yaml]
Nested objects:
author:
name: Marcus Webb
email: marcus@example.com
twitter: marcuswebb
Multiline strings:
description: >
This is a long description that spans
multiple lines but will be joined into
a single paragraph.
excerpt: |
This preserves
line breaks
exactly.
Built-in Jekyll front matter variables
Jekyll recognises several variable names and uses them specially:
layout
Specifies which layout file from _layouts/ to use:
layout: post # uses _layouts/post.html
layout: page # uses _layouts/page.html
layout: default # uses _layouts/default.html
layout: none # no layout — render content only
If omitted, Jekyll uses no layout (renders content only). Most files should specify a layout.
title
The page title. Available as Jekyll Front Matter: The Complete Guide in templates and used by jekyll-seo-tag for the <title> element:
title: "Jekyll Front Matter: The Complete Guide"
date
For posts in _posts/, the date is normally part of the filename (2026-07-29-my-post.md). You can override or supplement it with a front matter date:
date: 2026-07-29
date: 2026-07-29 14:30:00 +0100 # with time and timezone
The date variable sets page.date, which is used for sorting posts and for display in templates.
published
Controls whether Jekyll includes the page in the build output:
published: false # page is excluded from build
published: true # page is included (default)
Drafts in _drafts/ are automatically excluded unless you run jekyll serve --drafts.
permalink
Overrides Jekyll’s default URL for the page:
permalink: /about/
permalink: /blog/:year/:month/:title/
permalink: /themes/minimal/
Available :placeholders for posts: :year, :month, :day, :title, :categories, :slug.
categories and tags
Categorise and tag your content:
categories: Tutorial
categories:
- Tutorial
- Jekyll
tags: [front-matter, yaml, jekyll]
categories affects the default URL of posts (/tutorial/2026/07/29/my-post/). tags do not affect URLs.
excerpt
By default, Jekyll uses the first paragraph of a post as its excerpt. Override with:
excerpt: "A short custom summary for use in post listings and meta descriptions."
last_modified_at
Used by jekyll-seo-tag and jekyll-sitemap to set the <lastmod> value:
last_modified_at: 2026-07-29
Custom front matter variables
Any variable you add to front matter becomes available in your templates as page.variable_name:
---
layout: post
title: "My Post"
author: Marcus Webb
reading_time: 8
featured_image: /assets/images/hero.webp
show_newsletter: true
difficulty: beginner
---
In your templates:
<p>By {{ page.author }} · {{ page.reading_time }} min read</p>
{% if page.featured_image %}
<img src="{{ page.featured_image }}" alt="{{ page.title }}">
{% endif %}
{% if page.show_newsletter %}
{% include newsletter-form.html %}
{% endif %}
This pattern is powerful — you can add any metadata to a page and use it anywhere in your templates without touching layout files.
Front matter in different file types
Posts (_posts/)
---
layout: post
title: "How to Install a Jekyll Theme"
description: "Step-by-step guide to installing any Jekyll theme in under 10 minutes."
date: 2026-07-29
last_modified_at: 2026-07-29
image: /assets/images/blog/install-jekyll-theme.webp
author: Marcus Webb
category: Tutorial
tags: [jekyll, themes, tutorial]
featured: false
toc: true
---
Pages (_pages/ or root)
---
layout: page
title: "About JekyllHub"
description: "The story behind JekyllHub — a marketplace for Jekyll themes."
permalink: /about/
nav_order: 4
---
Collection items (_themes/, _authors/, etc.)
---
layout: theme
title: "Minimal Mistakes"
github_url: https://github.com/mmistakes/minimal-mistakes
stars: 12800
price: 0
category: Blog
tags: [responsive, dark-mode, sidebar]
---
Layouts and includes
Layouts and includes can also have front matter, but it is rarely used. One exception: layout inheritance.
---
layout: default # This layout itself uses another layout
---
Front matter defaults
Repeating the same front matter on every post is tedious. Jekyll’s defaults feature lets you set front matter values globally in _config.yml:
# _config.yml
defaults:
# Default for all posts
- scope:
path: ""
type: posts
values:
layout: post
author: Marcus Webb
toc: true
featured: false
# Default for all pages
- scope:
path: ""
type: pages
values:
layout: page
# Default for a specific directory
- scope:
path: "_themes"
type: themes
values:
layout: theme
# Default for files matching a path pattern
- scope:
path: "guides/**"
values:
layout: guide
show_sidebar: true
With these defaults set, you do not need to specify layout: post or author: Marcus Webb on every post — Jekyll applies them automatically. Front matter in the file still overrides defaults.
Specificity: More specific scopes override less specific ones. A post-level default overrides a site-wide default. Front matter in the file overrides both.
Accessing front matter in templates
All front matter variables are available in Liquid templates:
<!-- In the layout file -->
<h1>{{ page.title }}</h1>
<p>{{ page.description }}</p>
<time>{{ page.date | date: "%B %-d, %Y" }}</time>
<!-- Conditional display -->
{% if page.toc %}
{% include toc.html %}
{% endif %}
<!-- Iteration over arrays -->
{% for tag in page.tags %}
<span class="tag">{{ tag }}</span>
{% endfor %}
<!-- Nested objects -->
{{ page.author.name }}
{{ page.author.twitter }}
Accessing front matter from other pages
You can loop through all pages or posts and access their front matter:
<!-- List all posts with their metadata -->
{% for post in site.posts %}
<article>
<h2><a href="{{ post.url }}">{{ post.title }}</a></h2>
<p>{{ post.description }}</p>
{% if post.featured %}
<span class="badge">Featured</span>
{% endif %}
</article>
{% endfor %}
<!-- Filter by front matter value -->
{% assign featured_posts = site.posts | where: "featured", true %}
{% for post in featured_posts %}
<a href="{{ post.url }}">{{ post.title }}</a>
{% endfor %}
Common front matter patterns
Hiding a page from navigation while keeping it live
---
layout: page
title: "Thank You"
permalink: /thank-you/
sitemap: false
---
Overriding the excerpt
---
layout: post
title: "My Post"
excerpt: "This custom excerpt appears in post listings and meta descriptions instead of the first paragraph."
---
Specifying an OG image for social sharing
---
layout: post
title: "My Post"
image: /assets/images/blog/my-post.webp
---
With jekyll-seo-tag, image is automatically used as the Open Graph image.
Controlling the canonical URL
---
layout: post
title: "My Post"
canonical_url: "https://original-source.com/my-post/"
---
Useful if you are syndicating content from another site.
Validating front matter
YAML syntax errors in front matter cause Jekyll build errors. Common mistakes:
Unquoted colons: A colon in a value must be quoted.
# Bad
title: Jekyll: The Complete Guide
# Good
title: "Jekyll: The Complete Guide"
Tab characters: YAML uses spaces, not tabs. Always indent with spaces.
Inconsistent list formatting:
# Bad — mixing inline and block style
tags: [jekyll
tutorial]
# Good
tags: [jekyll, tutorial]
# Or
tags:
- jekyll
- tutorial
Run bundle exec jekyll build --verbose to see detailed error output when front matter parsing fails.
Front matter is the connective tissue of a Jekyll site — it is how content communicates with templates. Mastering it unlocks the full power of Jekyll’s data-driven architecture.
</button> ` placeholder. When Jekyll builds a page, it takes the page’s content and injects it wherever `<div class="read-progress" id="read-progress"></div>
Jekyll Front Matter: The Complete Guide
Everything you need to know about Jekyll front matter — YAML syntax, built-in variables, custom fields, defaults, and real-world examples for posts, pages, and collections.
Front matter is how Jekyll knows what to do with a file. Without it, Jekyll treats a file as a static asset and copies it unchanged. With it, Jekyll processes the file through its template engine, applies a layout, and builds a page with all the data you specified.
Understanding front matter is foundational to using Jekyll effectively. This guide covers everything from basic syntax to advanced defaults.
What is front matter?
Front matter is a block of YAML at the top of a file, enclosed between triple-dashed lines:
---
layout: post
title: "My First Post"
date: 2026-07-29
---
Content goes here.
The triple dashes are required — both opening and closing. Jekyll strips the front matter block before rendering the content and makes all the variables available in your Liquid templates.
Any file in a Jekyll site that has front matter (even empty front matter ---
---) is processed by Jekyll. Files without front matter are copied as-is.
YAML basics
Front matter uses YAML (YAML Ain’t Markup Language). You only need to know a handful of YAML patterns to write effective front matter.
Strings:
title: "My Post Title"
title: My Post Title # quotes are optional for simple strings
description: "A post about Jekyll front matter — the basics and beyond."
Numbers:
nav_order: 3
weight: 10
Booleans:
published: true
featured: false
toc: true
Lists (arrays):
tags:
- jekyll
- tutorial
- yaml
# Or inline:
tags: [jekyll, tutorial, yaml]
Nested objects:
author:
name: Marcus Webb
email: marcus@example.com
twitter: marcuswebb
Multiline strings:
description: >
This is a long description that spans
multiple lines but will be joined into
a single paragraph.
excerpt: |
This preserves
line breaks
exactly.
Built-in Jekyll front matter variables
Jekyll recognises several variable names and uses them specially:
layout
Specifies which layout file from _layouts/ to use:
layout: post # uses _layouts/post.html
layout: page # uses _layouts/page.html
layout: default # uses _layouts/default.html
layout: none # no layout — render content only
If omitted, Jekyll uses no layout (renders content only). Most files should specify a layout.
title
The page title. Available as Jekyll Front Matter: The Complete Guide in templates and used by jekyll-seo-tag for the <title> element:
title: "Jekyll Front Matter: The Complete Guide"
date
For posts in _posts/, the date is normally part of the filename (2026-07-29-my-post.md). You can override or supplement it with a front matter date:
date: 2026-07-29
date: 2026-07-29 14:30:00 +0100 # with time and timezone
The date variable sets page.date, which is used for sorting posts and for display in templates.
published
Controls whether Jekyll includes the page in the build output:
published: false # page is excluded from build
published: true # page is included (default)
Drafts in _drafts/ are automatically excluded unless you run jekyll serve --drafts.
permalink
Overrides Jekyll’s default URL for the page:
permalink: /about/
permalink: /blog/:year/:month/:title/
permalink: /themes/minimal/
Available :placeholders for posts: :year, :month, :day, :title, :categories, :slug.
categories and tags
Categorise and tag your content:
categories: Tutorial
categories:
- Tutorial
- Jekyll
tags: [front-matter, yaml, jekyll]
categories affects the default URL of posts (/tutorial/2026/07/29/my-post/). tags do not affect URLs.
excerpt
By default, Jekyll uses the first paragraph of a post as its excerpt. Override with:
excerpt: "A short custom summary for use in post listings and meta descriptions."
last_modified_at
Used by jekyll-seo-tag and jekyll-sitemap to set the <lastmod> value:
last_modified_at: 2026-07-29
Custom front matter variables
Any variable you add to front matter becomes available in your templates as page.variable_name:
---
layout: post
title: "My Post"
author: Marcus Webb
reading_time: 8
featured_image: /assets/images/hero.webp
show_newsletter: true
difficulty: beginner
---
In your templates:
<p>By {{ page.author }} · {{ page.reading_time }} min read</p>
{% if page.featured_image %}
<img src="{{ page.featured_image }}" alt="{{ page.title }}">
{% endif %}
{% if page.show_newsletter %}
{% include newsletter-form.html %}
{% endif %}
This pattern is powerful — you can add any metadata to a page and use it anywhere in your templates without touching layout files.
Front matter in different file types
Posts (_posts/)
---
layout: post
title: "How to Install a Jekyll Theme"
description: "Step-by-step guide to installing any Jekyll theme in under 10 minutes."
date: 2026-07-29
last_modified_at: 2026-07-29
image: /assets/images/blog/install-jekyll-theme.webp
author: Marcus Webb
category: Tutorial
tags: [jekyll, themes, tutorial]
featured: false
toc: true
---
Pages (_pages/ or root)
---
layout: page
title: "About JekyllHub"
description: "The story behind JekyllHub — a marketplace for Jekyll themes."
permalink: /about/
nav_order: 4
---
Collection items (_themes/, _authors/, etc.)
---
layout: theme
title: "Minimal Mistakes"
github_url: https://github.com/mmistakes/minimal-mistakes
stars: 12800
price: 0
category: Blog
tags: [responsive, dark-mode, sidebar]
---
Layouts and includes
Layouts and includes can also have front matter, but it is rarely used. One exception: layout inheritance.
---
layout: default # This layout itself uses another layout
---
Front matter defaults
Repeating the same front matter on every post is tedious. Jekyll’s defaults feature lets you set front matter values globally in _config.yml:
# _config.yml
defaults:
# Default for all posts
- scope:
path: ""
type: posts
values:
layout: post
author: Marcus Webb
toc: true
featured: false
# Default for all pages
- scope:
path: ""
type: pages
values:
layout: page
# Default for a specific directory
- scope:
path: "_themes"
type: themes
values:
layout: theme
# Default for files matching a path pattern
- scope:
path: "guides/**"
values:
layout: guide
show_sidebar: true
With these defaults set, you do not need to specify layout: post or author: Marcus Webb on every post — Jekyll applies them automatically. Front matter in the file still overrides defaults.
Specificity: More specific scopes override less specific ones. A post-level default overrides a site-wide default. Front matter in the file overrides both.
Accessing front matter in templates
All front matter variables are available in Liquid templates:
<!-- In the layout file -->
<h1>{{ page.title }}</h1>
<p>{{ page.description }}</p>
<time>{{ page.date | date: "%B %-d, %Y" }}</time>
<!-- Conditional display -->
{% if page.toc %}
{% include toc.html %}
{% endif %}
<!-- Iteration over arrays -->
{% for tag in page.tags %}
<span class="tag">{{ tag }}</span>
{% endfor %}
<!-- Nested objects -->
{{ page.author.name }}
{{ page.author.twitter }}
Accessing front matter from other pages
You can loop through all pages or posts and access their front matter:
<!-- List all posts with their metadata -->
{% for post in site.posts %}
<article>
<h2><a href="{{ post.url }}">{{ post.title }}</a></h2>
<p>{{ post.description }}</p>
{% if post.featured %}
<span class="badge">Featured</span>
{% endif %}
</article>
{% endfor %}
<!-- Filter by front matter value -->
{% assign featured_posts = site.posts | where: "featured", true %}
{% for post in featured_posts %}
<a href="{{ post.url }}">{{ post.title }}</a>
{% endfor %}
Common front matter patterns
Hiding a page from navigation while keeping it live
---
layout: page
title: "Thank You"
permalink: /thank-you/
sitemap: false
---
Overriding the excerpt
---
layout: post
title: "My Post"
excerpt: "This custom excerpt appears in post listings and meta descriptions instead of the first paragraph."
---
Specifying an OG image for social sharing
---
layout: post
title: "My Post"
image: /assets/images/blog/my-post.webp
---
With jekyll-seo-tag, image is automatically used as the Open Graph image.
Controlling the canonical URL
---
layout: post
title: "My Post"
canonical_url: "https://original-source.com/my-post/"
---
Useful if you are syndicating content from another site.
Validating front matter
YAML syntax errors in front matter cause Jekyll build errors. Common mistakes:
Unquoted colons: A colon in a value must be quoted.
# Bad
title: Jekyll: The Complete Guide
# Good
title: "Jekyll: The Complete Guide"
Tab characters: YAML uses spaces, not tabs. Always indent with spaces.
Inconsistent list formatting:
# Bad — mixing inline and block style
tags: [jekyll
tutorial]
# Good
tags: [jekyll, tutorial]
# Or
tags:
- jekyll
- tutorial
Run bundle exec jekyll build --verbose to see detailed error output when front matter parsing fails.
Front matter is the connective tissue of a Jekyll site — it is how content communicates with templates. Mastering it unlocks the full power of Jekyll’s data-driven architecture.
</button> ` appears in the layout.
<!-- _layouts/default.html -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{{ page.title }} | {{ site.title }}</title>
<link rel="stylesheet" href="{{ '/assets/css/main.css' | relative_url }}">
</head>
<body>
{% include nav.html %}
<main>
{{ content }}
</main>
{% include footer.html %}
</body>
</html>
When this layout is applied to a post, `<div class="read-progress" id="read-progress"></div>
Jekyll Front Matter: The Complete Guide
Everything you need to know about Jekyll front matter — YAML syntax, built-in variables, custom fields, defaults, and real-world examples for posts, pages, and collections.
Front matter is how Jekyll knows what to do with a file. Without it, Jekyll treats a file as a static asset and copies it unchanged. With it, Jekyll processes the file through its template engine, applies a layout, and builds a page with all the data you specified.
Understanding front matter is foundational to using Jekyll effectively. This guide covers everything from basic syntax to advanced defaults.
What is front matter?
Front matter is a block of YAML at the top of a file, enclosed between triple-dashed lines:
---
layout: post
title: "My First Post"
date: 2026-07-29
---
Content goes here.
The triple dashes are required — both opening and closing. Jekyll strips the front matter block before rendering the content and makes all the variables available in your Liquid templates.
Any file in a Jekyll site that has front matter (even empty front matter ---
---) is processed by Jekyll. Files without front matter are copied as-is.
YAML basics
Front matter uses YAML (YAML Ain’t Markup Language). You only need to know a handful of YAML patterns to write effective front matter.
Strings:
title: "My Post Title"
title: My Post Title # quotes are optional for simple strings
description: "A post about Jekyll front matter — the basics and beyond."
Numbers:
nav_order: 3
weight: 10
Booleans:
published: true
featured: false
toc: true
Lists (arrays):
tags:
- jekyll
- tutorial
- yaml
# Or inline:
tags: [jekyll, tutorial, yaml]
Nested objects:
author:
name: Marcus Webb
email: marcus@example.com
twitter: marcuswebb
Multiline strings:
description: >
This is a long description that spans
multiple lines but will be joined into
a single paragraph.
excerpt: |
This preserves
line breaks
exactly.
Built-in Jekyll front matter variables
Jekyll recognises several variable names and uses them specially:
layout
Specifies which layout file from _layouts/ to use:
layout: post # uses _layouts/post.html
layout: page # uses _layouts/page.html
layout: default # uses _layouts/default.html
layout: none # no layout — render content only
If omitted, Jekyll uses no layout (renders content only). Most files should specify a layout.
title
The page title. Available as Jekyll Front Matter: The Complete Guide in templates and used by jekyll-seo-tag for the <title> element:
title: "Jekyll Front Matter: The Complete Guide"
date
For posts in _posts/, the date is normally part of the filename (2026-07-29-my-post.md). You can override or supplement it with a front matter date:
date: 2026-07-29
date: 2026-07-29 14:30:00 +0100 # with time and timezone
The date variable sets page.date, which is used for sorting posts and for display in templates.
published
Controls whether Jekyll includes the page in the build output:
published: false # page is excluded from build
published: true # page is included (default)
Drafts in _drafts/ are automatically excluded unless you run jekyll serve --drafts.
permalink
Overrides Jekyll’s default URL for the page:
permalink: /about/
permalink: /blog/:year/:month/:title/
permalink: /themes/minimal/
Available :placeholders for posts: :year, :month, :day, :title, :categories, :slug.
categories and tags
Categorise and tag your content:
categories: Tutorial
categories:
- Tutorial
- Jekyll
tags: [front-matter, yaml, jekyll]
categories affects the default URL of posts (/tutorial/2026/07/29/my-post/). tags do not affect URLs.
excerpt
By default, Jekyll uses the first paragraph of a post as its excerpt. Override with:
excerpt: "A short custom summary for use in post listings and meta descriptions."
last_modified_at
Used by jekyll-seo-tag and jekyll-sitemap to set the <lastmod> value:
last_modified_at: 2026-07-29
Custom front matter variables
Any variable you add to front matter becomes available in your templates as page.variable_name:
---
layout: post
title: "My Post"
author: Marcus Webb
reading_time: 8
featured_image: /assets/images/hero.webp
show_newsletter: true
difficulty: beginner
---
In your templates:
<p>By {{ page.author }} · {{ page.reading_time }} min read</p>
{% if page.featured_image %}
<img src="{{ page.featured_image }}" alt="{{ page.title }}">
{% endif %}
{% if page.show_newsletter %}
{% include newsletter-form.html %}
{% endif %}
This pattern is powerful — you can add any metadata to a page and use it anywhere in your templates without touching layout files.
Front matter in different file types
Posts (_posts/)
---
layout: post
title: "How to Install a Jekyll Theme"
description: "Step-by-step guide to installing any Jekyll theme in under 10 minutes."
date: 2026-07-29
last_modified_at: 2026-07-29
image: /assets/images/blog/install-jekyll-theme.webp
author: Marcus Webb
category: Tutorial
tags: [jekyll, themes, tutorial]
featured: false
toc: true
---
Pages (_pages/ or root)
---
layout: page
title: "About JekyllHub"
description: "The story behind JekyllHub — a marketplace for Jekyll themes."
permalink: /about/
nav_order: 4
---
Collection items (_themes/, _authors/, etc.)
---
layout: theme
title: "Minimal Mistakes"
github_url: https://github.com/mmistakes/minimal-mistakes
stars: 12800
price: 0
category: Blog
tags: [responsive, dark-mode, sidebar]
---
Layouts and includes
Layouts and includes can also have front matter, but it is rarely used. One exception: layout inheritance.
---
layout: default # This layout itself uses another layout
---
Front matter defaults
Repeating the same front matter on every post is tedious. Jekyll’s defaults feature lets you set front matter values globally in _config.yml:
# _config.yml
defaults:
# Default for all posts
- scope:
path: ""
type: posts
values:
layout: post
author: Marcus Webb
toc: true
featured: false
# Default for all pages
- scope:
path: ""
type: pages
values:
layout: page
# Default for a specific directory
- scope:
path: "_themes"
type: themes
values:
layout: theme
# Default for files matching a path pattern
- scope:
path: "guides/**"
values:
layout: guide
show_sidebar: true
With these defaults set, you do not need to specify layout: post or author: Marcus Webb on every post — Jekyll applies them automatically. Front matter in the file still overrides defaults.
Specificity: More specific scopes override less specific ones. A post-level default overrides a site-wide default. Front matter in the file overrides both.
Accessing front matter in templates
All front matter variables are available in Liquid templates:
<!-- In the layout file -->
<h1>{{ page.title }}</h1>
<p>{{ page.description }}</p>
<time>{{ page.date | date: "%B %-d, %Y" }}</time>
<!-- Conditional display -->
{% if page.toc %}
{% include toc.html %}
{% endif %}
<!-- Iteration over arrays -->
{% for tag in page.tags %}
<span class="tag">{{ tag }}</span>
{% endfor %}
<!-- Nested objects -->
{{ page.author.name }}
{{ page.author.twitter }}
Accessing front matter from other pages
You can loop through all pages or posts and access their front matter:
<!-- List all posts with their metadata -->
{% for post in site.posts %}
<article>
<h2><a href="{{ post.url }}">{{ post.title }}</a></h2>
<p>{{ post.description }}</p>
{% if post.featured %}
<span class="badge">Featured</span>
{% endif %}
</article>
{% endfor %}
<!-- Filter by front matter value -->
{% assign featured_posts = site.posts | where: "featured", true %}
{% for post in featured_posts %}
<a href="{{ post.url }}">{{ post.title }}</a>
{% endfor %}
Common front matter patterns
Hiding a page from navigation while keeping it live
---
layout: page
title: "Thank You"
permalink: /thank-you/
sitemap: false
---
Overriding the excerpt
---
layout: post
title: "My Post"
excerpt: "This custom excerpt appears in post listings and meta descriptions instead of the first paragraph."
---
Specifying an OG image for social sharing
---
layout: post
title: "My Post"
image: /assets/images/blog/my-post.webp
---
With jekyll-seo-tag, image is automatically used as the Open Graph image.
Controlling the canonical URL
---
layout: post
title: "My Post"
canonical_url: "https://original-source.com/my-post/"
---
Useful if you are syndicating content from another site.
Validating front matter
YAML syntax errors in front matter cause Jekyll build errors. Common mistakes:
Unquoted colons: A colon in a value must be quoted.
# Bad
title: Jekyll: The Complete Guide
# Good
title: "Jekyll: The Complete Guide"
Tab characters: YAML uses spaces, not tabs. Always indent with spaces.
Inconsistent list formatting:
# Bad — mixing inline and block style
tags: [jekyll
tutorial]
# Good
tags: [jekyll, tutorial]
# Or
tags:
- jekyll
- tutorial
Run bundle exec jekyll build --verbose to see detailed error output when front matter parsing fails.
Front matter is the connective tissue of a Jekyll site — it is how content communicates with templates. Mastering it unlocks the full power of Jekyll’s data-driven architecture.
</button>
` is replaced with the post’s rendered HTML. The <head>, navigation, and footer appear on every page that uses this layout.
The _layouts directory
All layouts live in _layouts/ at your project root:
_layouts/
├── default.html # base layout
├── page.html # for standard pages
├── post.html # for blog posts
├── theme.html # for theme collection items
└── home.html # for the homepage
Jekyll looks for the layout file specified in front matter — layout: post maps to _layouts/post.html.
Applying a layout
Specify a layout in the front matter of any page, post, or collection item:
---
layout: post
title: "My Blog Post"
---
Post content here.
Or use _config.yml defaults to apply layouts automatically to entire directories or types:
# _config.yml
defaults:
- scope:
type: posts
values:
layout: post
- scope:
type: pages
values:
layout: page
With this in place, you do not need to specify layout: in every post’s front matter.
Layout inheritance
The most powerful Jekyll layout feature is inheritance — a layout can itself use another layout. This lets you build a hierarchy that avoids repetition.
The base layout
Start with a default.html that contains everything common to all pages: <html>, <head>, nav, footer:
<!-- _layouts/default.html -->
<!DOCTYPE html>
<html lang="{{ page.lang | default: 'en' }}">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
{% seo %}
<link rel="stylesheet" href="{{ '/assets/css/main.css' | relative_url }}">
{% include analytics.html %}
</head>
<body class="{% if page.dark %}dark{% endif %}">
{% include nav.html %}
{{ content }}
{% include footer.html %}
<script src="{{ '/assets/js/main.js' | relative_url }}" defer></script>
</body>
</html>
A child layout
A post.html layout adds post-specific structure — the article wrapper, header, and sidebar — and uses default.html as its parent via front matter:
<!-- _layouts/post.html -->
---
layout: default
---
<div class="container post-container">
<article class="post">
<header class="post__header">
<div class="post__meta">
<span>{{ page.category }}</span>
<time>{{ page.date | date: "%B %-d, %Y" }}</time>
</div>
<h1 class="post__title">{{ page.title }}</h1>
{% if page.description %}
<p class="post__description">{{ page.description }}</p>
{% endif %}
{% if page.image %}
<img src="{{ page.image | relative_url }}" alt="{{ page.title }}" class="post__hero">
{% endif %}
</header>
<div class="post__body">
{{ content }}
</div>
</article>
{% include sidebar.html %}
</div>
When a blog post uses layout: post, Jekyll:
- Renders the post’s Markdown content to HTML
- Injects it into
post.htmlat `<div class="read-progress" id="read-progress"></div>
Jekyll Front Matter: The Complete Guide
Everything you need to know about Jekyll front matter — YAML syntax, built-in variables, custom fields, defaults, and real-world examples for posts, pages, and collections.
Front matter is how Jekyll knows what to do with a file. Without it, Jekyll treats a file as a static asset and copies it unchanged. With it, Jekyll processes the file through its template engine, applies a layout, and builds a page with all the data you specified.
Understanding front matter is foundational to using Jekyll effectively. This guide covers everything from basic syntax to advanced defaults.
What is front matter?
Front matter is a block of YAML at the top of a file, enclosed between triple-dashed lines:
---
layout: post
title: "My First Post"
date: 2026-07-29
---
Content goes here.
The triple dashes are required — both opening and closing. Jekyll strips the front matter block before rendering the content and makes all the variables available in your Liquid templates.
Any file in a Jekyll site that has front matter (even empty front matter ---
---) is processed by Jekyll. Files without front matter are copied as-is.
YAML basics
Front matter uses YAML (YAML Ain’t Markup Language). You only need to know a handful of YAML patterns to write effective front matter.
Strings:
title: "My Post Title"
title: My Post Title # quotes are optional for simple strings
description: "A post about Jekyll front matter — the basics and beyond."
Numbers:
nav_order: 3
weight: 10
Booleans:
published: true
featured: false
toc: true
Lists (arrays):
tags:
- jekyll
- tutorial
- yaml
# Or inline:
tags: [jekyll, tutorial, yaml]
Nested objects:
author:
name: Marcus Webb
email: marcus@example.com
twitter: marcuswebb
Multiline strings:
description: >
This is a long description that spans
multiple lines but will be joined into
a single paragraph.
excerpt: |
This preserves
line breaks
exactly.
Built-in Jekyll front matter variables
Jekyll recognises several variable names and uses them specially:
layout
Specifies which layout file from _layouts/ to use:
layout: post # uses _layouts/post.html
layout: page # uses _layouts/page.html
layout: default # uses _layouts/default.html
layout: none # no layout — render content only
If omitted, Jekyll uses no layout (renders content only). Most files should specify a layout.
title
The page title. Available as Jekyll Front Matter: The Complete Guide in templates and used by jekyll-seo-tag for the <title> element:
title: "Jekyll Front Matter: The Complete Guide"
date
For posts in _posts/, the date is normally part of the filename (2026-07-29-my-post.md). You can override or supplement it with a front matter date:
date: 2026-07-29
date: 2026-07-29 14:30:00 +0100 # with time and timezone
The date variable sets page.date, which is used for sorting posts and for display in templates.
published
Controls whether Jekyll includes the page in the build output:
published: false # page is excluded from build
published: true # page is included (default)
Drafts in _drafts/ are automatically excluded unless you run jekyll serve --drafts.
permalink
Overrides Jekyll’s default URL for the page:
permalink: /about/
permalink: /blog/:year/:month/:title/
permalink: /themes/minimal/
Available :placeholders for posts: :year, :month, :day, :title, :categories, :slug.
categories and tags
Categorise and tag your content:
categories: Tutorial
categories:
- Tutorial
- Jekyll
tags: [front-matter, yaml, jekyll]
categories affects the default URL of posts (/tutorial/2026/07/29/my-post/). tags do not affect URLs.
excerpt
By default, Jekyll uses the first paragraph of a post as its excerpt. Override with:
excerpt: "A short custom summary for use in post listings and meta descriptions."
last_modified_at
Used by jekyll-seo-tag and jekyll-sitemap to set the <lastmod> value:
last_modified_at: 2026-07-29
Custom front matter variables
Any variable you add to front matter becomes available in your templates as page.variable_name:
---
layout: post
title: "My Post"
author: Marcus Webb
reading_time: 8
featured_image: /assets/images/hero.webp
show_newsletter: true
difficulty: beginner
---
In your templates:
<p>By {{ page.author }} · {{ page.reading_time }} min read</p>
{% if page.featured_image %}
<img src="{{ page.featured_image }}" alt="{{ page.title }}">
{% endif %}
{% if page.show_newsletter %}
{% include newsletter-form.html %}
{% endif %}
This pattern is powerful — you can add any metadata to a page and use it anywhere in your templates without touching layout files.
Front matter in different file types
Posts (_posts/)
---
layout: post
title: "How to Install a Jekyll Theme"
description: "Step-by-step guide to installing any Jekyll theme in under 10 minutes."
date: 2026-07-29
last_modified_at: 2026-07-29
image: /assets/images/blog/install-jekyll-theme.webp
author: Marcus Webb
category: Tutorial
tags: [jekyll, themes, tutorial]
featured: false
toc: true
---
Pages (_pages/ or root)
---
layout: page
title: "About JekyllHub"
description: "The story behind JekyllHub — a marketplace for Jekyll themes."
permalink: /about/
nav_order: 4
---
Collection items (_themes/, _authors/, etc.)
---
layout: theme
title: "Minimal Mistakes"
github_url: https://github.com/mmistakes/minimal-mistakes
stars: 12800
price: 0
category: Blog
tags: [responsive, dark-mode, sidebar]
---
Layouts and includes
Layouts and includes can also have front matter, but it is rarely used. One exception: layout inheritance.
---
layout: default # This layout itself uses another layout
---
Front matter defaults
Repeating the same front matter on every post is tedious. Jekyll’s defaults feature lets you set front matter values globally in _config.yml:
# _config.yml
defaults:
# Default for all posts
- scope:
path: ""
type: posts
values:
layout: post
author: Marcus Webb
toc: true
featured: false
# Default for all pages
- scope:
path: ""
type: pages
values:
layout: page
# Default for a specific directory
- scope:
path: "_themes"
type: themes
values:
layout: theme
# Default for files matching a path pattern
- scope:
path: "guides/**"
values:
layout: guide
show_sidebar: true
With these defaults set, you do not need to specify layout: post or author: Marcus Webb on every post — Jekyll applies them automatically. Front matter in the file still overrides defaults.
Specificity: More specific scopes override less specific ones. A post-level default overrides a site-wide default. Front matter in the file overrides both.
Accessing front matter in templates
All front matter variables are available in Liquid templates:
<!-- In the layout file -->
<h1>{{ page.title }}</h1>
<p>{{ page.description }}</p>
<time>{{ page.date | date: "%B %-d, %Y" }}</time>
<!-- Conditional display -->
{% if page.toc %}
{% include toc.html %}
{% endif %}
<!-- Iteration over arrays -->
{% for tag in page.tags %}
<span class="tag">{{ tag }}</span>
{% endfor %}
<!-- Nested objects -->
{{ page.author.name }}
{{ page.author.twitter }}
Accessing front matter from other pages
You can loop through all pages or posts and access their front matter:
<!-- List all posts with their metadata -->
{% for post in site.posts %}
<article>
<h2><a href="{{ post.url }}">{{ post.title }}</a></h2>
<p>{{ post.description }}</p>
{% if post.featured %}
<span class="badge">Featured</span>
{% endif %}
</article>
{% endfor %}
<!-- Filter by front matter value -->
{% assign featured_posts = site.posts | where: "featured", true %}
{% for post in featured_posts %}
<a href="{{ post.url }}">{{ post.title }}</a>
{% endfor %}
Common front matter patterns
Hiding a page from navigation while keeping it live
---
layout: page
title: "Thank You"
permalink: /thank-you/
sitemap: false
---
Overriding the excerpt
---
layout: post
title: "My Post"
excerpt: "This custom excerpt appears in post listings and meta descriptions instead of the first paragraph."
---
Specifying an OG image for social sharing
---
layout: post
title: "My Post"
image: /assets/images/blog/my-post.webp
---
With jekyll-seo-tag, image is automatically used as the Open Graph image.
Controlling the canonical URL
---
layout: post
title: "My Post"
canonical_url: "https://original-source.com/my-post/"
---
Useful if you are syndicating content from another site.
Validating front matter
YAML syntax errors in front matter cause Jekyll build errors. Common mistakes:
Unquoted colons: A colon in a value must be quoted.
# Bad
title: Jekyll: The Complete Guide
# Good
title: "Jekyll: The Complete Guide"
Tab characters: YAML uses spaces, not tabs. Always indent with spaces.
Inconsistent list formatting:
# Bad — mixing inline and block style
tags: [jekyll
tutorial]
# Good
tags: [jekyll, tutorial]
# Or
tags:
- jekyll
- tutorial
Run bundle exec jekyll build --verbose to see detailed error output when front matter parsing fails.
Front matter is the connective tissue of a Jekyll site — it is how content communicates with templates. Mastering it unlocks the full power of Jekyll’s data-driven architecture.
</button> `
- Renders the resulting HTML
- Injects that into
default.htmlat `<div class="read-progress" id="read-progress"></div>
Jekyll Front Matter: The Complete Guide
Everything you need to know about Jekyll front matter — YAML syntax, built-in variables, custom fields, defaults, and real-world examples for posts, pages, and collections.
Front matter is how Jekyll knows what to do with a file. Without it, Jekyll treats a file as a static asset and copies it unchanged. With it, Jekyll processes the file through its template engine, applies a layout, and builds a page with all the data you specified.
Understanding front matter is foundational to using Jekyll effectively. This guide covers everything from basic syntax to advanced defaults.
What is front matter?
Front matter is a block of YAML at the top of a file, enclosed between triple-dashed lines:
---
layout: post
title: "My First Post"
date: 2026-07-29
---
Content goes here.
The triple dashes are required — both opening and closing. Jekyll strips the front matter block before rendering the content and makes all the variables available in your Liquid templates.
Any file in a Jekyll site that has front matter (even empty front matter ---
---) is processed by Jekyll. Files without front matter are copied as-is.
YAML basics
Front matter uses YAML (YAML Ain’t Markup Language). You only need to know a handful of YAML patterns to write effective front matter.
Strings:
title: "My Post Title"
title: My Post Title # quotes are optional for simple strings
description: "A post about Jekyll front matter — the basics and beyond."
Numbers:
nav_order: 3
weight: 10
Booleans:
published: true
featured: false
toc: true
Lists (arrays):
tags:
- jekyll
- tutorial
- yaml
# Or inline:
tags: [jekyll, tutorial, yaml]
Nested objects:
author:
name: Marcus Webb
email: marcus@example.com
twitter: marcuswebb
Multiline strings:
description: >
This is a long description that spans
multiple lines but will be joined into
a single paragraph.
excerpt: |
This preserves
line breaks
exactly.
Built-in Jekyll front matter variables
Jekyll recognises several variable names and uses them specially:
layout
Specifies which layout file from _layouts/ to use:
layout: post # uses _layouts/post.html
layout: page # uses _layouts/page.html
layout: default # uses _layouts/default.html
layout: none # no layout — render content only
If omitted, Jekyll uses no layout (renders content only). Most files should specify a layout.
title
The page title. Available as Jekyll Front Matter: The Complete Guide in templates and used by jekyll-seo-tag for the <title> element:
title: "Jekyll Front Matter: The Complete Guide"
date
For posts in _posts/, the date is normally part of the filename (2026-07-29-my-post.md). You can override or supplement it with a front matter date:
date: 2026-07-29
date: 2026-07-29 14:30:00 +0100 # with time and timezone
The date variable sets page.date, which is used for sorting posts and for display in templates.
published
Controls whether Jekyll includes the page in the build output:
published: false # page is excluded from build
published: true # page is included (default)
Drafts in _drafts/ are automatically excluded unless you run jekyll serve --drafts.
permalink
Overrides Jekyll’s default URL for the page:
permalink: /about/
permalink: /blog/:year/:month/:title/
permalink: /themes/minimal/
Available :placeholders for posts: :year, :month, :day, :title, :categories, :slug.
categories and tags
Categorise and tag your content:
categories: Tutorial
categories:
- Tutorial
- Jekyll
tags: [front-matter, yaml, jekyll]
categories affects the default URL of posts (/tutorial/2026/07/29/my-post/). tags do not affect URLs.
excerpt
By default, Jekyll uses the first paragraph of a post as its excerpt. Override with:
excerpt: "A short custom summary for use in post listings and meta descriptions."
last_modified_at
Used by jekyll-seo-tag and jekyll-sitemap to set the <lastmod> value:
last_modified_at: 2026-07-29
Custom front matter variables
Any variable you add to front matter becomes available in your templates as page.variable_name:
---
layout: post
title: "My Post"
author: Marcus Webb
reading_time: 8
featured_image: /assets/images/hero.webp
show_newsletter: true
difficulty: beginner
---
In your templates:
<p>By {{ page.author }} · {{ page.reading_time }} min read</p>
{% if page.featured_image %}
<img src="{{ page.featured_image }}" alt="{{ page.title }}">
{% endif %}
{% if page.show_newsletter %}
{% include newsletter-form.html %}
{% endif %}
This pattern is powerful — you can add any metadata to a page and use it anywhere in your templates without touching layout files.
Front matter in different file types
Posts (_posts/)
---
layout: post
title: "How to Install a Jekyll Theme"
description: "Step-by-step guide to installing any Jekyll theme in under 10 minutes."
date: 2026-07-29
last_modified_at: 2026-07-29
image: /assets/images/blog/install-jekyll-theme.webp
author: Marcus Webb
category: Tutorial
tags: [jekyll, themes, tutorial]
featured: false
toc: true
---
Pages (_pages/ or root)
---
layout: page
title: "About JekyllHub"
description: "The story behind JekyllHub — a marketplace for Jekyll themes."
permalink: /about/
nav_order: 4
---
Collection items (_themes/, _authors/, etc.)
---
layout: theme
title: "Minimal Mistakes"
github_url: https://github.com/mmistakes/minimal-mistakes
stars: 12800
price: 0
category: Blog
tags: [responsive, dark-mode, sidebar]
---
Layouts and includes
Layouts and includes can also have front matter, but it is rarely used. One exception: layout inheritance.
---
layout: default # This layout itself uses another layout
---
Front matter defaults
Repeating the same front matter on every post is tedious. Jekyll’s defaults feature lets you set front matter values globally in _config.yml:
# _config.yml
defaults:
# Default for all posts
- scope:
path: ""
type: posts
values:
layout: post
author: Marcus Webb
toc: true
featured: false
# Default for all pages
- scope:
path: ""
type: pages
values:
layout: page
# Default for a specific directory
- scope:
path: "_themes"
type: themes
values:
layout: theme
# Default for files matching a path pattern
- scope:
path: "guides/**"
values:
layout: guide
show_sidebar: true
With these defaults set, you do not need to specify layout: post or author: Marcus Webb on every post — Jekyll applies them automatically. Front matter in the file still overrides defaults.
Specificity: More specific scopes override less specific ones. A post-level default overrides a site-wide default. Front matter in the file overrides both.
Accessing front matter in templates
All front matter variables are available in Liquid templates:
<!-- In the layout file -->
<h1>{{ page.title }}</h1>
<p>{{ page.description }}</p>
<time>{{ page.date | date: "%B %-d, %Y" }}</time>
<!-- Conditional display -->
{% if page.toc %}
{% include toc.html %}
{% endif %}
<!-- Iteration over arrays -->
{% for tag in page.tags %}
<span class="tag">{{ tag }}</span>
{% endfor %}
<!-- Nested objects -->
{{ page.author.name }}
{{ page.author.twitter }}
Accessing front matter from other pages
You can loop through all pages or posts and access their front matter:
<!-- List all posts with their metadata -->
{% for post in site.posts %}
<article>
<h2><a href="{{ post.url }}">{{ post.title }}</a></h2>
<p>{{ post.description }}</p>
{% if post.featured %}
<span class="badge">Featured</span>
{% endif %}
</article>
{% endfor %}
<!-- Filter by front matter value -->
{% assign featured_posts = site.posts | where: "featured", true %}
{% for post in featured_posts %}
<a href="{{ post.url }}">{{ post.title }}</a>
{% endfor %}
Common front matter patterns
Hiding a page from navigation while keeping it live
---
layout: page
title: "Thank You"
permalink: /thank-you/
sitemap: false
---
Overriding the excerpt
---
layout: post
title: "My Post"
excerpt: "This custom excerpt appears in post listings and meta descriptions instead of the first paragraph."
---
Specifying an OG image for social sharing
---
layout: post
title: "My Post"
image: /assets/images/blog/my-post.webp
---
With jekyll-seo-tag, image is automatically used as the Open Graph image.
Controlling the canonical URL
---
layout: post
title: "My Post"
canonical_url: "https://original-source.com/my-post/"
---
Useful if you are syndicating content from another site.
Validating front matter
YAML syntax errors in front matter cause Jekyll build errors. Common mistakes:
Unquoted colons: A colon in a value must be quoted.
# Bad
title: Jekyll: The Complete Guide
# Good
title: "Jekyll: The Complete Guide"
Tab characters: YAML uses spaces, not tabs. Always indent with spaces.
Inconsistent list formatting:
# Bad — mixing inline and block style
tags: [jekyll
tutorial]
# Good
tags: [jekyll, tutorial]
# Or
tags:
- jekyll
- tutorial
Run bundle exec jekyll build --verbose to see detailed error output when front matter parsing fails.
Front matter is the connective tissue of a Jekyll site — it is how content communicates with templates. Mastering it unlocks the full power of Jekyll’s data-driven architecture.
</button> `
This nesting can go as deep as you need.
A typical layout hierarchy
default.html ← base: <html>, <head>, nav, footer
├── page.html ← adds: container, optional sidebar
├── post.html ← adds: article header, author info, TOC
├── home.html ← adds: hero section, no standard container
└── theme.html ← adds: gallery, price sidebar, details
Each child adds only what it needs; the parent handles the shared shell.
Accessing variables in layouts
Layouts have access to three levels of data:
page variables — front matter from the current page:
Jekyll Layouts Explained: How to Structure Your Site Templates
A complete guide to Jekyll layouts — how they work, layout inheritance, passing data, and building a clean layout hierarchy for any Jekyll site.
Marcus Webb
June 19, 2026
site variables — data from _config.yml and the site as a whole:
JekyllHub
The premier marketplace for Jekyll themes. Browse, preview, and download stunning themes for your next project.
https://jekyllhub.com
Jekyll and Gatsby both produce fast, static websites — but they come from completely different worlds. Jekyll is a mature, Ruby-based generator built for simplicity. Gatsby is a React-based framework built for power. Choosing the wrong one can mean weeks of unnecessary complexity or hitting a ceiling too early.
Here is an honest, practical comparison.
## What is Jekyll?
Jekyll is a static site generator written in Ruby and officially supported by GitHub. You write content in Markdown, define layouts in Liquid templates, and Jekyll outputs a folder of plain HTML files. No JavaScript framework, no GraphQL, no build pipeline required.
It has been around since 2008 and powers hundreds of thousands of sites — including the official GitHub Pages platform.
**Best for:** blogs, documentation sites, portfolios, small business sites, and anyone who wants simplicity over features.
## What is Gatsby?
Gatsby is a React-based static site framework that uses GraphQL as its data layer. It pulls content from anywhere — Markdown files, headless CMSs, REST APIs, databases — and compiles everything into optimised static files with automatic code splitting, image optimisation, and prefetching baked in.
Netlify acquired Gatsby in 2023. The framework is still actively maintained but is no longer the default choice for new React-based static projects, with Astro and Next.js (static export) taking significant market share.
**Best for:** content-heavy sites, e-commerce storefronts, sites pulling from multiple data sources, and teams already working in React.
## Build speed
| | Jekyll | Gatsby |
|---|---|---|
| Small site (< 100 pages) | < 5 seconds | 15–45 seconds |
| Medium site (500 pages) | 10–30 seconds | 60–120 seconds |
| Large site (5,000+ pages) | 2–5 minutes | 5–15 minutes |
| Incremental builds | Yes (with flag) | Yes (experimental) |
Jekyll is significantly faster to build, especially on small and medium sites. Gatsby's build times grow steeply with content volume because of its GraphQL data layer and image processing pipeline.
## Learning curve
Jekyll requires knowledge of Liquid templating and YAML front matter — both are simple and learnable in an afternoon. No JavaScript knowledge required beyond optional enhancements.
Gatsby requires React, GraphQL, and an understanding of Gatsby's plugin ecosystem and data layer. If you already know React it is approachable. If you do not, it is a steep entry point just to publish a blog.
**Winner for beginners:** Jekyll by a wide margin.
## Themes and design
Jekyll has a large ecosystem of free themes on GitHub, RubyGems, and marketplaces like JekyllHub. Themes are plain HTML/CSS/Liquid — easy to read, modify, and extend without tooling.
Gatsby themes are React components. They are more powerful (you can compose and shadow components) but require React knowledge to customise meaningfully. The Gatsby theme ecosystem is smaller and less active than it was in 2020–2022.
**Winner for theme selection:** Jekyll.
## Plugins and ecosystem
Gatsby's plugin ecosystem was once its biggest advantage — thousands of source and transformer plugins connect to every conceivable data source. That ecosystem is still there but growth has slowed since the Netlify acquisition.
Jekyll's plugin ecosystem is smaller but covers all common needs: SEO, sitemaps, feeds, pagination, image optimisation, and syntax highlighting. The `jekyll-*` gem namespace has over 1,000 plugins.
**Winner for integrations:** Gatsby (still), though the gap has narrowed.
## Hosting
Both deploy well to Netlify, Cloudflare Pages, and Vercel. Jekyll has one unique advantage: GitHub Pages hosts it natively, for free, with zero configuration. Push to a repository and your site is live.
Gatsby does not run on GitHub Pages natively (you need a GitHub Actions workflow to build and deploy).
**Winner for free hosting:** Jekyll.
## Performance
Both generators produce static HTML, which means excellent performance out of the box. Gatsby adds automatic image optimisation via its `gatsby-image` / `gatsby-plugin-image` plugin, lazy loading, and link prefetching, which can push Lighthouse scores even higher.
For typical sites, both score 90+ on Core Web Vitals. Gatsby has a slight edge for image-heavy sites where its built-in processing pipeline matters.
**Winner for out-of-the-box performance:** Gatsby (marginally).
## When to choose Jekyll
- You want a blog, portfolio, or documentation site with minimal setup
- You are not a JavaScript developer
- You want to host for free on GitHub Pages
- Your site has fewer than a few thousand pages
- You want themes you can understand and modify without a build step
## When to choose Gatsby
- You are already building in React and want static output
- Your content comes from multiple sources (CMS + API + Markdown)
- You need advanced image optimisation built into the framework
- You are building a content-heavy e-commerce or news site
- Your team has React expertise and needs component composition
## The bottom line
For most developers starting a blog, portfolio, or documentation site, Jekyll is the right choice. It is simpler, faster to set up, and cheaper to host. The themes are better, the GitHub Pages integration is seamless, and you will spend your time on content — not tooling.
If you are building something complex in React — pulling from a headless CMS, composing content from multiple APIs, or need advanced image processing — Gatsby earns its complexity. But in 2026, Astro is a strong contender for that use case too.
Browse [free and premium Jekyll themes on JekyllHub](/themes/) to get started.
Jekyll processes some files (Markdown, Liquid templates, Sass) and copies others unchanged. Understanding which is which — and how to reference assets correctly in your templates — is fundamental to building Jekyll sites that work properly across all environments.
## Processed files vs static files
Jekyll handles two categories of files:
**Processed files** — files with YAML front matter, or files in special directories (`_posts/`, `_layouts/`, `_includes/`, `_sass/`). Jekyll runs these through its build pipeline: Liquid templating, Markdown conversion, Sass compilation.
**Static files** — everything else. Jekyll copies them to `_site/` unchanged. Images, fonts, JavaScript files, PDFs, videos — all copied as-is.
my-jekyll-site/ ├── _posts/ ← processed (has front matter) ├── _sass/ ← processed (Sass compilation) ├── assets/ │ ├── images/ ← static (copied unchanged) │ ├── fonts/ ← static (copied unchanged) │ ├── js/ ← static (copied unchanged) │ └── css/ │ └── main.scss ← processed (has front matter → compiled to CSS)
## The assets/ folder convention
While Jekyll has no hard requirement for folder naming, `assets/` is the universal convention for static files. Most themes use:
assets/ ├── css/ │ └── main.scss ← entry point for Sass (has front matter) ├── js/ │ ├── main.js │ ├── bookmarks.js │ └── search.js ├── images/ │ ├── logo.png │ ├── social-card.png │ ├── favicon.ico │ └── blog/ │ ├── post-cover.webp │ └── another-cover.webp └── fonts/ └── inter.woff2
Jekyll copies everything in `assets/` to `_site/assets/` during build. A file at `assets/images/logo.png` is served at `https://example.com/assets/images/logo.png`.
## Referencing assets in templates
### The relative_url filter
Always use `relative_url` when referencing assets in Liquid templates:
```liquid
<link rel="stylesheet" href="{{ '/assets/css/main.css' | relative_url }}">
<script src="{{ '/assets/js/main.js' | relative_url }}" defer></script>
<img src="{{ '/assets/images/logo.png' | relative_url }}" alt="Logo">
relative_url prepends site.baseurl to the path. If your site has baseurl: "" (root domain), it changes nothing. If your site lives at a subdirectory (baseurl: "/my-project"), it correctly produces /my-project/assets/images/logo.png.
Without relative_url, assets break on sites with a non-empty baseurl.
The absolute_url filter
For Open Graph tags, sitemaps, or any place that needs a full URL:
<meta property="og:image" content="{{ '/assets/images/social-card.png' | absolute_url }}">
absolute_url prepends both site.url and site.baseurl.
In Markdown content

[Download PDF](/assets/files/guide.pdf)
Note: Markdown links do not go through relative_url. If you have a baseurl, use the HTML <img> tag inside your Markdown, or ensure your permalink structure accounts for the base URL.
In SCSS/CSS
Reference assets from CSS using relative paths from the CSS file’s location. Since assets/css/main.scss is in assets/css/, fonts and images are reached with ../:
@font-face {
font-family: "Inter";
src: url("../fonts/inter.woff2") format("woff2");
}
.hero {
background-image: url("../images/hero-bg.webp");
}
Working with images
File formats in 2026
- WebP — best default choice. 25–35% smaller than JPEG at equivalent quality. Supported by all modern browsers.
- AVIF — even smaller than WebP but slower to encode. Good for images you generate offline.
- JPEG — use for photographs when WebP is not an option.
- PNG — use for images requiring transparency or exact colours (logos, icons).
- SVG — use for logos, icons, and illustrations. Infinitely scalable, tiny file size.
Converting images to WebP
# Single file
cwebp -q 85 image.jpg -o image.webp
# Batch convert all JPEGs
find assets/images -name "*.jpg" -exec sh -c 'cwebp -q 85 "$1" -o "${1%.jpg}.webp"' _ {} \;
# Using ImageMagick
mogrify -format webp -quality 85 assets/images/blog/*.jpg
Responsive images with srcset
For images that appear at different sizes across screen widths:
<img
src="/assets/images/hero-800.webp"
srcset="
/assets/images/hero-400.webp 400w,
/assets/images/hero-800.webp 800w,
/assets/images/hero-1200.webp 1200w
"
sizes="(max-width: 640px) 100vw, (max-width: 1024px) 50vw, 800px"
alt="Hero image"
width="800"
height="450"
loading="lazy"
>
Generate multiple sizes during your build process (using Pillow, ImageMagick, or a Jekyll plugin like jekyll-responsive-image).
Always specify width and height
<img src="{{ post.image | relative_url }}" alt="{{ post.title }}" width="800" height="450">
Width and height attributes prevent Cumulative Layout Shift (CLS) — a Core Web Vitals metric — by letting the browser reserve the correct space before the image loads.
Lazy loading
<!-- Below-the-fold images — lazy load -->
<img src="..." alt="..." loading="lazy">
<!-- Above-the-fold images (hero, LCP element) — eager load -->
<img src="..." alt="..." loading="eager">
Use loading="lazy" on images that are not visible when the page loads. Never use it on your LCP (Largest Contentful Paint) element — the hero image or main post image.
The site.static_files variable
Jekyll provides a site.static_files variable that lists all static files (files copied without processing):
{% raw %}
{% for file in site.static_files %}
{{ file.path }} → /assets/images/logo.png
{{ file.basename }} → logo
{{ file.name }} → logo.png
{{ file.extname }} → .png
{{ file.modified_time }} → last modified date
{% endfor %}
{% endraw %}
Filter by extension or path:
{% raw %}
{% assign images = site.static_files | where_exp: "f", "f.extname == '.webp'" %}
{% for image in images %}
<img src="{{ image.path | relative_url }}" alt="{{ image.basename }}">
{% endfor %}
{% endraw %}
This is useful for auto-generating image galleries from files in a folder.
JavaScript files
Jekyll copies JavaScript files unchanged — no bundling, no transpilation. For simple sites, this is fine:
assets/js/
├── main.js ← copied as-is
├── bookmarks.js ← copied as-is
└── search.js ← copied as-is
Reference in your layout:
<script src="{{ '/assets/js/main.js' | relative_url }}" defer></script>
Using Liquid in JavaScript files
If you need Jekyll variables in JavaScript (e.g. site data), add front matter to the JS file:
{% raw %}
---
---
// assets/js/search-data.js
var SITE_DATA = {
url: "{{ site.url }}",
posts: [
{% for post in site.posts %}
{
title: {{ post.title | jsonify }},
url: "{{ post.url | relative_url }}",
excerpt: {{ post.excerpt | strip_html | truncatewords: 30 | jsonify }}
}{% unless forloop.last %},{% endunless %}
{% endfor %}
]
};
{% endraw %}
Jekyll processes this file through Liquid (because of the front matter) and outputs JavaScript with the values baked in at build time.
Minifying JavaScript
Jekyll does not minify JS. Options:
- Minify manually and commit the minified file
- Use a build step (esbuild, rollup, or webpack) before Jekyll runs
- Use a CDN for third-party libraries and serve your own JS unminified
For most Jekyll blogs, unminified JS is fine — the files are small and HTTP/2 handles multiple small requests efficiently.
Favicon files
Place favicon files in your project root or assets/ and reference in <head>:
assets/
├── favicon.ico ← legacy IE fallback
├── favicon-16x16.png
├── favicon-32x32.png
├── apple-touch-icon.png ← 180×180px for iOS
└── site.webmanifest ← PWA manifest
<!-- _includes/head.html -->
<link rel="icon" type="image/x-icon" href="{{ '/favicon.ico' | relative_url }}">
<link rel="icon" type="image/png" sizes="32x32" href="{{ '/assets/favicon-32x32.png' | relative_url }}">
<link rel="icon" type="image/png" sizes="16x16" href="{{ '/assets/favicon-16x16.png' | relative_url }}">
<link rel="apple-touch-icon" sizes="180x180" href="{{ '/assets/apple-touch-icon.png' | relative_url }}">
<link rel="manifest" href="{{ '/assets/site.webmanifest' | relative_url }}">
Excluding assets from the build
Use exclude: in _config.yml to prevent source files (like uncompressed originals) from appearing in _site/:
exclude:
- assets/images/originals/ # source files, not served
- assets/fonts/source/ # font source files
- tools/ # build scripts
- "*.psd" # Photoshop files
- "*.ai" # Illustrator files
Cache busting
Because browsers cache static assets aggressively, changing a CSS or JS file may not update for returning visitors. Options:
Query string versioning — append a version number:
<link rel="stylesheet" href="{{ '/assets/css/main.css' | relative_url }}?v={{ site.version }}">
Update version: "1.2.3" in _config.yml after significant changes.
Filename hashing — include a hash in the filename (main.abc123.css). Requires a build pipeline; not supported natively by Jekyll.
Long cache headers with immutable assets — in _headers (Cloudflare/Netlify):
/assets/*
Cache-Control: public, max-age=31536000, immutable
Use very long cache on assets with versioned filenames; use no-cache on HTML.
Summary: what goes where
| File type | Location | How Jekyll handles it |
|---|---|---|
| Blog posts | _posts/ |
Processed (Markdown → HTML) |
| Page Markdown | _pages/ or root |
Processed (Markdown → HTML) |
| Layout HTML | _layouts/ |
Used as template, not output |
| Include fragments | _includes/ |
Used as template, not output |
| Sass partials | _sass/ |
Compiled (via entry point) |
| Sass entry point | assets/css/ |
Compiled to CSS |
| JavaScript | assets/js/ |
Copied unchanged |
| Images | assets/images/ |
Copied unchanged |
| Fonts | assets/fonts/ |
Copied unchanged |
| Data files | _data/ |
Loaded as site.data.*, not output |
Understanding this table — what Jekyll processes vs what it copies — explains nearly every “why is my file not showing up” or “why is my template not working” issue you will encounter.
Jekyll gives you several ways to keep content out of your public site while you work on it: the _drafts/ folder, published: false front matter, and future-dated posts. Understanding these tools lets you build a proper editorial workflow without a CMS.
The _drafts folder
The simplest way to keep work-in-progress posts off your live site. Create a _drafts/ directory at your project root and put unfinished posts there:
_drafts/
├── jekyll-drafts-publishing-workflow.md
├── ideas-for-q3.md
└── half-finished-tutorial.md
Unlike _posts/, draft filenames do not need a date prefix:
# _posts/ — date required
_posts/2026-08-09-my-post.md
# _drafts/ — no date
_drafts/my-post.md
Previewing drafts locally
Normal jekyll serve ignores _drafts/ entirely. To preview your drafts:
bundle exec jekyll serve --drafts
When --drafts is active, Jekyll assigns today’s date to draft posts and includes them in the site. You can see exactly how a draft will look when published.
Drafts in CI/production
Your CI/CD build command should never include --drafts:
# Correct — drafts excluded
JEKYLL_ENV=production bundle exec jekyll build
# Wrong — would publish drafts
JEKYLL_ENV=production bundle exec jekyll build --drafts
Drafts are never published accidentally as long as you do not pass --drafts to your production build.
published: false
An alternative to _drafts/ — set published: false in any post’s front matter to exclude it from the build:
---
layout: post
title: "Work in Progress"
date: 2026-08-09
published: false
---
Content here will not appear on the live site.
This works for posts in _posts/ and pages anywhere on your site. Useful when:
- You want to keep the file in
_posts/(with a date) but not publish it yet - You want to temporarily hide a published post without deleting it
- You want to keep old content for reference but remove it from the site
Preview unpublished content locally:
bundle exec jekyll serve --unpublished
Future-dated posts
Jekyll excludes posts whose date is in the future by default. Write a post today, set a future date, and it will automatically appear on your site on that date — the next time your site builds.
---
layout: post
title: "My Scheduled Post"
date: 2026-09-01
---
This post will not appear in site.posts until September 1, 2026 (or whenever you trigger a build after that date).
Preview future posts locally:
bundle exec jekyll serve --future
Scheduling posts with CI/CD
Future posts are only published when your site rebuilds after their date. If you do not rebuild frequently, a future post will sit in your repository unpublished.
Set up a scheduled CI/CD build to rebuild daily. On Netlify:
# Netlify → Site settings → Build hooks
# Add a build hook and schedule it with a cron service (cron-job.org)
# to trigger the hook daily at midnight
On GitHub Actions:
# .github/workflows/scheduled-build.yml
name: Scheduled Build
on:
schedule:
- cron: "0 0 * * *" # midnight UTC every day
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: "3.2"
bundler-cache: true
- run: JEKYLL_ENV=production bundle exec jekyll build
# add your deploy step here
Combining methods
The three approaches can be combined:
| Situation | Method |
|---|---|
| Early draft, no date yet | _drafts/ folder |
| Finished but not ready | published: false in _posts/ |
| Ready but timed for later | Future date in _posts/ |
| Temporarily hidden live post | published: false |
A practical editorial workflow for Jekyll
Here is a workflow that works well for solo writers and small teams:
Stage 1: Idea capture
Create a file in _drafts/ with just a title and outline:
<!-- _drafts/jekyll-pagination-guide.md -->
---
title: "Jekyll Pagination: The Complete Guide"
tags: [jekyll, pagination, tutorial]
---
## Outline
- What is pagination
- jekyll-paginate vs jekyll-paginate-v2
- Setup
- Customising the paginator
- SEO considerations
Stage 2: Writing
Fill in the content in _drafts/. Preview with jekyll serve --drafts at any point.
Stage 3: Review and polish
Run a local preview and check:
- All code examples work
- Images are in place
- Internal links resolve
- SEO: title, description, image set in front matter
Stage 4: Schedule or publish
Publish immediately: Move the file from _drafts/ to _posts/ and add today’s date:
mv _drafts/jekyll-pagination-guide.md _posts/2026-08-09-jekyll-pagination-guide.md
Schedule for later: Move to _posts/ with a future date:
mv _drafts/jekyll-pagination-guide.md _posts/2026-09-15-jekyll-pagination-guide.md
Keep hidden while finalising: Move to _posts/ with today’s date but published: false:
---
published: false
date: 2026-08-09
---
Set published: true (or remove the line) when ready.
Stage 5: Push and deploy
Commit and push. Your CI/CD pipeline builds and deploys the updated site.
Working with collaborators
For teams using GitHub:
Use pull requests for drafts. Writers work on a branch. Open a PR when the post is ready for review. Reviewers see a preview deployment (Netlify/Cloudflare/Vercel create these automatically). Merge when approved.
Use _drafts/ for long-running work. Content that spans multiple sessions lives safely in _drafts/ in its own branch.
Use published: false for quick feedback. Push to main with published: false to get a staging URL the reviewer can share without it going live.
Adding a headless CMS for non-technical editors
If your team includes non-developers who are not comfortable with Git and Markdown, add Decap CMS (formerly Netlify CMS) for a visual editing interface:
# admin/config.yml
collections:
- name: drafts
label: Drafts
folder: _drafts
create: true
slug: "{{slug}}"
fields:
- { label: Title, name: title, widget: string }
- { label: Body, name: body, widget: markdown }
- name: posts
label: Posts
folder: _posts
create: true
slug: "{{year}}-{{month}}-{{day}}-{{slug}}"
fields:
- { label: Title, name: title, widget: string }
- { label: Publish Date, name: date, widget: datetime }
- { label: Published, name: published, widget: boolean, default: false }
- { label: Body, name: body, widget: markdown }
Non-developers can write in a rich text editor and save as drafts. The published: false toggle keeps posts off the live site until ready.
Useful command reference
# Normal serve (no drafts, no future posts)
bundle exec jekyll serve
# Show all drafts
bundle exec jekyll serve --drafts
# Show future-dated posts
bundle exec jekyll serve --future
# Show unpublished posts (published: false)
bundle exec jekyll serve --unpublished
# Show everything
bundle exec jekyll serve --drafts --future --unpublished
# Production build (nothing extra)
JEKYLL_ENV=production bundle exec jekyll build
Tips for a smooth workflow
Name draft files descriptively. Even without dates, jekyll-pagination-complete-guide.md is much easier to find than draft-post-3.md.
Keep drafts short at first. Write the outline and key points, then expand. A complete outline in _drafts/ is better than a blank file in _posts/.
Commit drafts to Git. _drafts/ should be in your repository, not gitignored. This gives you version history, backup, and branch-based collaboration.
Set a date in front matter while drafting. Even if you are not ready to publish, set an estimated date in front matter so you can preview how it will sort among your posts.
Jekyll’s draft and publishing system is simple but complete. Once you have a consistent workflow, writing and scheduling content becomes as smooth as any CMS — with the added benefit of full version control. Jekyll has built-in Sass processing — no Node.js, no build tools, no webpack required. Write SCSS files, Jekyll compiles them to CSS automatically. This guide covers everything from basic setup to advanced patterns used in production Jekyll themes.
Sass vs SCSS
Sass has two syntaxes:
SCSS (Sassy CSS) — superset of CSS. Valid CSS is valid SCSS. Uses curly braces and semicolons. The most common syntax.
Sass (indented syntax) — uses indentation instead of braces, no semicolons. Older syntax, less commonly used.
Jekyll supports both. This guide uses SCSS (the .scss extension).
Jekyll’s Sass directory structure
Jekyll processes Sass files with this convention:
- Files in
_sass/starting with_are partials — they are imported by other files, never compiled directly - Files in
assets/css/(or anywhere outside_sass/) with.scssextension and front matter are entry points — Jekyll compiles these to CSS
_sass/ ← partials live here
├── _variables.scss
├── _base.scss
├── _nav.scss
├── _cards.scss
└── _post.scss
assets/
└── css/
└── main.scss ← entry point — compiled to main.css
Creating the entry point
The entry point file needs front matter (even if empty) to tell Jekyll to process it:
/* assets/css/main.scss */
---
---
@import "variables";
@import "base";
@import "nav";
@import "cards";
@import "post";
The empty --- block is required. Without it, Jekyll copies the file as-is without processing.
Import partials without the leading _ or .scss extension — Sass resolves them automatically.
SCSS partials in _sass/
_variables.scss — design tokens
// _sass/_variables.scss
// Colours
$color-primary: #2563eb;
$color-primary-dark: #1d4ed8;
$color-text: #1a1a2e;
$color-muted: #6b7280;
$color-border: #e5e7eb;
$color-bg: #ffffff;
$color-bg-alt: #f9fafb;
// Typography
$font-sans: "Inter", system-ui, -apple-system, sans-serif;
$font-mono: "Fira Code", "Cascadia Code", monospace;
$font-size-base: 1rem;
$line-height-base: 1.6;
// Spacing
$spacing-xs: 0.25rem;
$spacing-sm: 0.5rem;
$spacing-md: 1rem;
$spacing-lg: 1.5rem;
$spacing-xl: 2rem;
$spacing-2xl: 3rem;
// Layout
$container-max: 1200px;
$sidebar-width: 280px;
// Borders
$radius-sm: 4px;
$radius-md: 10px;
$radius-lg: 16px;
$radius-full: 9999px;
// Shadows
$shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
$shadow-md: 0 4px 6px rgba(0, 0, 0, 0.07);
$shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.1);
// Transitions
$transition-fast: 150ms ease;
$transition-base: 250ms ease;
$transition-slow: 400ms ease;
_base.scss — reset and global styles
// _sass/_base.scss
@import "variables";
*,
*::before,
*::after {
box-sizing: border-box;
}
html {
font-size: 16px;
-webkit-text-size-adjust: 100%;
}
body {
margin: 0;
font-family: $font-sans;
font-size: $font-size-base;
line-height: $line-height-base;
color: $color-text;
background: $color-bg;
}
img {
max-width: 100%;
height: auto;
display: block;
}
a {
color: $color-primary;
text-decoration: none;
&:hover {
text-decoration: underline;
}
}
h1, h2, h3, h4, h5, h6 {
line-height: 1.3;
font-weight: 700;
margin-top: 0;
}
code {
font-family: $font-mono;
font-size: 0.875em;
background: $color-bg-alt;
padding: 0.15em 0.4em;
border-radius: $radius-sm;
}
SCSS features used in Jekyll themes
Variables
$color-primary: #2563eb;
.btn {
background: $color-primary;
&:hover {
background: darken($color-primary, 10%);
}
}
Nesting
.card {
border-radius: $radius-md;
overflow: hidden;
&__image {
width: 100%;
aspect-ratio: 16 / 9;
}
&__body {
padding: $spacing-lg;
}
&__title {
font-size: 1.125rem;
font-weight: 600;
margin: 0 0 $spacing-sm;
}
&--featured {
border: 2px solid $color-primary;
}
&:hover {
box-shadow: $shadow-md;
}
}
This BEM-style nesting (&__element, &--modifier) generates classes like .card__image, .card__body, .card--featured.
Mixins
// _sass/_mixins.scss
@mixin flex-center {
display: flex;
align-items: center;
justify-content: center;
}
@mixin truncate {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
@mixin responsive($breakpoint) {
@if $breakpoint == mobile {
@media (max-width: 640px) { @content; }
} @else if $breakpoint == tablet {
@media (max-width: 1024px) { @content; }
} @else if $breakpoint == desktop {
@media (min-width: 1025px) { @content; }
}
}
// Usage
.nav {
@include flex-center;
@include responsive(mobile) {
flex-direction: column;
}
}
.card__title {
@include truncate;
}
Functions
// Convert px to rem
@function rem($px) {
@return ($px / 16) * 1rem;
}
.heading {
font-size: rem(24); // → 1.5rem
}
// Darken a colour by percentage
.btn:hover {
background: darken($color-primary, 8%);
}
// Generate a colour with opacity
.overlay {
background: rgba($color-text, 0.5);
}
Extends / placeholders
%visually-hidden {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border: 0;
}
.sr-only {
@extend %visually-hidden;
}
.skip-link:focus {
@extend %visually-hidden;
clip: auto;
width: auto;
height: auto;
}
Dark mode with Sass
// _sass/_variables.scss
// Light mode defaults (also used as CSS custom properties)
:root {
--color-bg: #{$color-bg};
--color-text: #{$color-text};
--color-border: #{$color-border};
--color-bg-alt: #{$color-bg-alt};
}
// Dark mode overrides
:root[data-theme="dark"],
.dark {
--color-bg: #0f172a;
--color-text: #f1f5f9;
--color-border: #1e293b;
--color-bg-alt: #1e293b;
}
// Use CSS custom properties throughout
body {
background: var(--color-bg);
color: var(--color-text);
}
.card {
border-color: var(--color-border);
background: var(--color-bg-alt);
}
This approach — setting CSS custom properties from Sass variables — gives you the best of both worlds: Sass for authoring, CSS variables for runtime dark mode toggling with JavaScript.
Sass compilation settings in _config.yml
# _config.yml
sass:
sass_dir: _sass # where partials live (default: _sass)
style: compressed # compressed | expanded | nested | compact
load_paths:
- _sass
- node_modules # if importing npm packages
style options:
compressed— removes all whitespace, one-line output. Use for production.expanded— each rule and property on its own line. Default in development.nested— rules nested to reflect the SCSS structure.compact— one rule per line.
Most setups use compressed in production builds:
sass:
style: compressed
Importing npm Sass packages
If you install Sass libraries via npm, add the path to load_paths:
npm install sass-mq normalize.css
sass:
load_paths:
- _sass
- node_modules
// assets/css/main.scss
---
---
@import "normalize.css/normalize";
@import "sass-mq/mq";
@import "variables";
@import "base";
Organising a production-ready _sass/ directory
_sass/
├── _variables.scss ← design tokens
├── _mixins.scss ← reusable mixins
├── _functions.scss ← Sass functions
├── _reset.scss ← CSS reset/normalise
├── _base.scss ← global styles (body, a, h1-h6, img)
├── _typography.scss ← prose/content typography
│
├── layout/
│ ├── _container.scss
│ ├── _grid.scss
│ └── _sections.scss
│
├── components/
│ ├── _nav.scss
│ ├── _footer.scss
│ ├── _cards.scss
│ ├── _badges.scss
│ ├── _buttons.scss
│ ├── _forms.scss
│ └── _modals.scss
│
├── pages/
│ ├── _home.scss
│ ├── _blog.scss
│ ├── _theme-detail.scss
│ └── _authors.scss
│
└── utilities/
├── _helpers.scss ← .sr-only, .clearfix, etc.
└── _dark-mode.scss
/* assets/css/main.scss */
---
---
// Tokens and tools
@import "variables";
@import "mixins";
@import "functions";
// Base
@import "reset";
@import "base";
@import "typography";
// Layout
@import "layout/container";
@import "layout/grid";
@import "layout/sections";
// Components
@import "components/nav";
@import "components/footer";
@import "components/cards";
@import "components/badges";
@import "components/buttons";
@import "components/forms";
// Pages
@import "pages/home";
@import "pages/blog";
@import "pages/theme-detail";
@import "pages/authors";
// Utilities
@import "utilities/helpers";
@import "utilities/dark-mode";
Common mistakes
Missing front matter on the entry point: Without the --- block, Jekyll copies main.scss as a plain text file instead of compiling it. Always include the empty front matter.
Importing from the wrong path: Partials in _sass/ are imported without the leading _ or the directory path. If your partial is _sass/components/_nav.scss, import it as @import "components/nav".
Using @use instead of @import: Jekyll’s built-in Sass processor uses libsass which supports @import but has limited support for the newer @use syntax. Stick with @import for Jekyll’s native Sass processing. If you need @use, switch to a Node.js PostCSS pipeline.
Not compressing in production: Add sass: style: compressed to _config.yml or use a production build command to minimise CSS output.
Built-in Sass support is one of Jekyll’s most useful features. No Node.js, no build pipeline, no configuration — just write SCSS and Jekyll compiles it. For most Jekyll sites, the built-in processor is all you need. Jekyll gives you precise control over the URL structure of every page on your site. Understanding how permalinks work is important for clean URLs, SEO, and ensuring internal links stay consistent when you reorganise content.
How Jekyll builds URLs by default
By default, Jekyll mirrors your file structure. A file at _posts/2026-08-07-my-post.md generates a URL like /2026/08/07/my-post/. A page at about.md generates /about/.
But the default is rarely what you want for production. The permalink setting in _config.yml (and in individual file front matter) lets you control this precisely.
The permalink setting
Set a global permalink pattern in _config.yml:
permalink: /blog/:title/
This tells Jekyll: every post’s URL should be /blog/ followed by the post’s title-slug.
Built-in permalink styles
Jekyll ships with several named permalink patterns:
permalink: date # /year/month/day/title.html
permalink: pretty # /year/month/day/title/ (trailing slash, no .html)
permalink: ordinal # /year/ordinal/title.html
permalink: weekdate # /year/week/short_day/title/
permalink: none # /title.html
Most sites use pretty or a custom pattern. date (the historical default) produces cluttered URLs. none creates flat URLs with .html extensions.
Permalink placeholders
Build custom patterns using these placeholders:
| Placeholder | Value | Example |
|---|---|---|
:year |
4-digit year | 2026 |
:month |
2-digit month | 08 |
:day |
2-digit day | 07 |
:hour |
2-digit hour (24h) | 14 |
:minute |
2-digit minute | 30 |
:second |
2-digit second | 00 |
:title |
Slugified title | my-post-title |
:slug |
Slug from front matter (fallback to title) | custom-slug |
:categories |
Categories joined by / |
tutorial/jekyll |
:name |
Filename without date and extension | my-post-title |
:path |
Path relative to site root | _posts/my-post.md |
:output_ext |
Output file extension | .html |
Common custom patterns
# Clean blog URL — most common for blog sites
permalink: /blog/:title/
# With date — good for news sites
permalink: /:year/:month/:title/
# Category-based
permalink: /:categories/:title/
# Flat — no nesting
permalink: /:title/
# With date and category
permalink: /:categories/:year/:month/:day/:title/
Recommended permalink for most Jekyll blogs
permalink: /blog/:title/
This gives you:
- Clean, readable URLs:
/blog/jekyll-front-matter-guide/ - No date in the URL (posts stay relevant even when old)
- Consistent
/blog/prefix separating blog content from pages - Easy to remember and share
Avoid including dates in permalinks unless you publish time-sensitive content (news, changelogs) where date context adds value.
Per-page permalink override
Override the global setting in any file’s front matter:
---
layout: page
title: "About"
permalink: /about/
---
---
layout: post
title: "My Special Post"
permalink: /featured/my-special-post/
---
The front matter permalink always wins over the global setting in _config.yml.
Permalinks for pages
Pages (in _pages/ or the root directory) use the same permalink front matter key:
---
layout: page
title: "Browse Themes"
permalink: /themes/
---
---
layout: page
title: "Submit a Theme"
permalink: /submit/
---
Without a permalink, a page at _pages/about.md generates /about (no trailing slash). Set permalink: /about/ explicitly for consistency.
Permalinks for collections
Collections get their permalink pattern in _config.yml under the collection definition:
collections:
themes:
output: true
permalink: /themes/:name/
authors:
output: true
permalink: /authors/:name/
For a file _themes/minimal-mistakes.md, this generates /themes/minimal-mistakes/.
Available placeholders for collections: :name (filename without extension), :path, :output_ext, :title, :categories.
# Custom collection permalink using title from front matter
collections:
themes:
output: true
permalink: /themes/:title/
The :title placeholder in detail
:title uses the post or page title, converted to a URL-safe slug:
- Lowercase
- Spaces replaced with hyphens
- Special characters removed
- Accented characters transliterated (é → e)
Title: "Jekyll Front Matter: The Complete Guide!"
:title → "jekyll-front-matter-the-complete-guide"
If you want a different slug than the auto-generated one, set slug in front matter:
---
title: "Jekyll Front Matter: The Complete Guide!"
slug: jekyll-front-matter-guide
permalink: /blog/:slug/
---
This gives /blog/jekyll-front-matter-guide/ instead of the long auto-generated version.
The :categories placeholder
If posts have categories, :categories generates a nested URL:
---
categories: [Tutorial, Jekyll]
permalink: /:categories/:title/
---
Generates: /tutorial/jekyll/my-post/
If a post has no categories, :categories is omitted from the URL (Jekyll does not include the empty slash).
Warning: Using :categories in your permalink means changing a post’s category changes its URL — which breaks links and SEO. Avoid :categories in permalinks for blog posts. Use it only for intentional category-based URL structures.
Trailing slashes
Jekyll generates index.html inside a folder for trailing-slash URLs:
permalink: /about/
→ _site/about/index.html
→ served at https://example.com/about/
Without a trailing slash:
permalink: /about
→ _site/about.html
→ served at https://example.com/about
Use trailing slashes consistently. Mixing /about/ and /contact causes inconsistency and potential duplicate content. Most modern Jekyll sites use trailing slashes.
Redirect old URLs after changing permalinks
If you change a permalink on an existing post, the old URL breaks. Redirect it using jekyll-redirect-from:
# Gemfile
gem "jekyll-redirect-from"
---
layout: post
title: "My Post"
permalink: /blog/my-new-url/
redirect_from:
- /2026/08/07/my-old-url/
- /blog/my-old-url/
---
Jekyll generates redirect pages at the old URLs pointing to the new one. Essential for maintaining SEO when restructuring content.
Checking generated URLs
To see what URL Jekyll generates for each file, run a build and check the _site/ directory structure — it mirrors your URL structure exactly:
bundle exec jekyll build
find _site -name "index.html" | head -20
Or use jekyll serve and browse to check each URL manually.
Internal linking with the link tag
When linking between pages internally, use the {% raw %}{% link %}{% endraw %} or {% raw %}{% post_url %}{% endraw %} tag instead of hardcoding URLs — they account for baseurl and raise a build error if the target file does not exist:
{% raw %}
<a href="{% link _posts/2026-08-07-my-post.md %}">My Post</a>
<a href="{% post_url 2026-08-07-my-post %}">My Post</a>
{% endraw %}
Both resolve to the post’s actual URL, whatever the permalink setting.
SEO implications of permalink structure
Keyword in URL: Shorter URLs that include the post’s main keyword perform slightly better. /blog/jekyll-permalinks/ is better than /blog/jekyll-permalinks-and-url-structure-the-complete-guide-2026/.
Avoid dates unless meaningful: /blog/2026/08/07/my-post/ makes content look dated. /blog/my-post/ is evergreen.
Be consistent: Changing URL structure after publishing harms SEO even with redirects. Choose a structure you can live with long-term before publishing.
Use hyphens, not underscores: Google treats hyphens as word separators in URLs. my-post is two words; my_post is one. Use hyphens.
Short is better: The shorter and more descriptive the URL, the better. Remove stop words (the, a, an, and, or) from slugs when they add no meaning.
A complete permalink setup
Here is a solid permalink configuration for a Jekyll blog/marketplace:
# _config.yml
# Blog posts
permalink: /blog/:title/
# Collections
collections:
themes:
output: true
permalink: /themes/:name/
authors:
output: true
permalink: /authors/:name/
Pages set their own permalink in front matter:
# _pages/themes.md
permalink: /themes/
# _pages/about.md
permalink: /about/
# _pages/blog.md (blog index)
permalink: /blog/
This gives a clean, consistent URL structure where /blog/ contains posts, /themes/ contains theme pages, and top-level paths handle static pages.
Jekyll makes a set of variables available in every template through Liquid. Knowing which variables exist and what they contain is essential for building and customising Jekyll themes. This is a complete reference for all of them.
site variables
site contains global data about your Jekyll site — configuration from _config.yml, collections, posts, and build information.
Configuration variables
Every key in _config.yml becomes a site.* variable:
# _config.yml
title: "JekyllHub"
author: "Marcus Webb"
description: "A Jekyll theme marketplace."
url: "https://jekyllhub.com"
baseurl: ""
google_analytics: "G-XXXXXXXXXX"
sendy_list_id: "abc123"
{{ site.title }} → "JekyllHub"
{{ site.description }} → "A Jekyll theme marketplace."
{{ site.url }} → "https://jekyllhub.com"
{{ site.baseurl }} → ""
{{ site.author }} → "Marcus Webb"
{{ site.google_analytics }}→ "G-XXXXXXXXXX"
{{ site.sendy_list_id }} → "abc123"
Built-in site variables
These are provided by Jekyll itself, not from _config.yml:
| Variable | Type | Description |
|---|---|---|
site.time |
DateTime | The time of the current build |
site.pages |
Array | All pages in the site |
site.posts |
Array | All posts, sorted newest first |
site.related_posts |
Array | Up to 10 related posts (for the current post) |
site.static_files |
Array | All static files (non-processed) |
site.html_pages |
Array | Pages with .html or .htm extension |
site.html_files |
Array | Static files with .html extension |
site.collections |
Array | All collections defined in config |
site.data |
Object | Data from all files in _data/ |
site.documents |
Array | All documents in all collections |
site.categories |
Object | Posts grouped by category |
site.tags |
Object | Posts grouped by tag |
site.posts
{% raw %}
{% comment %} All posts, newest first {% endcomment %}
{% for post in site.posts %}
<a href="{{ post.url }}">{{ post.title }}</a>
{% endfor %}
{% comment %} Post count {% endcomment %}
{{ site.posts | size }} posts
{% comment %} Latest post {% endcomment %}
{% assign latest = site.posts | first %}
{{ latest.title }}
{% endraw %}
site.pages
{% raw %}
{% for page in site.pages %}
{% if page.title %}
<a href="{{ page.url }}">{{ page.title }}</a>
{% endif %}
{% endfor %}
{% endraw %}
Note: site.pages includes all pages — HTML files, Markdown files, and some generated files. Filter by page.layout or page.url if you need a subset.
site.data
Mirrors the _data/ directory structure:
_data/
├── navigation.yml
├── authors.yml
└── showcase/
└── sites.yml
{{ site.data.navigation }} → contents of navigation.yml
{{ site.data.authors }} → contents of authors.yml
{{ site.data.showcase.sites }} → contents of showcase/sites.yml
site.categories and site.tags
{% raw %}
{% comment %} Loop over all categories {% endcomment %}
{% for category in site.categories %}
<h2>{{ category[0] }}</h2> ← category name
{% for post in category[1] %}
<li>{{ post.title }}</li> ← posts in this category
{% endfor %}
{% endfor %}
{% comment %} Posts in a specific category {% endcomment %}
{% assign tutorial_posts = site.categories["Tutorial"] %}
{{ tutorial_posts | size }} tutorials
{% endraw %}
Collection variables
For a collection named themes (defined in _config.yml):
{% raw %}
{{ site.themes }} → array of all theme documents
{{ site.themes | size }} → number of themes
{% for theme in site.themes %}
{{ theme.title }}
{% endfor %}
{% endraw %}
page variables
page contains data about the current page, post, or collection document being rendered.
Built-in page variables
| Variable | Type | Description |
|---|---|---|
page.content |
String | Rendered HTML content of the page |
page.title |
String | Title from front matter |
page.excerpt |
String | Excerpt (first paragraph or custom) |
page.url |
String | URL of the page (e.g. /blog/my-post/) |
page.date |
DateTime | Post date |
page.id |
String | Unique identifier (e.g. /2026/08/06/my-post) |
page.categories |
Array | Categories from front matter |
page.tags |
Array | Tags from front matter |
page.path |
String | Source file path (e.g. _posts/2026-08-06-my-post.md) |
page.name |
String | Filename (e.g. 2026-08-06-my-post.md) |
page.next |
Object | Next post (chronologically) |
page.previous |
Object | Previous post (chronologically) |
Custom front matter variables
Every key in a page’s front matter becomes a page.* variable:
---
layout: post
title: "My Post"
author: Marcus Webb
featured: true
reading_time: 8
image: /assets/images/blog/cover.webp
difficulty: beginner
---
{{ page.author }} → "Marcus Webb"
{{ page.featured }} → true
{{ page.reading_time }} → 8
{{ page.image }} → "/assets/images/blog/cover.webp"
{{ page.difficulty }} → "beginner"
page.url vs page.id
{{ page.url }} → "/blog/jekyll-variables-reference/"
{{ page.id }} → "/2026/08/06/jekyll-variables-reference"
page.url is the clean URL visitors see. page.id is an internal identifier used by some plugins.
page.date
{{ page.date }} → 2026-08-06 00:00:00 +0000
{{ page.date | date: "%B %-d, %Y" }} → August 6, 2026
{{ page.date | date: "%Y-%m-%d" }} → 2026-08-06
{{ page.date | date: "%s" }} → Unix timestamp
page.excerpt
{{ page.excerpt }} → first paragraph (rendered HTML)
{{ page.excerpt | strip_html }} → plain text excerpt
{{ page.excerpt | strip_html | truncatewords: 30 }}
Override the default excerpt in front matter:
excerpt: "A custom summary for this post."
page.next and page.previous
Navigate between posts:
{% raw %}
{% if page.next %}
<a href="{{ page.next.url }}">Next: {{ page.next.title }}</a>
{% endif %}
{% if page.previous %}
<a href="{{ page.previous.url }}">Previous: {{ page.previous.title }}</a>
{% endif %}
{% endraw %}
Note: page.next is the chronologically newer post; page.previous is the older one — counterintuitive but correct.
page.categories and page.tags
{% raw %}
{% for category in page.categories %}
<a href="/category/{{ category | slugify }}/">{{ category }}</a>
{% endfor %}
{% for tag in page.tags %}
<span class="tag">{{ tag }}</span>
{% endfor %}
{% endraw %}
layout variables
layout contains data from the current layout file’s front matter:
<!-- _layouts/post.html -->
---
layout: default
sidebar: true
show_related: true
---
{{ layout.sidebar }} → true
{{ layout.show_related }} → true
Useful when a layout needs configuration that individual pages can check:
{% raw %}
{% if layout.sidebar %}
{% include sidebar.html %}
{% endif %}
{% endraw %}
content
Available only inside layout files. Contains the rendered HTML content being wrapped by the layout:
<!-- _layouts/default.html -->
<main>
{{ content }}
</main>
content is the output after all inner layouts have been applied. For a post using layout: post (which itself uses layout: default), by the time default.html sees content, it already contains the post’s HTML wrapped in post.html’s structure.
paginator variables
Available on paginated pages when using jekyll-paginate or jekyll-paginate-v2:
| Variable | Description |
|---|---|
paginator.page |
Current page number |
paginator.per_page |
Posts per page |
paginator.posts |
Posts on the current page |
paginator.total_posts |
Total post count |
paginator.total_pages |
Total page count |
paginator.previous_page |
Previous page number (or nil) |
paginator.previous_page_path |
URL of previous page |
paginator.next_page |
Next page number (or nil) |
paginator.next_page_path |
URL of next page |
{% raw %}
{% for post in paginator.posts %}
<article>
<h2><a href="{{ post.url }}">{{ post.title }}</a></h2>
</article>
{% endfor %}
<nav class="pagination">
{% if paginator.previous_page %}
<a href="{{ paginator.previous_page_path }}">← Newer</a>
{% endif %}
<span>Page {{ paginator.page }} of {{ paginator.total_pages }}</span>
{% if paginator.next_page %}
<a href="{{ paginator.next_page_path }}">Older →</a>
{% endif %}
</nav>
{% endraw %}
jekyll variables
Information about the Jekyll build environment:
{{ jekyll.environment }} → "development" or "production"
{{ jekyll.version }} → "4.3.2"
{% raw %}
{% if jekyll.environment == "production" %}
{% include analytics.html %}
{% endif %}
{% endraw %}
Set JEKYLL_ENV=production before building to enable production-only features.
forloop variables
Inside any {% raw %}{% for %}{% endraw %} loop:
{% raw %}
{% for post in site.posts %}
{{ forloop.index }} → 1, 2, 3... (1-based)
{{ forloop.index0 }} → 0, 1, 2... (0-based)
{{ forloop.rindex }} → counts down from total (1-based)
{{ forloop.rindex0 }} → counts down from total (0-based)
{{ forloop.first }} → true on first iteration
{{ forloop.last }} → true on last iteration
{{ forloop.length }} → total items in array
{% endfor %}
{% endraw %}
Practical use — add a class to the first item and a divider between items:
{% raw %}
{% for item in list %}
<div class="item{% if forloop.first %} item--first{% endif %}">
{{ item.name }}
</div>
{% unless forloop.last %}<hr>{% endunless %}
{% endfor %}
{% endraw %}
tablerow variables
Inside a {% raw %}{% tablerow %}{% endraw %} loop:
{% raw %}
{% tablerow item in list cols: 3 %}
{{ tablerowloop.index }}
{{ tablerowloop.col }} → current column (1-based)
{{ tablerowloop.col0 }} → current column (0-based)
{{ tablerowloop.col_first }} → true on first column
{{ tablerowloop.col_last }} → true on last column
{{ tablerowloop.row }} → current row number
{{ tablerowloop.first }} → true on first item
{{ tablerowloop.last }} → true on last item
{{ tablerowloop.length }} → total items
{% endtablerow %}
{% endraw %}
Quick reference: which variable to use
| You need | Use |
|———-|—–|
| Site name/URL from config | site.title, site.url |
| All blog posts | site.posts |
| All pages | site.pages |
| Data from _data/nav.yml | site.data.nav |
| Custom config value | site.your_key |
| Current page title | page.title |
| Current page URL | page.url |
| Custom front matter value | page.your_key |
| Post publish date | page.date |
| Post excerpt | page.excerpt |
| Next/previous post | page.next, page.previous |
| Rendered page content (in layouts) | content |
| Build environment | jekyll.environment |
| Pagination data | paginator.* |
| Loop position | forloop.index, forloop.first, etc. |
A Jekyll theme can look polished in a screenshot and be a nightmare to work with in practice. Bad themes have hard-coded values scattered across templates, SCSS that cannot be overridden without editing source files, and JavaScript that blocks rendering on every page load.
A good Jekyll theme does the opposite: it is designed to be used, extended, and maintained — not just previewed. Here is what to look for before you commit.
Clean, Readable Liquid Templates
Open the theme’s _layouts/ and _includes/ directories on GitHub and read a few files. Well-written Liquid templates are:
Modular — the layout is broken into includes (_includes/header.html, _includes/footer.html, _includes/head.html) rather than crammed into one monolithic default.html. This makes it possible to override a single component without copying the entire layout.
Commented where it matters — complex Liquid logic (conditional includes, data lookups, paginator handling) should have a brief comment explaining what it does. Templates without any comments are harder to customise correctly.
Free of hard-coded content — good themes use _config.yml variables for site name, author, social links, and colour settings. A theme with your branding written directly into templates requires manual find-and-replace to customise.
Consistent naming conventions — front matter fields should follow a pattern (title, description, image, author) rather than an idiosyncratic mix that requires reading every template to understand.
Well-Organised SCSS
SCSS structure reveals a lot about how seriously a theme was built. A good Jekyll theme organises styles using:
Variables for everything visual — colours, font sizes, spacing, border radii, and breakpoints should all be defined as SCSS variables or CSS custom properties at the top of the stylesheet. This means you can retheme the entire site by changing a handful of values.
Logical file structure — styles split into logical partials: _variables.scss, _base.scss, _typography.scss, _layout.scss, _components.scss. A single style.scss file with 3,000 lines of undifferentiated CSS is a red flag.
No !important overuse — !important is sometimes necessary, but a theme that uses it everywhere is fighting its own specificity and will be painful to customise.
Dark mode handled properly — if the theme supports dark mode, it should use CSS custom properties swapped via a [data-theme="dark"] attribute or prefers-color-scheme media query, not a separate stylesheet loaded with JavaScript.
Performance by Default
A static site has no excuse to be slow. Before buying or installing a theme, check what it loads:
Minimal JavaScript — a blog or portfolio theme should need almost no JavaScript. If a theme loads jQuery, multiple animation libraries, and a carousel script for a site that displays text and images, those are unnecessary dependencies you will carry forever.
Self-hosted or system fonts — themes that load Google Fonts make an external request on every page load. A well-optimised theme either uses system fonts (font-family: system-ui, sans-serif) or bundles the fonts locally with font-display: swap.
Optimised images in templates — check the image includes. Does the theme use loading="lazy" on below-the-fold images? Does it specify width and height attributes to prevent layout shift?
No render-blocking resources — CSS should be in the <head>, JavaScript should be deferred or at the end of <body>. Check the source of the demo — a <script> tag without defer or async in the <head> will block every page from rendering.
Run Lighthouse on the live demo. A good Jekyll theme should score above 90 on Performance with no effort on your part — the theme itself should not be the bottleneck.
SEO Ready Out of the Box
A well-built Jekyll theme handles SEO fundamentals automatically:
jekyll-seo-tag integration — the theme should include {% raw %}{% seo %}{% endraw %} in _layouts/default.html or equivalent. This handles title tags, meta descriptions, Open Graph, Twitter cards, and canonical URLs with a single include.
Proper heading hierarchy — one <h1> per page (the post or page title), with <h2> through <h4> used for content structure. A theme that wraps the site name in an <h1> on every page is hurting your SEO on every post.
RSS feed — the theme should include a <link rel="alternate" type="application/rss+xml"> in the head, pointing to a feed generated by jekyll-feed.
Structured data support — better themes include JSON-LD structured data for articles, breadcrumbs, or site links. This is not required, but it is a sign of a theme built with search visibility in mind.
Clean URLs — the theme should not produce URLs with .html extensions or unnecessary parameters. Jekyll handles this with permalink: pretty in _config.yml — check that the theme’s config sets this or documents how to do it.
Accessibility That Is Not an Afterthought
Accessibility in a theme is not just about compliance — it is about code quality. Themes that are accessible are also better structured, more maintainable, and more usable for everyone.
Semantic HTML — content should use <article>, <nav>, <main>, <aside>, and <footer> appropriately. A theme built entirely with <div> elements is not just inaccessible — it is lazy.
Skip navigation link — a “Skip to content” link as the first focusable element lets keyboard users bypass the navigation on every page. It is one line of HTML and CSS. Themes without it have not thought about keyboard navigation.
ARIA labels on interactive elements — icon-only buttons (like a dark mode toggle or search icon) need aria-label attributes to be usable by screen readers.
Focus styles — pressing Tab through the live demo should show a visible focus ring on every interactive element. Themes that remove focus styles with outline: none fail basic keyboard accessibility.
Colour contrast — body text on its background should meet WCAG AA (4.5:1 ratio minimum). Check this with the browser’s accessibility panel or a contrast checker.
Active Maintenance and a Clear Update History
Even the best theme becomes a liability if it is abandoned. Signs of a well-maintained theme:
A changelog — a CHANGELOG.md or release notes on GitHub showing what changed in each version. This tells you the author thinks carefully about changes and communicates them clearly.
Regular releases — at least a few updates in the past year. Check the releases page on GitHub, not just the commit history.
Responsive issue handling — open the GitHub issues and look for how the author responds to bug reports. Are bugs acknowledged and fixed? Or are issues sitting unanswered for months?
A versioning scheme — themes that use semantic versioning (1.2.0, 1.2.1) signal that the author understands the difference between a breaking change and a patch.
Good Documentation
Documentation is a direct measure of how much the author cares about the people using their theme.
A well-documented Jekyll theme covers:
- Quick start — how to get the theme running locally in five minutes
- Configuration reference — every
_config.ymloption explained with example values - Front matter fields — what each layout accepts and what is required vs optional
- Customisation guide — how to override layouts, styles, and includes without editing theme source files
- Deployment notes — any hosting-specific configuration required
- Upgrade guide — what to do when a new version is released
If the only documentation is a README with a screenshot and a “fork this repo” instruction, the author has not thought about the experience of people actually using the theme.
The Quality Checklist
Use this before buying or installing any Jekyll theme:
Code quality
- Templates are modular (split into
_includes/) - No hard-coded content — everything comes from
_config.ymlor front matter - SCSS uses variables for colours, fonts, and spacing
- No excessive
!importantusage - Dark mode uses CSS custom properties, not a separate stylesheet
Performance
- Lighthouse performance score above 90 on the live demo
- No unnecessary JavaScript libraries
- Fonts are self-hosted or use system fonts
- Images use
loading="lazy"and havewidth/heightattributes - No render-blocking scripts in
<head>
SEO
- Includes
jekyll-seo-tag - One
<h1>per page - RSS feed linked in
<head> - Clean URLs (no
.htmlextensions)
Accessibility
- Uses semantic HTML elements (
<article>,<nav>,<main>) - Has a skip navigation link
- Icon buttons have
aria-labelattributes - Focus styles are visible
- Body text passes WCAG AA contrast (4.5:1)
Maintenance
- Last commit within 12 months
- Has a changelog or release notes
- Issues are responded to within a reasonable time
- Compatible with Jekyll 4.x
Documentation
- Quick start guide works
- Configuration options are documented
- Front matter fields are documented
- Customisation without editing source files is explained
A theme that scores well on all five areas — code, performance, SEO, accessibility, and maintenance — is genuinely worth using. Most themes will excel in one or two and be mediocre in others. The checklist helps you make that trade-off consciously rather than discovering it after you have built your site.
Ready to find a theme that meets this standard? Browse the JekyllHub theme directory — every theme is hand-reviewed for quality before listing.
Liquid tags are the logic layer of Jekyll templates. Wrapped in {% raw %}{% %}{% endraw %} delimiters, they control flow, create variables, loop over data, and embed content — without outputting anything themselves. This is a complete reference for every Liquid tag used in Jekyll.
assign
Creates a variable and assigns it a value. The variable is available for the rest of the template (or until overwritten).
{% raw %}
{% assign title = "My Post" %}
{% assign count = site.posts | size %}
{% assign is_premium = false %}
{% assign tags_list = "jekyll,tutorial,liquid" | split: "," %}
{% endraw %}
Variables created with assign are available in the current scope and any includes called from it.
{% raw %}
{% assign author = site.authors | where: "name", page.author | first %}
{% if author %}
<img src="{{ author.avatar }}" alt="{{ author.name }}">
{% endif %}
{% endraw %}
capture
Builds a string variable from a block of content — useful when the value spans multiple lines or includes Liquid expressions.
{% raw %}
{% capture post_url %}{{ site.url }}{{ post.url }}{% endcapture %}
<meta property="og:url" content="{{ post_url }}">
{% endraw %}
{% raw %}
{% capture author_bio %}
{{ page.author }} · {{ page.date | date: "%B %-d, %Y" }} · {{ page.reading_time }} min read
{% endcapture %}
<p class="post-meta">{{ author_bio | strip }}</p>
{% endraw %}
Unlike assign, capture captures everything between its opening and closing tags, including whitespace and newlines. Use | strip to remove leading/trailing whitespace.
if / elsif / else / endif
Conditional rendering. Outputs content only when the condition is true.
{% raw %}
{% if page.price == 0 %}
<span class="badge">Free</span>
{% elsif page.price < 20 %}
<span class="badge">Budget</span>
{% else %}
<span class="badge">Premium</span>
{% endif %}
{% endraw %}
Conditions can use:
==equal to!=not equal to>>=<<=numeric comparisonscontainsstring/array containsandboth conditions trueoreither condition true
{% raw %}
{% if page.tags contains "jekyll" and page.featured %}
This is a featured Jekyll post.
{% endif %}
{% if user.name == "admin" or user.role == "editor" %}
Show edit button
{% endif %}
{% endraw %}
Truthy/falsy: In Liquid, nil and false are falsy. Everything else — including 0, "", and [] — is truthy. This differs from many other languages.
{% raw %}
{% if page.image %} ← false only if image is nil (not set) or false
{% if page.count > 0 %} ← more reliable check for zero
{% endraw %}
unless / endunless
The inverse of if — runs the block when the condition is false. Equivalent to {% raw %}{% if not condition %}{% endraw %}.
{% raw %}
{% unless page.hide_sidebar %}
{% include sidebar.html %}
{% endunless %}
{% unless forloop.last %}
<hr>
{% endunless %}
{% endraw %}
case / when / else / endcase
Multi-branch conditional, cleaner than a long if/elsif chain when checking a single variable against multiple values.
{% raw %}
{% case page.category %}
{% when "Tutorial" %}
<span class="badge badge--blue">Tutorial</span>
{% when "Comparison" %}
<span class="badge badge--purple">Comparison</span>
{% when "Themes", "Design" %}
<span class="badge badge--green">Design</span>
{% else %}
<span class="badge">Article</span>
{% endcase %}
{% endraw %}
Multiple values for the same branch: {% raw %}{% when "Themes", "Design" %}{% endraw %} matches either.
for / endfor
Loops over an array or range. One of the most-used tags in Jekyll templates.
{% raw %}
{% for post in site.posts %}
<article>
<h2><a href="{{ post.url }}">{{ post.title }}</a></h2>
<p>{{ post.excerpt | strip_html | truncatewords: 25 }}</p>
</article>
{% endfor %}
{% endraw %}
Loop parameters
{% raw %}
{% comment %} First 6 posts {% endcomment %}
{% for post in site.posts limit: 6 %}
{% comment %} Skip the first 3 {% endcomment %}
{% for post in site.posts offset: 3 %}
{% comment %} Reverse order {% endcomment %}
{% for post in site.posts reversed %}
{% comment %} Combine: posts 4-9 {% endcomment %}
{% for post in site.posts limit: 6 offset: 3 %}
{% endraw %}
forloop variables
Inside a loop, these special variables describe the current iteration:
{% raw %}
{% for post in site.posts %}
{% if forloop.first %}<ul>{% endif %}
<li class="{% if forloop.last %}last{% endif %}">
{{ forloop.index }}. {{ post.title }}
</li>
{% if forloop.last %}</ul>{% endif %}
{% endfor %}
{% endraw %}
| Variable | Value |
|---|---|
forloop.index |
Current iteration, 1-based |
forloop.index0 |
Current iteration, 0-based |
forloop.rindex |
Reverse index, 1-based |
forloop.rindex0 |
Reverse index, 0-based |
forloop.first |
true on first iteration |
forloop.last |
true on last iteration |
forloop.length |
Total number of items |
else in for loops
Runs when the array is empty:
{% raw %}
{% for theme in site.themes %}
<div class="theme-card">{{ theme.title }}</div>
{% else %}
<p>No themes available yet.</p>
{% endfor %}
{% endraw %}
Looping over a number range
{% raw %}
{% for i in (1..5) %}
<span>Step {{ i }}</span>
{% endfor %}
{% endraw %}
Nested loops
{% raw %}
{% for category in site.categories %}
<h2>{{ category[0] }}</h2>
{% for post in category[1] %}
<a href="{{ post.url }}">{{ post.title }}</a>
{% endfor %}
{% endfor %}
{% endraw %}
break and continue
Control loop execution:
{% raw %}
{% comment %} Stop after finding first featured post {% endcomment %}
{% for post in site.posts %}
{% if post.featured %}
<a href="{{ post.url }}">{{ post.title }}</a>
{% break %}
{% endif %}
{% endfor %}
{% comment %} Skip drafts in a custom loop {% endcomment %}
{% for post in site.posts %}
{% unless post.published %}{% continue %}{% endunless %}
<li>{{ post.title }}</li>
{% endfor %}
{% endraw %}
include
Inserts the contents of a file from _includes/. One of the most-used tags in Jekyll layouts.
{% raw %}
{% include nav.html %}
{% include footer.html %}
{% include components/card.html %}
{% endraw %}
include with parameters
Pass variables to an include using key=value pairs:
{% raw %}
{% include components/card.html
title=theme.title
url=theme.url
price=theme.price
image=theme.card_image %}
{% endraw %}
Inside the include, access them with include.keyname:
<!-- _includes/components/card.html -->
<div class="card">
<h3>{{ include.title }}</h3>
<a href="{{ include.url }}">View</a>
</div>
include with a variable filename
{% raw %}
{% assign template = "components/card.html" %}
{% include {{ template }} %}
{% endraw %}
Or use include_relative to include from a path relative to the current file:
{% raw %}
{% include_relative ../shared/notice.html %}
{% endraw %}
raw / endraw
Prevents Liquid from processing the enclosed content. Essential when writing Liquid code in blog posts.
{% raw %}
Use {{ variable }} syntax to output values.
{% if condition %}...{% endif %}
{% endraw %}
Everything inside {% raw %}...{% endraw %} is output literally, without Liquid processing.
comment / endcomment
Adds a Liquid comment — not rendered in output and not processed:
{% raw %}
{% comment %}
TODO: add pagination here
This section is temporarily disabled
{% endcomment %}
{% endraw %}
Unlike HTML comments (<!-- -->), Liquid comments are completely removed from output and cannot be seen by users in the page source.
highlight / endhighlight
Syntax-highlights a code block using Rouge:
{% raw %}
{% highlight ruby %}
def hello
puts "Hello, Jekyll!"
end
{% endhighlight %}
{% highlight javascript linenos %}
const site = "JekyllHub";
console.log(site);
{% endhighlight %}
{% endraw %}
The optional linenos adds line numbers. The language identifier must be one Rouge supports (ruby, javascript, python, bash, yaml, html, css, json, etc.).
link and post_url
Generate correct URLs for internal pages and posts, accounting for baseurl:
{% raw %}
{% comment %} Link to a page (fails build if page not found) {% endcomment %}
<a href="{% link _pages/about.md %}">About</a>
<a href="{% link _posts/2026-08-03-jekyll-directory-structure.md %}">Read post</a>
{% comment %} Link to a post by filename {% endcomment %}
<a href="{% post_url 2026-08-03-jekyll-directory-structure %}">Read post</a>
{% endraw %}
Both link and post_url cause a build error if the target file does not exist — useful for catching broken internal links. They automatically apply baseurl.
tablerow
Like for, but generates an HTML table:
{% raw %}
<table>
{% tablerow plugin in site.data.plugins cols: 3 %}
<td>{{ plugin.name }}</td>
{% endtablerow %}
</table>
{% endraw %}
cols: sets the number of columns per row. Less commonly used than for, but useful for tabular data.
jekyll_draft and jekyll_version
Available in Jekyll 4+:
{% raw %}
{% comment %} Show content only when serving with --drafts flag {% endcomment %}
{% if jekyll.environment == "development" %}
<div class="draft-banner">Draft preview</div>
{% endif %}
{% endraw %}
Whitespace control
Liquid tags add blank lines to output. Strip whitespace with -:
{% raw %}
{%- assign foo = "bar" -%}
{%- for item in list -%}
{{ item }}
{%- endfor -%}
{% endraw %}
The - inside the tag delimiters strips whitespace (including newlines) before or after that tag. Use this when generating clean HTML or JSON output.
Tags vs filters: the difference
People sometimes confuse tags and filters. The distinction:
- Tags ({% raw %}
{% %}{% endraw %}) execute logic — they control flow, assign variables, loop, include files - Filters (
|) transform values — they modify the output of{{ }}expressions
{% raw %}
{% assign count = site.posts | size %} ← tag with filter in the value
{{ page.title | upcase }} ← output with filter
{% for post in site.posts %} ← loop tag
{% endraw %}
Knowing both tags and filters — and which is which — gives you the full toolkit for working with any Jekyll theme. Liquid is the template language Jekyll uses to make HTML dynamic. It was created by Shopify and is also used in many other platforms. In Jekyll, Liquid lets you output variables, loop through posts, check conditions, and transform data — all within your HTML files.
If you have ever seen {{ page.title }} or {% raw %}{% for post in site.posts %}{% endraw %} in a Jekyll theme, that is Liquid. This guide covers everything you need to know to read, write, and customise Liquid templates.
The three types of Liquid syntax
Liquid uses three distinct delimiters, each with a different purpose:
1. Output tags {{ }}
Double curly braces output the value of a variable or expression:
{{ page.title }}
{{ site.description }}
{{ post.date | date: "%B %-d, %Y" }}
Whatever is inside {{ }} is evaluated and printed to the page.
2. Logic tags {% raw %}{% %}{% endraw %}
Curly brace with percent signs execute logic — control flow, loops, assignments. They do not output anything themselves:
{% raw %}
{% if page.featured %}
<span class="badge">Featured</span>
{% endif %}
{% for post in site.posts %}
<h2>{{ post.title }}</h2>
{% endfor %}
{% assign author = site.data.authors | where: "name", page.author | first %}
{% endraw %}
3. Comment tags {% raw %}{% comment %}{% endraw %}
Comments are not rendered in output:
{% raw %}
{% comment %}
This is a Liquid comment.
Useful for notes to yourself or temporarily disabling code.
{% endcomment %}
{% endraw %}
Liquid objects in Jekyll
Objects are the data sources available in Liquid. Jekyll provides several built-in objects.
site
Site-wide data from _config.yml and the Jekyll build:
{{ site.title }} → "JekyllHub"
{{ site.url }} → "https://jekyllhub.com"
{{ site.description }} → your site description
{{ site.posts }} → array of all posts
{{ site.pages }} → array of all pages
{{ site.themes }} → array of theme collection items
{{ site.data.navigation }} → contents of _data/navigation.yml
{{ site.time }} → build time
Any key in _config.yml becomes a site.* variable:
# _config.yml
sendy_list_id: "abc123"
{{ site.sendy_list_id }} → "abc123"
page
Data about the current page being rendered:
{{ page.title }} → post or page title
{{ page.url }} → URL of the current page
{{ page.date }} → date (for posts)
{{ page.content }} → rendered HTML content
{{ page.excerpt }} → post excerpt
{{ page.categories }} → array of categories
{{ page.tags }} → array of tags
{{ page.author }} → value from front matter
{{ page.image }} → any custom front matter variable
Every front matter key on the current page is available as page.keyname.
layout
Data from the layout file’s front matter:
{{ layout.title }}
{{ layout.sidebar }}
Rarely used, but available if your layout has its own front matter variables.
content
The rendered content of the current page, available only inside layout files:
<!-- _layouts/default.html -->
<main>
{{ content }}
</main>
forloop (inside loops)
Available inside {% raw %}{% for %}{% endraw %} loops:
{% raw %}
{% for post in site.posts %}
{{ forloop.index }} → 1-based position (1, 2, 3...)
{{ forloop.index0 }} → 0-based position (0, 1, 2...)
{{ forloop.first }} → true on first iteration
{{ forloop.last }} → true on last iteration
{{ forloop.length }} → total number of items
{{ forloop.rindex }} → reverse index (counts down)
{% endfor %}
{% endraw %}
Variables: assign and capture
Create your own variables with assign:
{% raw %}
{% assign greeting = "Hello, world!" %}
{{ greeting }}
{% assign featured = site.posts | where: "featured", true %}
{% assign post_count = site.posts | size %}
{% assign site_url = site.url | append: site.baseurl %}
{% endraw %}
Use capture to build a string from multiple lines:
{% raw %}
{% capture author_link %}
<a href="/authors/{{ page.author | slugify }}/">{{ page.author }}</a>
{% endcapture %}
{{ author_link }}
{% endraw %}
capture is useful when you need to build a complex string and use it multiple times, or pass it to an include.
Filters
Filters transform the value on the left using a pipe |:
{{ page.title | upcase }}
→ "JEKYLL LIQUID TEMPLATING BASICS"
{{ page.date | date: "%B %-d, %Y" }}
→ "August 4, 2026"
{{ site.posts | size }}
→ 81
{{ "/about/" | relative_url }}
→ "/about/" (or "/subdir/about/" if baseurl is set)
{{ site.url | append: page.url }}
→ "https://jekyllhub.com/blog/my-post/"
Filters can be chained:
{{ page.title | downcase | replace: " ", "-" | truncate: 30 }}
For a full filter reference, see the Jekyll Liquid Filters Cheatsheet.
Control flow: if, elsif, else, unless
{% raw %}
{% if page.featured %}
<span class="badge badge--featured">Featured</span>
{% elsif page.trending %}
<span class="badge badge--trending">Trending</span>
{% else %}
<span class="badge">Standard</span>
{% endif %}
{% endraw %}
unless is the opposite of if — true when the condition is false:
{% raw %}
{% unless page.hide_toc %}
{% include toc.html %}
{% endunless %}
{% endraw %}
Comparison operators
{% raw %}
{% if page.price == 0 %}Free{% endif %}
{% if page.price > 0 %}Paid{% endif %}
{% if page.price != 0 %}Not free{% endif %}
{% if page.stars >= 1000 %}Popular{% endif %}
{% if page.title contains "Jekyll" %}...{% endif %}
{% endraw %}
Logical operators
{% raw %}
{% if page.featured and page.price == 0 %}
Free and featured!
{% endif %}
{% if page.category == "Tutorial" or page.category == "Guide" %}
Educational content
{% endif %}
{% endraw %}
Checking if a variable exists
{% raw %}
{% if page.image %}
<img src="{{ page.image | relative_url }}" alt="{{ page.title }}">
{% endif %}
{% if page.tags != empty %}
<ul>
{% for tag in page.tags %}
<li>{{ tag }}</li>
{% endfor %}
</ul>
{% endif %}
{% endraw %}
Loops: for
Loop over arrays with {% raw %}{% for %}{% endraw %}:
{% raw %}
{% for post in site.posts %}
<article>
<h2><a href="{{ post.url }}">{{ post.title }}</a></h2>
<time>{{ post.date | date: "%B %-d, %Y" }}</time>
<p>{{ post.excerpt }}</p>
</article>
{% endfor %}
{% endraw %}
Loop modifiers
{% raw %}
{% comment %} Limit to first 6 items {% endcomment %}
{% for post in site.posts limit: 6 %}
...
{% endfor %}
{% comment %} Skip the first 3 items {% endcomment %}
{% for post in site.posts offset: 3 %}
...
{% endfor %}
{% comment %} Reverse the order {% endcomment %}
{% for post in site.posts reversed %}
...
{% endfor %}
{% comment %} First 6, skip the first 3 {% endcomment %}
{% for post in site.posts limit: 6 offset: 3 %}
...
{% endfor %}
{% endraw %}
else in for loops
The else clause runs when the array is empty:
{% raw %}
{% for theme in site.themes %}
<div class="card">{{ theme.title }}</div>
{% else %}
<p>No themes found.</p>
{% endfor %}
{% endraw %}
Looping over a range of numbers
{% raw %}
{% for i in (1..5) %}
<span>{{ i }}</span>
{% endfor %}
→ 1 2 3 4 5
{% endraw %}
break and continue
{% raw %}
{% for post in site.posts %}
{% if forloop.index > 5 %}
{% break %}
{% endif %}
{{ post.title }}
{% endfor %}
{% for post in site.posts %}
{% unless post.featured %}
{% continue %}
{% endunless %}
{{ post.title }} ← only featured posts reach here
{% endfor %}
{% endraw %}
case / when
An alternative to long if/elsif chains:
{% raw %}
{% case page.category %}
{% when "Tutorial" %}
<span class="badge badge--tutorial">Tutorial</span>
{% when "Comparison" %}
<span class="badge badge--comparison">Comparison</span>
{% when "Themes" %}
<span class="badge badge--themes">Themes</span>
{% else %}
<span class="badge">Article</span>
{% endcase %}
{% endraw %}
Working with arrays
Filtering arrays
{% raw %}
{% assign free_themes = site.themes | where: "price", 0 %}
{% assign featured_posts = site.posts | where: "featured", true %}
{% assign tutorial_posts = site.posts | where: "category", "Tutorial" %}
{% endraw %}
where_exp for more complex filtering:
{% raw %}
{% assign recent_posts = site.posts | where_exp: "post", "post.date > '2026-01-01'" %}
{% assign popular = site.themes | where_exp: "theme", "theme.stars > 1000" %}
{% endraw %}
Sorting arrays
{% raw %}
{% assign themes_by_stars = site.themes | sort: "stars" | reverse %}
{% assign posts_by_title = site.posts | sort: "title" %}
{% endraw %}
Grouping arrays
{% raw %}
{% assign posts_by_category = site.posts | group_by: "category" %}
{% for group in posts_by_category %}
<h2>{{ group.name }}</h2>
{% for post in group.items %}
<a href="{{ post.url }}">{{ post.title }}</a>
{% endfor %}
{% endfor %}
{% endraw %}
Getting first/last items
{% raw %}
{% assign latest_post = site.posts | first %}
{{ latest_post.title }}
{% assign oldest_post = site.posts | last %}
{{ oldest_post.title }}
{% endraw %}
raw tag
Prevent Liquid from processing a block — essential when writing about Liquid in a Jekyll blog:
{% raw %}
This {{ variable }} will not be processed by Liquid.
{% if true %}This tag will not execute.{% endif %}
{% endraw %}
Use {% raw %} whenever you need to display Liquid code examples.
Whitespace control
Liquid tags add blank lines to output. Use - to strip whitespace:
{% raw %}
{%- for post in site.posts -%}
<li>{{ post.title }}</li>
{%- endfor -%}
{% endraw %}
The - inside the tag delimiters strips all whitespace (including newlines) before and after the tag.
Practical patterns
Include with a fallback
<meta name="description" content="{{ page.description | default: site.description }}">
Conditional class
{% raw %}
<li class="nav-item{% if page.url == item.url %} nav-item--active{% endif %}">
{% endraw %}
Truncate excerpt
<p>{{ post.excerpt | strip_html | truncatewords: 30 }}</p>
Absolute URL
<meta property="og:url" content="{{ page.url | absolute_url }}">
Build a comma-separated list
{{ page.tags | join: ", " }}
→ "jekyll, tutorial, liquid"
Check if a string contains a word
{% raw %}
{% if page.content contains "Jekyll" %}
This post mentions Jekyll.
{% endif %}
{% endraw %}
Liquid is straightforward once you understand the three delimiter types and the key objects (site, page, content). Most Jekyll template work uses a small subset of the full Liquid language — the patterns above cover the vast majority of what you will encounter in any theme.
When you first open a Jekyll project, the folder structure can look confusing. Underscores everywhere, a _site folder that appears after building, special filenames with dates. Once you understand what each piece does, it all makes sense — Jekyll’s structure is actually quite logical.
Here is a complete reference for every file and folder in a Jekyll project.
The full structure at a glance
my-jekyll-site/
│
├── _config.yml ← site configuration
├── Gemfile ← Ruby dependency list
├── Gemfile.lock ← locked dependency versions
│
├── _posts/ ← blog post files
├── _drafts/ ← unpublished drafts
├── _pages/ ← static page files (optional convention)
│
├── _layouts/ ← HTML wrapper templates
├── _includes/ ← reusable HTML fragments
├── _sass/ ← Sass/SCSS partials
│
├── _data/ ← structured data (YAML, JSON, CSV)
├── _plugins/ ← custom Ruby plugins
│
├── _collections/ ← custom collection directories
│ ├── _themes/
│ └── _authors/
│
├── assets/ ← static files (CSS, JS, images)
│ ├── css/
│ ├── js/
│ └── images/
│
├── index.html ← homepage
└── _site/ ← generated output (do not edit)
_config.yml
The master configuration file. Controls site-wide settings, plugins, collections, permalink structure, build options, and any custom data you want available in all templates as site.* variables.
title: "My Jekyll Site"
url: "https://example.com"
plugins:
- jekyll-feed
- jekyll-seo-tag
Jekyll reads this file at startup only — restart the server after changes.
Gemfile and Gemfile.lock
Gemfile lists your Ruby dependencies — Jekyll itself and any plugins:
source "https://rubygems.org"
gem "jekyll", "~> 4.3"
gem "jekyll-feed"
gem "jekyll-seo-tag"
Gemfile.lock is auto-generated by Bundler and records the exact version of every gem installed. Commit this file — it ensures anyone who clones your project gets identical gem versions.
Never edit Gemfile.lock by hand. Update it with bundle update.
_posts/
All blog posts live here as Markdown (or HTML) files. Jekyll requires a specific naming convention:
YYYY-MM-DD-title-of-post.md
Examples:
_posts/
├── 2026-08-03-jekyll-directory-structure.md
├── 2026-07-29-jekyll-front-matter-guide.md
└── 2026-01-15-my-first-post.md
The date in the filename sets the post’s default date. Jekyll uses it for sorting, URL generation, and the page.date variable. Posts are accessible via site.posts in templates.
_drafts/
Drafts are posts without a date in the filename. They live in _drafts/ and are excluded from normal builds:
_drafts/
├── my-unfinished-post.md
└── ideas-for-later.md
To preview drafts locally: bundle exec jekyll serve --drafts
Drafts are never built in production unless you explicitly pass --drafts to the build command.
_pages/ (convention, not built-in)
Jekyll has no built-in _pages/ directory — but it is a widely used convention for storing static pages separately from posts. Files here are processed exactly like files in the root directory.
_pages/
├── about.md
├── contact.md
├── themes.html
└── faq.md
To make Jekyll process files from _pages/, either list it explicitly in _config.yml or keep your pages in the root directory. Many themes include _pages/ in their configuration via:
include:
- _pages
Or use a collection:
collections:
pages:
output: true
permalink: /:name/
_layouts/
HTML templates that wrap page content. Jekyll replaces {{ content }} in a layout with the page’s rendered output.
_layouts/
├── default.html ← base shell (<html>, <head>, nav, footer)
├── page.html ← inherits default, adds page container
├── post.html ← inherits default, adds article structure
└── home.html ← inherits default, adds hero section
Layouts can inherit from each other via front matter:
---
layout: default ← this layout wraps inside default.html
---
_includes/
Reusable HTML fragments embedded in layouts or content with {% raw %}{% include filename.html %}{% endraw %}.
_includes/
├── head.html ← <head> contents
├── nav.html ← navigation bar
├── footer.html ← footer
├── analytics.html ← analytics scripts
├── components/
│ ├── card.html ← theme card component
│ └── badge.html ← badge component
└── sections/
├── home-hero.html ← homepage hero section
└── home-newsletter.html
Unlike layouts, includes can be used anywhere — in layouts, in other includes, even mid-content in Markdown files.
_sass/
Sass/SCSS partial files that Jekyll compiles into CSS. Files starting with _ are partials (not compiled to standalone CSS files):
_sass/
├── _variables.scss ← colour and spacing tokens
├── _base.scss ← reset, body, typography
├── _nav.scss ← navigation styles
├── _cards.scss ← card component styles
├── _post.scss ← blog post styles
└── _utilities.scss ← helper classes
These partials are imported by a main SCSS entry file in assets/css/:
/* assets/css/main.scss */
---
---
@import "variables";
@import "base";
@import "nav";
@import "cards";
@import "post";
@import "utilities";
The empty front matter (---
---) at the top tells Jekyll to process this file through Sass.
_data/
Structured data files in YAML, JSON, CSV, or TSV format. Accessible in all templates as site.data.filename:
_data/
├── navigation.yml → site.data.navigation
├── authors.yml → site.data.authors
├── faq.yml → site.data.faq
├── showcase.yml → site.data.showcase
└── bundle.yml → site.data.bundle
Example usage:
{% raw %}
{% for item in site.data.navigation %}
<a href="{{ item.url }}">{{ item.title }}</a>
{% endfor %}
{% endraw %}
Useful for any structured content that does not need individual pages — navigation menus, team members, FAQs, testimonials, pricing tables.
_plugins/
Custom Ruby plugin files that extend Jekyll’s functionality. Files here are loaded automatically at build time:
_plugins/
├── my_generator.rb ← custom page generator
├── my_filter.rb ← custom Liquid filter
└── my_hook.rb ← Jekyll build hook
Note: Custom plugins in _plugins/ do not work on GitHub Pages (security restriction). They work on Netlify, Cloudflare Pages, and Vercel where you control the build environment.
Custom collection directories
Collections defined in _config.yml get their own _collectionname/ directory:
# _config.yml
collections:
themes:
output: true
permalink: /themes/:name/
authors:
output: true
permalink: /authors/:name/
_themes/
├── minimal-mistakes.md
├── chirpy.md
└── al-folio.md
_authors/
├── marcus-webb.md
└── sarah-chen.md
Collection items are available as site.themes and site.authors in templates.
assets/
Static files served directly — CSS, JavaScript, fonts, and images. Unlike _-prefixed directories, assets/ is copied to _site/ without processing (except for SCSS files with front matter).
assets/
├── css/
│ └── main.scss ← compiled to main.css
├── js/
│ ├── main.js
│ └── bookmarks.js
├── images/
│ ├── logo.png
│ ├── social-card.png
│ └── blog/
│ └── post-cover.webp
└── fonts/
└── inter.woff2
Reference assets in templates using relative_url:
<link rel="stylesheet" href="{{ '/assets/css/main.css' | relative_url }}">
<img src="{{ '/assets/images/logo.png' | relative_url }}" alt="Logo">
Root-level files
index.html or index.md — your homepage. Can use any layout.
404.html — custom 404 page. Most hosts serve this automatically for missing pages.
feed.xml or atom.xml — RSS/Atom feed (usually auto-generated by jekyll-feed).
sitemap.xml — XML sitemap (auto-generated by jekyll-sitemap).
robots.txt — instructions for search engine crawlers:
User-agent: *
Allow: /
Sitemap: https://example.com/sitemap.xml
_redirects — redirect rules for Netlify/Cloudflare Pages.
.gitignore — files to exclude from Git:
_site/
.jekyll-cache/
.sass-cache/
.bundle/
vendor/
node_modules/
_site/
The generated output — never edit files here directly. Jekyll wipes and rebuilds this directory on every build. It mirrors what your visitors see:
_site/
├── index.html
├── about/
│ └── index.html
├── blog/
│ ├── index.html
│ └── jekyll-directory-structure/
│ └── index.html
├── assets/
│ ├── css/
│ │ └── main.css ← compiled from main.scss
│ └── js/
│ └── main.js
├── feed.xml
└── sitemap.xml
Add _site/ to .gitignore — deploy from your build pipeline, not from a committed _site/.
.jekyll-cache/
Jekyll’s internal build cache. Speeds up incremental builds by storing processed files. Safe to delete if you see stale content — Jekyll regenerates it. Add to .gitignore.
Files Jekyll ignores by default
Jekyll automatically excludes these from the build output:
GemfileandGemfile.locknode_modules/- Any file or directory starting with
.(dotfiles) - Any file or directory starting with
_(except those explicitly handled) - Files listed in
exclude:in_config.yml
The build flow
When you run bundle exec jekyll build:
- Jekyll reads
_config.yml - Reads all files in
_posts/,_pages/,_data/, collections - Processes files with front matter through Liquid templating
- Applies layouts (wrapping content in layout HTML)
- Compiles Sass/SCSS to CSS
- Copies static assets unchanged
- Writes everything to
_site/
Understanding this flow makes it clear why _ directories are special (processed by Jekyll) while assets/ is not (copied as-is), and why changes to _config.yml require a restart.
Remote themes are one of the most convenient ways to use a Jekyll theme — especially on GitHub Pages. Instead of installing a theme as a Ruby gem, you reference it directly from its GitHub repository. The hosting platform (GitHub Pages, Netlify, Cloudflare Pages) fetches the theme files at build time and applies them to your site.
What is a remote theme?
A remote theme is a Jekyll theme hosted as a public GitHub repository that you can apply to your site without manually copying its files. You reference it with a single remote_theme setting in _config.yml.
This is different from installing a theme as a gem (gem "minima" in your Gemfile). With remote themes:
- You do not need to add a gem to your
Gemfilefor the theme - The theme files are fetched from GitHub at each build
- You can use any version-compatible public Jekyll repository as a theme
- Updating the theme means changing one line in
_config.yml
The jekyll-remote-theme plugin
Remote themes are powered by the jekyll-remote-theme plugin, maintained by GitHub. It is automatically enabled on GitHub Pages. For other platforms (Netlify, Cloudflare Pages, Vercel), you add it yourself.
Setting up on GitHub Pages
GitHub Pages has jekyll-remote-theme built in. Just add remote_theme to _config.yml:
remote_theme: mmistakes/minimal-mistakes
That is the complete setup. No Gemfile changes, no plugin installation.
Setting up on other platforms
Add the plugin to your Gemfile:
group :jekyll_plugins do
gem "jekyll-remote-theme"
end
Add it to _config.yml:
plugins:
- jekyll-remote-theme
remote_theme: mmistakes/minimal-mistakes
Run bundle install and commit Gemfile.lock.
Specifying a remote theme
The remote_theme value follows the format owner/repository:
# Use the latest commit on the default branch
remote_theme: mmistakes/minimal-mistakes
# Pin to a specific tag or release
remote_theme: mmistakes/minimal-mistakes@4.26.0
# Pin to a specific branch
remote_theme: mmistakes/minimal-mistakes@master
# Pin to a specific commit SHA (most stable)
remote_theme: mmistakes/minimal-mistakes@d9c6f33
Pinning to a version is strongly recommended for production sites. Without pinning, your site rebuilds with whatever is the latest commit on the theme’s default branch — a theme update could unexpectedly change your site’s appearance.
Popular themes available as remote themes
These themes are widely used and fully support remote_theme:
| Theme | remote_theme value |
Best for |
|---|---|---|
| Minimal Mistakes | mmistakes/minimal-mistakes |
Blogs, documentation |
| Just the Docs | just-the-docs/just-the-docs |
Documentation |
| Cayman | pages-themes/cayman@v0.2.0 |
Project pages |
| Slate | pages-themes/slate@v0.2.0 |
Project pages |
| Minima | jekyll/minima |
Simple blogs |
| al-folio | alshedivat/al-folio |
Academic portfolios |
Customising a remote theme
The power of remote themes is that you can override any file from the theme without touching the theme’s repository. Jekyll’s file resolution works like this: your files take precedence over the theme’s files.
To override a theme file, create the same file in your project. Jekyll uses yours and ignores the theme’s version.
Overriding a layout
If the theme has _layouts/post.html and you want to customise it:
- Copy the file from the theme’s GitHub repository
- Place it at
_layouts/post.htmlin your project - Modify it as needed
Your _layouts/post.html now overrides the theme’s.
Overriding an include
# Theme's version (not in your repo)
_includes/nav.html
# Your override (in your repo — takes precedence)
_includes/nav.html ← your custom nav
Adding custom CSS
Most remote themes look for a assets/css/style.scss or similar entry point. Add your custom styles:
// assets/css/custom.scss
---
---
// Import the theme's base styles
@import "{{ site.theme }}";
// Your overrides
.site-header {
background: #1a1a2e;
}
.post-title {
font-family: "Georgia", serif;
}
For Minimal Mistakes specifically, add to _config.yml:
# Minimal Mistakes custom CSS
head_scripts:
- /assets/css/custom.css
Or create _sass/custom.scss and import it in the theme’s skin file.
Customising theme configuration
Remote themes typically expose configuration options via _config.yml. Check the theme’s documentation for available settings:
# Minimal Mistakes theme settings
minimal_mistakes_skin: "dark" # or: air, aqua, contrast, default, dirt, neon, mint, plum, sunrise
# Site navigation
header_pages:
- about.md
- contact.md
# Author profile
author:
name: Marcus Webb
avatar: /assets/images/avatar.jpg
bio: "Developer and technical writer."
links:
- label: GitHub
icon: "fab fa-fw fa-github"
url: "https://github.com/marcuswebb"
Remote themes vs gem-based themes vs downloaded themes
| Remote theme | Gem theme | Downloaded theme | |
|---|---|---|---|
| Files in your repo | No | No | Yes |
| Easy updates | Yes (change one line) | Yes (update gem version) | No (manual) |
| Full customisation | Yes (override files) | Yes (override files) | Yes (edit directly) |
| Works on GitHub Pages | Yes | Whitelist only | Yes |
| Requires internet at build | Yes | No | No |
| Build time impact | Slightly slower | Minimal | Minimal |
When to use a remote theme
- You want a well-maintained community theme without vendoring its files
- You are on GitHub Pages and the theme is not a whitelisted gem
- You want easy updates by changing a version pin in
_config.yml
When to use a gem theme
- Your platform supports all gems (Netlify, Cloudflare Pages)
- The theme is distributed as a gem on RubyGems
- You want offline builds without fetching from GitHub
When to download and own the theme files
- You plan to heavily customise the theme beyond small overrides
- You want no external dependency at build time
- You bought a premium theme and have the source files
Building on top of a remote theme
Many sites use a remote theme as a foundation and add content on top:
my-jekyll-site/
├── _config.yml ← remote_theme: mmistakes/minimal-mistakes
├── _posts/ ← your content
├── _pages/ ← your pages
├── _data/ ← your data files
├── _layouts/ ← any layout overrides
├── _includes/ ← any include overrides
├── _sass/ ← custom styles
└── assets/
└── images/ ← your images
The theme provides the layout, CSS, and JavaScript. You provide the content and any customisations. The separation is clean.
Common remote theme issues
Build fails: “Remote theme error”
The most common cause is a rate limit on the GitHub API. Remote themes fetch from GitHub at build time; too many builds in a short window can hit unauthenticated API limits.
Fix: Set a GITHUB_TOKEN environment variable in your build platform. This uses authenticated API requests with higher limits:
# Netlify / Cloudflare Pages environment variable
GITHUB_TOKEN: your_github_personal_access_token
Theme files not updating
If you pinned to a branch (@main) and updated the remote theme, old cached files may still be served. Clear your build platform’s cache or pin to the latest commit SHA.
CSS not loading after customisation
Check your baseurl in _config.yml. Remote themes often have hardcoded paths that conflict with a non-empty baseurl. For a root-domain site, baseurl: "" is correct.
Layout not found
If you reference a layout that exists in the remote theme but get a “layout not found” error, ensure jekyll-remote-theme is listed in your plugins array (for non-GitHub Pages platforms) and in your Gemfile.
Switching themes
Switching remote themes is as simple as changing one line in _config.yml:
# Before
remote_theme: mmistakes/minimal-mistakes
# After
remote_theme: pages-themes/cayman@v0.2.0
Rebuild your site. The new theme applies immediately. Note that any layout names, front matter variables, or configuration keys specific to the old theme may not exist in the new one — you will likely need to update those as well.
Remote themes on GitHub Pages
GitHub Pages enables jekyll-remote-theme by default since 2017. Any public GitHub repository with a valid Jekyll theme structure can be used as a remote theme.
This is particularly useful for using themes that are not on the GitHub Pages gem whitelist — which only includes about 15 official themes. With remote_theme, the entire Jekyll ecosystem is available.
Remote themes are one of the easiest ways to get a professional Jekyll site up and running quickly. Combined with selective file overrides and _config.yml customisation, you can build a unique site on top of a polished theme foundation without managing hundreds of theme files yourself.
_config.yml is the single most important file in a Jekyll project. It controls everything: your site’s URL, which plugins run, how collections are defined, what files are excluded from builds, and any custom data you want available across every template. Understanding it thoroughly is essential for anyone building or customising a Jekyll site.
File location and format
_config.yml lives at the root of your Jekyll project:
my-jekyll-site/
├── _config.yml ← here
├── _posts/
├── _layouts/
├── _includes/
└── index.html
It uses YAML format — indented key-value pairs. Two spaces per indent level, no tabs.
Important: Jekyll reads _config.yml only at startup. If you change it while running jekyll serve, you must restart the server to see the changes take effect. Content changes in posts and pages hot-reload automatically; config changes do not.
Essential site settings
# Site identity
title: "JekyllHub"
description: "A marketplace for premium and free Jekyll themes."
# URLs — critical to get right
url: "https://jekyllhub.com" # your production domain with scheme
baseurl: "" # subdirectory, if any (e.g. "/blog")
# Contact
email: hello@jekyllhub.com
url vs baseurl
This distinction trips up many Jekyll users.
url is your site’s root domain: https://jekyllhub.com. It is used to construct absolute URLs (for RSS feeds, sitemaps, canonical tags).
baseurl is a subdirectory path if your site does not live at the root of the domain. For a site at https://username.github.io/my-project/, set baseurl: "/my-project". For a site at the root, leave it empty: baseurl: "".
In templates, always use the relative_url or absolute_url filters instead of hardcoding paths — they automatically prepend baseurl:
<a href="{{ '/about/' | relative_url }}">About</a>
<link rel="canonical" href="{{ page.url | absolute_url }}">
Build settings
# Build
source: . # where Jekyll reads files (default: current dir)
destination: _site # where Jekyll writes output (default: _site)
# Markdown
markdown: kramdown
highlighter: rouge # syntax highlighting engine
# Kramdown options
kramdown:
input: GFM # GitHub Flavoured Markdown
hard_wrap: false
syntax_highlighter: rouge
syntax_highlighter_opts:
block:
line_numbers: true
# Liquid
liquid:
error_mode: warn # warn | strict | lax
strict_filters: false
strict_variables: false
Plugins
List all plugins in the plugins key:
plugins:
- jekyll-feed # generates /feed.xml RSS feed
- jekyll-seo-tag # adds meta tags, OG tags, JSON-LD
- jekyll-sitemap # generates /sitemap.xml
- jekyll-paginate-v2 # pagination for posts
- jekyll-redirect-from # add redirects via front matter
- jekyll-archives # generates category and tag archive pages
Plugins must also be in your Gemfile:
group :jekyll_plugins do
gem "jekyll-feed"
gem "jekyll-seo-tag"
gem "jekyll-sitemap"
gem "jekyll-paginate-v2"
end
GitHub Pages note: GitHub Pages only supports a specific list of whitelisted plugins. If deploying to GitHub Pages, check the whitelist. For full plugin support, use Cloudflare Pages, Netlify, or Vercel with a build step.
Collections
Collections let you create custom content types beyond posts and pages:
collections:
themes:
output: true # generate individual pages for each item
permalink: /themes/:name/ # URL pattern
authors:
output: true
permalink: /authors/:name/
showcase:
output: false # data only, no individual pages
With this configuration, files in _themes/ generate pages at /themes/minimal-mistakes/, etc. Files in _showcase/ are available as site.showcase but do not generate pages.
Front matter defaults
Avoid repeating the same front matter on every post with defaults:
defaults:
# All posts get layout: post and author: Marcus Webb
- scope:
path: ""
type: posts
values:
layout: post
author: Marcus Webb
toc: true
featured: false
comments: true
# All pages get layout: page
- scope:
path: ""
type: pages
values:
layout: page
# Theme collection items get layout: theme
- scope:
path: ""
type: themes
values:
layout: theme
# Files in a specific directory
- scope:
path: "guides"
values:
layout: guide
sidebar: true
# A specific file
- scope:
path: "index.html"
values:
layout: home
Specificity rules: more specific scopes override less specific ones. A file-level front matter value always wins over any default.
Excluding and including files
By default, Jekyll excludes dotfiles, Gemfile, Gemfile.lock, node_modules, and a few others. Customise with:
# Exclude from build output
exclude:
- .sass-cache/
- .jekyll-cache/
- Gemfile
- Gemfile.lock
- node_modules/
- vendor/
- "*.sh"
- README.md
- package.json
- package-lock.json
- tools/
- CHANGELOG.md
# Include files that would otherwise be excluded
include:
- _redirects # Netlify/Cloudflare redirects file
- _headers # Cloudflare/Netlify headers file
- .htaccess # Apache config (dotfile, excluded by default)
Pagination
Using jekyll-paginate-v2:
pagination:
enabled: true
per_page: 12
permalink: "/page/:num/"
title: ":title - Page :num"
sort_field: "date"
sort_reverse: true
# Enable autopages for categories and tags
autopages:
enabled: true
categories:
enabled: true
permalink: "/category/:cat/"
layouts:
- "category.html"
tags:
enabled: false
SEO and analytics settings
Using jekyll-seo-tag:
# Used by jekyll-seo-tag
title: "JekyllHub"
tagline: "Find Your Perfect Jekyll Theme"
description: "Browse free and premium Jekyll themes for blogs, portfolios, and business sites."
url: "https://jekyllhub.com"
logo: /assets/images/logo.png
author:
name: Marcus Webb
email: marcus@jekyllhub.com
twitter: marcuswebb
twitter:
username: jekyllhub
card: summary_large_image
social:
name: JekyllHub
links:
- https://twitter.com/jekyllhub
- https://github.com/jekyllhub
# Analytics (custom keys — not built-in Jekyll)
google_analytics: "G-XXXXXXXXXX"
plausible_domain: "jekyllhub.com"
# Newsletter (custom)
sendy_url: "https://sendpress.org/s/subscribe"
sendy_list_id: "YOUR_LIST_ID"
Jekyll Feed settings
feed:
posts_limit: 20
excerpt_only: false
collections:
- posts
Sass/SCSS settings
sass:
sass_dir: _sass # where .scss partials live
style: compressed # compressed | expanded | nested | compact
load_paths:
- _sass
- node_modules # if using npm packages
Custom data available in all templates
Any key in _config.yml is available as site.keyname throughout all templates. Use this to store site-wide settings:
# Custom site settings
nav_links:
- title: Browse Themes
url: /themes/
- title: Blog
url: /blog/
- title: Showcase
url: /showcase/
social_links:
github: https://github.com/jekyllhub
twitter: https://twitter.com/jekyllhub
support_email: support@jekyllhub.com
theme_submission_url: /submit/
Access in templates:
{% raw %}
{% for link in site.nav_links %}
<a href="{{ link.url }}">{{ link.title }}</a>
{% endfor %}
<a href="{{ site.social_links.github }}">GitHub</a>
{% endraw %}
Environment-specific configuration
Use multiple config files for different environments:
# _config.yml (base, committed to repo)
title: "JekyllHub"
url: "https://jekyllhub.com"
google_analytics: ""
# _config.development.yml (local overrides, not committed)
url: "http://localhost:4000"
google_analytics: ""
Run Jekyll with multiple configs — later files override earlier ones:
# Development
bundle exec jekyll serve --config _config.yml,_config.development.yml
# Production
JEKYLL_ENV=production bundle exec jekyll build
Serving options
Settings for jekyll serve:
# Local server
port: 4000
host: "127.0.0.1"
livereload: true # auto-refresh browser on changes
open_url: true # open browser automatically
# Show drafts during development
show_drafts: false # set to true or use --drafts flag
future: false # show posts with future dates
unpublished: false # show unpublished posts
Timezone
timezone: "Europe/London" # IANA timezone name
This affects how page.date is interpreted and how dates are formatted. Set it to your local timezone to avoid date-off-by-one issues.
Permalink structure
# For posts
permalink: /:categories/:year/:month/:day/:title/
# Common permalink styles:
permalink: pretty # /year/month/day/title/
permalink: date # /year/month/day/title.html
permalink: ordinal # /year/ordinal/title.html
permalink: weekdate # /year/week/short_day/title/
permalink: none # /title.html
A common setup for blogs:
permalink: /blog/:title/
This gives clean, category-free URLs like /blog/jekyll-front-matter-guide/.
Full example _config.yml
# ─── Site Identity ───────────────────────────────────────────────────────
title: "JekyllHub"
tagline: "Find Your Perfect Jekyll Theme"
description: "A marketplace for premium and free Jekyll themes — for blogs, portfolios, documentation, and business sites."
url: "https://jekyllhub.com"
baseurl: ""
email: hello@jekyllhub.com
author: "Marcus Webb"
logo: /assets/images/logo.png
# ─── Build ───────────────────────────────────────────────────────────────
timezone: "Europe/London"
markdown: kramdown
highlighter: rouge
permalink: /blog/:title/
kramdown:
input: GFM
syntax_highlighter: rouge
# ─── Plugins ─────────────────────────────────────────────────────────────
plugins:
- jekyll-feed
- jekyll-seo-tag
- jekyll-sitemap
- jekyll-paginate-v2
- jekyll-redirect-from
# ─── Collections ─────────────────────────────────────────────────────────
collections:
themes:
output: true
permalink: /themes/:name/
authors:
output: true
permalink: /authors/:name/
# ─── Defaults ────────────────────────────────────────────────────────────
defaults:
- scope:
path: ""
type: posts
values:
layout: post
toc: true
featured: false
- scope:
path: ""
type: pages
values:
layout: page
- scope:
path: ""
type: themes
values:
layout: theme
- scope:
path: ""
type: authors
values:
layout: author
# ─── Pagination ──────────────────────────────────────────────────────────
pagination:
enabled: true
per_page: 12
permalink: "/page/:num/"
sort_field: date
sort_reverse: true
# ─── Analytics ───────────────────────────────────────────────────────────
google_analytics: "G-XXXXXXXXXX"
# ─── Newsletter ──────────────────────────────────────────────────────────
sendy_url: "https://sendpress.org/s/subscribe"
sendy_list_id: ""
sendy_waitlist_id: ""
# ─── Exclude ─────────────────────────────────────────────────────────────
exclude:
- Gemfile
- Gemfile.lock
- node_modules/
- vendor/
- tools/
- package.json
- README.md
include:
- _redirects
- _headers
The _config.yml file is the control panel of your Jekyll site. Mastering it means being able to change almost any aspect of how Jekyll builds and serves your content without touching a single template file.
Installing a Jekyll theme takes minutes. Undoing a bad choice takes hours. Before you run bundle install, it is worth spending ten minutes checking these ten things — they will tell you whether a theme is genuinely well built or just good-looking in a screenshot.
1. Responsive Design — Actually Test It
Every theme claims to be responsive. Most are, to some degree. But “responsive” ranges from “barely not broken on mobile” to “carefully designed for every breakpoint.”
Open the live demo and resize your browser window from wide to narrow. Watch specifically for:
- Navigation — does the hamburger menu work smoothly, or is it an afterthought?
- Typography — does text remain readable at small sizes, or does it shrink too small?
- Images — do they scale properly, or do they overflow their containers?
- Tables and code blocks — do they scroll horizontally, or do they break the layout?
Also use your browser’s DevTools to simulate a real mobile device. Desktop responsive simulation and actual mobile rendering are not the same.
2. GitHub Pages Compatibility
If you want to host on GitHub Pages for free, this is a hard constraint. GitHub Pages runs Jekyll in safe mode — only a specific list of plugins are allowed.
Check the theme’s _config.yml and Gemfile for plugins. If you see anything beyond this standard set, it will not build on GitHub Pages without a CI/CD workaround:
plugins:
- jekyll-feed
- jekyll-sitemap
- jekyll-seo-tag
- jekyll-paginate
- jekyll-relative-links
Plugins like jekyll-assets, jekyll-webp, or custom generators will fail. If the theme uses them but you want GitHub Pages, you will need GitHub Actions to build and deploy — which is doable but adds complexity.
3. Last Commit Date
Check the GitHub repository. When was the last commit?
- Under 6 months — actively maintained
- 6–18 months — likely fine, minor risk
- Over 18 months — proceed carefully, check open issues
- Over 3 years — high risk of incompatibility with Jekyll 4.x
An abandoned theme will not keep up with Jekyll updates, browser changes, or security fixes. At some point it will stop building correctly, and you will have no upstream to pull fixes from.
4. Jekyll Version Compatibility
Related to maintenance — check which version of Jekyll the theme targets. Open the Gemfile or _config.yml and look for a Jekyll version constraint:
gem "jekyll", "~> 4.3"
If the theme was built for Jekyll 2.x or early 3.x, it may use deprecated Liquid syntax, old plugin APIs, or layout structures that have changed. A quick check is to look at the README — does it mention Jekyll 4? Does it use {% raw %}{{ content }}{% endraw %} in _layouts/default.html? Old themes sometimes use the pre-3.0 layout syntax.
5. Documentation Quality
Read the README before installing anything. A well-documented theme should cover:
- Installation — gem-based or direct file copy, Gemfile requirements
- Configuration — what goes in
_config.yml, with example values - Front matter — what fields each layout accepts
- Customisation — how to override styles or layouts without editing theme files
- Deployment — any hosting-specific notes
If the README is a screenshot and a link to the demo, expect to spend significant time reverse-engineering how the theme works. That is fine if you enjoy that kind of exploration — but it is a real time cost.
6. Performance — Check the Real Numbers
Open the live demo in Chrome and run Lighthouse (DevTools → Lighthouse tab). Check the Performance score and specifically look at:
- First Contentful Paint — should be under 1.5s
- Largest Contentful Paint — should be under 2.5s
- Total Blocking Time — should be under 300ms
- Page weight — open the Network tab and check total transfer size
A Jekyll theme has no excuse to be slow. It generates static HTML — if a theme is loading multiple large JavaScript bundles, external font files, or unoptimised images, those are design choices you will carry into production.
7. Accessibility Basics
You do not need to run a full WCAG audit, but checking a few basics takes two minutes and tells you a lot about the quality of the code:
Keyboard navigation — press Tab through the live demo. Can you reach every link and button? Does the focus ring appear?
Colour contrast — use your browser’s accessibility panel or a tool like WebAIM’s contrast checker on the body text and background. WCAG AA requires a 4.5:1 ratio for normal text.
Image alt text — look at the theme’s image includes. Do they use alt="{{ image.alt }}" or alt=""? Blank alt text is sometimes intentional for decorative images, but it should not be a blanket default.
Heading structure — is there one <h1> per page? Do headings follow a logical hierarchy without skipping levels?
Themes that fail basic accessibility checks reveal poor attention to detail in the underlying code.
8. SEO Structure
A Jekyll theme should output clean HTML that search engines can parse easily. Check:
jekyll-seo-tag support — does the theme include {% raw %}{% seo %}{% endraw %} in the <head>? This plugin handles title tags, meta descriptions, Open Graph tags, and Twitter cards automatically.
Canonical URLs — does the theme output <link rel="canonical"> tags? This prevents duplicate content issues.
Structured heading hierarchy — as above, one <h1> per page, used for the post or page title.
RSS feed — does the theme include a link to an RSS/Atom feed? This is important for discoverability and feed aggregators.
Sitemap — does it support jekyll-sitemap for automatic sitemap generation?
9. Browser Support
Most modern Jekyll themes support current browsers without issue, but it is worth checking if your audience includes users on older browsers or specific platforms.
Open the live demo in Firefox, Safari, and Chrome — at minimum. Look for any rendering differences in fonts, layout, or interactive elements. Some themes use CSS features (like container queries or newer selectors) that have uneven support.
If you have analytics from a previous site, check what browsers your audience actually uses before deciding how much weight to give this.
10. Licence and Usage Rights
This one is easy to forget until it matters. Check the theme’s licence before using it commercially:
- MIT — most permissive, use for anything including commercial projects
- GPL — copyleft, your site’s code may need to be open source
- CC BY — requires attribution, fine for most use cases
- No licence — legally, all rights reserved; do not use commercially without permission
Premium themes typically come with a commercial licence for a set number of sites. Read it carefully if you are building for a client or plan to run ads or sell products on the site.
The Quick Checklist
Run through these before committing:
- Tested on mobile — navigation, typography, images all work
- Confirmed GitHub Pages compatible (or alternative build pipeline planned)
- Last commit within 18 months
- Targets Jekyll 4.x
- README covers installation, configuration, and customisation
- Lighthouse performance score above 80
- Passes keyboard navigation and contrast checks
- Includes
jekyll-seo-tagand outputs canonical URLs - Tested in Firefox and Safari, not just Chrome
- Licence permits your intended use
A theme that passes all ten is genuinely worth installing. Most themes will pass most of them — the checklist helps you spot the two or three that matter for your specific situation.
Next step: How to Install a Jekyll Theme. Jekyll has two ways to reuse HTML across your site: layouts and includes. Both reduce repetition, but they work differently and serve different purposes. Understanding when to reach for each one is key to building a clean, maintainable Jekyll site.
The short version
- Layouts wrap content — they are the outer shell (nav, header, footer,
<html>) - Includes are embedded fragments — reusable chunks pulled into a template at a specific point
A layout is used once per page and applied from the outside. An include is embedded from the inside, anywhere you need it, as many times as you like.
Layouts in detail
Layouts live in _layouts/ and are applied via front matter:
---
layout: post
---
A layout wraps a page’s content using the {{ content }} variable:
<!-- _layouts/post.html -->
---
layout: default
---
<article class="post">
<h1>{{ page.title }}</h1>
{{ content }} ← the post's Markdown renders here
</article>
Key characteristics of layouts:
- Applied by the page/post via front matter — the content does not choose what goes around it, the layout does
- Can inherit from other layouts (layout stacking)
- Only one layout per page
- Contain major structural sections
Includes in detail
Includes live in _includes/ and are pulled into any template using the include tag:
{% raw %}
{% include nav.html %}
{% include footer.html %}
{% include components/card.html %}
{% endraw %}
A layout file using includes:
{% raw %}
<!-- _layouts/default.html -->
<!DOCTYPE html>
<html lang="en">
<head>
{% include head.html %}
</head>
<body>
{% include nav.html %}
{{ content }}
{% include footer.html %}
</body>
</html>
{% endraw %}
Key characteristics of includes:
- Pulled in using {% raw %}
{% include %}{% endraw %} from anywhere — layouts, other includes, page content - Can be used multiple times on one page
- Can receive parameters (variables)
- Contain specific UI components or repeating fragments
A concrete example
Imagine a post page with the following sections:
┌─────────────────────────────────────┐
│ <head> meta, CSS, title │ ← head.html (include)
│─────────────────────────────────────│
│ Navigation bar │ ← nav.html (include)
│─────────────────────────────────────│
│ Article header (title, date) │ ┐
│ Article body content │ │ post.html (layout)
│ Author bio │ │ using includes:
│ Related posts │ │ - author-bio.html
│─────────────────────────────────────│ │ - related-posts.html
│ Footer │ ┘
└─────────────────────────────────────┘ ← footer.html (include)
The layout (post.html, inheriting from default.html) provides the outer structure. The includes are the discrete components within that structure.
Passing variables to includes
Includes accept parameters, making them more flexible than layouts:
{% raw %}
{% include components/card.html
title=theme.title
url=theme.url
image=theme.card_image
price=theme.price %}
{% endraw %}
Inside _includes/components/card.html, the variables are accessed via include.variable_name:
{% raw %}
<!-- _includes/components/card.html -->
<div class="card">
{% if include.image %}
<img src="{{ include.image | relative_url }}" alt="{{ include.title }}">
{% endif %}
<h3><a href="{{ include.url }}">{{ include.title }}</a></h3>
{% if include.price == 0 %}
<span class="badge">Free</span>
{% else %}
<span class="price">${{ include.price }}</span>
{% endif %}
</div>
{% endraw %}
Layouts cannot receive parameters this way — they work with the page’s front matter variables.
When to use a layout
Use a layout when you need to wrap an entire page in a consistent outer structure. Layouts answer the question: “What shell does this type of page use?”
Good candidates for layouts:
default.html— the base HTML shell for all pagespost.html— article structure for blog postspage.html— standard content page structuretheme.html— theme detail page with gallery and sidebarhome.html— homepage with hero and special sections
Rule of thumb: if every page of that type shares the same outer structure, it is a layout.
When to use an include
Use an include for any reusable fragment that appears in multiple templates, or any component complex enough to extract for readability.
Good candidates for includes:
nav.html— navigation bar (used in every layout)footer.html— footer (used in every layout)head.html—<head>contents (meta, CSS, SEO tags)analytics.html— analytics scriptscomponents/card.html— a theme card used in gridsauthor-bio.html— author bio block used in postsrelated-posts.html— related posts sectionnewsletter-form.html— newsletter signup form
Rule of thumb: if you paste the same HTML in more than one place, extract it to an include.
Using includes inside page content
Includes can be used inside Markdown content, not just in layout files. This is useful for embedding repeating components mid-article:
Here is a callout box:
{% raw %}{% include callout.html type="warning" text="This changed in Jekyll 4.0." %}{% endraw %}
And here is a code block:
The callout.html include renders inline wherever the tag appears.
Organising your _includes folder
For anything beyond a simple site, organise includes into subdirectories:
_includes/
├── head.html
├── nav.html
├── footer.html
├── analytics.html
├── components/
│ ├── card.html
│ ├── badge.html
│ └── breadcrumb.html
├── sections/
│ ├── home-hero.html
│ ├── home-newsletter.html
│ └── home-featured.html
└── partials/
├── author-bio.html
├── related-posts.html
└── share-buttons.html
Reference subdirectory includes with the path:
{% raw %}
{% include components/card.html title=theme.title %}
{% include sections/home-hero.html %}
{% endraw %}
Include variables and scope
Variables defined inside an include are local to that include — they do not leak into the parent template. Variables from the parent are accessible in the include via page, site, and layout:
{% raw %}
<!-- _includes/author-bio.html -->
{% assign author = site.authors | where: "name", page.author | first %}
{% if author %}
<div class="author-bio">
<img src="{{ author.avatar }}" alt="{{ author.name }}">
<p>{{ author.bio }}</p>
</div>
{% endif %}
{% endraw %}
The page.author variable comes from the post’s front matter. The include accesses it as part of the normal Liquid scope.
Performance: cacheify repeated includes
If an include is used many times on one page (such as a card component inside a loop), Jekyll processes it once per call. For complex includes in large loops, simplify the include or pre-compute values with Liquid assign outside the loop.
{% raw %}
{% comment %} Pre-assign outside the loop {% endcomment %}
{% assign sorted_themes = site.themes | sort: "stars" | reverse %}
{% for theme in sorted_themes %}
{% include components/card.html theme=theme %}
{% endfor %}
{% endraw %}
The difference in one sentence
A layout is the house; an include is a piece of furniture. The layout determines the structure and surrounds the content; includes are discrete components placed within that structure.
Most Jekyll sites need both: a small set of layouts (3–5) and a larger set of includes (10–20+). Knowing which to use in each situation is what keeps your templates readable and easy to maintain as your site grows. Layouts are Jekyll’s template system — reusable HTML wrappers that surround your content. Every page on your Jekyll site uses a layout, even if you have not thought about it explicitly. Understanding how layouts work, and how to structure them, is one of the most important skills in Jekyll development.
What is a layout?
A layout is an HTML file in the _layouts/ directory that contains a {{ content }} placeholder. When Jekyll builds a page, it takes the page’s content and injects it wherever {{ content }} appears in the layout.
{% raw %}
<!-- _layouts/default.html -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{{ page.title }} | {{ site.title }}</title>
<link rel="stylesheet" href="{{ '/assets/css/main.css' | relative_url }}">
</head>
<body>
{% include nav.html %}
<main>
{{ content }}
</main>
{% include footer.html %}
</body>
</html>
{% endraw %}
When this layout is applied to a post, {{ content }} is replaced with the post’s rendered HTML. The <head>, navigation, and footer appear on every page that uses this layout.
The _layouts directory
All layouts live in _layouts/ at your project root:
_layouts/
├── default.html # base layout
├── page.html # for standard pages
├── post.html # for blog posts
├── theme.html # for theme collection items
└── home.html # for the homepage
Jekyll looks for the layout file specified in front matter — layout: post maps to _layouts/post.html.
Applying a layout
Specify a layout in the front matter of any page, post, or collection item:
---
layout: post
title: "My Blog Post"
---
Post content here.
Or use _config.yml defaults to apply layouts automatically to entire directories or types:
# _config.yml
defaults:
- scope:
type: posts
values:
layout: post
- scope:
type: pages
values:
layout: page
With this in place, you do not need to specify layout: in every post’s front matter.
Layout inheritance
The most powerful Jekyll layout feature is inheritance — a layout can itself use another layout. This lets you build a hierarchy that avoids repetition.
The base layout
Start with a default.html that contains everything common to all pages: <html>, <head>, nav, footer:
{% raw %}
<!-- _layouts/default.html -->
<!DOCTYPE html>
<html lang="{{ page.lang | default: 'en' }}">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
{% seo %}
<link rel="stylesheet" href="{{ '/assets/css/main.css' | relative_url }}">
{% include analytics.html %}
</head>
<body class="{% if page.dark %}dark{% endif %}">
{% include nav.html %}
{{ content }}
{% include footer.html %}
<script src="{{ '/assets/js/main.js' | relative_url }}" defer></script>
</body>
</html>
{% endraw %}
A child layout
A post.html layout adds post-specific structure — the article wrapper, header, and sidebar — and uses default.html as its parent via front matter:
{% raw %}
<!-- _layouts/post.html -->
---
layout: default
---
<div class="container post-container">
<article class="post">
<header class="post__header">
<div class="post__meta">
<span>{{ page.category }}</span>
<time>{{ page.date | date: "%B %-d, %Y" }}</time>
</div>
<h1 class="post__title">{{ page.title }}</h1>
{% if page.description %}
<p class="post__description">{{ page.description }}</p>
{% endif %}
{% if page.image %}
<img src="{{ page.image | relative_url }}" alt="{{ page.title }}" class="post__hero">
{% endif %}
</header>
<div class="post__body">
{{ content }}
</div>
</article>
{% include sidebar.html %}
</div>
{% endraw %}
When a blog post uses layout: post, Jekyll:
- Renders the post’s Markdown content to HTML
- Injects it into
post.htmlat{{ content }} - Renders the resulting HTML
- Injects that into
default.htmlat{{ content }}
This nesting can go as deep as you need.
A typical layout hierarchy
default.html ← base: <html>, <head>, nav, footer
├── page.html ← adds: container, optional sidebar
├── post.html ← adds: article header, author info, TOC
├── home.html ← adds: hero section, no standard container
└── theme.html ← adds: gallery, price sidebar, details
Each child adds only what it needs; the parent handles the shared shell.
Accessing variables in layouts
Layouts have access to three levels of data:
page variables — front matter from the current page:
{{ page.title }}
{{ page.description }}
{{ page.author }}
{{ page.date | date: "%B %-d, %Y" }}
site variables — data from _config.yml and the site as a whole:
{{ site.title }}
{{ site.description }}
{{ site.url }}
{{ site.posts }} — all posts
{{ site.themes }} — all items in the themes collection
layout variables — front matter from the layout file itself:
{{ layout.title }}
{{ layout.sidebar }}
Conditional content in layouts
Use Liquid conditionals to show or hide layout sections based on page front matter:
{% raw %}
<!-- _layouts/post.html -->
---
layout: default
---
<article>
{{ content }}
{% if page.toc %}
{% include toc.html %}
{% endif %}
{% if page.show_author != false %}
{% include author-bio.html %}
{% endif %}
{% if page.related_posts != false %}
{% include related-posts.html %}
{% endif %}
</article>
{% endraw %}
Now individual posts can opt out of sections without modifying the layout:
---
layout: post
title: "My Post"
toc: false # hide table of contents
related_posts: false # hide related posts
---
Passing data from pages to layouts
Any front matter variable in the page is accessible in the layout. Use this to customise layout behaviour per page:
---
layout: page
title: "Homepage"
hero_image: /assets/images/hero.webp
hero_title: "Find Your Perfect Jekyll Theme"
hero_cta: "Browse Themes"
hero_cta_url: /themes/
body_class: "homepage"
---
{% raw %}
<!-- _layouts/page.html -->
---
layout: default
---
{% if page.hero_image %}
<section class="hero" style="background-image: url('{{ page.hero_image | relative_url }}')">
<h1>{{ page.hero_title | default: page.title }}</h1>
{% if page.hero_cta %}
<a href="{{ page.hero_cta_url }}" class="btn">{{ page.hero_cta }}</a>
{% endif %}
</section>
{% endif %}
<main class="{{ page.body_class }}">
{{ content }}
</main>
{% endraw %}
Layout-level front matter
Layouts can have their own front matter, accessible via {{ layout.* }} in includes:
<!-- _layouts/post.html -->
---
layout: default
sidebar: true
show_comments: true
---
This is useful for setting defaults that applies to all pages using a layout, which individual pages can override.
The none layout
To render a file with no layout at all — just raw content — set:
---
layout: none
---
Or use an empty string:
---
layout: ""
---
Useful for: JSON data files, XML sitemaps, text files, or any output that should not be wrapped in HTML.
Example: Building a complete layout system
Here is a complete, practical layout hierarchy for a Jekyll blog:
_layouts/default.html — the shell:
{% raw %}
---
# no layout — this is the base
---
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
{% seo %}
<link rel="stylesheet" href="{{ '/assets/css/main.css' | relative_url }}">
</head>
<body>
{% include nav.html %}
{{ content }}
{% include footer.html %}
<script src="{{ '/assets/js/main.js' | relative_url }}" defer></script>
</body>
</html>
{% endraw %}
_layouts/page.html — for standard pages:
---
layout: default
---
<main class="container page-container">
<h1>{{ page.title }}</h1>
{{ content }}
</main>
_layouts/post.html — for blog posts:
{% raw %}
---
layout: default
---
<main class="container">
<article class="post">
<h1>{{ page.title }}</h1>
<time>{{ page.date | date: "%B %-d, %Y" }}</time>
{{ content }}
</article>
{% include related-posts.html %}
</main>
{% endraw %}
_layouts/home.html — for the homepage only:
{% raw %}
---
layout: default
---
{% include home-hero.html %}
{% include featured-themes.html %}
{{ content }}
{% include home-newsletter.html %}
{% endraw %}
This structure is clear, maintainable, and easy to extend. Adding a new page type means adding one layout file — not editing a monolithic template.
Tips for clean layouts
Keep layouts thin. Layouts should structure content — not contain it. Move repeating blocks to _includes/.
Use meaningful layout names. post, page, theme, author are clear. layout1, template_v2 are not.
Default to default. Most child layouts should inherit from default.html, not from each other. Deep chains (default → page → section → content) become hard to follow.
Test with no layout. If a layout-related bug appears, temporarily set layout: none on the affected page to isolate whether the issue is in the content or the layout.
Understanding Jekyll’s layout system is what separates a collection of Markdown files from a real, maintainable website. Once the hierarchy is in place, adding new page types or changing the global structure becomes a matter of editing one file. <!DOCTYPE html>
Jekyll Front Matter: The Complete Guide
Everything you need to know about Jekyll front matter — YAML syntax, built-in variables, custom fields, defaults, and real-world examples for posts, pages, and collections.
Front matter is how Jekyll knows what to do with a file. Without it, Jekyll treats a file as a static asset and copies it unchanged. With it, Jekyll processes the file through its template engine, applies a layout, and builds a page with all the data you specified.
Understanding front matter is foundational to using Jekyll effectively. This guide covers everything from basic syntax to advanced defaults.
What is front matter?
Front matter is a block of YAML at the top of a file, enclosed between triple-dashed lines:
---
layout: post
title: "My First Post"
date: 2026-07-29
---
Content goes here.
The triple dashes are required — both opening and closing. Jekyll strips the front matter block before rendering the content and makes all the variables available in your Liquid templates.
Any file in a Jekyll site that has front matter (even empty front matter ---
---) is processed by Jekyll. Files without front matter are copied as-is.
YAML basics
Front matter uses YAML (YAML Ain’t Markup Language). You only need to know a handful of YAML patterns to write effective front matter.
Strings:
title: "My Post Title"
title: My Post Title # quotes are optional for simple strings
description: "A post about Jekyll front matter — the basics and beyond."
Numbers:
nav_order: 3
weight: 10
Booleans:
published: true
featured: false
toc: true
Lists (arrays):
tags:
- jekyll
- tutorial
- yaml
# Or inline:
tags: [jekyll, tutorial, yaml]
Nested objects:
author:
name: Marcus Webb
email: marcus@example.com
twitter: marcuswebb
Multiline strings:
description: >
This is a long description that spans
multiple lines but will be joined into
a single paragraph.
excerpt: |
This preserves
line breaks
exactly.
Built-in Jekyll front matter variables
Jekyll recognises several variable names and uses them specially:
layout
Specifies which layout file from _layouts/ to use:
layout: post # uses _layouts/post.html
layout: page # uses _layouts/page.html
layout: default # uses _layouts/default.html
layout: none # no layout — render content only
If omitted, Jekyll uses no layout (renders content only). Most files should specify a layout.
title
The page title. Available as Jekyll Front Matter: The Complete Guide in templates and used by jekyll-seo-tag for the <title> element:
title: "Jekyll Front Matter: The Complete Guide"
date
For posts in _posts/, the date is normally part of the filename (2026-07-29-my-post.md). You can override or supplement it with a front matter date:
date: 2026-07-29
date: 2026-07-29 14:30:00 +0100 # with time and timezone
The date variable sets page.date, which is used for sorting posts and for display in templates.
published
Controls whether Jekyll includes the page in the build output:
published: false # page is excluded from build
published: true # page is included (default)
Drafts in _drafts/ are automatically excluded unless you run jekyll serve --drafts.
permalink
Overrides Jekyll’s default URL for the page:
permalink: /about/
permalink: /blog/:year/:month/:title/
permalink: /themes/minimal/
Available :placeholders for posts: :year, :month, :day, :title, :categories, :slug.
categories and tags
Categorise and tag your content:
categories: Tutorial
categories:
- Tutorial
- Jekyll
tags: [front-matter, yaml, jekyll]
categories affects the default URL of posts (/tutorial/2026/07/29/my-post/). tags do not affect URLs.
excerpt
By default, Jekyll uses the first paragraph of a post as its excerpt. Override with:
excerpt: "A short custom summary for use in post listings and meta descriptions."
last_modified_at
Used by jekyll-seo-tag and jekyll-sitemap to set the <lastmod> value:
last_modified_at: 2026-07-29
Custom front matter variables
Any variable you add to front matter becomes available in your templates as page.variable_name:
---
layout: post
title: "My Post"
author: Marcus Webb
reading_time: 8
featured_image: /assets/images/hero.webp
show_newsletter: true
difficulty: beginner
---
In your templates:
<p>By {{ page.author }} · {{ page.reading_time }} min read</p>
{% if page.featured_image %}
<img src="{{ page.featured_image }}" alt="{{ page.title }}">
{% endif %}
{% if page.show_newsletter %}
{% include newsletter-form.html %}
{% endif %}
This pattern is powerful — you can add any metadata to a page and use it anywhere in your templates without touching layout files.
Front matter in different file types
Posts (_posts/)
---
layout: post
title: "How to Install a Jekyll Theme"
description: "Step-by-step guide to installing any Jekyll theme in under 10 minutes."
date: 2026-07-29
last_modified_at: 2026-07-29
image: /assets/images/blog/install-jekyll-theme.webp
author: Marcus Webb
category: Tutorial
tags: [jekyll, themes, tutorial]
featured: false
toc: true
---
Pages (_pages/ or root)
---
layout: page
title: "About JekyllHub"
description: "The story behind JekyllHub — a marketplace for Jekyll themes."
permalink: /about/
nav_order: 4
---
Collection items (_themes/, _authors/, etc.)
---
layout: theme
title: "Minimal Mistakes"
github_url: https://github.com/mmistakes/minimal-mistakes
stars: 12800
price: 0
category: Blog
tags: [responsive, dark-mode, sidebar]
---
Layouts and includes
Layouts and includes can also have front matter, but it is rarely used. One exception: layout inheritance.
---
layout: default # This layout itself uses another layout
---
Front matter defaults
Repeating the same front matter on every post is tedious. Jekyll’s defaults feature lets you set front matter values globally in _config.yml:
# _config.yml
defaults:
# Default for all posts
- scope:
path: ""
type: posts
values:
layout: post
author: Marcus Webb
toc: true
featured: false
# Default for all pages
- scope:
path: ""
type: pages
values:
layout: page
# Default for a specific directory
- scope:
path: "_themes"
type: themes
values:
layout: theme
# Default for files matching a path pattern
- scope:
path: "guides/**"
values:
layout: guide
show_sidebar: true
With these defaults set, you do not need to specify layout: post or author: Marcus Webb on every post — Jekyll applies them automatically. Front matter in the file still overrides defaults.
Specificity: More specific scopes override less specific ones. A post-level default overrides a site-wide default. Front matter in the file overrides both.
Accessing front matter in templates
All front matter variables are available in Liquid templates:
<!-- In the layout file -->
<h1>{{ page.title }}</h1>
<p>{{ page.description }}</p>
<time>{{ page.date | date: "%B %-d, %Y" }}</time>
<!-- Conditional display -->
{% if page.toc %}
{% include toc.html %}
{% endif %}
<!-- Iteration over arrays -->
{% for tag in page.tags %}
<span class="tag">{{ tag }}</span>
{% endfor %}
<!-- Nested objects -->
{{ page.author.name }}
{{ page.author.twitter }}
Accessing front matter from other pages
You can loop through all pages or posts and access their front matter:
<!-- List all posts with their metadata -->
{% for post in site.posts %}
<article>
<h2><a href="{{ post.url }}">{{ post.title }}</a></h2>
<p>{{ post.description }}</p>
{% if post.featured %}
<span class="badge">Featured</span>
{% endif %}
</article>
{% endfor %}
<!-- Filter by front matter value -->
{% assign featured_posts = site.posts | where: "featured", true %}
{% for post in featured_posts %}
<a href="{{ post.url }}">{{ post.title }}</a>
{% endfor %}
Common front matter patterns
Hiding a page from navigation while keeping it live
---
layout: page
title: "Thank You"
permalink: /thank-you/
sitemap: false
---
Overriding the excerpt
---
layout: post
title: "My Post"
excerpt: "This custom excerpt appears in post listings and meta descriptions instead of the first paragraph."
---
Specifying an OG image for social sharing
---
layout: post
title: "My Post"
image: /assets/images/blog/my-post.webp
---
With jekyll-seo-tag, image is automatically used as the Open Graph image.
Controlling the canonical URL
---
layout: post
title: "My Post"
canonical_url: "https://original-source.com/my-post/"
---
Useful if you are syndicating content from another site.
Validating front matter
YAML syntax errors in front matter cause Jekyll build errors. Common mistakes:
Unquoted colons: A colon in a value must be quoted.
# Bad
title: Jekyll: The Complete Guide
# Good
title: "Jekyll: The Complete Guide"
Tab characters: YAML uses spaces, not tabs. Always indent with spaces.
Inconsistent list formatting:
# Bad — mixing inline and block style
tags: [jekyll
tutorial]
# Good
tags: [jekyll, tutorial]
# Or
tags:
- jekyll
- tutorial
Run bundle exec jekyll build --verbose to see detailed error output when front matter parsing fails.
Front matter is the connective tissue of a Jekyll site — it is how content communicates with templates. Mastering it unlocks the full power of Jekyll’s data-driven architecture.
<!DOCTYPE html>
How to Deploy a Jekyll Site to Firebase Hosting (2026 Guide)
Deploy Jekyll to Firebase Hosting — complete setup with the Firebase CLI, firebase.json config, custom domains, URL rewrites, and GitHub Actions automation.
Firebase Hosting is Google’s static hosting platform — part of the Firebase suite alongside Firestore, Auth, and Cloud Functions. For a Jekyll site, it offers a fast global CDN, free SSL, a generous free tier, and seamless integration if you are already using other Firebase services. Here is how to set it up.
Why Firebase Hosting for Jekyll
- Free tier — 10GB storage, 10GB/month transfer (Spark plan), unlimited for pay-as-you-go
- Fast global CDN — Google’s infrastructure, same network used by Google’s own products
- Instant rollbacks — every deployment is versioned; roll back to any previous version in one click
- Preview channels — deploy to temporary preview URLs before going live
- Firebase integration — pair your Jekyll site with Firestore, Auth, or Cloud Functions if needed
- Custom domain + SSL — free certificate provisioning
Prerequisites
- A Jekyll site with a
Gemfileand committedGemfile.lock - Node.js installed (required for the Firebase CLI)
- A Firebase account (free at firebase.google.com, uses your Google account)
- A Firebase project created in the Firebase console
Step 1: Create a Firebase project
- Go to console.firebase.google.com
- Click Add project
- Enter a project name (e.g.
jekyllhub) - Disable Google Analytics if you do not need it (you can add it later)
- Click Create project
Step 2: Install the Firebase CLI
npm install -g firebase-tools
Verify the installation:
firebase --version
Log in:
firebase login
This opens a browser for Google OAuth authentication.
Step 3: Initialise Firebase in your Jekyll project
In your Jekyll project root:
firebase init hosting
The CLI walks you through setup:
? Which Firebase project do you want to associate with this directory?
> Use an existing project
> jekyllhub (jekyllhub)
? What do you want to use as your public directory?
> _site
? Configure as a single-page app (rewrite all urls to /index.html)?
> No
? Set up automatic builds and deploys with GitHub?
> No (we will set this up manually later)
? File _site/404.html already exists. Overwrite?
> No
This creates two files: firebase.json and .firebaserc.
Step 4: Configure firebase.json
The generated firebase.json is a starting point. Customise it:
{
"hosting": {
"public": "_site",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"cleanUrls": true,
"trailingSlash": true,
"headers": [
{
"source": "/assets/**",
"headers": [
{
"key": "Cache-Control",
"value": "public, max-age=31536000, immutable"
}
]
},
{
"source": "**/*.html",
"headers": [
{
"key": "Cache-Control",
"value": "no-cache"
},
{
"key": "X-Content-Type-Options",
"value": "nosniff"
},
{
"key": "X-Frame-Options",
"value": "DENY"
}
]
}
],
"redirects": [
{
"source": "/old-post/",
"destination": "/new-post/",
"type": 301
}
],
"rewrites": [
{
"source": "**",
"destination": "/404.html"
}
]
}
}
Key settings explained:
cleanUrls: true— serves/about/index.htmlwhen someone visits/aboutor/about/trailingSlash: true— adds trailing slashes to URLs (matches Jekyll’s default URL structure)headers— sets HTTP headers per file pattern (long cache for assets, no-cache for HTML)redirects— 301 or 302 redirects processed at the CDNrewrites— the catch-all to404.htmlhandles unknown URLs
Step 5: Build and deploy
Build your Jekyll site:
JEKYLL_ENV=production bundle exec jekyll build
Deploy to Firebase:
firebase deploy --only hosting
Firebase uploads _site/ to its CDN and gives you a live URL:
✔ Deploy complete!
Project Console: https://console.firebase.google.com/project/jekyllhub/overview
Hosting URL: https://jekyllhub.web.app
Your site is immediately live at your-project.web.app and your-project.firebaseapp.com.
Step 6: Add a custom domain
- In the Firebase console, go to Hosting → Add custom domain
- Enter your domain (e.g.
jekyllhub.com) - Firebase shows DNS records to add:
- Two A records for the root domain pointing to Firebase’s IP addresses
- A CNAME for
wwwpointing toyour-project.web.app
- Add these records at your domain registrar
- Firebase provisions an SSL certificate automatically once DNS propagates
You can add multiple custom domains at no charge on both the Spark (free) and Blaze (pay-as-you-go) plans.
Step 7: Use preview channels
Firebase preview channels let you deploy to a temporary URL for review before going live — similar to Netlify’s deploy previews:
# Deploy to a named preview channel
firebase hosting:channel:deploy staging
# Output:
# ✔ hosting:jekyllhub:staging: Channel URL (expires 7 days): https://jekyllhub--staging-abc123.web.app
Preview channels expire after 7 days by default. Useful for reviewing design changes before merging to main.
# List active channels
firebase hosting:channel:list
# Delete a channel when done
firebase hosting:channel:delete staging
Step 8: Instant rollback
Every Firebase deployment is stored as a versioned release. Roll back to a previous version instantly:
- Firebase console → Hosting → Release history
- Find the release you want to restore
- Click ⋮ → Rollback to this release
The rollback is instant — Firebase just updates its CDN pointers to the previous build.
Or via CLI:
firebase hosting:clone jekyllhub:live jekyllhub:live --version=VERSION_ID
Automate with GitHub Actions
# .github/workflows/deploy.yml
name: Deploy Jekyll to Firebase
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: "3.2"
bundler-cache: true
- name: Build Jekyll
run: JEKYLL_ENV=production bundle exec jekyll build
- name: Deploy to Firebase (production)
if: github.ref == 'refs/heads/main'
uses: FirebaseExtended/action-hosting-deploy@v0
with:
repoToken: "$"
firebaseServiceAccount: "$"
channelId: live
projectId: jekyllhub
- name: Deploy PR preview
if: github.event_name == 'pull_request'
uses: FirebaseExtended/action-hosting-deploy@v0
with:
repoToken: "$"
firebaseServiceAccount: "$"
projectId: jekyllhub
# No channelId = creates a preview channel automatically
Generate a Firebase service account
- Firebase console → Project settings → Service accounts
- Click Generate new private key → Download the JSON file
- Add the entire JSON as a GitHub secret named
FIREBASE_SERVICE_ACCOUNT
The GitHub Actions workflow then posts a comment on each PR with the preview URL — the same experience as Netlify deploy previews.
Using rewrites for dynamic routes
If you want to add Firebase Cloud Functions alongside your Jekyll static site (for example, a contact form handler or a newsletter API endpoint), use rewrites:
{
"hosting": {
"public": "_site",
"rewrites": [
{
"source": "/api/subscribe",
"function": "newsletterSubscribe"
},
{
"source": "/api/contact",
"function": "contactForm"
},
{
"source": "**",
"destination": "/404.html"
}
]
}
}
This routes /api/* requests to Cloud Functions while serving everything else as static Jekyll output — a clean way to add dynamic behaviour to a static site without reaching for a full backend.
Firebase Hosting free tier limits
| Resource | Spark (Free) | Blaze (Pay-as-you-go) |
|---|---|---|
| Storage | 10 GB | $0.026/GB |
| Transfer/month | 10 GB | $0.15/GB |
| Custom domains | Multiple | Multiple |
| SSL certificates | Free | Free |
| Preview channels | Yes | Yes |
| Cloud Functions rewrites | No | Yes |
For a personal blog or small project, the free Spark plan is likely sufficient. For a high-traffic site, switch to Blaze (pay-as-you-go) — there is no monthly fee, you only pay for what you use above the free limits.
Troubleshooting
firebase: command not found
Run npm install -g firebase-tools and ensure your npm global bin directory is in your PATH.
Deploy fails with Error: HTTP Error: 400
Run firebase login --reauth to refresh your authentication token.
Clean URLs not working
Ensure "cleanUrls": true is in firebase.json and you have run firebase deploy after making the change.
CSS/JS returning 404
Verify that _site/assets/ was generated by Jekyll before deploying. Check _config.yml does not exclude your assets directory.
Custom domain shows Firebase default page
DNS propagation can take up to 48 hours. Use dig yourdomain.com A to check if the records have propagated. The Firebase console also shows domain verification status.
Firebase Hosting is a solid choice for Jekyll if you are already in the Google/Firebase ecosystem or want built-in preview channels and instant rollbacks. For pure static site hosting without Firebase integration, Cloudflare Pages or Netlify are simpler to set up. But if you need to pair Jekyll with Firebase services — Auth, Firestore, Functions — Firebase Hosting is the natural fit.
<!DOCTYPE html>
How to Deploy a Jekyll Site to AWS (S3 + CloudFront Guide)
Host your Jekyll site on AWS S3 with CloudFront CDN — a complete guide covering S3 bucket setup, CloudFront distribution, custom domains with Route 53, SSL, and CI/CD with GitHub Actions.
Deploying a Jekyll site to AWS gives you enterprise-grade infrastructure with granular control over every aspect of your hosting. The standard setup combines S3 (storage) with CloudFront (CDN) — effectively the same architecture that powers large commercial sites, available for a Jekyll blog at a cost that is often under $1 per month.
Why deploy Jekyll to AWS
- Near-zero cost — S3 + CloudFront for a typical Jekyll blog costs $0.10–$2/month depending on traffic
- Enterprise reliability — AWS S3 has 99.999999999% durability; CloudFront has 450+ global edge locations
- Full control — custom cache policies, custom headers, Lambda@Edge for edge functions
- No vendor lock-in — standard HTTP hosting, easy to migrate
- Scales infinitely — handles 10 visitors or 10 million with the same configuration
The trade-off: setup is more involved than Netlify or Cloudflare Pages. It is the right choice when you need maximum control or are already using AWS for other infrastructure.
Architecture overview
Browser → CloudFront (CDN, SSL, caching)
↓
S3 Bucket (static file storage)
CloudFront serves files from the edge closest to each visitor. On cache miss, it fetches from S3. S3 stores your _site/ output.
AWS services used
- S3 — stores your static files
- CloudFront — CDN and HTTPS termination
- ACM (Certificate Manager) — free SSL/TLS certificates
- Route 53 (optional) — DNS management
- IAM — access credentials for automated deploys
Step 1: Build your Jekyll site
JEKYLL_ENV=production bundle exec jekyll build
Verify _site/ contains your built output before proceeding.
Step 2: Create an S3 bucket
- Go to the AWS S3 console
- Click Create bucket
- Set Bucket name to your domain (e.g.
jekyllhub.com) — use lowercase only - Set AWS Region to the region closest to you (e.g.
us-east-1) - Under Block Public Access, uncheck Block all public access (CloudFront needs to read the files)
- Acknowledge the warning and click Create bucket
Enable static website hosting
- Click your bucket → Properties tab
- Scroll to Static website hosting → Edit
- Select Enable
- Set Index document:
index.html - Set Error document:
404.html - Save
Note the Bucket website endpoint — you will need it for CloudFront.
Add a bucket policy for public read access
In your bucket → Permissions tab → Bucket policy → Edit, paste:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::jekyllhub.com/*"
}
]
}
Replace jekyllhub.com with your bucket name.
Step 3: Upload your site to S3
Using the AWS CLI (recommended — much faster than the console for many files):
# Install AWS CLI if not already installed
pip install awscli
# Configure with your credentials
aws configure
# Sync your _site/ folder to S3
aws s3 sync _site/ s3://jekyllhub.com --delete --cache-control "public, max-age=86400" --exclude "*.html" --exclude "*.xml" --exclude "*.json"
# Upload HTML files with no-cache (so updates are seen immediately)
aws s3 sync _site/ s3://jekyllhub.com --delete --cache-control "no-cache, no-store, must-revalidate" --include "*.html" --include "*.xml" --include "*.json"
This two-pass approach caches assets (CSS, JS, images) aggressively while ensuring HTML is always fresh.
Step 4: Request an SSL certificate in ACM
- Go to the ACM console — must be in us-east-1 (CloudFront requires this)
- Click Request a certificate → Request a public certificate
- Add your domain names:
jekyllhub.comandwww.jekyllhub.com - Choose DNS validation
- Click Request
- Add the CNAME records shown to your DNS provider
- Wait for status to show Issued (usually 5–30 minutes)
Step 5: Create a CloudFront distribution
- Go to the CloudFront console
- Click Create distribution
- Under Origin:
- Origin domain: Paste your S3 website endpoint (not the bucket ARN — use the website endpoint that looks like
jekyllhub.com.s3-website-us-east-1.amazonaws.com) - Protocol: HTTP only (S3 website endpoints do not support HTTPS origin — CloudFront handles SSL at the edge)
- Origin domain: Paste your S3 website endpoint (not the bucket ARN — use the website endpoint that looks like
- Under Default cache behavior:
- Viewer protocol policy: Redirect HTTP to HTTPS
- Allowed HTTP methods: GET, HEAD
- Cache policy: CachingOptimized
- Under Settings:
- Alternate domain names (CNAMEs): Add
jekyllhub.comandwww.jekyllhub.com - Custom SSL certificate: Select the ACM certificate you just created
- Default root object:
index.html
- Alternate domain names (CNAMEs): Add
- Click Create distribution
The distribution takes 5–15 minutes to deploy globally. You will see a CloudFront domain like d1234abcd.cloudfront.net.
Step 6: Configure DNS
If using Route 53:
- Create a hosted zone for your domain
- Create an A record as an alias pointing to your CloudFront distribution
- Update your domain registrar to use Route 53 nameservers
If using another DNS provider:
- Create a CNAME record:
www→d1234abcd.cloudfront.net - For the root domain, use your registrar’s ALIAS or ANAME feature pointing to the CloudFront domain
Step 7: Handle clean URLs and 404s
Jekyll generates about/index.html for a page at /about/. CloudFront serves index.html at the root but not in subdirectories by default — navigating directly to /about/ returns a 403.
Fix this with a CloudFront Function:
- Go to CloudFront → Functions → Create function
- Name it
jekyll-url-rewrite - Paste this code:
function handler(event) {
var request = event.request;
var uri = request.uri;
// Add index.html to directory requests
if (uri.endsWith("/")) {
request.uri += "index.html";
} else if (!uri.includes(".")) {
request.uri += "/index.html";
}
return request;
}
- Click Save changes → Publish
- In your CloudFront distribution → Behaviors → Edit → Function associations → Viewer request → select your function
This rewrites /about/ to /about/index.html at the edge before CloudFront looks up the file.
Step 8: Automate deploys with GitHub Actions
# .github/workflows/deploy.yml
name: Deploy Jekyll to AWS
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: "3.2"
bundler-cache: true
- name: Build Jekyll site
run: JEKYLL_ENV=production bundle exec jekyll build
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: $
aws-secret-access-key: $
aws-region: us-east-1
- name: Sync to S3 (assets — long cache)
run: |
aws s3 sync _site/ s3://$ --delete --cache-control "public, max-age=31536000, immutable" --exclude "*.html" --exclude "*.xml" --exclude "*.json" --exclude "*.txt"
- name: Sync to S3 (HTML — no cache)
run: |
aws s3 sync _site/ s3://$ --cache-control "no-cache, no-store, must-revalidate" --include "*.html" --include "*.xml" --include "*.json" --include "*.txt"
- name: Invalidate CloudFront cache
run: |
aws cloudfront create-invalidation --distribution-id $ --paths "/*"
Add these secrets to your GitHub repository:
AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYS3_BUCKET(your bucket name)CLOUDFRONT_DISTRIBUTION_ID
Create an IAM user for GitHub Actions
Never use your root AWS credentials in GitHub Actions. Create a dedicated IAM user:
- IAM → Users → Create user → name it
jekyll-deploy - Attach this policy directly:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["s3:PutObject", "s3:DeleteObject", "s3:ListBucket"],
"Resource": [
"arn:aws:s3:::jekyllhub.com",
"arn:aws:s3:::jekyllhub.com/*"
]
},
{
"Effect": "Allow",
"Action": "cloudfront:CreateInvalidation",
"Resource": "arn:aws:cloudfront::YOUR_ACCOUNT_ID:distribution/YOUR_DISTRIBUTION_ID"
}
]
}
- Create access keys for this user and store them as GitHub secrets.
Cost estimate
For a typical Jekyll blog with 10,000 monthly visitors:
| Service | Monthly cost |
|---|---|
| S3 storage (100MB) | ~$0.002 |
| S3 requests | ~$0.05 |
| CloudFront data transfer (1GB) | ~$0.085 |
| CloudFront requests (100k) | ~$0.008 |
| ACM certificate | Free |
| Route 53 hosted zone | $0.50 |
| Total | ~$0.65/month |
CloudFront has a free tier: 1TB data transfer and 10 million requests per month free for the first 12 months.
Troubleshooting
403 Forbidden on CloudFront
Check the bucket policy allows s3:GetObject for all principals, and you used the S3 website endpoint (not the REST endpoint) as the CloudFront origin.
Subdirectory pages return 403 or 404
Ensure you have the CloudFront Function rewriting URLs to index.html — see Step 7.
Old content still showing after deploy
The CloudFront cache invalidation in the GitHub Actions workflow clears this. If running manually, create an invalidation for /* in the CloudFront console.
SSL certificate not available in CloudFront
ACM certificates must be in the us-east-1 region to be usable with CloudFront. If you created it in another region, request a new one in us-east-1.
AWS S3 + CloudFront is the most scalable and cost-effective way to host a Jekyll site when you need full control over your infrastructure. The setup is more complex than Netlify or Cloudflare Pages, but once the GitHub Actions workflow is in place, deployments are fully automated.
<!DOCTYPE html>
How to Pick the Perfect Jekyll Theme for Your Website
Learn how to choose the right Jekyll theme for your blog, portfolio, documentation site, or business — with a step-by-step framework and key questions to ask before you commit.
Picking a Jekyll theme feels simple until you are staring at hundreds of options and realise they all look good in the screenshots. The wrong choice means hours of customisation to undo design decisions baked into the theme — or starting over entirely.
This guide gives you a clear framework for choosing the right Jekyll theme the first time, based on your site type, goals, and technical comfort level.
Start with Your Site Type
The single most important filter is what kind of site you are building. Jekyll themes are rarely one-size-fits-all, and the best theme for a technical blog is terrible for a photography portfolio.
Blog — You need a theme with a clean reading experience, good typography, category and tag support, and an RSS feed. Look for themes that handle long-form content well: readable line lengths, sensible heading hierarchy, and code block styling if you write technical content.
Portfolio — Visual hierarchy matters most. Look for full-width project pages, image galleries, and minimal navigation chrome that keeps the focus on your work. Many portfolio themes include a case study layout — check whether that matches how you want to present projects.
Documentation — You need a persistent sidebar navigation, good heading anchors, a search function, and clean code blocks. Just-the-Docs is the dominant choice here, but several alternatives exist depending on whether you need versioning or multi-language support.
Personal site — The most flexible category. A personal site usually combines a short bio, a project list, and a blog. Look for themes that handle all three sections without forcing you to choose between them.
Business or agency — You want landing page sections: hero, features, testimonials, pricing, and a contact form. Most Jekyll themes are blog-first, so business-specific themes are rarer. Check that the theme includes the sections you need before committing.
Resume or CV — Prioritise print styles, clean single-page layouts, and easy content structure. Many resume themes use YAML data files for your experience and skills, which makes updating straightforward.
Define Your Non-Negotiables
Before browsing themes, write down three to five things your site absolutely must have. Examples:
- Dark mode support
- GitHub Pages compatibility (no custom plugins)
- Built-in search
- Multi-author support
- Specific colour scheme or aesthetic
Having this list prevents you from falling in love with a beautiful theme that is missing something critical.
Check GitHub Pages Compatibility
If you plan to host on GitHub Pages, this is a hard constraint. GitHub Pages runs Jekyll in safe mode, which blocks custom plugins. Many powerful themes — especially those with advanced search, image processing, or custom generators — require plugins that will not run on GitHub Pages.
Check the theme’s documentation for a “GitHub Pages compatible” note. If it requires a Gemfile with plugins beyond the standard set, you will need to use GitHub Actions or switch to Netlify or Cloudflare Pages to build it.
Evaluate the Demo Carefully
Screenshots lie. A well-designed screenshot can hide a poorly implemented theme. When you look at the live demo, check:
Resize the browser. Does it handle mobile and tablet well, or does it just avoid being broken? Look at the navigation on small screens — hamburger menus that are clunky to use will frustrate your visitors.
Open the browser’s network panel. Check how many requests load and what the page weight is. A theme loading 20 external resources and 500kb of JavaScript is going to hurt your Core Web Vitals.
Read a long piece of content. Go to the blog or docs section and read a full post. Is the typography comfortable? Is the line length sensible (roughly 60–80 characters per line)? Do the headings give clear hierarchy?
Test the dark mode if it exists. Some themes claim dark mode support but implement it poorly — wrong contrast ratios, missed elements, or a jarring switch. Toggle it and check every page type.
Read the Documentation Before Installing
A theme with great documentation is worth ten times a theme with no documentation. Good documentation tells you:
- How to configure the theme in
_config.yml - What front matter fields each layout accepts
- How to override styles without editing the theme source
- Whether the theme uses a gem or direct file installation
- What plugins are required
If the README is two paragraphs and a screenshot, expect to spend significant time reverse-engineering the theme to do anything non-trivial.
Check the Maintenance Record
An abandoned Jekyll theme is a liability. Check the GitHub repository:
- When was the last commit? Anything over 18 months ago is a warning sign.
- Are there open issues with no response? Specifically look for issues about Jekyll version compatibility.
- Does the theme support the current Jekyll version (4.x)? Themes written for Jekyll 2.x or 3.x often need fixes to work correctly today.
- How many open pull requests are there? A large backlog of unmerged PRs suggests the maintainer is not active.
Stars are a rough proxy for popularity, not quality — some well-maintained themes have modest star counts, and some popular but abandoned themes still have thousands of stars from years ago.
Match the Theme to Your Technical Level
Themes vary enormously in how much configuration they expect. Some install with three lines and look good immediately. Others are highly configurable but require you to understand Jekyll collections, SCSS variables, and Liquid templating to get the most out of them.
If you are new to Jekyll: Choose a theme with clear documentation, a working demo you can clone and run locally, and a small surface area. Minima (the default) or Chirpy for blogs, or Just-the-Docs for documentation, are well-documented and actively maintained.
If you are comfortable with Jekyll: You can consider more complex themes with advanced layouts, multiple collections, and deep configuration. Minimal Mistakes is the gold standard here — highly configurable, very well documented, and used by hundreds of thousands of sites.
If you are a developer building for a client: Prioritise themes with clean, readable code you can extend. Look at the Liquid templates and SCSS — do they follow sensible conventions you can hand off to another developer?
Free vs Premium: When to Pay
Free themes cover the majority of use cases well. The main reasons to consider a premium theme are:
- You need a specific design or feature set that does not exist in free options
- You want responsive support from the theme author
- You are building for a client and need a professional, polished result with minimal effort
- The time saved by a well-built premium theme justifies the cost compared to customising a free one
Premium themes should come with documentation, a clear support policy, and ideally a changelog showing active updates. If a premium theme has not been updated in over a year and offers no support, it is probably not worth buying over a well-maintained free alternative.
A Simple Decision Framework
Run through these questions before committing to a theme:
- Does it match my site type (blog, portfolio, docs, business)?
- Is it GitHub Pages compatible — or am I comfortable with an alternative build pipeline?
- Does the live demo hold up on mobile and under a slow connection?
- Has it been updated in the last 12 months?
- Does the documentation cover what I need to know?
- Are there open issues that suggest the theme is broken or abandoned?
- Does it support my non-negotiable features (dark mode, search, etc.)?
If a theme passes all seven, it is worth installing and testing. If it fails more than two, move on — there are enough quality themes available that you do not need to compromise on fundamentals.
Where to Find Quality Jekyll Themes
JekyllHub — curated directory with quality filtering, demo links, and author information. Free and premium options across every category.
GitHub Topics — search jekyll-theme to browse community themes, sorted by stars. Useful for finding niche options not on curated directories.
Jekyll’s official themes page — a short list of officially endorsed themes, useful as a baseline reference.
RubyGems — search for jekyll-theme- to find gem-based themes you can install with a single line in your Gemfile.
Choosing the right theme is worth taking seriously — it affects how your content reads, how your site performs, and how much time you spend maintaining it. A well-chosen theme should feel invisible: it presents your content clearly and gets out of the way.
Once you have picked your theme, see our guide on how to install a Jekyll theme and how to customise a Jekyll theme to get up and running.
<!DOCTYPE html>
How to Deploy a Jekyll Site to Vercel (2026 Guide)
Deploy Jekyll to Vercel — step-by-step setup, vercel.json configuration, custom domains, environment variables, and the Vercel CLI.
Vercel is best known as the home of Next.js, but it works equally well for Jekyll sites. Its build infrastructure is fast, the developer experience is polished, and its free tier is generous. If you want a simple Git-connected deploy with a great CLI, Vercel is worth considering.
Why Vercel for Jekyll
- Automatic Git deploys — push to GitHub, GitLab, or Bitbucket and Vercel deploys automatically
- Preview URLs for every PR — every pull request gets a unique shareable preview
- Fast global CDN — Vercel’s Edge Network serves files from locations worldwide
- Vercel CLI — deploy from your terminal with a single command
- Free tier — 100GB bandwidth/month, unlimited personal projects
- Zero config needed — Vercel detects Jekyll automatically
Prerequisites
- A Jekyll site in a GitHub, GitLab, or Bitbucket repository
- A
Gemfilewith your dependencies - A Vercel account (free at vercel.com)
Step 1: Prepare your repository
Ensure you have a Gemfile at the project root:
source "https://rubygems.org"
gem "jekyll", "~> 4.3"
gem "jekyll-feed"
gem "jekyll-seo-tag"
gem "jekyll-sitemap"
Run bundle install and commit the lockfile:
bundle install
git add Gemfile Gemfile.lock
git commit -m "Add Gemfile for Vercel"
git push
Step 2: Import your project to Vercel
- Go to vercel.com/new
- Click Continue with GitHub (or GitLab/Bitbucket) and authorise Vercel
- Find your Jekyll repository and click Import
- Vercel detects the framework as Jekyll and pre-fills:
- Framework Preset: Jekyll
- Build Command:
jekyll build - Output Directory:
_site - Install Command:
bundle install
- Click Deploy
That is it for a basic setup. Vercel runs bundle install then jekyll build and publishes _site/.
Step 3: Create a vercel.json configuration file
For more control, add a vercel.json to your repository root:
{
"buildCommand": "jekyll build",
"outputDirectory": "_site",
"installCommand": "bundle install",
"framework": "jekyll",
"env": {
"JEKYLL_ENV": "production"
},
"headers": [
{
"source": "/assets/(.*)",
"headers": [
{
"key": "Cache-Control",
"value": "public, max-age=31536000, immutable"
}
]
},
{
"source": "/(.*)",
"headers": [
{
"key": "X-Frame-Options",
"value": "DENY"
},
{
"key": "X-Content-Type-Options",
"value": "nosniff"
}
]
}
],
"redirects": [
{
"source": "/old-post/",
"destination": "/new-post/",
"permanent": true
}
],
"rewrites": [
{
"source": "/blog/",
"destination": "/blog/index.html"
}
],
"cleanUrls": true,
"trailingSlash": true
}
Commit this file — Vercel picks it up automatically on the next deploy.
Step 4: Set environment variables
In the Vercel dashboard:
- Go to your project → Settings → Environment Variables
- Add variables for each environment (Production, Preview, Development)
Useful variables for a Jekyll project:
| Variable | Value | Environment |
|---|---|---|
JEKYLL_ENV |
production |
Production |
JEKYLL_ENV |
development |
Preview |
RUBY_VERSION |
3.2.2 |
All |
Step 5: Add a custom domain
- In your Vercel project, go to Settings → Domains
- Enter your domain and click Add
- Vercel shows the DNS records to add:
- For the root domain: an A record pointing to
76.76.21.21 - For
www: a CNAME pointing tocname.vercel-dns.com
- For the root domain: an A record pointing to
Add these records at your domain registrar. SSL is provisioned automatically once DNS propagates (usually within minutes).
Configuring redirects in vercel.json
Vercel handles redirects via vercel.json rather than a _redirects file:
{
"redirects": [
{
"source": "/old-url/",
"destination": "/new-url/",
"permanent": true
},
{
"source": "/blog/:year/:month/:day/:slug/",
"destination": "/blog/:slug/",
"permanent": true
}
]
}
"permanent": true sends a 301 redirect. Use false for a 302.
Deploying with the Vercel CLI
The Vercel CLI is one of the best features for developers who prefer working in the terminal:
npm install -g vercel
vercel login
Deploy a preview:
vercel
Deploy to production:
vercel --prod
Pull environment variables to your local .env:
vercel env pull .env.local
The CLI is particularly useful for testing your production build locally before pushing:
JEKYLL_ENV=production bundle exec jekyll build
vercel --prod --prebuilt
Preview deployments and branch deploys
Every push to a non-production branch creates a preview deployment at a unique URL (https://your-project-abc123.vercel.app). Share this URL with teammates or clients for review before merging.
Configure which branches trigger deployments in Settings → Git → Ignored Build Step.
Specifying Ruby version
Vercel uses a default Ruby version for builds. To pin a specific version, create a .ruby-version file in your project root:
3.2.2
Or set it via the RUBY_VERSION environment variable in your Vercel project settings.
Using GitHub Actions with Vercel (advanced)
For complex builds — fetching content from an API, running a pre-build script — use GitHub Actions:
# .github/workflows/deploy.yml
name: Deploy to Vercel
on:
push:
branches: [main]
env:
VERCEL_ORG_ID: $
VERCEL_PROJECT_ID: $
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: "3.2"
bundler-cache: true
- name: Build Jekyll
run: JEKYLL_ENV=production bundle exec jekyll build
- name: Install Vercel CLI
run: npm install -g vercel
- name: Pull Vercel environment
run: vercel pull --yes --environment=production --token=$
- name: Deploy to Vercel
run: vercel deploy --prebuilt --prod --token=$
Vercel vs Netlify vs Cloudflare Pages for Jekyll
| Vercel | Netlify | Cloudflare Pages | |
|---|---|---|---|
| Free bandwidth | 100GB/month | 100GB/month | Unlimited |
| Build minutes | 6,000/month | 300/month | Unlimited |
| Serverless functions | Yes | Yes | Yes (Workers) |
| Form handling | No | Yes (built-in) | No |
| CDN locations | ~70 | ~100 | 300+ |
| CLI quality | Excellent | Good | Good |
Vercel’s free tier includes 6,000 build minutes — significantly more than Netlify’s 300. For teams with frequent deploys, this matters. Cloudflare Pages has truly unlimited builds and the largest CDN, but Vercel’s developer experience and CLI are the smoothest.
Troubleshooting
Build fails with Could not find gem
Ensure Gemfile.lock is committed to your repository. Run bundle install locally and push the lockfile.
404 errors on Jekyll pages
Add "cleanUrls": true and "trailingSlash": true to vercel.json to handle Jekyll’s URL structure correctly.
Assets return 404
Verify _site/ contains your assets folder. Check that no exclude: entries in _config.yml are accidentally excluding asset directories.
Custom domain SSL warning
SSL is provisioned after DNS propagates. Check DNS propagation with dig yourdomain.com A and wait if records are not yet live.
Vercel is a polished, developer-friendly option for Jekyll deployment — especially if you value a great CLI and want generous build minutes on the free tier.
<!DOCTYPE html>
How to Deploy a Jekyll Site to Netlify (Complete 2026 Guide)
Everything you need to deploy Jekyll to Netlify — netlify.toml setup, build environment, custom domains, redirects, Netlify Forms, and environment variables.
Netlify was the platform that made deploying static sites simple and it remains one of the best choices for Jekyll in 2026. Automatic deploys from Git, preview URLs for every pull request, built-in form handling, serverless functions, and a generous free tier make it a strong option for everything from personal blogs to production sites.
Why Netlify for Jekyll
- Git-based deploys — push to GitHub, GitLab, or Bitbucket and Netlify builds automatically
- Preview deployments — every pull request gets a unique live preview URL
- Netlify Forms — handle contact form submissions without a backend
- Netlify Functions — add serverless API endpoints alongside your static site
- Free tier — 100GB bandwidth/month, 300 build minutes/month, unlimited sites
- Split testing — A/B test different branches of your site
Prerequisites
- A Jekyll site in a GitHub, GitLab, or Bitbucket repository
- A
Gemfileand committedGemfile.lockin your repo - A Netlify account (free at netlify.com)
Step 1: Prepare your repository
Ensure your repository has a Gemfile:
source "https://rubygems.org"
gem "jekyll", "~> 4.3"
gem "jekyll-feed"
gem "jekyll-seo-tag"
gem "jekyll-sitemap"
Generate and commit Gemfile.lock:
bundle install
git add Gemfile.lock
git commit -m "Add Gemfile.lock for Netlify"
git push
Step 2: Create a netlify.toml file
The netlify.toml file in your repository root controls every aspect of your Netlify build. Create it now:
[build]
command = "jekyll build"
publish = "_site"
[build.environment]
JEKYLL_ENV = "production"
RUBY_VERSION = "3.2.2"
# Production context — runs on pushes to main
[context.production]
command = "jekyll build"
# Deploy preview context — runs on pull requests
[context.deploy-preview]
command = "jekyll build --drafts"
# Branch deploy context — runs on other branches
[context.branch-deploy]
command = "jekyll build"
[[headers]]
for = "/assets/*"
[headers.values]
Cache-Control = "public, max-age=31536000, immutable"
[[headers]]
for = "/*"
[headers.values]
X-Frame-Options = "DENY"
X-Content-Type-Options = "nosniff"
Commit this file to your repository.
Step 3: Connect to Netlify
- Go to app.netlify.com and log in
- Click Add new site → Import an existing project
- Choose your Git provider (GitHub, GitLab, or Bitbucket) and authorise Netlify
- Select your Jekyll repository
- Netlify detects
netlify.tomland pre-fills the build settings
Review the settings:
- Build command:
jekyll build - Publish directory:
_site
Click Deploy site. Netlify runs the build and your site is live at a URL like random-name-123456.netlify.app.
Step 4: Configure environment variables
For sensitive values (API keys, Sendy list IDs) that should not be in your repository, add them in the Netlify UI:
- Go to Site configuration → Environment variables → Add a variable
- Add key-value pairs
In your Jekyll code, reference them as normal site.* config values. To inject Netlify environment variables into Jekyll at build time, use _config.yml overrides:
# In netlify.toml — pass env var to Jekyll config
[build]
command = "jekyll build --config _config.yml,_config.production.yml"
Create _config.production.yml to merge at build time:
# _config.production.yml — overrides for Netlify production builds
url: "https://jekyllhub.com"
baseurl: ""
Step 5: Set up a custom domain
Option A: Use a domain already with Netlify DNS
- Go to Domain management → Add a domain → enter your domain
- Netlify provisions SSL automatically
Option B: Use a domain registered elsewhere Add a CNAME record with your domain registrar:
- Name:
www - Value:
your-site.netlify.app
For the root domain (@), use an ANAME or ALIAS record pointing to your-site.netlify.app. Not all registrars support ALIAS — Netlify DNS does, and it is free to use.
Redirects with Netlify
Create a _redirects file in your Jekyll source root:
# Redirect non-www to www (or vice versa — pick one)
https://www.jekyllhub.com/* https://jekyllhub.com/:splat 301!
# Redirect old blog URLs
/2025/:month/:day/:slug/ /blog/:slug/ 301
# Proxy an API endpoint (useful for analytics or forms)
/api/* https://your-api.example.com/:splat 200
# Custom 404
/* /404.html 404
Add to _config.yml so Jekyll copies it to _site/:
include:
- _redirects
Netlify processes _redirects at the CDN level — no server involved.
Using Netlify Forms with Jekyll
Netlify Forms let you collect form submissions without a backend. Add a netlify attribute to any HTML form:
<!-- _includes/contact-form.html -->
<form name="contact" method="POST" data-netlify="true" netlify-honeypot="bot-field">
<input type="hidden" name="form-name" value="contact">
<!-- Honeypot field (hidden) -->
<div style="display:none">
<input name="bot-field">
</div>
<label>Name <input type="text" name="name" required></label>
<label>Email <input type="email" name="email" required></label>
<label>Message <textarea name="message" required></textarea></label>
<button type="submit">Send Message</button>
</form>
Netlify detects the data-netlify="true" attribute during the build and wires up form handling. Submissions appear in Forms in your Netlify dashboard, and you can set up email notifications.
Build minutes and the free tier
Netlify’s free tier includes 300 build minutes per month. A typical Jekyll build takes 30–60 seconds, so you have roughly 300–600 deploys per month before any charges.
To reduce build time, add caching to netlify.toml:
[build]
command = "jekyll build"
publish = "_site"
[build.environment]
BUNDLE_PATH = "vendor/bundle"
JEKYLL_ENV = "production"
The BUNDLE_PATH = "vendor/bundle" setting caches your Ruby gems between builds — cutting build time from ~60 seconds to ~10 seconds after the first build.
Deploy with the Netlify CLI
For local testing or CI deployments:
npm install -g netlify-cli
netlify login
netlify deploy --dir=_site --prod
The --prod flag deploys to production. Without it, Netlify creates a draft preview URL.
Useful Netlify features for Jekyll sites
Branch deploys: Any branch pushed to GitHub can have its own Netlify URL. Enable in Site configuration → Build & deploy → Branch deploys.
Deploy notifications: Get a Slack or email notification when deploys succeed or fail. Set up in Site configuration → Build & deploy → Deploy notifications.
Analytics: Netlify Analytics (paid, $9/month) gives server-side analytics with no JavaScript required — accurate data that ad blockers cannot hide.
Large Media: Store large image files in Git LFS and serve them via Netlify’s CDN — keeps your repository size manageable.
Troubleshooting
Bundler::GemNotFound during build
Commit Gemfile.lock and ensure the Ruby version in netlify.toml matches your local environment.
Build succeeds but styles are missing
Check url and baseurl in _config.yml. For a root-domain Netlify site, baseurl should be empty ("").
Form submissions not appearing
Ensure data-netlify="true" is on the <form> tag and the hidden form-name input matches the form’s name attribute. Jekyll must build the page (not exclude it) for Netlify to detect the form.
Redirect loops
Avoid redirecting both www → non-www and non-www → www. Pick one canonical form and redirect only from the other.
Netlify’s balance of simplicity, features, and a generous free tier makes it one of the top choices for Jekyll hosting. The netlify.toml file gives you reproducible, version-controlled build configuration — the same way your Jekyll config works.
<!DOCTYPE html>
How to Deploy a Jekyll Site to Cloudflare Pages (Step-by-Step Guide)
Deploy your Jekyll site to Cloudflare Pages — the fastest global CDN for static sites. A complete guide covering setup, build config, custom domains, and redirects.
Cloudflare Pages is one of the best places to host a Jekyll site in 2026. It is free for unlimited sites, has 300+ CDN locations worldwide, deploys automatically from GitHub or GitLab, and includes built-in DDoS protection from Cloudflare’s network — at no cost. Here is exactly how to set it up.
Why Cloudflare Pages for Jekyll
- Free tier is genuinely unlimited — no bandwidth limits, unlimited sites, unlimited requests
- 300+ CDN edge locations — faster global delivery than GitHub Pages or most competitors
- Automatic HTTPS — SSL certificate provisioned automatically on every domain
- Preview deployments — every pull request gets a unique preview URL
- Built-in redirects and headers — via a
_redirectsfile, no server config needed - Free custom domains — connect any domain you own at no charge
Prerequisites
- A Jekyll site in a GitHub or GitLab repository
- A Cloudflare account (free at cloudflare.com)
- Your repository must have a
Gemfilelisting your gems
Step 1: Prepare your Jekyll project
Cloudflare Pages builds your site using bundle exec jekyll build. Make sure your repository has:
A Gemfile:
source "https://rubygems.org"
gem "jekyll", "~> 4.3"
gem "jekyll-feed"
gem "jekyll-seo-tag"
gem "jekyll-sitemap"
# add any other plugins you use
A Gemfile.lock committed to the repository. Run bundle install locally to generate it:
bundle install
git add Gemfile.lock
git commit -m "Add Gemfile.lock"
git push
Cloudflare Pages requires Gemfile.lock to reproduce your build environment.
Step 2: Connect your repository to Cloudflare Pages
- Log in to dash.cloudflare.com
- Select Workers & Pages from the left sidebar
- Click Create application → Pages → Connect to Git
- Authorise Cloudflare to access your GitHub or GitLab account
- Select your Jekyll repository and click Begin setup
Step 3: Configure the build settings
On the build configuration screen, set:
| Setting | Value |
|---|---|
| Framework preset | Jekyll |
| Build command | jekyll build |
| Build output directory | _site |
Cloudflare automatically detects Jekyll and pre-fills these values. Verify they are correct before continuing.
Setting environment variables
Click Environment variables (advanced) and add:
| Variable | Value |
|---|---|
JEKYLL_ENV |
production |
RUBY_VERSION |
3.2.2 |
The JEKYLL_ENV=production variable enables production-only features in your site (analytics, optimisations). The RUBY_VERSION variable pins the Ruby version Cloudflare uses for the build.
To check which Ruby versions Cloudflare supports, refer to their build image documentation.
Step 4: Deploy
Click Save and Deploy. Cloudflare clones your repository, runs bundle exec jekyll build, and publishes the _site folder to its CDN. The first build typically takes 60–90 seconds.
You will see a live deployment URL in the format your-project.pages.dev — your site is immediately live on Cloudflare’s network.
Step 5: Add a custom domain
- In your Pages project, go to Custom domains → Set up a custom domain
- Enter your domain (e.g.
jekyllhub.com) - Cloudflare adds a DNS record automatically if your domain’s nameservers point to Cloudflare
- If your domain is registered elsewhere, you will need to add a CNAME record manually:
- Name:
@(orwww) - Target:
your-project.pages.dev
- Name:
SSL is provisioned automatically within a few minutes. Both www and root domain work.
Configuring redirects
Create a _redirects file in your Jekyll source root (not _site — Jekyll copies it automatically):
# Redirect www to non-www
https://www.jekyllhub.com/* https://jekyllhub.com/:splat 301
# Redirect old URLs
/old-post/ /new-post/ 301
/blog/category/themes/ /themes/ 301
# Custom 404
/* /404.html 404
Jekyll needs to copy this file to the build output. Add it to your _config.yml to ensure it is included:
include:
- _redirects
Configuring custom headers
Create a _headers file in your source root for HTTP headers:
/*
X-Frame-Options: DENY
X-Content-Type-Options: nosniff
Referrer-Policy: strict-origin-when-cross-origin
Permissions-Policy: camera=(), microphone=(), geolocation=()
/assets/*
Cache-Control: public, max-age=31536000, immutable
Add _headers to include in _config.yml the same way as _redirects.
Preview deployments
Every pull request to your repository automatically triggers a preview build at a unique URL (https://abc123.your-project.pages.dev). This lets you review changes before merging to main.
To disable preview deployments for a branch, go to your Pages project → Deployments → Branch control and add branches to the exclusion list.
Using a GitHub Actions workflow (optional)
By default, Cloudflare Pages manages the build. If you need more control — custom Ruby gems, pre-build scripts, fetching from an API — you can trigger deployments from GitHub Actions using the Cloudflare Wrangler action:
# .github/workflows/deploy.yml
name: Deploy to Cloudflare Pages
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: "3.2"
bundler-cache: true
- name: Build Jekyll site
run: JEKYLL_ENV=production bundle exec jekyll build
- name: Deploy to Cloudflare Pages
uses: cloudflare/wrangler-action@v3
with:
apiToken: $
accountId: $
command: pages deploy _site --project-name=your-project-name
Store CLOUDFLARE_API_TOKEN and CLOUDFLARE_ACCOUNT_ID as secrets in your GitHub repository settings.
Troubleshooting common errors
Build fails with Could not find gem
Your Gemfile.lock is missing or not committed. Run bundle install locally, commit Gemfile.lock, and push.
Build fails with ruby: command not found
Set the RUBY_VERSION environment variable in your Pages project settings.
Custom domain shows a security warning The SSL certificate is still provisioning. Wait 5–10 minutes and refresh.
_redirects not working
Ensure the file is in your Jekyll source root and listed under include: in _config.yml. Verify it was copied to _site/ in your build output.
Jekyll build succeeds but site looks broken
Check your baseurl in _config.yml. If it is set to a subdirectory (e.g. /my-repo), remove or blank it for a root-domain deployment.
Cloudflare Pages is fast to set up, genuinely free at scale, and gives your Jekyll site the best global CDN coverage available. For most Jekyll projects, it is the best hosting choice in 2026.
<!DOCTYPE html>
How to Grow Traffic to Your Jekyll Blog (A Practical Guide for 2026)
Proven strategies to grow organic traffic to a Jekyll blog — keyword research, on-page SEO, link building, content promotion, and what actually moves the needle.
A Jekyll blog with zero visitors is just a collection of Markdown files. Getting consistent organic traffic requires deliberate effort — but it is not mysterious. The fundamentals of content marketing and SEO apply equally to static sites. Here is what works in 2026.
Start with Google Search Console
Before doing anything else, connect your Jekyll site to Google Search Console. This is the most important free tool for understanding how Google sees your site.
Add your site at search.google.com/search-console. Verify ownership by adding a meta tag to your Jekyll layout:
<meta name="google-site-verification" content="YOUR_VERIFICATION_CODE">
Search Console shows you: which queries trigger your pages, which pages rank, click-through rates, and crawling errors. You cannot improve what you cannot measure.
Submit your sitemap (generated automatically by jekyll-sitemap):
https://yourdomain.com/sitemap.xml
Keyword research for a Jekyll blog
Every post should target a specific search query your audience types into Google. Writing posts without researching keywords first is the single biggest mistake new bloggers make.
Free keyword research tools:
- Google Search Console — once you have traffic, shows what you already rank for
- Google Autocomplete — type “jekyll” into Google and note the suggestions
- Ahrefs Keyword Generator (free tier) — up to 100 keyword ideas per search
- AnswerThePublic — generates question-based keywords around a topic
- Google “People also ask” — free insight into related questions
What to look for:
Target keywords that are specific enough that you can write a definitive answer. “Jekyll” is too broad. “How to add pagination to a Jekyll blog” is specific, answerable, and has clear intent.
Look for keywords where the existing search results are thin, outdated, or from low-authority sites. These are your opportunities to rank.
On-page SEO for Jekyll posts
A well-optimised Jekyll post includes:
Title tag and H1: Include the target keyword naturally. Match search intent — if people search “how to”, your title should be “How to…”.
Meta description: Write a 150–160 character description that describes the post and includes the keyword. Jekyll SEO tag uses description from front matter:
description: "How to add pagination to a Jekyll blog — step by step, with code examples and common error fixes."
Headings structure: Use H2 for major sections, H3 for subsections. Include keyword variations in headings naturally.
Internal links: Link to related posts and theme pages on your site. This distributes authority and keeps readers engaged.
Post length: Comprehensive posts rank better. A 1,500–3,000 word post that fully answers a question outperforms a 400-word overview. Quality beats length, but thoroughness is quality.
Table of contents: toc: true in your front matter adds a TOC for long posts. This helps Google understand your structure and can generate rich snippet sitelinks.
Content strategy: what to write
The fastest path to traffic is writing content people are actively searching for and that existing sites cover poorly.
Three content types that drive Jekyll blog traffic:
1. How-to tutorials — “How to add [feature] to Jekyll” posts attract developers in the middle of a project. They have high intent and convert well to newsletter subscribers and theme buyers.
2. Comparison posts — “Jekyll vs [alternative]” posts attract people evaluating options. These get shared widely and earn backlinks naturally.
3. Best-of lists — “Best Jekyll themes for [use case]” posts attract purchase-intent traffic. These are the highest-converting posts for a theme marketplace blog.
Publishing cadence: One well-researched 1,500+ word post per week consistently outperforms three thin 500-word posts. Quality beats volume.
Building backlinks
Backlinks from other sites are the most significant factor in Google ranking. For a Jekyll blog, the highest-leverage link building tactics are:
1. GitHub README mentions
Find open source projects that use Jekyll. If you write a tutorial covering that project, reach out to the maintainer and suggest adding your guide to the project’s README or wiki. Even one link from a popular GitHub repository can significantly boost your domain authority.
2. Answer questions on Stack Overflow and Reddit
Answer Jekyll questions on Stack Overflow (/questions/tagged/jekyll) and the r/Jekyll subreddit with helpful responses that link to your detailed posts. Only link when your post genuinely adds value beyond the answer.
3. Write guest posts
Other developer blogs — CSS-Tricks, Smashing Magazine, LogRocket Blog — accept guest posts. A guest post on a high-authority site can drive meaningful traffic and a permanent backlink. Pitch with a clear angle and a summary of the post.
4. Get listed in resource lists
Search for “best Jekyll resources” and “Jekyll blogs to follow”. Reach out to the authors and suggest adding your site if the content quality warrants it.
5. Digital PR and data posts
Publish original research or data (“We analysed 100 popular Jekyll sites. Here is what we found.”). Data posts get cited in other articles and earn natural backlinks.
Promotion after publishing
Most bloggers publish and immediately move to the next post. The most effective bloggers spend as much time promoting as writing.
Immediate promotion checklist:
- Share on X/Twitter with a hook (not just “New post:”)
- Post to relevant subreddits — r/Jekyll, r/webdev, r/programming, r/web_design
- Share in relevant Discord servers and Slack communities
- Email your newsletter subscribers
- Update any older posts that should link to the new post
- Post to Hacker News (Show HN or relevant link) if it adds value to the community
Medium-term promotion:
Update old posts with links to new, more detailed content. Google rewards freshness — updating a post with new information and re-publishing it can bring back old rankings.
Technical SEO for Jekyll
Your Jekyll site’s technical foundation matters:
Speed: A fast site ranks better. Run PageSpeed Insights monthly and address regressions. Core Web Vitals (LCP, INP, CLS) are ranking factors.
Mobile: Google uses mobile-first indexing. Your site must be fully functional on mobile.
HTTPS: Required for ranking. GitHub Pages and Netlify provide free SSL automatically.
Canonical URLs: The jekyll-seo-tag plugin adds canonical URLs automatically. Verify they are correct — duplicate content from www and non-www versions can split ranking signals.
Structured data: Add JSON-LD to blog posts for rich snippets (article schema, FAQ schema). We covered this in our Jekyll schema markup guide.
Realistic timeline
Traffic growth from SEO is slow at the beginning and exponential over time. A realistic timeline for a new Jekyll blog:
- Months 1–3: Indexing and baseline traffic. Expect 50–200 monthly visitors from early rankings.
- Months 4–6: First meaningful rankings for lower-competition keywords. 200–1,000 monthly visitors.
- Months 6–12: Compounding growth as more posts rank and internal linking boosts authority. 1,000–5,000 monthly visitors.
- Year 2+: Established domain authority. Top rankings for competitive keywords. 5,000–30,000+ monthly visitors possible.
The bloggers who succeed are the ones still publishing in month 12 when most others have quit. Traffic from SEO is not immediate, but it is durable — a post you write today can send traffic for years.
Start with Search Console, target specific keywords, write comprehensive posts, and promote consistently. That is the whole strategy.
<!DOCTYPE html>
How to Monetize a Jekyll Blog in 2026 (7 Strategies That Actually Work)
Practical ways to make money from a Jekyll blog — affiliate marketing, sponsorships, digital products, consulting, and more. With realistic income expectations.
Jekyll is a static site — it has no built-in monetization features. But that does not mean you cannot make money from it. The absence of a CMS or plugin marketplace just means you need to wire up monetization yourself. Here is how, with realistic numbers.
A note on traffic and income
Every monetization strategy depends on traffic. A Jekyll blog earning meaningful money typically has 10,000+ monthly page views. If you are below that, focus on content and traffic first — the strategies below will scale with your audience.
Strategy 1: Affiliate marketing
Affiliate marketing means promoting other companies’ products and earning a commission when readers buy through your link. It is the most common monetization strategy for developer blogs because it requires no product creation and scales with content.
Programmes worth joining for a Jekyll/developer blog:
- GitHub Marketplace — affiliate links for tools and apps
- Digital Ocean / Linode — hosting referrals ($25–100 per referral)
- Amazon Associates — 3–10% commission on books and tools
- Gumroad Creator Referrals — earn from referred creators
- Theme marketplaces — refer buyers to JekyllHub or ThemeForest
What earns: Tutorial posts that recommend specific tools (“The Jekyll plugin I use for X”) convert well. Review posts (“Is X worth it in 2026?”) convert even better. Lists (“Best Jekyll plugins”) convert when readers have clear purchase intent.
Realistic income: $50–500/month at 10k–50k monthly visitors, depending on your niche and audience quality.
Implementation in Jekyll:
Store your affiliate links in _data/affiliates.yml:
digital_ocean:
url: "https://m.do.co/c/YOURREF"
label: "DigitalOcean"
Reference in templates:
{% assign do = site.data.affiliates.digital_ocean %}
<a href="{{ do.url }}" rel="nofollow sponsored" target="_blank">
Try {{ do.label }}
</a>
Strategy 2: Display advertising
Display ads (Google AdSense, Carbon Ads, Ethical Ads) show ads on your pages and pay per thousand impressions (CPM) or per click (CPC).
Best ad networks for developer blogs:
- Carbon Ads — developer-focused, high CPM, tasteful single ad. Requires application.
- Ethical Ads — privacy-focused, used by Read the Docs. Pays $2–3 CPM.
- Google AdSense — lower CPM for developer content (~$2–5), easy to set up.
Realistic income: Carbon Ads pays $1–3 per 1,000 impressions. At 50,000 monthly visitors: $50–150/month. Not transformative, but passive.
Implementation: Add the ad snippet to your _includes/ for easy placement across layouts:
<!-- _includes/carbon-ad.html -->
<script async type="text/javascript" src="//cdn.carbonads.com/carbon.js?serve=YOUR_CODE&placement=jekyllhub" id="_carbonads_js"></script>
{% if site.carbon_ads_code %}
{% include carbon-ad.html %}
{% endif %}
Strategy 3: Sponsored content and newsletter sponsorships
Once you have an audience, companies pay to reach them. A sponsored post or newsletter mention is typically one of the highest-paying per-impression formats for developer content.
Rates (rough benchmarks for developer blogs):
- Newsletter sponsorship: $50–500 per send (depending on list size)
- Sponsored post: $200–2,000 per post (depending on traffic and niche)
- Social mention: $50–300 per post
How to set it up: Create a /advertise/ page with your audience stats (monthly visitors, newsletter subscribers, demographics) and a contact form. Companies will find you.
Use _data/ to manage sponsor information:
# _data/sponsors.yml
current:
- name: "Netlify"
url: "https://netlify.com"
logo: "/assets/images/sponsors/netlify.svg"
blurb: "The fastest way to build and deploy Jekyll sites."
Strategy 4: Sell digital products
Digital products — ebooks, templates, courses, starter kits — have high margins because there is no inventory or shipping. A Jekyll blog about Jekyll is particularly well-positioned to sell Jekyll-related products.
Products that sell well from developer blogs:
- Jekyll starter templates — A pre-configured Jekyll setup your readers can buy and build on ($9–49)
- Ebooks / guides — “The Complete Jekyll Deployment Guide” ($19–39)
- Video courses — If you have YouTube presence ($49–199)
- Notion templates, Figma files, design assets — If your blog covers design
Implementation: Use Gumroad, Lemon Squeezy, or Payhip for simple checkout. Embed a buy button in your Jekyll site:
<a href="https://yourstore.gumroad.com/l/product-slug" class="btn btn--primary">
Buy for $29 →
</a>
Strategy 5: Premium Jekyll themes
If you can build a good Jekyll theme, selling it is one of the best monetization strategies available on a Jekyll blog. Your blog readers are exactly your target buyers.
List on JekyllHub, Gumroad, and ThemeForest. A well-marketed theme at $39 can earn $500–2,000/month with the right SEO and placement.
We covered this in detail in How to Sell a Jekyll Theme.
Strategy 6: Consulting and freelance work
Developer blogs build credibility. If you write about Jekyll professionally, companies building Jekyll sites will find you and some will want to hire you.
Add a /hire/ or /consulting/ page to your site:
---
layout: page
title: "Hire Me"
permalink: /hire/
---
I help companies build fast, maintainable Jekyll sites...
Consulting rates for Jekyll/static site work: $80–200/hour depending on experience and location. Even one project per month can be significant income.
Strategy 7: Newsletter paid subscriptions
If you have a loyal newsletter audience, paid subscriptions via Ghost, Substack, or Lemon Squeezy let you charge for premium content.
This works best when you have a consistent publishing cadence and clearly differentiated free vs premium content. Most successful paid newsletters have 2,000+ free subscribers before launching a paid tier.
Monthly subscription pricing: $5–15/month for consumer content, $20–50/month for professional/B2B content.
Combining strategies
The most successful developer blogs combine multiple streams:
- Affiliate links in tutorial content (passive, scales with traffic)
- One ad network (Carbon Ads) in the sidebar (low effort, passive)
- A digital product (ebook or template) promoted within posts
- A consulting page for high-value direct work
This combination can realistically generate $500–2,000/month from a Jekyll blog with 20,000–50,000 monthly visitors — achievable within 12–18 months of consistent publishing.
What not to do
- Do not add pop-up overlays — they hurt user experience and Core Web Vitals
- Do not accept every sponsored post offer — one bad endorsement damages trust
- Do not add multiple ad networks — ad clutter destroys reader experience
- Do not launch a paid product before you have an audience who trusts you
Build the audience first. The money follows.
<!DOCTYPE html>
How to Add a Custom 404 Page to Your Jekyll Site
Create a custom 404 error page for your Jekyll site — with helpful navigation, search, and suggestions to keep visitors on your site instead of bouncing.
A default 404 page is a dead end. A custom 404 page turns a broken link into an opportunity — pointing visitors to your most popular content, your search page, or your homepage. In Jekyll, creating one takes about 5 minutes.
Step 1: Create the 404 File
Create 404.md or 404.html in your site root:
---
layout: page
title: "Page Not Found"
permalink: /404.html
sitemap: false
---
The filename must be 404.html for hosting platforms to serve it automatically. The permalink: /404.html ensures Jekyll outputs the file at the right path regardless of your global permalink setting.
sitemap: false prevents the 404 page from appearing in your sitemap.
Step 2: Write Helpful Content
A useful 404 page has three things: acknowledgment, navigation options, and ideally a search box.
---
layout: page
title: "Page Not Found"
permalink: /404.html
sitemap: false
---
The page you're looking for doesn't exist or may have been moved.
Here are some helpful links:
- [Home](/) — back to the homepage
- [Themes](/themes/) — browse Jekyll themes
- [Blog](/blog/) — read the latest posts
- [Search](/search/) — search the site
Or try searching for what you need:
Then add a search form at the bottom of the content (or in the layout).
Step 3: Build a Better 404 Layout
For a polished result, create a dedicated layout _layouts/404.html:
---
layout: default
---
<div class="error-page">
<div class="error-page__code" aria-hidden="true">404</div>
<h1 class="error-page__title">Page not found</h1>
<p class="error-page__message">
The page you're looking for doesn't exist or has been moved.
</p>
<div class="error-page__search">
<form action="/search/" method="get" role="search">
<label for="error-search" class="sr-only">Search the site</label>
<input type="search" id="error-search" name="q"
placeholder="Search for something..."
class="error-page__search-input"
autofocus>
<button type="submit" class="btn btn--primary">Search</button>
</form>
</div>
<nav class="error-page__nav" aria-label="Suggested pages">
<p>Or try one of these:</p>
<ul>
<li><a href="/">← Back to homepage</a></li>
<li><a href="/themes/">Browse themes</a></li>
<li><a href="/blog/">Read the blog</a></li>
<li><a href="/contact/">Contact us</a></li>
</ul>
</nav>
{% if site.posts.size > 0 %}
<div class="error-page__popular">
<h2>Popular posts</h2>
<ul>
{% for post in site.posts limit: 4 %}
<li><a href="{{ post.url }}">{{ post.title }}</a></li>
{% endfor %}
</ul>
</div>
{% endif %}
</div>
{{ content }}
Update your 404.md to use this layout:
---
layout: 404
title: "Page Not Found"
permalink: /404.html
sitemap: false
---
Step 4: Style It
// _sass/layouts/_404.scss
.error-page {
max-width: 540px;
margin: 4rem auto;
text-align: center;
padding: 0 1rem;
}
.error-page__code {
font-size: clamp(5rem, 20vw, 8rem);
font-weight: 900;
line-height: 1;
color: var(--border-color);
letter-spacing: -0.05em;
margin-bottom: 0.5rem;
}
.error-page__title {
font-size: 1.75rem;
margin-bottom: 0.75rem;
}
.error-page__message {
color: var(--text-muted);
margin-bottom: 2rem;
}
.error-page__search {
display: flex;
gap: 0.5rem;
margin-bottom: 2rem;
form {
display: flex;
gap: 0.5rem;
width: 100%;
}
}
.error-page__search-input {
flex: 1;
padding: 0.625rem 0.875rem;
border: 1px solid var(--border-color);
border-radius: var(--radius-md);
font-size: 1rem;
background: var(--bg-color);
color: var(--text-color);
&:focus {
outline: none;
border-color: var(--color-primary);
box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}
}
.error-page__nav {
text-align: left;
margin-bottom: 2rem;
ul {
list-style: none;
padding: 0;
margin: 0.5rem 0 0;
}
li {
padding: 0.25rem 0;
}
}
.error-page__popular {
text-align: left;
border-top: 1px solid var(--border-color);
padding-top: 1.5rem;
h2 {
font-size: 1rem;
margin-bottom: 0.75rem;
}
ul {
list-style: none;
padding: 0;
margin: 0;
}
li {
padding: 0.2rem 0;
}
}
Step 5: Verify It Works on Your Hosting Platform
Different platforms serve custom 404 pages differently.
GitHub Pages
GitHub Pages automatically serves 404.html for missing pages. No configuration needed.
Netlify
Netlify serves 404.html automatically. Verify by visiting a non-existent URL on your live site.
Cloudflare Pages
Cloudflare Pages serves 404.html automatically.
Vercel
Add to vercel.json:
{
"routes": [
{ "handle": "filesystem" },
{ "src": ".*", "dest": "/404.html", "status": 404 }
]
}
Test it: Visit https://yourdomain.com/this-page-does-not-exist/ — you should see your custom 404 page, and the browser should show HTTP status 404 (not 200).
Auto-Suggest Based on URL
For extra polish, parse the URL to suggest relevant content:
// In your 404 layout
<script>
document.addEventListener('DOMContentLoaded', function() {
const path = window.location.pathname;
const slug = path.replace(/\//g, ' ').trim();
if (slug) {
// Pre-fill the search box with the attempted URL slug
const searchInput = document.getElementById('error-search');
if (searchInput) {
searchInput.value = slug.replace(/-/g, ' ');
}
}
});
</script>
This fills the search box with a cleaned version of the failed URL — so if someone visits /themes/minima-theme/ and gets a 404, the search box is pre-filled with “themes minima theme”.
What Makes a Good 404 Page
Do:
- Keep branding consistent (use your site’s header and footer)
- Offer clear navigation options
- Include a search box
- Show popular or recent content
- Keep the tone friendly, not apologetic
Don’t:
- Make it a dead end with only a “Go back” button
- Use generic error language (“Error 404: Not Found”)
- Remove the navigation bar
- Redirect to the homepage automatically (this confuses users and search engines)
A well-crafted 404 page recovers visitors who would otherwise leave. It’s one of the highest ROI improvements you can make in under an hour.
Browse Jekyll themes on JekyllHub — many include a pre-styled 404 page you can customise.
<!DOCTYPE html>
Using Jekyll for Open Source Project Documentation
Jekyll is the default documentation platform for thousands of open source projects on GitHub. Here is how to set up, structure, and maintain great project docs with Jekyll.
Jekyll powers documentation for thousands of open source projects — Bootstrap, Jekyll itself, GitHub’s own docs, and hundreds of others. It is the natural choice for projects already hosted on GitHub, and the most supported static site generator on GitHub Pages.
Here is how to set up professional documentation for your open source project.
Why Jekyll for open source docs
- GitHub Pages native support — push to a
docs/folder orgh-pagesbranch and your docs are live instantly - Markdown-first — contributors already write Markdown for README files; docs are the same workflow
- No build step required — GitHub Pages builds Jekyll automatically on every push
- Versioned with your code — docs live in the same repository as code, so pull requests can include both code and doc changes
- Free — no hosting cost for open source projects
Two approaches: docs in the repo vs separate docs site
Option A: docs/ folder in your main repository
Jekyll can build from a docs/ folder in your repository. This keeps docs alongside code — ideal for small to medium projects.
In your GitHub repository settings → Pages → Build and deployment, set the source to “Deploy from a branch” and the folder to /docs.
Option B: Separate gh-pages branch
Larger projects often use a dedicated gh-pages branch for documentation. This keeps the main branch clean and allows the docs to have their own git history.
Setting up the docs folder
docs/
├── _config.yml
├── _layouts/
│ ├── default.html
│ └── page.html
├── _includes/
│ ├── nav.html
│ └── sidebar.html
├── assets/
│ ├── css/
│ └── js/
├── index.md # Landing page / introduction
├── getting-started.md
├── installation.md
├── configuration.md
├── api/
│ ├── overview.md
│ └── reference.md
└── guides/
├── quickstart.md
└── advanced.md
_config.yml for project docs
title: "YourProject Documentation"
description: "The official documentation for YourProject — a [brief description]."
url: "https://yourorg.github.io"
baseurl: "/your-project"
# Theme — just-the-docs is the most popular Jekyll docs theme
remote_theme: just-the-docs/just-the-docs
# Navigation order
nav_order: true
# Search
search_enabled: true
# Footer links
footer_content: "Copyright © 2026 YourProject Contributors."
# GitHub link
gh_edit_link: true
gh_edit_link_text: "Edit this page on GitHub"
gh_edit_repository: "https://github.com/yourorg/your-project"
gh_edit_branch: "main"
gh_edit_source: docs
The Just the Docs theme
Just the Docs is the most popular Jekyll theme for open source documentation. It provides:
- Responsive sidebar navigation with automatic TOC
- Full-text client-side search
- Collapsible navigation sections
- Breadcrumbs
- Dark mode
- Code block copy buttons
- Custom callout blocks
To use it with GitHub Pages, add to _config.yml:
remote_theme: just-the-docs/just-the-docs
No Gemfile changes needed for GitHub Pages.
Structuring documentation with front matter
Just the Docs uses front matter to control the navigation:
---
layout: default
title: "Getting Started"
nav_order: 2
description: "How to install and set up YourProject in under 5 minutes."
permalink: /getting-started/
---
Parent-child navigation for nested sections:
# Parent page
---
title: "API Reference"
nav_order: 4
has_children: true
---
# Child page
---
title: "Authentication"
parent: "API Reference"
nav_order: 1
---
Writing great documentation
Every docs site needs these pages:
- Introduction — What is the project? Who is it for? What problem does it solve?
- Installation — The first thing every new user reads. Be thorough.
- Quickstart — Get from zero to working example in 5 minutes or less
- Configuration reference — Every configuration option documented, with type, default, and example
- API reference (for libraries) — Every public method, parameter, and return value
- Changelog — What changed in each version
Documentation writing principles:
Write for a reader who has never seen your project. Avoid assuming knowledge. Every code example should be copy-paste runnable. Include expected output.
Use callout boxes for warnings, tips, and important notes:
{: .warning }
This configuration option was deprecated in v2.0. Use `new_option` instead.
{: .note }
This feature requires YourProject v1.5 or higher.
Version-specific documentation
For projects with multiple active versions, use Jekyll collections:
# _config.yml
collections:
v2:
output: true
permalink: /v2/:path/
v3:
output: true
permalink: /v3/:path/
Or use a branch per version and configure separate GitHub Pages deployments.
Automating docs with GitHub Actions
Auto-build and deploy on every push to main:
# .github/workflows/docs.yml
name: Deploy Docs
on:
push:
branches: [main]
paths: ["docs/**"]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
bundler-cache: true
working-directory: docs
- run: bundle exec jekyll build
working-directory: docs
- uses: peaceiris/actions-gh-pages@v3
with:
github_token: $
publish_dir: docs/_site
Alternatives to consider
Jekyll is excellent for documentation but not the only option. Compare before committing:
| Tool | Best for |
|---|---|
| Jekyll + Just the Docs | GitHub-hosted projects, Markdown-native teams |
| Docusaurus | React-based projects, versioned docs, MDX |
| MkDocs | Python projects, simple setup |
| GitBook | Teams wanting a hosted, no-build solution |
| ReadTheDocs | Python/Sphinx projects, automatic versioning |
For projects already on GitHub with a Markdown-writing team, Jekyll on GitHub Pages is the fastest path from code to professional documentation — often taking less than an hour to set up.
<!DOCTYPE html>
How to Build a Resume or CV Website with Jekyll
Create a professional online resume or CV with Jekyll — structured front matter, clean layout, PDF export, and free hosting on GitHub Pages.
An online resume or CV is one of the most valuable things a developer, designer, academic, or job seeker can have. A Jekyll-based CV gives you full control over the design, is free to host, and can be printed to PDF from the browser. Here is how to build one.
Why Jekyll for a resume?
- Free to host on GitHub Pages at
yourusername.github.io - Full design control — no template constraints, no watermarks
- Easy to update — change a YAML file and push to GitHub
- Printable — use
@media printCSS to create a clean PDF version - Versioned — Git history tracks every version of your resume
Structuring resume data in Jekyll
The best approach is to store all resume content in _data/resume.yml — a single YAML file you can update without touching any HTML.
# _data/resume.yml
name: "Marcus Webb"
title: "Senior Software Engineer"
email: "marcus@example.com"
website: "https://marcuswebb.io"
github: "marcuswebb"
linkedin: "marcus-webb"
location: "London, UK"
summary: "Senior software engineer with 8 years of experience building scalable web applications. Specialised in Ruby, JavaScript, and developer tooling."
experience:
- company: "Acme Corp"
role: "Senior Software Engineer"
period: "Jan 2022 – Present"
location: "London, UK"
highlights:
- "Led migration of monolith to microservices, reducing deployment time by 60%"
- "Mentored team of 4 junior engineers"
- "Implemented CI/CD pipeline with GitHub Actions"
- company: "Beta Startup"
role: "Software Engineer"
period: "Mar 2019 – Dec 2021"
location: "Remote"
highlights:
- "Built customer-facing API serving 500k requests/day"
- "Reduced page load time from 4.2s to 0.8s through performance optimisation"
education:
- institution: "University of Edinburgh"
degree: "BSc Computer Science"
period: "2015 – 2019"
grade: "First Class Honours"
skills:
- category: "Languages"
items: ["Ruby", "JavaScript", "TypeScript", "Python", "SQL"]
- category: "Frameworks"
items: ["Rails", "React", "Node.js", "Jekyll"]
- category: "Tools"
items: ["Git", "Docker", "AWS", "PostgreSQL", "Redis"]
projects:
- name: "JekyllHub"
url: "https://jekyllhub.com"
description: "A marketplace for Jekyll themes serving 10,000+ monthly visitors."
tech: ["Jekyll", "JavaScript", "SCSS"]
certifications:
- name: "AWS Certified Solutions Architect"
issuer: "Amazon Web Services"
year: 2023
Creating the resume layout
Create _layouts/resume.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title> — Resume</title>
<link rel="stylesheet" href="/assets/css/resume.css">
</head>
<body>
<main class="resume">
<div class="read-progress" id="read-progress"></div>
<article class="post" itemscope itemtype="https://schema.org/BlogPosting">
<header class="post-hero">
<div class="container">
<div class="post-hero__breadcrumb">
<a href="/">Home</a>
<span class="breadcrumb-sep">›</span>
<a href="/blog/">Blog</a>
<span class="breadcrumb-sep">›</span>
<span>Core Web Vitals for Jekyll Sites: A Practical Optimisation Guide (2026)</span>
</div>
<div class="post-hero__inner">
<span class="post-hero__cat">Tutorial</span>
<h1 class="post-hero__title" itemprop="name">Core Web Vitals for Jekyll Sites: A Practical Optimisation Guide (2026)</h1>
<p class="post-hero__desc" itemprop="description">How to measure and improve Core Web Vitals (LCP, INP, CLS) on your Jekyll site — with practical fixes for the most common issues.</p>
<div class="post-hero__meta">
<span class="post-meta-item">
<svg width="15" height="15" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"/></svg>
Updated <time itemprop="dateModified" datetime="2026-07-19T00:00:00+00:00">July 19, 2026</time>
</span>
<span class="post-meta-item">
<svg width="15" height="15" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"/></svg>
7 min read
</span>
</div>
</div>
</div>
</header>
<div class="post-cover">
<div class="container">
<img src="/assets/images/blog/jekyll-core-web-vitals.webp" alt="Core Web Vitals for Jekyll Sites: A Practical Optimisation Guide (2026)" class="post-cover__img" itemprop="image">
</div>
</div>
<div class="container">
<div class="post-body">
<div class="post-body__main">
<div class="post-toc" id="post-toc" data-collapsed="false" style="display:none">
<button class="post-toc__label" id="toc-toggle" aria-expanded="false" aria-controls="toc-body">
<span class="post-toc__label-left">
<svg width="14" height="14" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 10h16M4 14h10"/></svg>
Table of Contents
</span>
<svg class="post-toc__chevron" width="14" height="14" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"/></svg>
</button>
<nav id="toc-body" class="toc"></nav>
</div>
<div class="prose" itemprop="articleBody">
<p>Jekyll sites start with an inherent performance advantage — no database, no server-side rendering, no PHP. But Core Web Vitals are not just about server speed. Largest Contentful Paint (LCP), Interaction to Next Paint (INP), and Cumulative Layout Shift (CLS) depend on how your HTML, CSS, JavaScript, images, and fonts are delivered to the browser.</p>
<p>Here is how to measure and fix each one.</p>
<h2 id="measuring-core-web-vitals">Measuring Core Web Vitals</h2>
<p>Before optimising, measure your current scores:</p>
<p><strong>Google PageSpeed Insights</strong> — <a href="https://pagespeed.web.dev">pagespeed.web.dev</a> gives you both lab scores and real-world field data (Core Web Vitals from the Chrome User Experience Report).</p>
<p><strong>Chrome DevTools</strong> — Open DevTools → Performance tab → record a page load. Check the LCP marker and layout shift events.</p>
<p><strong>Web Vitals extension</strong> — Install the Google Web Vitals Chrome extension for real-time CWV scores as you browse your site.</p>
<p>Run tests on mobile, not just desktop. Mobile scores are what Google uses for ranking.</p>
<h2 id="largest-contentful-paint-lcp">Largest Contentful Paint (LCP)</h2>
<p>LCP measures how long it takes for the largest visible element to render. The target is under 2.5 seconds. For most Jekyll sites, the LCP element is either a hero image or the largest heading.</p>
<h3 id="fix-1-preload-your-lcp-image">Fix 1: Preload your LCP image</h3>
<p>If your LCP element is a hero image, add a preload hint in <code class="language-plaintext highlighter-rouge"><head></code>:</p>
<div class="language-html highlighter-rouge"><div class="highlight"><pre class="highlight"><code>{% if page.image %}
<span class="nt"><link</span> <span class="na">rel=</span><span class="s">"preload"</span> <span class="na">as=</span><span class="s">"image"</span> <span class="na">href=</span><span class="s">"{{ page.image | relative_url }}"</span><span class="nt">></span>
{% endif %}
</code></pre></div></div>
<h3 id="fix-2-use-modern-image-formats">Fix 2: Use modern image formats</h3>
<p>Convert images to WebP (25–35% smaller than JPEG) or AVIF (even smaller):</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cwebp <span class="nt">-q</span> 85 hero.jpg <span class="nt">-o</span> hero.webp
</code></pre></div></div>
<p>Reference with a <code class="language-plaintext highlighter-rouge"><picture></code> element for fallback:</p>
<div class="language-html highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt"><picture></span>
<span class="nt"><source</span> <span class="na">srcset=</span><span class="s">"/assets/images/hero.avif"</span> <span class="na">type=</span><span class="s">"image/avif"</span><span class="nt">></span>
<span class="nt"><source</span> <span class="na">srcset=</span><span class="s">"/assets/images/hero.webp"</span> <span class="na">type=</span><span class="s">"image/webp"</span><span class="nt">></span>
<span class="nt"><img</span> <span class="na">src=</span><span class="s">"/assets/images/hero.jpg"</span> <span class="na">alt=</span><span class="s">"Hero"</span> <span class="na">width=</span><span class="s">"1200"</span> <span class="na">height=</span><span class="s">"630"</span><span class="nt">></span>
<span class="nt"></picture></span>
</code></pre></div></div>
<h3 id="fix-3-add-width-and-height-to-images">Fix 3: Add width and height to images</h3>
<p>This prevents layout shift and helps the browser calculate space before the image loads:</p>
<div class="language-html highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt"><img</span> <span class="na">src=</span><span class="s">"hero.webp"</span> <span class="na">alt=</span><span class="s">"Hero"</span> <span class="na">width=</span><span class="s">"1200"</span> <span class="na">height=</span><span class="s">"630"</span> <span class="na">loading=</span><span class="s">"lazy"</span><span class="nt">></span>
</code></pre></div></div>
<p>Do not use <code class="language-plaintext highlighter-rouge">loading="lazy"</code> on above-the-fold images — it delays the LCP element. Use <code class="language-plaintext highlighter-rouge">loading="eager"</code> or omit the attribute for hero images.</p>
<h3 id="fix-4-self-host-your-fonts">Fix 4: Self-host your fonts</h3>
<p>Google Fonts adds a cross-origin request that delays rendering. Self-host fonts instead:</p>
<div class="language-css highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">@font-face</span> <span class="p">{</span>
<span class="nl">font-family</span><span class="p">:</span> <span class="s1">"Inter"</span><span class="p">;</span>
<span class="nl">src</span><span class="p">:</span> <span class="sx">url("/assets/fonts/inter-v13-latin-regular.woff2")</span> <span class="n">format</span><span class="p">(</span><span class="s1">"woff2"</span><span class="p">);</span>
<span class="py">font-display</span><span class="p">:</span> <span class="n">swap</span><span class="p">;</span>
<span class="p">}</span>
</code></pre></div></div>
<p>The <code class="language-plaintext highlighter-rouge">font-display: swap</code> ensures text is visible while the font loads (using a system font fallback), preventing invisible text during load.</p>
<h3 id="fix-5-eliminate-render-blocking-resources">Fix 5: Eliminate render-blocking resources</h3>
<p>CSS in <code class="language-plaintext highlighter-rouge"><head></code> blocks rendering. JavaScript in <code class="language-plaintext highlighter-rouge"><head></code> blocks rendering. Move non-critical CSS to inline critical styles, and add <code class="language-plaintext highlighter-rouge">defer</code> or <code class="language-plaintext highlighter-rouge">async</code> to all scripts:</p>
<div class="language-html highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"><!-- Bad --></span>
<span class="nt"><script </span><span class="na">src=</span><span class="s">"/assets/js/main.js"</span><span class="nt">></script></span>
<span class="c"><!-- Good --></span>
<span class="nt"><script </span><span class="na">src=</span><span class="s">"/assets/js/main.js"</span> <span class="na">defer</span><span class="nt">></script></span>
</code></pre></div></div>
<h2 id="interaction-to-next-paint-inp">Interaction to Next Paint (INP)</h2>
<p>INP replaced First Input Delay (FID) in 2024. It measures the time from any user interaction (click, tap, keyboard input) to the next frame painted. The target is under 200ms.</p>
<p>Jekyll sites with minimal JavaScript have excellent INP scores by default. Problems arise when you load heavy JavaScript that blocks the main thread.</p>
<h3 id="fix-1-defer-non-critical-javascript">Fix 1: Defer non-critical JavaScript</h3>
<div class="language-html highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt"><script </span><span class="na">src=</span><span class="s">"/assets/js/analytics.js"</span> <span class="na">defer</span><span class="nt">></script></span>
<span class="nt"><script </span><span class="na">src=</span><span class="s">"/assets/js/chat-widget.js"</span> <span class="na">defer</span><span class="nt">></script></span>
</code></pre></div></div>
<h3 id="fix-2-avoid-long-tasks">Fix 2: Avoid long tasks</h3>
<p>Any JavaScript task that runs longer than 50ms can delay interactions. Use the Performance tab in Chrome DevTools to find long tasks (shown as red bars in the main thread timeline).</p>
<p>Break up long loops or calculations using <code class="language-plaintext highlighter-rouge">setTimeout</code>:</p>
<div class="language-js highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1">// Instead of one blocking loop:</span>
<span class="kd">function</span> <span class="nx">processItems</span><span class="p">(</span><span class="nx">items</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">items</span><span class="p">.</span><span class="nx">forEach</span><span class="p">(</span><span class="nx">item</span> <span class="o">=></span> <span class="nx">processItem</span><span class="p">(</span><span class="nx">item</span><span class="p">));</span> <span class="c1">// blocks if items is large</span>
<span class="p">}</span>
<span class="c1">// Break it up:</span>
<span class="kd">function</span> <span class="nx">processItemsAsync</span><span class="p">(</span><span class="nx">items</span><span class="p">,</span> <span class="nx">index</span> <span class="o">=</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">processItem</span><span class="p">(</span><span class="nx">items</span><span class="p">[</span><span class="nx">index</span><span class="p">]);</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">index</span> <span class="o">+</span> <span class="mi">1</span> <span class="o"><</span> <span class="nx">items</span><span class="p">.</span><span class="nx">length</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">setTimeout</span><span class="p">(()</span> <span class="o">=></span> <span class="nx">processItemsAsync</span><span class="p">(</span><span class="nx">items</span><span class="p">,</span> <span class="nx">index</span> <span class="o">+</span> <span class="mi">1</span><span class="p">),</span> <span class="mi">0</span><span class="p">);</span>
<span class="p">}</span>
<span class="p">}</span>
</code></pre></div></div>
<h3 id="fix-3-remove-unused-javascript">Fix 3: Remove unused JavaScript</h3>
<p>Audit what JavaScript your site loads with the Chrome DevTools Coverage tab (DevTools → More tools → Coverage). Anything with high unused percentage is a candidate for removal or lazy loading.</p>
<h2 id="cumulative-layout-shift-cls">Cumulative Layout Shift (CLS)</h2>
<p>CLS measures unexpected layout movement — elements jumping around as the page loads. The target is under 0.1. Common causes on Jekyll sites:</p>
<h3 id="fix-1-always-specify-image-dimensions">Fix 1: Always specify image dimensions</h3>
<div class="language-html highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"><!-- Bad — no dimensions, layout shifts when image loads --></span>
<span class="nt"><img</span> <span class="na">src=</span><span class="s">"hero.webp"</span> <span class="na">alt=</span><span class="s">"Hero"</span><span class="nt">></span>
<span class="c"><!-- Good — browser reserves space --></span>
<span class="nt"><img</span> <span class="na">src=</span><span class="s">"hero.webp"</span> <span class="na">alt=</span><span class="s">"Hero"</span> <span class="na">width=</span><span class="s">"800"</span> <span class="na">height=</span><span class="s">"450"</span><span class="nt">></span>
</code></pre></div></div>
<p>Or use CSS <code class="language-plaintext highlighter-rouge">aspect-ratio</code>:</p>
<div class="language-css highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">.post-image</span> <span class="p">{</span>
<span class="py">aspect-ratio</span><span class="p">:</span> <span class="m">16</span> <span class="p">/</span> <span class="m">9</span><span class="p">;</span>
<span class="nl">width</span><span class="p">:</span> <span class="m">100%</span><span class="p">;</span>
<span class="p">}</span>
</code></pre></div></div>
<h3 id="fix-2-avoid-inserting-content-above-existing-content">Fix 2: Avoid inserting content above existing content</h3>
<p>Announcement bars, cookie banners, and newsletter popups that appear after page load cause CLS. Either:</p>
<ul>
<li>Include them in the initial HTML (so they are rendered with the page, not injected later)</li>
<li>Reserve space for them with a fixed height placeholder</li>
</ul>
<h3 id="fix-3-use-font-display-swap-and-size-adjust">Fix 3: Use <code class="language-plaintext highlighter-rouge">font-display: swap</code> and size-adjust</h3>
<p>When a custom font loads, it can shift text because metrics differ from the fallback font. Use the <code class="language-plaintext highlighter-rouge">size-adjust</code>, <code class="language-plaintext highlighter-rouge">ascent-override</code>, and <code class="language-plaintext highlighter-rouge">descent-override</code> CSS properties to make your fallback match your custom font:</p>
<div class="language-css highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">@font-face</span> <span class="p">{</span>
<span class="nl">font-family</span><span class="p">:</span> <span class="s1">"Inter-fallback"</span><span class="p">;</span>
<span class="nl">src</span><span class="p">:</span> <span class="n">local</span><span class="p">(</span><span class="s1">"Arial"</span><span class="p">);</span>
<span class="py">size-adjust</span><span class="p">:</span> <span class="m">107%</span><span class="p">;</span>
<span class="py">ascent-override</span><span class="p">:</span> <span class="m">90%</span><span class="p">;</span>
<span class="p">}</span>
<span class="nt">body</span> <span class="p">{</span>
<span class="nl">font-family</span><span class="p">:</span> <span class="s1">"Inter"</span><span class="p">,</span> <span class="s1">"Inter-fallback"</span><span class="p">,</span> <span class="nb">sans-serif</span><span class="p">;</span>
<span class="p">}</span>
</code></pre></div></div>
<h3 id="fix-4-avoid-dynamically-injected-ads-or-embeds">Fix 4: Avoid dynamically injected ads or embeds</h3>
<p>Third-party embeds (Twitter, YouTube, Google Ads) that do not have reserved space cause significant CLS. Use placeholder containers with explicit dimensions:</p>
<div class="language-html highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt"><div</span> <span class="na">style=</span><span class="s">"aspect-ratio: 16/9; background: #f3f4f6;"</span><span class="nt">></span>
<span class="c"><!-- YouTube embed loads here --></span>
<span class="nt"></div></span>
</code></pre></div></div>
<h2 id="jekyll-specific-optimisations">Jekyll-specific optimisations</h2>
<h3 id="inline-critical-css">Inline critical CSS</h3>
<p>Extract the CSS needed to render above-the-fold content and inline it in <code class="language-plaintext highlighter-rouge"><head></code>:</p>
<div class="language-html highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt"><style></span>
<span class="c">/* Critical CSS — only what is needed for above-fold content */</span>
<span class="nt">body</span> <span class="p">{</span> <span class="nl">margin</span><span class="p">:</span> <span class="m">0</span><span class="p">;</span> <span class="nl">font-family</span><span class="p">:</span> <span class="n">system-ui</span><span class="p">,</span> <span class="nb">sans-serif</span><span class="p">;</span> <span class="p">}</span>
<span class="nc">.navbar</span> <span class="p">{</span> <span class="nl">height</span><span class="p">:</span> <span class="m">64px</span><span class="p">;</span> <span class="nl">background</span><span class="p">:</span> <span class="m">#fff</span><span class="p">;</span> <span class="p">}</span>
<span class="nc">.hero</span> <span class="p">{</span> <span class="nl">padding</span><span class="p">:</span> <span class="m">4rem</span> <span class="m">1rem</span><span class="p">;</span> <span class="p">}</span>
<span class="nt"></style></span>
<span class="nt"><link</span> <span class="na">rel=</span><span class="s">"preload"</span> <span class="na">href=</span><span class="s">"/assets/css/main.css"</span> <span class="na">as=</span><span class="s">"style"</span> <span class="na">onload=</span><span class="s">"this.onload=null;this.rel='stylesheet'"</span><span class="nt">></span>
</code></pre></div></div>
<h3 id="compress-jekyll-output-with-a-plugin">Compress Jekyll output with a plugin</h3>
<p>Add <code class="language-plaintext highlighter-rouge">jekyll-compress-html</code> to minify your HTML output:</p>
<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1"># Gemfile</span>
<span class="n">gem</span> <span class="s2">"jekyll-compress-html"</span>
</code></pre></div></div>
<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1"># _config.yml</span>
<span class="na">compress_html</span><span class="pi">:</span>
<span class="na">clippings</span><span class="pi">:</span> <span class="s">all</span>
<span class="na">comments</span><span class="pi">:</span> <span class="s">all</span>
<span class="na">endings</span><span class="pi">:</span> <span class="s">all</span>
</code></pre></div></div>
<h2 id="target-scores">Target scores</h2>
<table>
<thead>
<tr>
<th>Metric</th>
<th>Good</th>
<th>Needs improvement</th>
<th>Poor</th>
</tr>
</thead>
<tbody>
<tr>
<td>LCP</td>
<td>< 2.5s</td>
<td>2.5–4s</td>
<td>> 4s</td>
</tr>
<tr>
<td>INP</td>
<td>< 200ms</td>
<td>200–500ms</td>
<td>> 500ms</td>
</tr>
<tr>
<td>CLS</td>
<td>< 0.1</td>
<td>0.1–0.25</td>
<td>> 0.25</td>
</tr>
</tbody>
</table>
<p>A well-optimised Jekyll site can consistently achieve LCP under 1 second, INP under 50ms, and CLS of 0 — well above Google’s “good” threshold for all three metrics.</p>
</div>
<div class="post-tags">
</div>
<div class="post-share">
<span class="post-share__label">Share</span>
<a href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fjekyllhub.com%2Ftutorial%2F2026%2F06%2F06%2Fjekyll-core-web-vitals%2F&text=Core+Web+Vitals+for+Jekyll+Sites%3A+A+Practical+Optimisation+Guide+%282026%29" target="_blank" rel="noopener" class="post-share__btn post-share__btn--twitter">
<svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor"><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-4.714-6.231-5.401 6.231H2.746l7.73-8.835L1.254 2.25H8.08l4.253 5.622zm-1.161 17.52h1.833L7.084 4.126H5.117z"/></svg>
X / Twitter
</a>
<a href="https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fjekyllhub.com%2Ftutorial%2F2026%2F06%2F06%2Fjekyll-core-web-vitals%2F&title=Core+Web+Vitals+for+Jekyll+Sites%3A+A+Practical+Optimisation+Guide+%282026%29" target="_blank" rel="noopener" class="post-share__btn post-share__btn--linkedin">
<svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor"><path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 01-2.063-2.065 2.064 2.064 0 112.063 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"/></svg>
LinkedIn
</a>
<button class="post-share__btn post-share__btn--copy" onclick="JekyllHub.copyPostLink(this)">
<svg width="14" height="14" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"/></svg>
<span>Copy Link</span>
</button>
</div>
<nav class="post-nav" aria-label="Post navigation">
<div class="post-nav__prev">
<a href="/tutorial/2026/06/05/jekyll-headless-cms/" class="post-nav__link">
<span class="post-nav__label">← Previous</span>
<span class="post-nav__title">Jekyll with a Headless CMS: Contentful, Sanity, and Decap Compared</span>
</a>
</div>
<div class="post-nav__center">
<a href="/blog/" class="btn btn--secondary btn--sm">All Posts</a>
</div>
<div class="post-nav__next">
<a href="/tutorial/2026/06/07/jekyll-resume-cv-website/" class="post-nav__link post-nav__link--next">
<span class="post-nav__label">Next →</span>
<span class="post-nav__title">How to Build a Resume or CV Website with Jekyll</span>
</a>
</div>
</nav>
</div>
<aside class="post-body__sidebar">
<div class="sidebar-card">
<h3 class="sidebar-card__title">Browse Themes</h3>
<ul class="post-sidebar__links">
<li><a href="/jekyll-academic-themes/">🎓 Academic Themes</a></li>
<li><a href="/jekyll-blog-themes/">✍️ Blog Themes</a></li>
<li><a href="/jekyll-business-themes/">💼 Business Themes</a></li>
<li><a href="/jekyll-documentation-themes/">📚 Documentation Themes</a></li>
<li><a href="/jekyll-e-commerce-themes/">🛒 E-commerce Themes</a></li>
<li><a href="/jekyll-landing-page-themes/">🚀 Landing Page Themes</a></li>
<li><a href="/jekyll-personal-themes/">👤 Personal Themes</a></li>
<li><a href="/jekyll-portfolio-themes/">🎨 Portfolio Themes</a></li>
<li><a href="/jekyll-resume-cv-themes/">📄 Resume/CV Themes</a></li>
<li><a href="/jekyll-github-pages-themes/"><svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor" style="display:inline;vertical-align:middle;margin-right:4px"><path d="M12 0C5.374 0 0 5.373 0 12c0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23A11.509 11.509 0 0 1 12 5.803c1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576C20.566 21.797 24 17.3 24 12c0-6.627-5.373-12-12-12z"/></svg>GitHub Pages Themes</a></li>
</ul>
<a href="/themes/" class="btn btn--primary btn--full" style="margin-top:var(--space-5)">Browse All Themes →</a>
</div>
<div class="sidebar-card" style="margin-top:var(--space-6)">
<h3 class="sidebar-card__title">Submit Your Theme</h3>
<p style="font-size:0.875rem;color:var(--text-3);line-height:1.6;margin-bottom:var(--space-4)">Built a Jekyll theme? Share it with thousands of developers.</p>
<a href="/submit/" class="btn btn--secondary btn--full">Submit a Theme →</a>
</div>
</aside>
</div>
</div>
<!-- Related Themes — rendered by JS from SITE_DATA, shuffled per page load -->
<section class="post-related-themes" style="display:none">
<div class="container">
<h2 class="post-related-themes__title">Themes You Might Like</h2>
<div class="themes-grid themes-grid--4" id="post-related-themes-grid"
data-tags="[]"
data-related-category="Blog"></div>
</div>
</section>
</article>
<!-- Back to top -->
<button class="back-to-top" id="back-to-top" aria-label="Back to top" onclick="window.scrollTo({top:0,behavior:'smooth'})">
<svg fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5" d="M5 15l7-7 7 7"/>
</svg>
</button>
<script src="/assets/js/post.js" defer></script>
</main>
</body>
</html>
Creating the resume page
Create resume.md (or cv.md) in your project root:
---
layout: resume
permalink: /resume/
---
{% assign r = site.data.resume %}
<header class="resume__header">
<h1 class="resume__name">{{ r.name }}</h1>
<p class="resume__title">{{ r.title }}</p>
<div class="resume__contact">
<span>{{ r.location }}</span>
<a href="mailto:{{ r.email }}">{{ r.email }}</a>
<a href="https://github.com/{{ r.github }}">GitHub</a>
<a href="https://linkedin.com/in/{{ r.linkedin }}">LinkedIn</a>
<a href="{{ r.website }}">{{ r.website }}</a>
</div>
</header>
<section class="resume__section">
<h2>Summary</h2>
<p>{{ r.summary }}</p>
</section>
<section class="resume__section">
<h2>Experience</h2>
{% for job in r.experience %}
<div class="resume__job">
<div class="resume__job-header">
<div>
<h3>{{ job.role }}</h3>
<p class="resume__company">{{ job.company }} · {{ job.location }}</p>
</div>
<span class="resume__period">{{ job.period }}</span>
</div>
<ul>
{% for highlight in job.highlights %}
<li>{{ highlight }}</li>
{% endfor %}
</ul>
</div>
{% endfor %}
</section>
<section class="resume__section">
<h2>Education</h2>
{% for edu in r.education %}
<div class="resume__job">
<div class="resume__job-header">
<div>
<h3>{{ edu.degree }}</h3>
<p class="resume__company">{{ edu.institution }}</p>
</div>
<span class="resume__period">{{ edu.period }}</span>
</div>
{% if edu.grade %}<p>{{ edu.grade }}</p>{% endif %}
</div>
{% endfor %}
</section>
<section class="resume__section">
<h2>Skills</h2>
{% for skill_group in r.skills %}
<div class="resume__skills">
<strong>{{ skill_group.category }}:</strong>
{{ skill_group.items | join: " · " }}
</div>
{% endfor %}
</section>
<section class="resume__section">
<h2>Projects</h2>
{% for project in r.projects %}
<div class="resume__project">
<h3><a href="{{ project.url }}">{{ project.name }}</a></h3>
<p>{{ project.description }}</p>
<p class="resume__tech">{{ project.tech | join: " · " }}</p>
</div>
{% endfor %}
</section>
Print-friendly CSS
Add print styles to make the resume look great when saved as PDF (File → Print → Save as PDF in Chrome):
/* assets/css/resume.css */
.resume {
max-width: 800px;
margin: 0 auto;
padding: 2rem;
font-family: system-ui, -apple-system, sans-serif;
font-size: 0.9rem;
color: #1a1a1a;
line-height: 1.5;
}
.resume__header { margin-bottom: 1.5rem; }
.resume__name { font-size: 1.75rem; font-weight: 700; margin: 0; }
.resume__title { color: #555; margin: 0.25rem 0; }
.resume__contact { display: flex; gap: 1rem; flex-wrap: wrap; font-size: 0.8rem; margin-top: 0.5rem; }
.resume__contact a { color: #2563eb; text-decoration: none; }
.resume__section { margin-bottom: 1.5rem; }
.resume__section h2 { font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.1em; color: #555; border-bottom: 1px solid #e5e7eb; padding-bottom: 0.25rem; margin-bottom: 0.75rem; }
.resume__job { margin-bottom: 1rem; }
.resume__job-header { display: flex; justify-content: space-between; align-items: flex-start; }
.resume__job h3 { margin: 0; font-size: 1rem; }
.resume__company { color: #555; margin: 0.1rem 0; font-size: 0.85rem; }
.resume__period { font-size: 0.8rem; color: #888; white-space: nowrap; }
.resume__job ul { margin: 0.5rem 0 0 1.2rem; padding: 0; }
.resume__job li { margin-bottom: 0.25rem; }
.resume__skills { margin-bottom: 0.4rem; }
.resume__tech { font-size: 0.8rem; color: #555; }
@media print {
body { background: white; }
.resume { max-width: 100%; padding: 0; }
a { color: inherit !important; text-decoration: none !important; }
.resume__contact a::after { content: " (" attr(href) ")"; font-size: 0.7rem; }
@page { margin: 1.5cm; }
}
Hosting on GitHub Pages
Push your Jekyll resume to a GitHub repository named yourusername.github.io. GitHub Pages automatically builds and deploys it. Your resume is live at https://yourusername.github.io/resume/ — free, forever, with a custom domain if you want one.
Jekyll resume themes
Rather than building from scratch, you can use an existing Jekyll resume theme:
- Researcher — academic-focused single-page theme
- Online CV — clean, single-page resume layout
- al-folio — popular academic portfolio with publications support
Browse the Resume/CV category on JekyllHub for curated options.
Tips for an effective online resume
Keep it to one page for print. Use the print CSS to verify everything fits on one A4 or Letter page when printed.
Use plain language. Write bullet points that start with action verbs: “Built”, “Led”, “Reduced”, “Implemented”. Quantify results where possible.
Keep the YAML updated. The advantage of data-driven resumes is that a single file change updates every page. Update _data/resume.yml after each role, not just before applying.
Add a PDF download link. Include a button that opens the print dialog:
<button onclick="window.print()">Download PDF</button>
<!DOCTYPE html>
Core Web Vitals for Jekyll Sites: A Practical Optimisation Guide (2026)
How to measure and improve Core Web Vitals (LCP, INP, CLS) on your Jekyll site — with practical fixes for the most common issues.
Jekyll sites start with an inherent performance advantage — no database, no server-side rendering, no PHP. But Core Web Vitals are not just about server speed. Largest Contentful Paint (LCP), Interaction to Next Paint (INP), and Cumulative Layout Shift (CLS) depend on how your HTML, CSS, JavaScript, images, and fonts are delivered to the browser.
Here is how to measure and fix each one.
Measuring Core Web Vitals
Before optimising, measure your current scores:
Google PageSpeed Insights — pagespeed.web.dev gives you both lab scores and real-world field data (Core Web Vitals from the Chrome User Experience Report).
Chrome DevTools — Open DevTools → Performance tab → record a page load. Check the LCP marker and layout shift events.
Web Vitals extension — Install the Google Web Vitals Chrome extension for real-time CWV scores as you browse your site.
Run tests on mobile, not just desktop. Mobile scores are what Google uses for ranking.
Largest Contentful Paint (LCP)
LCP measures how long it takes for the largest visible element to render. The target is under 2.5 seconds. For most Jekyll sites, the LCP element is either a hero image or the largest heading.
Fix 1: Preload your LCP image
If your LCP element is a hero image, add a preload hint in <head>:
{% if page.image %}
<link rel="preload" as="image" href="{{ page.image | relative_url }}">
{% endif %}
Fix 2: Use modern image formats
Convert images to WebP (25–35% smaller than JPEG) or AVIF (even smaller):
cwebp -q 85 hero.jpg -o hero.webp
Reference with a <picture> element for fallback:
<picture>
<source srcset="/assets/images/hero.avif" type="image/avif">
<source srcset="/assets/images/hero.webp" type="image/webp">
<img src="/assets/images/hero.jpg" alt="Hero" width="1200" height="630">
</picture>
Fix 3: Add width and height to images
This prevents layout shift and helps the browser calculate space before the image loads:
<img src="hero.webp" alt="Hero" width="1200" height="630" loading="lazy">
Do not use loading="lazy" on above-the-fold images — it delays the LCP element. Use loading="eager" or omit the attribute for hero images.
Fix 4: Self-host your fonts
Google Fonts adds a cross-origin request that delays rendering. Self-host fonts instead:
@font-face {
font-family: "Inter";
src: url("/assets/fonts/inter-v13-latin-regular.woff2") format("woff2");
font-display: swap;
}
The font-display: swap ensures text is visible while the font loads (using a system font fallback), preventing invisible text during load.
Fix 5: Eliminate render-blocking resources
CSS in <head> blocks rendering. JavaScript in <head> blocks rendering. Move non-critical CSS to inline critical styles, and add defer or async to all scripts:
<!-- Bad -->
<script src="/assets/js/main.js"></script>
<!-- Good -->
<script src="/assets/js/main.js" defer></script>
Interaction to Next Paint (INP)
INP replaced First Input Delay (FID) in 2024. It measures the time from any user interaction (click, tap, keyboard input) to the next frame painted. The target is under 200ms.
Jekyll sites with minimal JavaScript have excellent INP scores by default. Problems arise when you load heavy JavaScript that blocks the main thread.
Fix 1: Defer non-critical JavaScript
<script src="/assets/js/analytics.js" defer></script>
<script src="/assets/js/chat-widget.js" defer></script>
Fix 2: Avoid long tasks
Any JavaScript task that runs longer than 50ms can delay interactions. Use the Performance tab in Chrome DevTools to find long tasks (shown as red bars in the main thread timeline).
Break up long loops or calculations using setTimeout:
// Instead of one blocking loop:
function processItems(items) {
items.forEach(item => processItem(item)); // blocks if items is large
}
// Break it up:
function processItemsAsync(items, index = 0) {
processItem(items[index]);
if (index + 1 < items.length) {
setTimeout(() => processItemsAsync(items, index + 1), 0);
}
}
Fix 3: Remove unused JavaScript
Audit what JavaScript your site loads with the Chrome DevTools Coverage tab (DevTools → More tools → Coverage). Anything with high unused percentage is a candidate for removal or lazy loading.
Cumulative Layout Shift (CLS)
CLS measures unexpected layout movement — elements jumping around as the page loads. The target is under 0.1. Common causes on Jekyll sites:
Fix 1: Always specify image dimensions
<!-- Bad — no dimensions, layout shifts when image loads -->
<img src="hero.webp" alt="Hero">
<!-- Good — browser reserves space -->
<img src="hero.webp" alt="Hero" width="800" height="450">
Or use CSS aspect-ratio:
.post-image {
aspect-ratio: 16 / 9;
width: 100%;
}
Fix 2: Avoid inserting content above existing content
Announcement bars, cookie banners, and newsletter popups that appear after page load cause CLS. Either:
- Include them in the initial HTML (so they are rendered with the page, not injected later)
- Reserve space for them with a fixed height placeholder
Fix 3: Use font-display: swap and size-adjust
When a custom font loads, it can shift text because metrics differ from the fallback font. Use the size-adjust, ascent-override, and descent-override CSS properties to make your fallback match your custom font:
@font-face {
font-family: "Inter-fallback";
src: local("Arial");
size-adjust: 107%;
ascent-override: 90%;
}
body {
font-family: "Inter", "Inter-fallback", sans-serif;
}
Fix 4: Avoid dynamically injected ads or embeds
Third-party embeds (Twitter, YouTube, Google Ads) that do not have reserved space cause significant CLS. Use placeholder containers with explicit dimensions:
<div style="aspect-ratio: 16/9; background: #f3f4f6;">
<!-- YouTube embed loads here -->
</div>
Jekyll-specific optimisations
Inline critical CSS
Extract the CSS needed to render above-the-fold content and inline it in <head>:
<style>
/* Critical CSS — only what is needed for above-fold content */
body { margin: 0; font-family: system-ui, sans-serif; }
.navbar { height: 64px; background: #fff; }
.hero { padding: 4rem 1rem; }
</style>
<link rel="preload" href="/assets/css/main.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
Compress Jekyll output with a plugin
Add jekyll-compress-html to minify your HTML output:
# Gemfile
gem "jekyll-compress-html"
# _config.yml
compress_html:
clippings: all
comments: all
endings: all
Target scores
| Metric | Good | Needs improvement | Poor |
|---|---|---|---|
| LCP | < 2.5s | 2.5–4s | > 4s |
| INP | < 200ms | 200–500ms | > 500ms |
| CLS | < 0.1 | 0.1–0.25 | > 0.25 |
A well-optimised Jekyll site can consistently achieve LCP under 1 second, INP under 50ms, and CLS of 0 — well above Google’s “good” threshold for all three metrics.
<!DOCTYPE html>
Jekyll with a Headless CMS: Contentful, Sanity, and Decap Compared
Add a visual content editor to your Jekyll site without giving up static performance. A comparison of Contentful, Sanity, and Decap CMS for Jekyll.
Jekyll stores content as Markdown files — ideal for developers, frustrating for non-technical editors who want a visual dashboard. A headless CMS solves this by providing a content editing interface while keeping Jekyll as the static site builder.
Here is how the major options compare, and how to set each one up.
What is a headless CMS?
A headless CMS separates the content editing interface (“head”) from the front-end presentation. Editors log into a dashboard to write and manage content. The CMS stores content and exposes it via an API or writes it back to files. Jekyll consumes that content at build time.
The result: your editors get a friendly UI; your site is still static HTML.
Option 1: Decap CMS (formerly Netlify CMS)
Decap CMS is the most Jekyll-native option. It is an open-source, Git-based CMS — it reads and writes directly to your repository, so content stays in Markdown files alongside your code. No external API, no additional database.
How it works
Editors log into /admin/ on your site. The dashboard reads your existing Markdown files from Git, lets editors create and edit posts, and commits changes back to the repository. Your CI/CD pipeline (Netlify, Cloudflare Pages) picks up the commit and rebuilds the site.
Setup
Create admin/index.html:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Content Manager</title>
</head>
<body>
<script src="https://unpkg.com/decap-cms@^3.0.0/dist/decap-cms.js"></script>
</body>
</html>
Create admin/config.yml:
backend:
name: git-gateway
branch: main
media_folder: "assets/images/uploads"
public_folder: "/assets/images/uploads"
collections:
- name: "posts"
label: "Blog Posts"
folder: "_posts"
create: true
slug: "---"
fields:
- { label: "Layout", name: "layout", widget: "hidden", default: "post" }
- { label: "Title", name: "title", widget: "string" }
- { label: "Description", name: "description", widget: "text" }
- { label: "Date", name: "date", widget: "datetime" }
- { label: "Author", name: "author", widget: "string" }
- { label: "Body", name: "body", widget: "markdown" }
Enable Identity and Git Gateway in your Netlify dashboard under Site settings → Identity.
Pros: Free, Git-based, no external API, content stays in your repository.
Cons: Requires Netlify for OAuth; limited widgets compared to commercial options.
Option 2: Contentful
Contentful is a cloud-based headless CMS with a polished editor, powerful content modelling, and a generous free tier (25,000 records, 2 users). Content is stored in Contentful’s cloud and delivered via their API.
How it works with Jekyll
Unlike Decap, Contentful does not write Markdown files — it stores content in the cloud. You use a build plugin or a custom Ruby script to fetch content from Contentful’s API at build time and generate Jekyll data files or Markdown posts.
Using a Jekyll Contentful plugin
# Gemfile
gem "jekyll-contentful-data-import"
# _config.yml
contentful:
spaces:
- example:
space: YOUR_SPACE_ID
access_token: YOUR_ACCESS_TOKEN
cda_query:
include: 2
all_entries: true
Run bundle exec jekyll contentful to pull content before building. In CI, add this step to your build command:
bundle exec jekyll contentful && bundle exec jekyll build
Content arrives as YAML data files in _data/contentful/spaces/. You loop through them in Liquid like any other data:
{% for post in site.data.contentful.spaces.example.blogPost %}
<h2></h2>
{% endfor %}
Pros: Polished editor, strong content modelling, free tier is generous, good for large teams.
Cons: Content lives in the cloud (not your repo), API dependency at build time, can be complex to set up.
Option 3: Sanity
Sanity is a flexible, API-first headless CMS with a real-time collaborative editor (Sanity Studio) you can customise with JavaScript. It is particularly popular for structured content and complex content models.
How it works with Jekyll
Sanity stores content in its cloud. You fetch it at build time using a Ruby script or the Sanity JavaScript client.
Install the Sanity CLI and create a project:
npm create sanity@latest
Fetch content at build time with a Node.js script:
// tools/fetch-sanity.js
const { createClient } = require("@sanity/client");
const fs = require("fs");
const path = require("path");
const client = createClient({
projectId: "YOUR_PROJECT_ID",
dataset: "production",
useCdn: true,
apiVersion: "2024-01-01",
});
async function fetchPosts() {
const posts = await client.fetch(`*[_type == "post"]{title, slug, body, publishedAt}`);
posts.forEach(post => {
const content = `---
layout: post
title: "${post.title}"
date: ${post.publishedAt}
---
${post.body}`;
const filename = `${post.publishedAt.split("T")[0]}-${post.slug.current}.md`;
fs.writeFileSync(path.join("_posts", filename), content);
});
console.log(`Fetched ${posts.length} posts`);
}
fetchPosts();
Add to your build command:
node tools/fetch-sanity.js && bundle exec jekyll build
Pros: Extremely flexible content model, real-time collaboration, excellent for complex structured content.
Cons: More setup than Decap, content not in your repo, costs money beyond the free tier.
Comparison table
| Decap CMS | Contentful | Sanity | |
|---|---|---|---|
| Content storage | Git (your repo) | Cloud | Cloud |
| Free tier | Free (open source) | 25k records, 2 users | Up to 3 users |
| Setup complexity | Low | Medium | Medium-High |
| Editor experience | Good | Excellent | Excellent |
| Content modelling | YAML config | Drag-and-drop | JavaScript |
| Real-time collab | No | Yes (paid) | Yes |
| Best for | Small teams, developers | Mid-size teams | Complex content |
Which should you choose?
Choose Decap CMS if: Your team is small, you want content in Git, you are already on Netlify, and you want zero additional infrastructure cost.
Choose Contentful if: You have non-technical editors who need a polished experience, your content model is straightforward, and you want a managed solution with a free tier.
Choose Sanity if: You need a highly customised editing experience, complex structured content with references and blocks, or real-time collaboration out of the box.
For most Jekyll sites with one or two editors, Decap CMS is the right choice — it is free, keeps content in Git, and requires no external API at build time.
<!DOCTYPE html>
How to Add a CMS to Jekyll with Decap CMS (Formerly Netlify CMS)
Add a visual content editor to your Jekyll site using Decap CMS — set up the admin panel, configure collections, and let non-developers publish posts without touching code.
Jekyll is code-first — posts are Markdown files, publishing means a Git commit. That’s great for developers but a barrier for non-technical collaborators. Decap CMS (the open-source successor to Netlify CMS) adds a visual editing interface to any Jekyll site, backed by your Git repository. No database, no separate server.
What Is Decap CMS?
Decap CMS is an open-source, Git-based content management system. It adds an /admin page to your site with a visual editor. When a content editor saves a post, Decap CMS commits the Markdown file to your GitHub repository — the same way you would from the command line, but through a web interface.
Key points:
- Runs entirely in the browser — no server needed
- Saves content as Markdown files in your repository
- Authenticates via GitHub, GitLab, or Bitbucket OAuth
- Free and open-source (MIT licence)
- Works with GitHub Pages, Netlify, and Cloudflare Pages
Step 1: Create the Admin Folder
Create an admin/ folder in your Jekyll site root with two files:
admin/index.html:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="robots" content="noindex">
<title>Content Manager</title>
</head>
<body>
<script src="https://unpkg.com/decap-cms@^3.0.0/dist/decap-cms.js"></script>
</body>
</html>
admin/config.yml:
This is the main configuration file — it defines your content collections and fields.
backend:
name: github
repo: yourusername/your-repo-name
branch: main
media_folder: "assets/images/uploads"
public_folder: "/assets/images/uploads"
collections:
- name: "posts"
label: "Blog Posts"
folder: "_posts"
create: true
slug: "{{year}}-{{month}}-{{day}}-{{slug}}"
fields:
- { label: "Title", name: "title", widget: "string" }
- { label: "Description", name: "description", widget: "string" }
- { label: "Date", name: "date", widget: "datetime" }
- { label: "Cover Image", name: "image", widget: "image", required: false }
- { label: "Author", name: "author", widget: "string", required: false }
- { label: "Category", name: "category", widget: "string", required: false }
- label: "Tags"
name: "tags"
widget: "list"
field: { label: "Tag", name: "tag", widget: "string" }
- { label: "Featured", name: "featured", widget: "boolean", default: false }
- { label: "Body", name: "body", widget: "markdown" }
Step 2: Set Up Authentication
Decap CMS needs a way to authenticate with GitHub. Choose one:
Option A: Netlify Identity (Easiest, Netlify only)
If your site is on Netlify:
- Enable Netlify Identity in your site’s Netlify dashboard → Identity → Enable
- Under Registration preferences, set to Invite only
- Under External providers, enable GitHub
- Add the Netlify Identity widget to your site:
In admin/index.html, add before </head>:
<script src="https://identity.netlify.com/v1/netlify-identity-widget.js"></script>
Also add to your _layouts/default.html before </body>:
<script>
if (window.netlifyIdentity) {
window.netlifyIdentity.on("init", user => {
if (!user) {
window.netlifyIdentity.on("login", () => {
document.location.href = "/admin/";
});
}
});
}
</script>
<script src="https://identity.netlify.com/v1/netlify-identity-widget.js"></script>
- Invite users in Netlify → Identity → Invite users
Option B: GitHub OAuth App (Works on any host)
- Go to GitHub → Settings → Developer settings → OAuth Apps → New OAuth App
- Set:
- Application name: Your Site CMS
- Homepage URL:
https://yourdomain.com - Authorization callback URL:
https://api.netlify.com/auth/done
- Copy the Client ID and Client Secret
- In Netlify Dashboard → Site settings → Access control → OAuth → Install provider → GitHub → paste Client ID and Secret
Update admin/config.yml:
backend:
name: github
repo: yourusername/your-repo-name
branch: main
base_url: https://api.netlify.com
auth_endpoint: auth
Step 3: Configure Your Collections
A collection maps to a folder of content files. Configure one for each content type you want editors to manage.
Posts Collection
- name: "posts"
label: "Blog Posts"
folder: "_posts"
create: true
slug: "{{year}}-{{month}}-{{day}}-{{slug}}"
preview_path: "blog/{{slug}}"
fields:
- { label: "Layout", name: "layout", widget: "hidden", default: "post" }
- { label: "Title", name: "title", widget: "string" }
- { label: "Description", name: "description", widget: "string", hint: "150-160 characters for SEO" }
- { label: "Publish Date", name: "date", widget: "datetime" }
- { label: "Cover Image", name: "image", widget: "image", required: false }
- label: "Category"
name: "category"
widget: "select"
options: ["Tutorial", "Blog", "Themes", "SEO", "Comparison"]
- label: "Tags"
name: "tags"
widget: "list"
- { label: "Featured Post", name: "featured", widget: "boolean", default: false }
- { label: "Body", name: "body", widget: "markdown" }
Pages Collection
- name: "pages"
label: "Pages"
files:
- label: "About"
name: "about"
file: "_pages/about.md"
fields:
- { label: "Title", name: "title", widget: "string" }
- { label: "Body", name: "body", widget: "markdown" }
- label: "Contact"
name: "contact"
file: "_pages/contact.md"
fields:
- { label: "Title", name: "title", widget: "string" }
- { label: "Body", name: "body", widget: "markdown" }
Themes Collection (for JekyllHub)
- name: "themes"
label: "Themes"
folder: "_themes"
create: true
slug: "{{slug}}"
fields:
- { label: "Title", name: "title", widget: "string" }
- { label: "Description", name: "description", widget: "text" }
- { label: "Demo URL", name: "demo_url", widget: "string" }
- { label: "GitHub URL", name: "github_url", widget: "string" }
- { label: "Stars", name: "stars", widget: "number" }
- label: "Price Type"
name: "price_type"
widget: "select"
options: ["free", "premium"]
- { label: "Card Image", name: "card_image", widget: "image" }
- { label: "Body", name: "body", widget: "markdown" }
Step 4: Add admin/ to Your Build
Make sure the admin/ folder is included in your Jekyll build. By default it is — Jekyll copies non-underscored folders to _site/.
If you have a .gitignore that excludes admin/, remove that exclusion.
Verify by running bundle exec jekyll build and checking that _site/admin/index.html exists.
Step 5: Exclude admin from Sitemap
You don’t want the admin panel showing up in your sitemap or search results:
# admin/index.html front matter (add front matter to the file)
---
sitemap: false
---
Or in _config.yml:
exclude:
- admin/config.yml
Using the CMS
Once set up, your editors visit https://yourdomain.com/admin/ and log in with GitHub. They see a dashboard with all your configured collections.
Creating a post: Click the collection, click New Post, fill in the fields, write in the Markdown editor, click Publish. Decap CMS commits the file to your repository, triggering a rebuild.
Editing existing content: Browse the collection, click a file, edit, save.
Media uploads: Images drag-and-drop into the Markdown editor and are saved to your assets/images/uploads/ folder.
Editorial Workflow (Optional)
Enable draft/review workflow so posts go through approval before publishing:
# admin/config.yml
publish_mode: editorial_workflow
This adds a Kanban-style board with Drafts, In Review, and Ready columns. Content stays as a branch until approved, then merges to main.
Alternatives to Decap CMS
| Tool | Price | Best for |
|---|---|---|
| Decap CMS | Free | Git-based, self-hosted |
| CloudCannon | $45+/month | Most polished Jekyll CMS |
| Forestry.io | Free (limited) | Simple visual editing |
| TinaCMS | Free (limited) | Real-time inline editing |
| Contentful | Free (limited) | API-first, enterprise |
For most Jekyll sites, Decap CMS hits the right balance of features and cost (free). CloudCannon is worth it if you’re managing content for clients or a team.
Browse Jekyll themes on JekyllHub — all themes work with Decap CMS as the admin panel.
<!DOCTYPE html>
How to Add Interactivity to Jekyll with Alpine.js
Alpine.js is a lightweight JavaScript framework perfect for Jekyll sites. Learn how to add dropdowns, tabs, modals, accordions, and more without a build step.
Jekyll produces static HTML — no JavaScript framework, no reactive state, just pages. That is a feature, not a bug. But sometimes you need a little interactivity: a mobile menu toggle, a tab component, an accordion, a modal. Writing vanilla JavaScript for each one is repetitive. React is massive overkill.
Alpine.js is the perfect middle ground. It is a 15kb library that adds reactive behaviour directly in your HTML — no build step, no component files, no bundler required.
What is Alpine.js?
Alpine.js lets you add JavaScript behaviour to HTML elements using special attributes: x-data, x-show, x-bind, x-on, and a handful of others. If you know Tailwind CSS, Alpine has the same philosophy applied to JavaScript — declare behaviour in your markup.
<div x-data="{ open: false }">
<button @click="open = !open">Toggle</button>
<div x-show="open">I am visible when open is true</div>
</div>
That is it. No component files, no state management, no compilation.
Adding Alpine.js to Jekyll
Option 1: CDN (simplest)
Add Alpine via CDN in your _layouts/default.html before the closing </body>:
<script defer src="https://cdn.jsdelivr.net/npm/alpinejs@3.x.x/dist/cdn.min.js"></script>
The defer attribute ensures Alpine loads after the DOM is ready. This is all you need for most use cases.
Option 2: npm install
If you already have a Node.js build pipeline:
npm install alpinejs
Then import in your JS entry point:
import Alpine from "alpinejs";
window.Alpine = Alpine;
Alpine.start();
Practical examples for Jekyll sites
Mobile navigation menu
The most common use case on any Jekyll site:
<nav x-data="{ mobileOpen: false }">
<div class="navbar__inner">
<a href="/" class="navbar__logo">JekyllHub</a>
<!-- Desktop links -->
<ul class="navbar__links">
<li><a href="/themes/">Browse</a></li>
<li><a href="/blog/">Blog</a></li>
</ul>
<!-- Mobile toggle -->
<button @click="mobileOpen = !mobileOpen" :aria-expanded="mobileOpen">
<span x-show="!mobileOpen">☰</span>
<span x-show="mobileOpen">✕</span>
</button>
</div>
<!-- Mobile menu -->
<div x-show="mobileOpen" x-transition @click.away="mobileOpen = false">
<ul>
<li><a href="/themes/">Browse</a></li>
<li><a href="/blog/">Blog</a></li>
</ul>
</div>
</nav>
FAQ accordion
<div class="faq" x-data="{ active: null }">
{% for item in site.data.faq %}
<div class="faq-item">
<button
class="faq-question"
@click="active = active === {{ forloop.index }} ? null : {{ forloop.index }}"
:aria-expanded="active === {{ forloop.index }}"
>
{{ item.question }}
<span x-text="active === {{ forloop.index }} ? '−' : '+'"></span>
</button>
<div
class="faq-answer"
x-show="active === {{ forloop.index }}"
x-transition
>
{{ item.answer }}
</div>
</div>
{% endfor %}
</div>
Tab component
<div x-data="{ tab: 'themes' }">
<!-- Tab buttons -->
<div class="tabs">
<button
@click="tab = 'themes'"
:class="tab === 'themes' ? 'tab--active' : ''"
>Themes</button>
<button
@click="tab = 'posts'"
:class="tab === 'posts' ? 'tab--active' : ''"
>Posts</button>
</div>
<!-- Tab panels -->
<div x-show="tab === 'themes'">
<!-- themes content -->
</div>
<div x-show="tab === 'posts'">
<!-- posts content -->
</div>
</div>
Modal / lightbox
<div x-data="{ open: false, image: '' }">
<!-- Trigger buttons on theme cards -->
{% for theme in site.themes %}
<button
@click="open = true; image = '{{ theme.card_image | relative_url }}'"
>
<img src="{{ theme.card_image | relative_url }}" alt="{{ theme.title }}">
</button>
{% endfor %}
<!-- Modal overlay -->
<div
x-show="open"
x-transition
@click="open = false"
@keydown.escape.window="open = false"
class="modal-overlay"
>
<div @click.stop class="modal-panel">
<button @click="open = false" class="modal-close">✕</button>
<img :src="image" class="modal-image">
</div>
</div>
</div>
Dark mode toggle
<button
x-data
@click="
document.documentElement.classList.toggle('dark');
localStorage.setItem('theme',
document.documentElement.classList.contains('dark') ? 'dark' : 'light'
)
"
aria-label="Toggle dark mode"
>
🌙
</button>
On page load, restore the saved preference:
<script>
if (localStorage.theme === 'dark' ||
(!localStorage.theme && window.matchMedia('(prefers-color-scheme: dark)').matches)) {
document.documentElement.classList.add('dark');
}
</script>
Search input filter
Filter a list of items client-side without a full search library:
<div x-data="{ query: '' }">
<input
x-model="query"
type="search"
placeholder="Filter themes..."
class="search-input"
>
<div class="theme-grid">
{% for theme in site.themes %}
<div
class="theme-card"
x-show="'{{ theme.title | downcase }}'.includes(query.toLowerCase())"
>
<h3>{{ theme.title }}</h3>
</div>
{% endfor %}
</div>
</div>
Alpine.js directives reference
| Directive | What it does |
|---|---|
x-data |
Defines a reactive data scope |
x-show |
Toggles element visibility |
x-if |
Conditionally renders element (removes from DOM) |
x-for |
Loops over an array |
x-model |
Two-way data binding on inputs |
x-text |
Sets element text content |
x-html |
Sets inner HTML |
x-bind or : |
Binds an attribute to a value |
x-on or @ |
Attaches event listeners |
x-transition |
Adds enter/leave CSS transitions |
x-ref |
Gives an element a reference |
x-cloak |
Hides element until Alpine initialises |
Preventing flash of Alpine markup
Before Alpine initialises, x-show elements may flash visible. Prevent this with x-cloak:
<style>[x-cloak] { display: none !important; }</style>
<div x-data="{ open: false }" x-cloak>
<div x-show="open">Hidden until Alpine loads</div>
</div>
Alpine.js vs vanilla JavaScript for Jekyll
For simple toggles and one-off interactions, vanilla JS is fine. Alpine becomes valuable when you have multiple interactive components that would otherwise require repetitive vanilla JS — menus, accordions, tabs, modals, filters. Alpine makes each one a few lines of HTML rather than a script block.
The 15kb cost is worth paying when you have three or more interactive components. If you only need one toggle on your entire site, a three-line vanilla JS function is lighter.
Alpine and Jekyll together give you the interactivity of a framework site with the speed and simplicity of a static one.
<!DOCTYPE html>
How to Use Tailwind CSS with Jekyll (2026 Guide)
A step-by-step guide to setting up Tailwind CSS v4 with Jekyll — installation, PostCSS config, purging unused styles, and a working example.
Tailwind CSS and Jekyll are a natural combination — Tailwind’s utility-first approach works beautifully in Liquid templates, and the purging process eliminates unused classes for a tiny final CSS bundle. Here is how to set it up properly in 2026.
Prerequisites
You need Node.js installed alongside Ruby and Jekyll. Check both are available:
node --version # v18 or higher recommended
ruby --version # 3.1 or higher
jekyll --version # 4.x
Method 1: Tailwind via PostCSS (recommended)
This approach integrates Tailwind into Jekyll’s asset pipeline via PostCSS.
Step 1: Initialise npm in your Jekyll project
cd your-jekyll-site
npm init -y
Step 2: Install Tailwind and PostCSS
npm install -D tailwindcss @tailwindcss/postcss postcss autoprefixer
Step 3: Initialise Tailwind
npx tailwindcss init
This creates tailwind.config.js in your project root.
Step 4: Configure Tailwind content paths
Edit tailwind.config.js to scan your Jekyll template files:
/** @type {import("tailwindcss").Config} */
module.exports = {
content: [
"./_includes/**/*.html",
"./_layouts/**/*.html",
"./_pages/**/*.html",
"./_posts/**/*.md",
"./*.html",
],
theme: {
extend: {},
},
plugins: [],
};
Step 5: Create a PostCSS config
Create postcss.config.js in your project root:
module.exports = {
plugins: {
"@tailwindcss/postcss": {},
autoprefixer: {},
},
};
Step 6: Create your Tailwind input CSS
Create assets/css/tailwind.css:
@import "tailwindcss";
Step 7: Add a build script to package.json
{
"scripts": {
"build:css": "postcss assets/css/tailwind.css -o assets/css/main.css",
"watch:css": "postcss assets/css/tailwind.css -o assets/css/main.css --watch",
"dev": "npm run watch:css & bundle exec jekyll serve",
"build": "npm run build:css && JEKYLL_ENV=production bundle exec jekyll build"
}
}
Step 8: Link the compiled CSS in your layout
In _layouts/default.html, replace your existing CSS link:
<link rel="stylesheet" href="/assets/css/main.css">
Step 9: Add compiled CSS to .gitignore (optional)
echo "assets/css/main.css" >> .gitignore
Add it to your git history if you prefer to commit the compiled output for simpler CI/CD.
Step 10: Run the development server
npm run dev
This runs Tailwind in watch mode alongside jekyll serve. Changes to your HTML templates trigger Tailwind to recompile; changes to your Markdown content trigger Jekyll to rebuild.
Method 2: Tailwind CDN (quick start, not for production)
For rapid prototyping, the Tailwind Play CDN works immediately with no build step:
<script src="https://cdn.tailwindcss.com"></script>
Add this to your <head>. This is only for development and prototyping — the CDN loads the full unoptimised Tailwind bundle (~3MB). Never use it in production.
Using Tailwind in Liquid templates
With Tailwind set up, you can use utility classes directly in your layouts and includes:
<!-- _layouts/default.html -->
<nav class="sticky top-0 z-50 bg-white border-b border-gray-100 shadow-sm">
<div class="max-w-6xl mx-auto px-4 flex items-center justify-between h-16">
<a href="/" class="text-xl font-bold text-blue-600">JekyllHub</a>
<ul class="flex gap-6">
<li><a href="/themes/" class="text-gray-600 hover:text-blue-600 transition-colors">Browse</a></li>
<li><a href="/blog/" class="text-gray-600 hover:text-blue-600 transition-colors">Blog</a></li>
</ul>
</div>
</nav>
<!-- _layouts/post.html -->
<article class="max-w-2xl mx-auto px-4 py-16">
<h1 class="text-4xl font-bold tracking-tight text-gray-900 mb-4">
How to Use Tailwind CSS with Jekyll (2026 Guide)
</h1>
<div class="prose prose-lg text-gray-700">
<div class="read-progress" id="read-progress"></div>
<article class="post" itemscope itemtype="https://schema.org/BlogPosting">
<header class="post-hero">
<div class="container">
<div class="post-hero__breadcrumb">
<a href="/">Home</a>
<span class="breadcrumb-sep">›</span>
<a href="/blog/">Blog</a>
<span class="breadcrumb-sep">›</span>
<span>Jekyll vs Webflow: Which Is Right for Your Website in 2026?</span>
</div>
<div class="post-hero__inner">
<span class="post-hero__cat">Comparison</span>
<h1 class="post-hero__title" itemprop="name">Jekyll vs Webflow: Which Is Right for Your Website in 2026?</h1>
<p class="post-hero__desc" itemprop="description">Jekyll and Webflow are both used to build beautiful, fast websites — but they work completely differently. Here is how to choose between them.</p>
<div class="post-hero__meta">
<span class="post-meta-item">
<svg width="15" height="15" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"/></svg>
Updated <time itemprop="dateModified" datetime="2026-07-15T00:00:00+00:00">July 15, 2026</time>
</span>
<span class="post-meta-item">
<svg width="15" height="15" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"/></svg>
5 min read
</span>
</div>
</div>
</div>
</header>
<div class="post-cover">
<div class="container">
<img src="/assets/images/blog/jekyll-vs-webflow.webp" alt="Jekyll vs Webflow: Which Is Right for Your Website in 2026?" class="post-cover__img" itemprop="image">
</div>
</div>
<div class="container">
<div class="post-body">
<div class="post-body__main">
<div class="post-toc" id="post-toc" data-collapsed="false" style="display:none">
<button class="post-toc__label" id="toc-toggle" aria-expanded="false" aria-controls="toc-body">
<span class="post-toc__label-left">
<svg width="14" height="14" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 10h16M4 14h10"/></svg>
Table of Contents
</span>
<svg class="post-toc__chevron" width="14" height="14" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"/></svg>
</button>
<nav id="toc-body" class="toc"></nav>
</div>
<div class="prose" itemprop="articleBody">
<p>Jekyll and Webflow represent two very different approaches to building websites. Jekyll is a code-first static site generator. Webflow is a visual design tool that generates clean HTML and CSS without writing code. Both produce fast, beautifully designed websites — but the path to get there is completely different.</p>
<h2 id="what-each-tool-is">What each tool is</h2>
<p><strong>Jekyll</strong> is a static site generator you run on your computer. You write Markdown for content, HTML and Liquid for templates, and SCSS for styles. The output is a folder of static files you deploy to any host.</p>
<p><strong>Webflow</strong> is a visual web design platform — you design in a browser-based editor similar to Figma or Adobe XD, and Webflow generates the HTML, CSS, and JavaScript. You host on Webflow’s infrastructure or export the code.</p>
<h2 id="who-each-tool-is-for">Who each tool is for</h2>
<p>Jekyll is for developers and technical users. You need to be comfortable with the command line, text editors, Git, and markup languages. A non-technical person can learn it, but it takes time.</p>
<p>Webflow is for designers and non-developers. Its visual canvas is intuitive for anyone who has used a design tool. You can build a production-quality website without writing a single line of code.</p>
<h2 id="cost-comparison">Cost comparison</h2>
<table>
<thead>
<tr>
<th>Plan</th>
<th>Jekyll</th>
<th>Webflow</th>
</tr>
</thead>
<tbody>
<tr>
<td>Hosting</td>
<td>Free (GitHub Pages/Cloudflare)</td>
<td>$14–$39+/month</td>
</tr>
<tr>
<td>CMS (managed content)</td>
<td>Free</td>
<td>Included in Business plan</td>
</tr>
<tr>
<td>E-commerce</td>
<td>Free (+ transaction fees)</td>
<td>$29–$212/month</td>
</tr>
<tr>
<td>Custom code</td>
<td>Full access</td>
<td>Paid plans</td>
</tr>
<tr>
<td>Team collaboration</td>
<td>Git (free)</td>
<td>$19–$49/seat/month</td>
</tr>
</tbody>
</table>
<p>Jekyll can be hosted for free indefinitely. Webflow’s site plans start at $14/month and scale up. For a developer, Jekyll is dramatically cheaper. For a non-developer who would otherwise hire a developer, Webflow’s cost may be justified.</p>
<h2 id="design-flexibility">Design flexibility</h2>
<p>Webflow gives you pixel-perfect control over layout and design through its visual canvas. Animations, interactions, and responsive breakpoints are set visually. What you see in the editor is almost exactly what you get in the browser.</p>
<p>Jekyll gives you total control through code — but you need to write it. You can build anything in Jekyll that you can build in HTML and CSS, but there is no visual editor. Design changes happen in a text file.</p>
<p><strong>For designers:</strong> Webflow.<br />
<strong>For developers:</strong> Jekyll.</p>
<h2 id="content-management">Content management</h2>
<p>Webflow has a built-in CMS with a visual editor for non-technical content editors. You define content types (blog posts, team members, products), your editors fill them in through the dashboard, and Webflow builds the pages.</p>
<p>Jekyll stores content as Markdown files in a repository. Non-technical editors can use a headless CMS like Decap CMS or Forestry.io that provides a dashboard in front of the Git repository — but it requires setup.</p>
<p><strong>Winner for non-technical content editing:</strong> Webflow.</p>
<h2 id="performance">Performance</h2>
<p>Both platforms produce fast websites. Jekyll outputs pure static HTML with no server-side processing. Webflow adds some of its own JavaScript for interactions and the Webflow hosting infrastructure uses a global CDN.</p>
<p>In practice, both score 90+ on Google Lighthouse. Jekyll has a slight edge for minimal sites because it ships zero framework JavaScript. Webflow sites with complex animations can become heavy.</p>
<h2 id="ownership-and-portability">Ownership and portability</h2>
<p>Jekyll content is Markdown files on your computer. You own them completely, can move hosts at any time, and are not dependent on any platform.</p>
<p>Webflow is more of a platform lock-in. You can export the static HTML/CSS, but the CMS content and dynamic features do not export cleanly. Moving away from Webflow means rebuilding your content structure.</p>
<p><strong>Winner for ownership:</strong> Jekyll.</p>
<h2 id="when-to-choose-jekyll">When to choose Jekyll</h2>
<ul>
<li>You are a developer or willing to learn basic web technologies</li>
<li>Cost is a primary concern (free vs $14+/month)</li>
<li>You want complete ownership of your code and content</li>
<li>You have a blog or documentation site that does not need complex animations</li>
<li>You want to host on GitHub Pages for free</li>
</ul>
<h2 id="when-to-choose-webflow">When to choose Webflow</h2>
<ul>
<li>You are a designer who does not code</li>
<li>You need to build and iterate on complex, animated layouts quickly</li>
<li>Your client or team needs a visual CMS without a developer in the loop</li>
<li>You are building a marketing site that needs frequent design changes</li>
<li>Budget is less of a concern than speed of design iteration</li>
</ul>
<h2 id="the-middle-ground">The middle ground</h2>
<p>Some teams use Webflow for design exploration and Jekyll for production — Webflow to prototype quickly, then port the design to Jekyll for long-term control and free hosting. This is more work upfront but pays off for sites that need to last years.</p>
<p>If you are a developer who values control and low cost, Jekyll is the right choice. If you are a designer who wants to ship beautiful sites without touching code, Webflow earns its price tag.</p>
<p>Browse <a href="/themes/">Jekyll themes on JekyllHub</a> to see what is achievable without Webflow.</p>
</div>
<div class="post-tags">
</div>
<div class="post-share">
<span class="post-share__label">Share</span>
<a href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fjekyllhub.com%2Fcomparison%2F2026%2F06%2F01%2Fjekyll-vs-webflow%2F&text=Jekyll+vs+Webflow%3A+Which+Is+Right+for+Your+Website+in+2026%3F" target="_blank" rel="noopener" class="post-share__btn post-share__btn--twitter">
<svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor"><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-4.714-6.231-5.401 6.231H2.746l7.73-8.835L1.254 2.25H8.08l4.253 5.622zm-1.161 17.52h1.833L7.084 4.126H5.117z"/></svg>
X / Twitter
</a>
<a href="https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fjekyllhub.com%2Fcomparison%2F2026%2F06%2F01%2Fjekyll-vs-webflow%2F&title=Jekyll+vs+Webflow%3A+Which+Is+Right+for+Your+Website+in+2026%3F" target="_blank" rel="noopener" class="post-share__btn post-share__btn--linkedin">
<svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor"><path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 01-2.063-2.065 2.064 2.064 0 112.063 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"/></svg>
LinkedIn
</a>
<button class="post-share__btn post-share__btn--copy" onclick="JekyllHub.copyPostLink(this)">
<svg width="14" height="14" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"/></svg>
<span>Copy Link</span>
</button>
</div>
<nav class="post-nav" aria-label="Post navigation">
<div class="post-nav__prev">
<a href="/comparison/2026/05/31/jekyll-vs-ghost/" class="post-nav__link">
<span class="post-nav__label">← Previous</span>
<span class="post-nav__title">Jekyll vs Ghost: Which Platform Is Right for Your Blog in 2026?</span>
</a>
</div>
<div class="post-nav__center">
<a href="/blog/" class="btn btn--secondary btn--sm">All Posts</a>
</div>
<div class="post-nav__next">
<a href="/tutorial/2026/06/02/jekyll-tailwind-css/" class="post-nav__link post-nav__link--next">
<span class="post-nav__label">Next →</span>
<span class="post-nav__title">How to Use Tailwind CSS with Jekyll (2026 Guide)</span>
</a>
</div>
</nav>
</div>
<aside class="post-body__sidebar">
<div class="sidebar-card">
<h3 class="sidebar-card__title">Browse Themes</h3>
<ul class="post-sidebar__links">
<li><a href="/jekyll-academic-themes/">🎓 Academic Themes</a></li>
<li><a href="/jekyll-blog-themes/">✍️ Blog Themes</a></li>
<li><a href="/jekyll-business-themes/">💼 Business Themes</a></li>
<li><a href="/jekyll-documentation-themes/">📚 Documentation Themes</a></li>
<li><a href="/jekyll-e-commerce-themes/">🛒 E-commerce Themes</a></li>
<li><a href="/jekyll-landing-page-themes/">🚀 Landing Page Themes</a></li>
<li><a href="/jekyll-personal-themes/">👤 Personal Themes</a></li>
<li><a href="/jekyll-portfolio-themes/">🎨 Portfolio Themes</a></li>
<li><a href="/jekyll-resume-cv-themes/">📄 Resume/CV Themes</a></li>
<li><a href="/jekyll-github-pages-themes/"><svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor" style="display:inline;vertical-align:middle;margin-right:4px"><path d="M12 0C5.374 0 0 5.373 0 12c0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23A11.509 11.509 0 0 1 12 5.803c1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576C20.566 21.797 24 17.3 24 12c0-6.627-5.373-12-12-12z"/></svg>GitHub Pages Themes</a></li>
</ul>
<a href="/themes/" class="btn btn--primary btn--full" style="margin-top:var(--space-5)">Browse All Themes →</a>
</div>
<div class="sidebar-card" style="margin-top:var(--space-6)">
<h3 class="sidebar-card__title">Submit Your Theme</h3>
<p style="font-size:0.875rem;color:var(--text-3);line-height:1.6;margin-bottom:var(--space-4)">Built a Jekyll theme? Share it with thousands of developers.</p>
<a href="/submit/" class="btn btn--secondary btn--full">Submit a Theme →</a>
</div>
</aside>
</div>
</div>
<!-- Related Themes — rendered by JS from SITE_DATA, shuffled per page load -->
<section class="post-related-themes" style="display:none">
<div class="container">
<h2 class="post-related-themes__title">Themes You Might Like</h2>
<div class="themes-grid themes-grid--4" id="post-related-themes-grid"
data-tags="[]"
data-related-category="Blog"></div>
</div>
</section>
</article>
<!-- Back to top -->
<button class="back-to-top" id="back-to-top" aria-label="Back to top" onclick="window.scrollTo({top:0,behavior:'smooth'})">
<svg fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5" d="M5 15l7-7 7 7"/>
</svg>
</button>
<script src="/assets/js/post.js" defer></script>
</div>
</article>
Adding the Tailwind Typography plugin
The @tailwindcss/typography plugin adds beautiful prose styling for Markdown-rendered content — exactly what you need for blog posts:
npm install -D @tailwindcss/typography
In tailwind.config.js:
module.exports = {
// ...
plugins: [
require("@tailwindcss/typography"),
],
};
Then wrap your post content in a prose class:
<div class="prose prose-lg prose-blue max-w-none">
<div class="read-progress" id="read-progress"></div>
<article class="post" itemscope itemtype="https://schema.org/BlogPosting">
<header class="post-hero">
<div class="container">
<div class="post-hero__breadcrumb">
<a href="/">Home</a>
<span class="breadcrumb-sep">›</span>
<a href="/blog/">Blog</a>
<span class="breadcrumb-sep">›</span>
<span>Jekyll vs Webflow: Which Is Right for Your Website in 2026?</span>
</div>
<div class="post-hero__inner">
<span class="post-hero__cat">Comparison</span>
<h1 class="post-hero__title" itemprop="name">Jekyll vs Webflow: Which Is Right for Your Website in 2026?</h1>
<p class="post-hero__desc" itemprop="description">Jekyll and Webflow are both used to build beautiful, fast websites — but they work completely differently. Here is how to choose between them.</p>
<div class="post-hero__meta">
<span class="post-meta-item">
<svg width="15" height="15" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"/></svg>
Updated <time itemprop="dateModified" datetime="2026-07-15T00:00:00+00:00">July 15, 2026</time>
</span>
<span class="post-meta-item">
<svg width="15" height="15" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"/></svg>
5 min read
</span>
</div>
</div>
</div>
</header>
<div class="post-cover">
<div class="container">
<img src="/assets/images/blog/jekyll-vs-webflow.webp" alt="Jekyll vs Webflow: Which Is Right for Your Website in 2026?" class="post-cover__img" itemprop="image">
</div>
</div>
<div class="container">
<div class="post-body">
<div class="post-body__main">
<div class="post-toc" id="post-toc" data-collapsed="false" style="display:none">
<button class="post-toc__label" id="toc-toggle" aria-expanded="false" aria-controls="toc-body">
<span class="post-toc__label-left">
<svg width="14" height="14" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 10h16M4 14h10"/></svg>
Table of Contents
</span>
<svg class="post-toc__chevron" width="14" height="14" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"/></svg>
</button>
<nav id="toc-body" class="toc"></nav>
</div>
<div class="prose" itemprop="articleBody">
<p>Jekyll and Webflow represent two very different approaches to building websites. Jekyll is a code-first static site generator. Webflow is a visual design tool that generates clean HTML and CSS without writing code. Both produce fast, beautifully designed websites — but the path to get there is completely different.</p>
<h2 id="what-each-tool-is">What each tool is</h2>
<p><strong>Jekyll</strong> is a static site generator you run on your computer. You write Markdown for content, HTML and Liquid for templates, and SCSS for styles. The output is a folder of static files you deploy to any host.</p>
<p><strong>Webflow</strong> is a visual web design platform — you design in a browser-based editor similar to Figma or Adobe XD, and Webflow generates the HTML, CSS, and JavaScript. You host on Webflow’s infrastructure or export the code.</p>
<h2 id="who-each-tool-is-for">Who each tool is for</h2>
<p>Jekyll is for developers and technical users. You need to be comfortable with the command line, text editors, Git, and markup languages. A non-technical person can learn it, but it takes time.</p>
<p>Webflow is for designers and non-developers. Its visual canvas is intuitive for anyone who has used a design tool. You can build a production-quality website without writing a single line of code.</p>
<h2 id="cost-comparison">Cost comparison</h2>
<table>
<thead>
<tr>
<th>Plan</th>
<th>Jekyll</th>
<th>Webflow</th>
</tr>
</thead>
<tbody>
<tr>
<td>Hosting</td>
<td>Free (GitHub Pages/Cloudflare)</td>
<td>$14–$39+/month</td>
</tr>
<tr>
<td>CMS (managed content)</td>
<td>Free</td>
<td>Included in Business plan</td>
</tr>
<tr>
<td>E-commerce</td>
<td>Free (+ transaction fees)</td>
<td>$29–$212/month</td>
</tr>
<tr>
<td>Custom code</td>
<td>Full access</td>
<td>Paid plans</td>
</tr>
<tr>
<td>Team collaboration</td>
<td>Git (free)</td>
<td>$19–$49/seat/month</td>
</tr>
</tbody>
</table>
<p>Jekyll can be hosted for free indefinitely. Webflow’s site plans start at $14/month and scale up. For a developer, Jekyll is dramatically cheaper. For a non-developer who would otherwise hire a developer, Webflow’s cost may be justified.</p>
<h2 id="design-flexibility">Design flexibility</h2>
<p>Webflow gives you pixel-perfect control over layout and design through its visual canvas. Animations, interactions, and responsive breakpoints are set visually. What you see in the editor is almost exactly what you get in the browser.</p>
<p>Jekyll gives you total control through code — but you need to write it. You can build anything in Jekyll that you can build in HTML and CSS, but there is no visual editor. Design changes happen in a text file.</p>
<p><strong>For designers:</strong> Webflow.<br />
<strong>For developers:</strong> Jekyll.</p>
<h2 id="content-management">Content management</h2>
<p>Webflow has a built-in CMS with a visual editor for non-technical content editors. You define content types (blog posts, team members, products), your editors fill them in through the dashboard, and Webflow builds the pages.</p>
<p>Jekyll stores content as Markdown files in a repository. Non-technical editors can use a headless CMS like Decap CMS or Forestry.io that provides a dashboard in front of the Git repository — but it requires setup.</p>
<p><strong>Winner for non-technical content editing:</strong> Webflow.</p>
<h2 id="performance">Performance</h2>
<p>Both platforms produce fast websites. Jekyll outputs pure static HTML with no server-side processing. Webflow adds some of its own JavaScript for interactions and the Webflow hosting infrastructure uses a global CDN.</p>
<p>In practice, both score 90+ on Google Lighthouse. Jekyll has a slight edge for minimal sites because it ships zero framework JavaScript. Webflow sites with complex animations can become heavy.</p>
<h2 id="ownership-and-portability">Ownership and portability</h2>
<p>Jekyll content is Markdown files on your computer. You own them completely, can move hosts at any time, and are not dependent on any platform.</p>
<p>Webflow is more of a platform lock-in. You can export the static HTML/CSS, but the CMS content and dynamic features do not export cleanly. Moving away from Webflow means rebuilding your content structure.</p>
<p><strong>Winner for ownership:</strong> Jekyll.</p>
<h2 id="when-to-choose-jekyll">When to choose Jekyll</h2>
<ul>
<li>You are a developer or willing to learn basic web technologies</li>
<li>Cost is a primary concern (free vs $14+/month)</li>
<li>You want complete ownership of your code and content</li>
<li>You have a blog or documentation site that does not need complex animations</li>
<li>You want to host on GitHub Pages for free</li>
</ul>
<h2 id="when-to-choose-webflow">When to choose Webflow</h2>
<ul>
<li>You are a designer who does not code</li>
<li>You need to build and iterate on complex, animated layouts quickly</li>
<li>Your client or team needs a visual CMS without a developer in the loop</li>
<li>You are building a marketing site that needs frequent design changes</li>
<li>Budget is less of a concern than speed of design iteration</li>
</ul>
<h2 id="the-middle-ground">The middle ground</h2>
<p>Some teams use Webflow for design exploration and Jekyll for production — Webflow to prototype quickly, then port the design to Jekyll for long-term control and free hosting. This is more work upfront but pays off for sites that need to last years.</p>
<p>If you are a developer who values control and low cost, Jekyll is the right choice. If you are a designer who wants to ship beautiful sites without touching code, Webflow earns its price tag.</p>
<p>Browse <a href="/themes/">Jekyll themes on JekyllHub</a> to see what is achievable without Webflow.</p>
</div>
<div class="post-tags">
</div>
<div class="post-share">
<span class="post-share__label">Share</span>
<a href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fjekyllhub.com%2Fcomparison%2F2026%2F06%2F01%2Fjekyll-vs-webflow%2F&text=Jekyll+vs+Webflow%3A+Which+Is+Right+for+Your+Website+in+2026%3F" target="_blank" rel="noopener" class="post-share__btn post-share__btn--twitter">
<svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor"><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-4.714-6.231-5.401 6.231H2.746l7.73-8.835L1.254 2.25H8.08l4.253 5.622zm-1.161 17.52h1.833L7.084 4.126H5.117z"/></svg>
X / Twitter
</a>
<a href="https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fjekyllhub.com%2Fcomparison%2F2026%2F06%2F01%2Fjekyll-vs-webflow%2F&title=Jekyll+vs+Webflow%3A+Which+Is+Right+for+Your+Website+in+2026%3F" target="_blank" rel="noopener" class="post-share__btn post-share__btn--linkedin">
<svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor"><path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 01-2.063-2.065 2.064 2.064 0 112.063 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"/></svg>
LinkedIn
</a>
<button class="post-share__btn post-share__btn--copy" onclick="JekyllHub.copyPostLink(this)">
<svg width="14" height="14" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"/></svg>
<span>Copy Link</span>
</button>
</div>
<nav class="post-nav" aria-label="Post navigation">
<div class="post-nav__prev">
<a href="/comparison/2026/05/31/jekyll-vs-ghost/" class="post-nav__link">
<span class="post-nav__label">← Previous</span>
<span class="post-nav__title">Jekyll vs Ghost: Which Platform Is Right for Your Blog in 2026?</span>
</a>
</div>
<div class="post-nav__center">
<a href="/blog/" class="btn btn--secondary btn--sm">All Posts</a>
</div>
<div class="post-nav__next">
<a href="/tutorial/2026/06/02/jekyll-tailwind-css/" class="post-nav__link post-nav__link--next">
<span class="post-nav__label">Next →</span>
<span class="post-nav__title">How to Use Tailwind CSS with Jekyll (2026 Guide)</span>
</a>
</div>
</nav>
</div>
<aside class="post-body__sidebar">
<div class="sidebar-card">
<h3 class="sidebar-card__title">Browse Themes</h3>
<ul class="post-sidebar__links">
<li><a href="/jekyll-academic-themes/">🎓 Academic Themes</a></li>
<li><a href="/jekyll-blog-themes/">✍️ Blog Themes</a></li>
<li><a href="/jekyll-business-themes/">💼 Business Themes</a></li>
<li><a href="/jekyll-documentation-themes/">📚 Documentation Themes</a></li>
<li><a href="/jekyll-e-commerce-themes/">🛒 E-commerce Themes</a></li>
<li><a href="/jekyll-landing-page-themes/">🚀 Landing Page Themes</a></li>
<li><a href="/jekyll-personal-themes/">👤 Personal Themes</a></li>
<li><a href="/jekyll-portfolio-themes/">🎨 Portfolio Themes</a></li>
<li><a href="/jekyll-resume-cv-themes/">📄 Resume/CV Themes</a></li>
<li><a href="/jekyll-github-pages-themes/"><svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor" style="display:inline;vertical-align:middle;margin-right:4px"><path d="M12 0C5.374 0 0 5.373 0 12c0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23A11.509 11.509 0 0 1 12 5.803c1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576C20.566 21.797 24 17.3 24 12c0-6.627-5.373-12-12-12z"/></svg>GitHub Pages Themes</a></li>
</ul>
<a href="/themes/" class="btn btn--primary btn--full" style="margin-top:var(--space-5)">Browse All Themes →</a>
</div>
<div class="sidebar-card" style="margin-top:var(--space-6)">
<h3 class="sidebar-card__title">Submit Your Theme</h3>
<p style="font-size:0.875rem;color:var(--text-3);line-height:1.6;margin-bottom:var(--space-4)">Built a Jekyll theme? Share it with thousands of developers.</p>
<a href="/submit/" class="btn btn--secondary btn--full">Submit a Theme →</a>
</div>
</aside>
</div>
</div>
<!-- Related Themes — rendered by JS from SITE_DATA, shuffled per page load -->
<section class="post-related-themes" style="display:none">
<div class="container">
<h2 class="post-related-themes__title">Themes You Might Like</h2>
<div class="themes-grid themes-grid--4" id="post-related-themes-grid"
data-tags="[]"
data-related-category="Blog"></div>
</div>
</section>
</article>
<!-- Back to top -->
<button class="back-to-top" id="back-to-top" aria-label="Back to top" onclick="window.scrollTo({top:0,behavior:'smooth'})">
<svg fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5" d="M5 15l7-7 7 7"/>
</svg>
</button>
<script src="/assets/js/post.js" defer></script>
</div>
This automatically styles headings, paragraphs, code blocks, blockquotes, lists, and tables in rendered Markdown without any additional CSS.
Dark mode with Tailwind
Enable dark mode in tailwind.config.js:
module.exports = {
darkMode: "class",
// ...
};
Then your Jekyll dark mode toggle (which adds a dark class to <html>) works automatically with Tailwind’s dark: variants:
<div class="bg-white dark:bg-gray-900 text-gray-900 dark:text-gray-100">
Content
</div>
Production build
For production, run:
npm run build
Tailwind scans all your template files, keeps only the utility classes you actually use, and outputs a tiny CSS file — often under 20kb for a standard site.
Common pitfalls
Dynamic class names not included: Tailwind scans for class names as strings. If you build class names dynamically in Liquid, Tailwind will not detect them:
{# This will NOT work — Tailwind cannot detect dynamic class names #}
<div class="text-{{ page.color }}-600">...</div>
{# Use conditional logic instead #}
{% if page.color == "blue" %}
<div class="text-blue-600">...</div>
{% elsif page.color == "red" %}
<div class="text-red-600">...</div>
{% endif %}
Forgetting to rebuild CSS: When running without the watch script, remember to rebuild CSS after changing templates or adding new Tailwind classes. The dev script handles this automatically.
Tailwind and Jekyll together give you a modern, utility-first CSS workflow with all the simplicity of a static site. Once the setup is in place, building layouts is fast and the output is lean.
<!DOCTYPE html>
Jekyll vs Webflow: Which Is Right for Your Website in 2026?
Jekyll and Webflow are both used to build beautiful, fast websites — but they work completely differently. Here is how to choose between them.
Jekyll and Webflow represent two very different approaches to building websites. Jekyll is a code-first static site generator. Webflow is a visual design tool that generates clean HTML and CSS without writing code. Both produce fast, beautifully designed websites — but the path to get there is completely different.
What each tool is
Jekyll is a static site generator you run on your computer. You write Markdown for content, HTML and Liquid for templates, and SCSS for styles. The output is a folder of static files you deploy to any host.
Webflow is a visual web design platform — you design in a browser-based editor similar to Figma or Adobe XD, and Webflow generates the HTML, CSS, and JavaScript. You host on Webflow’s infrastructure or export the code.
Who each tool is for
Jekyll is for developers and technical users. You need to be comfortable with the command line, text editors, Git, and markup languages. A non-technical person can learn it, but it takes time.
Webflow is for designers and non-developers. Its visual canvas is intuitive for anyone who has used a design tool. You can build a production-quality website without writing a single line of code.
Cost comparison
| Plan | Jekyll | Webflow |
|---|---|---|
| Hosting | Free (GitHub Pages/Cloudflare) | $14–$39+/month |
| CMS (managed content) | Free | Included in Business plan |
| E-commerce | Free (+ transaction fees) | $29–$212/month |
| Custom code | Full access | Paid plans |
| Team collaboration | Git (free) | $19–$49/seat/month |
Jekyll can be hosted for free indefinitely. Webflow’s site plans start at $14/month and scale up. For a developer, Jekyll is dramatically cheaper. For a non-developer who would otherwise hire a developer, Webflow’s cost may be justified.
Design flexibility
Webflow gives you pixel-perfect control over layout and design through its visual canvas. Animations, interactions, and responsive breakpoints are set visually. What you see in the editor is almost exactly what you get in the browser.
Jekyll gives you total control through code — but you need to write it. You can build anything in Jekyll that you can build in HTML and CSS, but there is no visual editor. Design changes happen in a text file.
For designers: Webflow.
For developers: Jekyll.
Content management
Webflow has a built-in CMS with a visual editor for non-technical content editors. You define content types (blog posts, team members, products), your editors fill them in through the dashboard, and Webflow builds the pages.
Jekyll stores content as Markdown files in a repository. Non-technical editors can use a headless CMS like Decap CMS or Forestry.io that provides a dashboard in front of the Git repository — but it requires setup.
Winner for non-technical content editing: Webflow.
Performance
Both platforms produce fast websites. Jekyll outputs pure static HTML with no server-side processing. Webflow adds some of its own JavaScript for interactions and the Webflow hosting infrastructure uses a global CDN.
In practice, both score 90+ on Google Lighthouse. Jekyll has a slight edge for minimal sites because it ships zero framework JavaScript. Webflow sites with complex animations can become heavy.
Ownership and portability
Jekyll content is Markdown files on your computer. You own them completely, can move hosts at any time, and are not dependent on any platform.
Webflow is more of a platform lock-in. You can export the static HTML/CSS, but the CMS content and dynamic features do not export cleanly. Moving away from Webflow means rebuilding your content structure.
Winner for ownership: Jekyll.
When to choose Jekyll
- You are a developer or willing to learn basic web technologies
- Cost is a primary concern (free vs $14+/month)
- You want complete ownership of your code and content
- You have a blog or documentation site that does not need complex animations
- You want to host on GitHub Pages for free
When to choose Webflow
- You are a designer who does not code
- You need to build and iterate on complex, animated layouts quickly
- Your client or team needs a visual CMS without a developer in the loop
- You are building a marketing site that needs frequent design changes
- Budget is less of a concern than speed of design iteration
The middle ground
Some teams use Webflow for design exploration and Jekyll for production — Webflow to prototype quickly, then port the design to Jekyll for long-term control and free hosting. This is more work upfront but pays off for sites that need to last years.
If you are a developer who values control and low cost, Jekyll is the right choice. If you are a designer who wants to ship beautiful sites without touching code, Webflow earns its price tag.
Browse Jekyll themes on JekyllHub to see what is achievable without Webflow.
<!DOCTYPE html>
Jekyll vs Ghost: Which Platform Is Right for Your Blog in 2026?
Jekyll and Ghost both power great blogs — but they are built differently. A practical comparison of cost, features, writing experience, and audience growth tools.
Jekyll and Ghost are both popular choices for bloggers and writers, but they come from opposite ends of the web publishing spectrum. Jekyll is a static site generator built around files and code. Ghost is a Node.js publishing platform with a polished admin interface, built-in newsletter tools, and membership features.
Here is how to choose between them.
What each platform is
Jekyll is a static site generator. You write posts as Markdown files on your computer, run a build command, and deploy the output as plain HTML files. There is no admin dashboard, no database, and no user accounts. Everything lives in files you own.
Ghost is a self-hosted or managed CMS (content management system) with a Node.js backend. It has a beautiful rich-text editor, built-in newsletter delivery via Mailgun, membership and paid subscription features, and analytics. Think of it as a modern alternative to WordPress, purpose-built for publishing.
Writing experience
Ghost has one of the best writing experiences available. Its editor is clean, distraction-free, and feature-rich — cards for images, embeds, code blocks, and tables without leaving the editor. Publishing is a single click.
Jekyll requires writing Markdown in a text editor, committing files to Git, and pushing to trigger a build. For developers this is comfortable. For writers who are not developers, it introduces friction at every step.
Winner for writing experience: Ghost, significantly.
Cost
| Hosting option | Jekyll | Ghost |
|---|---|---|
| Free tier | GitHub Pages (free, custom domain) | Not available |
| Entry self-hosted | Free (pay only for hosting ~$5/mo) | ~$5–10/mo VPS + setup time |
| Managed hosting | Netlify/Cloudflare free tier | Ghost Pro starts at $9/mo |
| Pro managed | ~$0–20/mo | $25–199/mo (Ghost Pro) |
Jekyll can be hosted for free indefinitely on GitHub Pages or Cloudflare Pages. Ghost’s managed hosting (Ghost Pro) starts at $9/month and scales with traffic.
Winner for cost: Jekyll.
Newsletter and membership
This is where Ghost has a decisive advantage. Ghost includes built-in newsletter functionality — readers subscribe on your site, and you send email newsletters directly from the Ghost admin. Paid memberships (Stripe integration) let you charge subscribers for premium content.
Jekyll has none of this built in. You need to wire up a separate newsletter service (Mailchimp, Sendy, ConvertKit), build subscription forms manually, and handle payments through a third-party service like Gumroad or Lemon Squeezy.
If audience building and monetisation via newsletters and memberships are central to your goals, Ghost’s built-in tools save significant time and money.
Winner for newsletters and memberships: Ghost.
Themes and design
Jekyll has a large ecosystem of free themes on GitHub and dedicated marketplaces like JekyllHub. Themes are plain HTML, CSS, and Liquid — readable and modifiable by anyone with basic web knowledge.
Ghost themes use Handlebars templating and require understanding Ghost’s data API. There are quality free and paid Ghost themes, but the ecosystem is smaller than Jekyll’s.
Winner for theme variety: Jekyll.
SEO
Both platforms can achieve excellent SEO. Jekyll gives you full control over every meta tag, URL, and page structure. Ghost has built-in SEO settings (custom meta titles, descriptions, canonical URLs) accessible from the admin UI without touching code.
For technical SEO control: Jekyll. For ease of SEO management: Ghost.
Performance
Jekyll is faster because it is static HTML. Ghost is a Node.js application with a database — slightly slower on initial server response, though Ghost uses aggressive caching and performs very well in practice.
Winner on raw performance: Jekyll, but the difference is negligible for most sites.
Content ownership and portability
Jekyll stores your content as plain Markdown files on your computer. You own them completely — no export needed, no platform lock-in. If Jekyll disappeared tomorrow, your posts would still exist as readable text files.
Ghost stores content in a SQLite or MySQL database. Exporting is supported, but you are one more step removed from your content.
Winner for ownership: Jekyll.
When to choose Jekyll
- You are a developer or comfortable with Git and Markdown
- You want zero hosting costs
- You do not need a newsletter or memberships built in
- You want full control over your site’s code and design
- Your audience already knows how to find you
When to choose Ghost
- You want a beautiful writing experience without touching code
- You want built-in newsletter delivery and subscriber management
- You want to run paid memberships or premium content
- You publish frequently and need a fast editorial workflow
- You are migrating from WordPress and want something simpler
The hybrid approach
Many writers use both: Jekyll for the public-facing site and a dedicated newsletter service (Sendy, ConvertKit) for audience building. You get Jekyll’s performance, ownership, and cost benefits, plus a solid newsletter tool. This is what JekyllHub uses.
Neither platform is universally better. Ghost wins on writing experience and audience tools. Jekyll wins on cost, performance, ownership, and design control. Pick based on what matters most to you.
<!DOCTYPE html>
Jekyll vs Astro: Which Static Site Generator Should You Use in 2026?
An honest comparison of Jekyll and Astro — performance, themes, learning curve, content handling, and which one is right for your next site.
Astro launched in 2021 and quickly became one of the most talked-about static site generators. Jekyll has been around since 2008 and remains one of the most widely used. In 2026 both are mature, actively maintained, and capable of building fast, beautiful sites. So how do you choose?
What each tool is
Jekyll is a Ruby-based static site generator built around Markdown content and Liquid templating. It has no JavaScript framework dependency, outputs plain HTML, and integrates natively with GitHub Pages. It is the go-to tool for simple, content-focused sites.
Astro is a JavaScript-based web framework that pioneered the “islands architecture” — by default it ships zero JavaScript to the browser, but it lets you embed interactive components from React, Vue, Svelte, Solid, or any other framework in isolated islands. It handles both static generation and server-side rendering.
Performance: the key difference
Both Jekyll and Astro ship minimal JavaScript by default. But their approach differs fundamentally.
Jekyll outputs plain HTML with zero JS unless you add it yourself. There is no framework overhead at all.
Astro introduces the concept of component islands — interactive components that hydrate on the client. A static Astro page also ships zero JavaScript, but the moment you add an interactive component, Astro ships only that component’s JS, not a full framework bundle. This is more efficient than React or Vue, but still more than Jekyll’s zero.
For pure content sites (blogs, docs, portfolios): Jekyll and Astro perform equally well — both score 99–100 on Lighthouse with no effort.
For sites with some interactivity (search, tabs, carousels): Astro has an architectural advantage — it handles interactive components more cleanly than adding jQuery or vanilla JS to Jekyll.
Learning curve
Jekyll requires: YAML front matter, Markdown, and Liquid templating. No programming knowledge required. A non-developer can be productive in an afternoon.
Astro requires: Markdown or MDX, the .astro component syntax (similar to JSX), and JavaScript/TypeScript. If you want to use component frameworks, you need to know React, Vue, or Svelte. The barrier is meaningfully higher.
For non-developers or those new to web development: Jekyll wins.
For JavaScript developers: Astro’s component model will feel natural.
Content handling
Both tools handle Markdown content well. Astro adds MDX support out of the box — Markdown with embedded JavaScript components. This is powerful for interactive documentation or content with embedded demos.
Jekyll’s Liquid templating is simpler but less expressive. You cannot embed dynamic components mid-content without reaching for JavaScript.
For a pure blog or documentation site, Markdown is enough. MDX becomes valuable when your content itself needs to be interactive — embedding a live code editor in a tutorial, for example.
Themes and ecosystem
Jekyll has a larger, more established theme ecosystem. Hundreds of free themes exist on GitHub and dedicated marketplaces like JekyllHub. Themes are plain HTML, CSS, and Liquid — easy to understand and modify without a build step.
Astro themes exist and are growing rapidly — the official Astro themes directory has hundreds of options. But many require framework knowledge (React or Vue) to customise meaningfully.
Winner for theme selection and ease of customisation: Jekyll.
Build times
| Site size | Jekyll | Astro |
|---|---|---|
| 50 pages | ~3 seconds | ~5 seconds |
| 500 pages | ~15 seconds | ~20 seconds |
| 5,000 pages | ~2–3 minutes | ~3–5 minutes |
Both are fast. Jekyll has a slight edge on large sites because it does not bundle JavaScript, but the difference is rarely meaningful in practice.
Hosting
Both deploy to Netlify, Cloudflare Pages, and Vercel with zero configuration. Jekyll deploys natively to GitHub Pages. Astro requires a build step even for GitHub Pages (via GitHub Actions), but this is well-documented and straightforward.
When to choose Jekyll
- You want simplicity above all else
- You are not a JavaScript developer
- You want native GitHub Pages hosting with no build configuration
- Your content is Markdown and your layouts are HTML — no framework components needed
- You want themes you can read and modify without understanding a component system
When to choose Astro
- You are a JavaScript developer comfortable with components
- You want to mix static content with interactive UI components
- You want MDX — Markdown with embedded components
- You need server-side rendering alongside static pages (Astro handles both)
- You are migrating from a framework-heavy setup and want to reduce JavaScript
The bottom line
For a blog, portfolio, documentation site, or small business website with no interactive components: Jekyll is the simpler, faster path to production. It has more themes, easier hosting, and a lower learning curve.
For a site that needs some interactive components embedded in content — a tutorial platform, a documentation site with live examples, a landing page with tabs and demos — Astro is the better architectural choice.
In 2026, Astro is arguably the more exciting tool. But exciting does not always mean right for your project. If your site is primarily words, Jekyll is still the most efficient path from blank page to live site.
Browse free and premium Jekyll themes on JekyllHub to see what is possible.
<!DOCTYPE html>
Accessibility Best Practices for Jekyll Themes (WCAG 2.2 Guide)
Build accessible Jekyll themes that meet WCAG 2.2 standards — semantic HTML, keyboard navigation, colour contrast, ARIA labels, skip links, and automated testing.
Accessibility is not a nice-to-have — it determines whether your content reaches everyone. An inaccessible Jekyll theme excludes users with visual, motor, and cognitive disabilities, and it signals to search engines that your site is lower quality. This guide covers the practical changes that move a Jekyll theme from unusable to WCAG 2.2 AA compliant.
Why Accessibility Matters for Jekyll Sites
- Legal: WCAG 2.1 AA is a legal requirement for public-facing sites in the EU, UK, US (ADA), and many other countries
- SEO: Accessible HTML is semantically rich HTML — the same practices that help screen readers help search engines
- Reach: 15% of the global population has some form of disability; poor accessibility excludes them
- Quality signal: Google’s page quality guidelines explicitly include accessibility as a factor
1. Semantic HTML Structure
The single most impactful accessibility change is using the right HTML elements.
Use Landmark Elements
<!-- Wrong -->
<div class="header">...</div>
<div class="nav">...</div>
<div class="main">...</div>
<div class="footer">...</div>
<!-- Right -->
<header class="site-header">...</header>
<nav class="site-nav" aria-label="Main navigation">...</nav>
<main id="main-content" class="site-main">...</main>
<footer class="site-footer">...</footer>
Screen reader users navigate by landmark. Without <header>, <nav>, <main>, <footer>, they can’t jump to sections.
Heading Hierarchy
One <h1> per page. Then <h2> for major sections, <h3> for subsections:
<!-- _layouts/default.html -->
<!-- The page title is always the H1 -->
<!-- _layouts/post.html -->
<h1 class="post-title">{{ page.title }}</h1>
<!-- Post content headings start at H2 -->
<!-- In Markdown: ## Section → <h2>, ### Subsection → <h3> -->
In _config.yml, configure kramdown to handle heading anchors:
kramdown:
auto_ids: true
Use <article>, <section>, <aside>
<article class="post"> <!-- Self-contained content -->
<header class="post-header"> <!-- Intro of the article -->
<h1>{{ page.title }}</h1>
</header>
<section class="post-content"> <!-- Thematic section -->
{{ content }}
</section>
<footer class="post-footer"> <!-- Metadata, tags -->
...
</footer>
</article>
<aside class="sidebar" aria-label="Sidebar"> <!-- Supplementary content -->
...
</aside>
2. Keyboard Navigation
Every interactive element must be reachable and operable with a keyboard alone — no mouse required.
Skip Navigation Link
Add a skip link as the very first element in <body>. Users who navigate by keyboard can skip the nav and jump straight to content:
<!-- In _layouts/default.html, first element inside <body> -->
<a href="#main-content" class="skip-link">Skip to main content</a>
<header>...</header>
<main id="main-content">...</main>
.skip-link {
position: absolute;
top: -100%;
left: 1rem;
background: var(--color-primary);
color: #fff;
padding: 0.5rem 1rem;
border-radius: 0 0 var(--radius-md) var(--radius-md);
font-weight: 600;
text-decoration: none;
z-index: 999;
transition: top 0.2s;
&:focus {
top: 0;
}
}
This link is invisible until a keyboard user tabs to it — then it appears at the top of the screen.
Focus Styles
Never remove focus outlines:
// Wrong
*:focus { outline: none; }
*:focus-visible { outline: none; }
// Right — enhance the focus style instead of removing it
*:focus-visible {
outline: 3px solid var(--color-primary);
outline-offset: 2px;
border-radius: 2px;
}
:focus-visible shows the outline only for keyboard navigation, not mouse clicks — so it doesn’t feel cluttered for mouse users.
Mobile Navigation Toggle
<button class="nav-toggle"
aria-controls="main-menu"
aria-expanded="false"
aria-label="Open navigation menu">
<span aria-hidden="true">☰</span>
</button>
<nav id="main-menu" aria-label="Main navigation">
...
</nav>
const toggle = document.querySelector('.nav-toggle');
const menu = document.querySelector('#main-menu');
toggle.addEventListener('click', () => {
const isOpen = toggle.getAttribute('aria-expanded') === 'true';
toggle.setAttribute('aria-expanded', String(!isOpen));
// Show/hide menu
});
The aria-expanded attribute tells screen readers whether the menu is open or closed.
3. Colour Contrast
WCAG 2.2 AA requires:
- Normal text (< 18pt): minimum 4.5:1 contrast ratio against background
- Large text (≥ 18pt or 14pt bold): minimum 3:1 contrast ratio
- UI components (buttons, inputs, focus indicators): minimum 3:1
Check Your Colours
Use WebAIM Contrast Checker or the browser DevTools accessibility panel.
Common failures in Jekyll themes:
- Light grey text on white:
#999on#fff= 2.85:1 (fails AA) - Placeholder text in forms: often too light
- Disabled button text
// Common fixes
$color-text-muted: #6b7280; // 4.6:1 on white — just passes AA
$color-text-muted: #595959; // 7:1 on white — passes AAA, safer
// Never use lighter than #767676 for body text on white
Dark Mode Contrast
Check both light and dark mode. A common mistake is fixing contrast in light mode and breaking it in dark mode:
:root {
--text-muted: #6b7280; // 4.6:1 on #fff ✓
}
[data-theme="dark"] {
--text-muted: #9ca3af; // 4.6:1 on #1f2937 ✓ — check this independently
}
4. Images and Alt Text
Every <img> needs an alt attribute. Its value depends on the image’s purpose:
<!-- Meaningful image — describe what it shows -->
<img src="jekyll-setup.png" alt="Terminal showing Jekyll server starting on port 4000">
<!-- Decorative image — empty alt, so screen readers skip it -->
<img src="divider.svg" alt="" role="presentation">
<!-- Image that IS the content of a link — describe the destination -->
<a href="/themes/chirpy/">
<img src="chirpy-preview.jpg" alt="Chirpy Jekyll theme preview">
</a>
In Jekyll templates, use front matter for alt text:
{% if post.image %}
<img src="{{ post.image | relative_url }}"
alt="{{ post.image_alt | default: post.title }}"
loading="lazy"
width="800" height="450">
{% endif %}
5. Forms
<form>
<!-- Every input needs a visible, programmatically-associated label -->
<div class="form-group">
<label for="email">Email address</label>
<input type="email" id="email" name="email"
required
aria-describedby="email-hint"
autocomplete="email">
<p id="email-hint" class="form-hint">We'll never share your email.</p>
</div>
<!-- Don't use placeholder as a label substitute -->
<!-- Placeholders disappear when typing — users forget what the field is for -->
<!-- Error messages -->
<input type="email"
aria-invalid="true"
aria-describedby="email-error">
<p id="email-error" role="alert" class="form-error">
Please enter a valid email address.
</p>
<button type="submit">Subscribe</button>
</form>
6. Links and Buttons
<!-- Links must describe their destination -->
<!-- Wrong -->
<a href="/themes/minimal-mistakes/">Click here</a>
<!-- Right -->
<a href="/themes/minimal-mistakes/">View Minimal Mistakes theme</a>
<!-- When context makes it clear, aria-label can supplement -->
<a href="/themes/chirpy/" aria-label="View Chirpy Jekyll theme details">
Chirpy
</a>
<!-- Buttons must describe their action -->
<!-- Wrong -->
<button onclick="toggleMenu()">☰</button>
<!-- Right -->
<button onclick="toggleMenu()" aria-label="Open navigation menu">☰</button>
<!-- Don't use <a> for actions that aren't navigation -->
<!-- Wrong -->
<a href="#" onclick="submitForm()">Submit</a>
<!-- Right -->
<button type="submit">Submit</button>
7. Automated Testing
axe DevTools
Install the axe DevTools browser extension — it scans any page and reports WCAG violations with severity levels and fix guidance.
htmlproofer
Check for missing alt text and broken links as part of your build:
bundle exec htmlproofer ./_site \
--checks Images,Links \
--disable-external \
--ignore-empty-alt
Lighthouse
Google’s Lighthouse (built into Chrome DevTools → Lighthouse tab) includes an Accessibility audit. Aim for 90+ score.
# Or run from CLI
npx lighthouse https://yourdomain.com --only-categories=accessibility
Manual Testing
Tools catch about 30% of accessibility issues. Also test:
- Tab through the entire page with keyboard only — can you reach everything?
- Test with a screen reader: NVDA (Windows, free), VoiceOver (Mac, built-in)
- Zoom browser to 200% — does layout break?
- Test in forced colours mode (Windows High Contrast)
Quick Wins Checklist
langattribute on<html>:<html lang="en">- Skip link to main content
<main id="main-content">landmark- One
<h1>per page - All images have
altattributes - All form inputs have associated
<label>elements - Focus styles visible (not
outline: none) - Text contrast 4.5:1 minimum
- Interactive elements reachable by keyboard
aria-labelon icon-only buttonsaria-current="page"on active nav link- Lighthouse accessibility score 90+
Accessible themes are better themes — cleaner HTML, better SEO, and a wider audience. Browse Jekyll themes on JekyllHub and check the theme’s accessibility score before choosing.
References
<!DOCTYPE html>
How to Sell a Jekyll Theme: A Complete Guide for Developers
A step-by-step guide to building, packaging, and selling Jekyll themes — where to sell, how to price, what buyers expect, and how to handle support.
Building a great Jekyll theme is one thing. Turning it into a product people will pay for is another. This guide covers everything — from what buyers expect to how to handle support — based on what works in the Jekyll theme marketplace in 2026.
Is there a market for Jekyll themes?
Yes, but it is a niche one. Jekyll has a dedicated, technical user base that values quality over quantity. Buyers are typically developers, technical writers, and small businesses who understand what they are paying for.
The upside: buyers in this market are more tolerant of complexity, less likely to expect a point-and-click theme manager, and willing to pay fair prices for well-built themes. The downside: the audience is smaller than WordPress or Webflow.
A good premium Jekyll theme priced at $29–$49 with minimal marketing can realistically earn $200–$1,000/month from a marketplace. The ceiling is higher with traffic from your own audience or SEO.
What makes a sellable Jekyll theme
1. A genuine use case
The best-selling themes solve a specific problem for a specific audience. “A clean blog theme” competes with hundreds of free options. “A documentation theme for developer tools with versioned sidebars and dark mode” has a clearly defined buyer.
Before you build, ask: who buys this, and why would they pay instead of using a free alternative?
2. Real demo content
Buyers make decisions based on the demo. A theme with placeholder “Lorem ipsum” text and grey boxes looks unfinished. Fill your demo with realistic, well-written content that makes the design shine.
3. Multiple screenshots
Buyers want to see the theme across contexts: the homepage, a post page, the mobile view, dark mode, and key components. Plan for at least 5–8 high-quality screenshots at 1440×900px.
4. Clean, documented code
Premium buyers will customise your theme. They will read your HTML, SCSS, and Liquid. Code quality matters. Use meaningful class names, comment complex logic, and follow a consistent structure.
5. A _config.yml that does the work
Great themes expose customisation through _config.yml — colours, fonts, nav links, social handles, analytics IDs. Buyers should be able to personalise the theme without touching a single layout file.
# Example theme config
theme_color: "#2563EB"
show_newsletter: true
footer_links:
- title: "Twitter"
url: "https://twitter.com/yourhandle"
- title: "GitHub"
url: "https://github.com/yourhandle"
6. Solid documentation
Write a README that covers: requirements, installation, configuration, customisation, and common questions. Buyers who cannot install your theme will ask for refunds. Good docs prevent support tickets.
How to package your theme for sale
File structure
A well-packaged Jekyll theme includes:
your-theme/
├── _includes/
├── _layouts/
├── _sass/
├── assets/
│ ├── css/
│ ├── js/
│ └── images/
├── _config.yml
├── Gemfile
├── index.html
├── README.md
└── LICENSE.md
The Gemfile
Specify your dependencies explicitly:
source "https://rubygems.org"
gem "jekyll", "~> 4.3"
gem "jekyll-feed"
gem "jekyll-seo-tag"
gem "jekyll-sitemap"
The LICENSE
Most Jekyll themes use the MIT licence for the code, with an extended licence for commercial use. Be explicit about what buyers can and cannot do:
- Can they use the theme on a client project? (Usually yes with an extended licence)
- Can they resell or redistribute the theme? (Usually no)
- Can they use the demo images? (Usually no — stock photos have their own licences)
Demo content
Include sample posts, pages, and data files that demonstrate every feature. The goal is that a buyer can run bundle install && jekyll serve and immediately see a polished demo, not a broken shell.
Where to sell Jekyll themes
JekyllHub
JekyllHub is a dedicated Jekyll theme marketplace — the only one focused exclusively on Jekyll. This means buyers are qualified: they are looking specifically for Jekyll themes, not browsing a general marketplace. Submit your theme at /submit/.
Gumroad
Simple, low-friction digital product sales. You keep 91% of revenue (9% fee). Great for selling directly to your own audience. No approval process.
Lemon Squeezy
Similar to Gumroad with better checkout localisation and VAT handling for European customers. Worth considering if you have international buyers.
Your own site
The highest margin option. A dedicated product page on your own site with a Stripe-powered checkout (via Snipcart, Gumroad embed, or Lemon Squeezy) keeps 95–98% of revenue. Requires you to drive your own traffic.
ThemeForest / Envato
The largest marketplace but extremely competitive and with higher fees. Requires an exclusive or non-exclusive listing decision. Approval takes weeks. Worth it if you want maximum reach; not worth it for a first theme.
Pricing your theme
Jekyll themes typically sell in three tiers:
| Tier | Price | What buyers expect |
|---|---|---|
| Basic | $19–$29 | Clean design, standard features, minimal docs |
| Standard | $39–$59 | Polished design, full features, good docs, 6 months support |
| Extended | $99–$149 | White-label rights, priority support, future updates included |
Do not underprice to compete with free themes. Buyers who choose premium are paying for quality, support, and trust. A $9 premium theme signals low value, not a bargain.
Handling support
Support is where theme sales get complicated. Budget time for it before you launch.
Set expectations upfront: State clearly in your listing what is and is not covered by support. “I will help with installation and configuration issues. I do not customise the theme for individual buyers.”
Create a FAQ page: Document the ten most common questions before launch. Most support requests cover the same ground.
Use GitHub Issues: Keep support conversations in a public Issue tracker where answers are searchable. This reduces repeat questions.
Set a timeline: Respond within 48 business hours. Anything slower leads to chargebacks.
Marketing your theme
Get listed on JekyllHub. Buyers browse theme directories. Being listed is the minimum.
Write a blog post about how you built it. The Jekyll community reads technical content. A behind-the-scenes build post can drive hundreds of qualified visitors.
Tweet the launch. The Jekyll and static site community on Twitter is small but engaged.
SEO the demo. Your live demo site should be indexed by Google. Name the demo something like your-theme-demo.com and optimise the title and description. Searches for “jekyll [niche] theme” will find it.
Offer a free version. A stripped-down free version with a link to the premium version is one of the most effective ways to convert. People try the free, like the structure, and pay to unlock the full version.
Update and maintain your theme
A theme you abandon becomes unsellable. Jekyll versions change, browser behaviour changes, and buyers expect their purchase to keep working.
Commit to a minimum support period (6–12 months) and communicate updates clearly. A Jekyll 4 → 5 migration guide for your theme buyers will generate goodwill and reduce chargeback requests.
The short version
- Build for a specific audience with a clear use case
- Make a polished demo with real content
- Write proper documentation
- List on JekyllHub and Gumroad at minimum
- Price for value, not to undercut free alternatives
- Budget time for support before you launch
The Jekyll theme market is small enough that a high-quality, well-marketed theme can stand out without a large audience. Start there.
<!DOCTYPE html>
Best Jekyll Themes for Writers and Bloggers in 2026
The best Jekyll themes for writers, bloggers, and storytellers — beautiful typography, distraction-free reading, and clean writing-focused layouts.
Writers have different needs from developers. You want beautiful typography, generous line spacing, a clean reading experience, and a design that makes your words the star. You do not want to configure build pipelines or understand SCSS variables.
Here are the best Jekyll themes for writers and bloggers in 2026 — and what to look for in each.
What writers need in a Jekyll theme
A great writing theme gets these things right:
Typography: This is everything. Look for a serif or carefully chosen sans-serif body font at a comfortable size (18–21px), a line height of 1.6–1.8, and a measure (line length) of 60–75 characters. If the demo page reads well, the theme is doing its job.
Reading time estimate: Readers appreciate knowing whether an article is a 2-minute skim or a 15-minute read. Good writing themes show this automatically.
Table of contents: For long-form articles and essays, an auto-generated TOC sidebar is invaluable.
Post series or related articles: If you write in themes or series, look for a theme that surfaces related content naturally.
No distractions: Floating share buttons, autoplay videos, cookie banners, and sidebar ads all hurt the reading experience. The best writing themes strip all of this away.
Dark mode: Many readers prefer dark mode, especially in the evening. A theme with a clean, well-designed dark mode shows the author cares about their readers.
Best free themes for writers
Chirpy
Chirpy is widely used by technical writers. It has a clean left sidebar with categories and a reading progress bar. The default typography is excellent for technical content with code. Dark mode is polished and automatic.
Best for: Technical writing, tutorials, developer notes.
Minima
The default Jekyll theme and still one of the best choices for pure writing. No sidebars, no distractions, clean typography on a white background. Zero setup. If you want to focus purely on your words, Minima is the honest choice.
Best for: Personal blogs, essays, journaling.
Cayman Blog
A clean, single-column theme derived from the popular Cayman GitHub Pages theme. Excellent for long-form writing with a simple navigation and generous whitespace.
Best for: Personal sites, writing portfolios.
Klise
Dark by default, high contrast, typographically focused. Klise is minimal in the best sense — every pixel has a reason. If you prefer writing against a dark background, this is the cleanest option available.
Best for: Writers who prefer dark mode, personal blogs.
Massively (Jekyll port)
Based on the popular HTML5 UP template, the Jekyll port of Massively offers large featured images, a clean reading layout, and a strong editorial feel. If your writing benefits from visual storytelling with images, this works well.
Best for: Lifestyle writers, travel bloggers, narrative journalism.
What typography details to check
When evaluating a theme, open the demo post and check:
-
Body font size — Is the text at least 17–18px? Anything smaller is too small for comfortable long-form reading.
-
Line height — Should be at least 1.6. Cramped leading (line spacing) makes text feel dense and hard to read.
-
Line length (measure) — Count the characters per line in the main content area. 60–75 is ideal. Much shorter feels choppy; much longer makes eyes lose their place.
-
Heading hierarchy — H2 and H3 should be visually distinct but not jarring. Good themes use weight and size, not just colour.
-
Code blocks — If you write technical content, check that code is rendered in a monospace font with syntax highlighting.
Adding a newsletter signup to a writing Jekyll theme
If you are building an audience, a newsletter signup on your site is essential. With a Sendy or Mailchimp account, add a simple form to any Jekyll theme:
<form action="YOUR_SUBSCRIBE_URL" method="POST">
<input type="hidden" name="list" value="YOUR_LIST_ID">
<input type="hidden" name="subform" value="yes">
<input type="email" name="email" placeholder="your@email.com" required>
<button type="submit">Subscribe</button>
</form>
Place this in your post footer, in a sidebar, or on a dedicated /subscribe page.
Setting up reading time in Jekyll
Most writing themes include a reading time estimate. If yours does not, add it with a simple Liquid calculation:
{% assign words = post.content | number_of_words %}
{% assign reading_time = words | divided_by: 200 %}
{% if reading_time < 1 %}{% assign reading_time = 1 %}{% endif %}
{{ reading_time }} min read
Recommended writing workflow with Jekyll
- Write your posts in Markdown using any editor (iA Writer, Typora, Obsidian, or VS Code)
- Save drafts in
_drafts/— they will not appear on your published site - When ready to publish, move the file to
_posts/with the date prefix - Push to GitHub and let your hosting provider (Netlify, Cloudflare Pages) build automatically
Jekyll keeps your writing where it belongs: in plain text files you own forever, not locked in a proprietary CMS.
Premium themes for serious writers
If you are investing time in a writing practice, it is worth investing in a theme that reflects that seriousness. Premium writing themes offer refined typography with commercial font licences, polished dark mode, newsletter integrations, and post series support.
Browse writing and blog Jekyll themes on JekyllHub for curated free and premium options.
<!DOCTYPE html>
How to Set Up a Multi-Author Jekyll Blog
A step-by-step guide to building a multi-author Jekyll blog — author profiles, per-post attribution, author archive pages, and avatars.
Jekyll does not have user accounts or a login system, but it handles multiple authors elegantly using collections. You define each author as a data file or collection document, reference them by name in post front matter, and Jekyll takes care of the rest. Here is how to do it properly.
The two approaches
There are two common ways to handle authors in Jekyll:
Approach 1: _data/authors.yml — A single YAML file with all authors. Simple, no extra pages generated.
Approach 2: _authors/ collection — A separate Markdown file per author. Generates individual author archive pages.
If you want dedicated author pages (e.g. /authors/marcus-webb/) showing all their posts, use the collection approach. If you just need a name and avatar on posts with no archive pages, use the data file.
This guide covers the full collection approach.
Step 1: Create the _authors collection
Add the collection to _config.yml:
collections:
authors:
output: true
permalink: /authors/:slug/
Step 2: Create author files
Create a file for each author in _authors/:
# _authors/marcus-webb.md
---
name: "Marcus Webb"
slug: marcus-webb
avatar: https://i.pravatar.cc/150?u=marcus-webb
bio: "Developer and technical writer passionate about open source tools and the modern web."
github: marcuswebb
twitter: marcuswebb
website: https://marcuswebb.io
---
The filename (without .md) becomes the slug — marcus-webb.md creates the author at /authors/marcus-webb/.
Step 3: Reference authors in post front matter
In each post, set the author field to the author’s display name:
---
layout: post
title: "How to Set Up a Multi-Author Jekyll Blog"
date: 2026-07-10
author: Marcus Webb
---
Step 4: Create the author layout
Create _layouts/author.html to display the author profile and their posts:
---
layout: default
---
<div class="author-profile">
<img src="{{ page.avatar }}" alt="{{ page.name }}" class="author-avatar">
<h1>{{ page.name }}</h1>
<p>{{ page.bio }}</p>
{% if page.twitter %}
<a href="https://twitter.com/{{ page.twitter }}">@{{ page.twitter }}</a>
{% endif %}
{% if page.github %}
<a href="https://github.com/{{ page.github }}">GitHub</a>
{% endif %}
</div>
<h2>Posts by {{ page.name }}</h2>
{% assign author_posts = site.posts | where: "author", page.name %}
{% for post in author_posts %}
<article>
<h3><a href="{{ post.url | relative_url }}">{{ post.title }}</a></h3>
<time>{{ post.date | date: "%B %-d, %Y" }}</time>
<p>{{ post.description }}</p>
</article>
{% endfor %}
Step 5: Display the author on each post
In _layouts/post.html, look up the author from the collection:
{% assign author = site.authors | where: "name", page.author | first %}
{% if author %}
<div class="post-author">
<img src="{{ author.avatar }}" alt="{{ author.name }}" class="post-author__avatar">
<div class="post-author__info">
<a href="{{ author.url | relative_url }}" class="post-author__name">{{ author.name }}</a>
<p class="post-author__bio">{{ author.bio }}</p>
</div>
</div>
{% elsif page.author %}
<div class="post-author">
<span class="post-author__name">{{ page.author }}</span>
</div>
{% endif %}
The {% elsif page.author %} fallback handles posts where the author string does not match any author file — useful during migration.
Step 6: Create an authors listing page
Create _pages/authors.html:
---
layout: default
title: "Authors"
permalink: /authors/
---
<div class="authors-grid">
{% for author in site.authors %}
<div class="author-card">
<img src="{{ author.avatar }}" alt="{{ author.name }}">
<h3><a href="{{ author.url | relative_url }}">{{ author.name }}</a></h3>
<p>{{ author.bio }}</p>
{% assign post_count = site.posts | where: "author", author.name | size %}
<p>{{ post_count }} posts</p>
</div>
{% endfor %}
</div>
Showing post counts per author
To show how many posts each author has written, use the where filter and size:
{% assign author_posts = site.posts | where: "author", author.name %}
<span>{{ author_posts | size }} articles</span>
Using author slugs instead of names
If you prefer to match on a slug (more robust to name formatting):
In post front matter:
---
layout: post
author: marcus-webb
---
In your layout, look up by the slug field:
{% assign author = site.authors | where: "slug", page.author | first %}
Displaying author in post metadata
A typical post meta line with author:
<div class="post-meta">
<time>{{ page.date | date: "%B %-d, %Y" }}</time>
{% if author %}
· <a href="{{ author.url | relative_url }}">{{ page.author }}</a>
{% else %}
· {{ page.author }}
{% endif %}
· {{ content | number_of_words }} words
</div>
Tips for managing multiple authors
Consistent naming: The where filter does an exact string match. "Marcus Webb" and "marcus webb" are different values. Decide on a format and stick to it — or use slugs to avoid case sensitivity issues.
Guest authors: For one-off guest posts, you do not need a full author file. Just set author: "Jane Smith" in the post front matter. The fallback in your layout will display the name without a profile link.
Author-specific RSS feeds: Advanced but useful — generate a separate feed per author by looping through site.authors and filtering posts.
That is all you need for a fully functional multi-author Jekyll blog with individual author pages, post attribution, and post counts.
<!DOCTYPE html>
Best Jekyll Themes for Small Business Websites in 2026
The best free and premium Jekyll themes for small business websites — professional design, fast loading, and easy to customise without a developer.
Jekyll is an excellent choice for small business websites. Pages load in milliseconds, hosting is free or nearly free, and there is no database to hack or WordPress plugin to update. The catch is finding a theme designed for business use — most Jekyll themes are built for developers writing blog posts, not businesses showcasing services.
Here are the best options in 2026.
What a small business Jekyll theme needs
A theme for a small business is different from a developer blog theme. It needs:
- A clear hero section with a headline, subheadline, and call to action
- Services or features section to communicate what you offer
- Contact form or contact details prominently placed
- Social proof — testimonials, client logos, or case studies
- Mobile-first design — most small business visitors are on mobile
- Fast loading — under 2 seconds on mobile
- Easy content editing — via front matter and Markdown, not code
Free small business Jekyll themes
Freelancer (by Start Bootstrap)
One of the most popular single-page Jekyll business themes. Clean portfolio/freelancer layout with a hero, portfolio grid, about section, and contact form. Originally built for Bootstrap, ported to Jekyll.
Best for: Freelancers, consultants, small agencies.
Agency (by Start Bootstrap)
Similar to Freelancer but aimed at agencies with a team section, services section, portfolio, and timeline. Professional and polished.
Best for: Small agencies, design studios, marketing firms.
Landing Page
A clean, responsive landing page theme built on Bootstrap. Full-width hero, features section, and a newsletter signup. Minimal and fast.
Best for: Product launches, SaaS landing pages, single-product businesses.
Bulma Clean Theme
Built on the Bulma CSS framework (no jQuery). Includes a blog, portfolio, and contact page. Clean, modern, and well-documented.
Best for: Small businesses that want a modern design without paying for premium.
Premium small business Jekyll themes
Free themes are a good starting point, but small businesses often need more: refined typography, professional colour palettes, SEO defaults, and actual support when something breaks.
What to look for in a premium business theme
When evaluating a premium Jekyll theme for your small business, check:
SEO defaults: Does the theme include proper meta tags, Open Graph tags, structured data (JSON-LD), and sitemap support? These should be built in, not added by you.
Contact form integration: Static sites cannot process forms natively. Look for themes that integrate with Netlify Forms, Formspree, or Getform out of the box.
Performance: Check the theme’s demo in PageSpeed Insights before buying. Business sites need to score 85+ on mobile — slow sites lose customers.
Documentation: A premium theme without documentation is a support ticket waiting to happen. Good themes include clear instructions for installation, configuration, and common customisations.
Dark mode: Optional but increasingly expected. Business visitors browse at all hours.
Browse business and landing page Jekyll themes on JekyllHub for curated premium options.
Setting up a contact form on a Jekyll business site
Jekyll is static, which means no server-side form processing. The three best options:
Netlify Forms
If you host on Netlify, add netlify to your form tag and Netlify handles everything:
<form name="contact" method="POST" data-netlify="true">
<input type="text" name="name" placeholder="Your name" required>
<input type="email" name="email" placeholder="Email address" required>
<textarea name="message" placeholder="Your message" required></textarea>
<button type="submit">Send Message</button>
</form>
Free for 100 submissions/month on Netlify’s free plan.
Formspree
Add an action attribute pointing to your Formspree endpoint:
<form action="https://formspree.io/f/YOUR_FORM_ID" method="POST">
<input type="email" name="email" placeholder="Your email" required>
<textarea name="message" placeholder="Your message" required></textarea>
<button type="submit">Send</button>
</form>
Free for 50 submissions/month.
SEO for small business Jekyll sites
Jekyll has excellent SEO capabilities when configured correctly. Install jekyll-seo-tag and add it to your _config.yml:
plugins:
- jekyll-seo-tag
title: "Smith Plumbing — Edinburgh"
description: "Local plumbing services in Edinburgh. Available 24/7 for emergency callouts."
url: "https://smithplumbing.co.uk"
twitter:
username: smithplumbing
card: summary_large_image
social:
name: Smith Plumbing
links:
- https://twitter.com/smithplumbing
- https://facebook.com/smithplumbing
Then add {% seo %} to your <head>. This generates all the meta tags, Open Graph tags, and Twitter Card tags automatically.
Local business structured data
For local businesses, add JSON-LD to your homepage to help Google understand your business:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "JekyllHub",
"description": "The premier marketplace for Jekyll themes. Browse, preview, and download stunning themes for your next project.",
"url": "https://jekyllhub.com",
"telephone": "",
"address": {
"@type": "PostalAddress",
"streetAddress": "",
"addressLocality": "",
"addressCountry": ""
}
}
</script>
Is Jekyll right for your small business?
Jekyll is an excellent choice if:
- Your site is primarily informational (services, about, contact, blog)
- You want a fast, secure site with minimal hosting costs
- You are comfortable editing Markdown files
- You do not need real-time features (stock levels, user accounts, live chat)
Jekyll is not ideal if:
- You need a booking system, customer login, or real-time inventory
- You want a non-technical team member to edit content without touching files (consider a headless CMS like Contentful or Decap CMS in this case)
- You need a large e-commerce catalogue
For most small businesses — consultants, agencies, local services, freelancers — Jekyll is an excellent fit. It is fast, secure, cheap to run, and puts you in full control.
<!DOCTYPE html>
How to Add an Email Newsletter Signup to Your Jekyll Site
Add a working email newsletter signup form to Jekyll — using Mailchimp, ConvertKit, Buttondown, or Netlify Forms. Setup guides, embedded forms, and popup options.
Building an email list is one of the highest-value things you can do for a content site — owned audience, no algorithm dependency. Jekyll doesn’t have a built-in signup form, but connecting to an email service is straightforward. This guide covers the four best options.
Which Email Service to Use
| Mailchimp | ConvertKit | Buttondown | Netlify Forms | |
|---|---|---|---|---|
| Free plan | 500 contacts | 1,000 subscribers | 100 subscribers | 100 submissions/mo |
| Price after free | $13+/month | $25+/month | $9/month | $19+/month |
| API/embed forms | Yes | Yes | Yes | Yes |
| Automations | Yes | Excellent | Basic | No |
| Best for | General blogs | Creator businesses | Developers/indie | Simple capture only |
Recommendation: Buttondown for new newsletters (simple, developer-friendly, affordable). ConvertKit if you plan to sell products or courses. Mailchimp if you need a free plan for a large list.
Option 1: Mailchimp Embedded Form
Step 1: Get Your Embed Code
- Log in to Mailchimp
- Go to Audience → Signup forms → Embedded forms
- Choose Unstyled (you’ll apply your own CSS)
- Copy the generated HTML
It looks something like:
<form action="https://yourdomain.us1.list-manage.com/subscribe/post?u=XXXX&id=YYYY"
method="post" target="_blank">
<input type="email" name="EMAIL" placeholder="Your email address" required>
<input type="submit" value="Subscribe">
<!-- Mailchimp bot protection — do not remove -->
<div style="position: absolute; left: -5000px;" aria-hidden="true">
<input type="text" name="b_XXXX_YYYY" tabindex="-1" value="">
</div>
</form>
Step 2: Create a Newsletter Include
Save as _includes/newsletter.html:
<div class="newsletter-signup">
<h3>Stay in the loop</h3>
<p>Get new posts and Jekyll tips delivered to your inbox.</p>
<form action="YOUR_MAILCHIMP_ACTION_URL" method="post"
target="_blank" class="newsletter-form" id="newsletter-form">
<div class="newsletter-form__fields">
<input type="email" name="EMAIL" placeholder="your@email.com"
required class="newsletter-form__input">
<button type="submit" class="btn btn--primary">Subscribe</button>
</div>
<!-- Mailchimp bot protection -->
<div style="position: absolute; left: -5000px;" aria-hidden="true">
<input type="text" name="b_XXXX_YYYY" tabindex="-1" value="">
</div>
</form>
<p class="newsletter-form__note">No spam. Unsubscribe anytime.</p>
</div>
Step 3: Add to Your Layouts
At the bottom of posts (_layouts/post.html):
{% include newsletter.html %}
Or in your sidebar:
{% include sidebar/newsletter.html %}
Option 2: ConvertKit Inline Form
ConvertKit generates clean embed code that’s easy to style.
Step 1: Create a Form in ConvertKit
- In ConvertKit, go to Landing Pages & Forms → Create New → Form
- Choose Inline type
- Customise the fields
- Click Embed → copy the HTML embed code
Step 2: Use the Embed or Build Your Own
ConvertKit’s hosted form has an endpoint you can post to directly:
<form action="https://app.convertkit.com/forms/FORM_ID/subscriptions"
method="post" class="newsletter-form">
<input type="text" name="fields[first_name]" placeholder="First name (optional)">
<input type="email" name="email_address" placeholder="your@email.com" required>
<button type="submit">Subscribe</button>
</form>
Replace FORM_ID with your ConvertKit form ID (found in the form’s embed code).
Option 3: Buttondown (Developer-Friendly)
Buttondown is the simplest option for developers — clean API, great plain-text email support, and a very reasonable pricing model.
Embed Form
<form action="https://buttondown.email/api/emails/embed-subscribe/YOUR_USERNAME"
method="post" target="popupwindow"
onsubmit="window.open('https://buttondown.email/YOUR_USERNAME', 'popupwindow')"
class="newsletter-form">
<input type="email" name="email" placeholder="your@email.com" required>
<button type="submit">Subscribe</button>
</form>
Replace YOUR_USERNAME with your Buttondown username. That’s the entire setup.
Option 4: Custom Form with Netlify Forms
If you’re on Netlify and want to collect emails without a third-party service, Netlify Forms can capture signups and forward them via email or webhook.
<form name="newsletter" method="POST" data-netlify="true" class="newsletter-form">
<input type="hidden" name="form-name" value="newsletter">
<input type="email" name="email" placeholder="your@email.com" required>
<button type="submit">Subscribe</button>
</form>
Limitation: Netlify Forms doesn’t send emails to subscribers — you’d need to export the list and use an email tool separately. Good for building a waitlist or early access list, not for an ongoing newsletter.
Styling the Signup Form
// _sass/components/_newsletter.scss
.newsletter-signup {
background: var(--card-bg);
border: 1px solid var(--border-color);
border-radius: var(--radius-lg);
padding: 2rem;
text-align: center;
margin: 3rem 0;
h3 {
margin-top: 0;
font-size: 1.25rem;
}
p {
color: var(--text-muted);
margin-bottom: 1.25rem;
}
}
.newsletter-form__fields {
display: flex;
gap: 0.5rem;
max-width: 420px;
margin: 0 auto;
@media (max-width: 480px) {
flex-direction: column;
}
}
.newsletter-form__input {
flex: 1;
padding: 0.625rem 0.875rem;
border: 1px solid var(--border-color);
border-radius: var(--radius-md);
font-size: 1rem;
background: var(--bg-color);
color: var(--text-color);
&:focus {
outline: none;
border-color: var(--color-primary);
box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}
}
.newsletter-form__note {
font-size: 0.8rem;
color: var(--text-muted);
margin-top: 0.75rem;
margin-bottom: 0;
}
Where to Place Newsletter Signups
For the best conversion, add signups in multiple places:
After post content — readers who finished the post are most likely to subscribe. This is the highest-converting placement.
Mid-post (after 3–4 paragraphs) — catches readers before they leave.
Sidebar widget — always visible on desktop.
Homepage — dedicated section below the fold.
In your footer — catches users who scroll to the bottom.
<!-- In _layouts/post.html, after content -->
<div class="post-newsletter">
{% include newsletter.html %}
</div>
Measuring Signup Rates
A healthy newsletter signup rate for a blog is 1–3% of visitors. Track it by:
- Setting up a thank-you page redirect after signup
- Adding a Google Analytics goal for visits to
/thank-you/ - Alternatively, use ConvertKit or Mailchimp’s built-in form analytics
Most email services show total subscribers and form conversion rates in their dashboard.
An email list is the most resilient audience you can build. Unlike social media followers or search traffic, your subscribers are yours — algorithm changes don’t affect them.
Browse Jekyll themes on JekyllHub — several themes include pre-styled newsletter signup sections.
<!DOCTYPE html>
Jekyll E-commerce with Snipcart: Add a Shopping Cart to Your Static Site
Learn how to add a fully functional shopping cart to a Jekyll site using Snipcart. Product listings, checkout, payments, and order management — no backend required.
Jekyll is a static site generator — it does not have a database, a server, or a shopping cart. But that does not mean you cannot sell online. Snipcart is a JavaScript-powered shopping cart that adds to any static site with a few lines of HTML. No backend, no database, no hosting complexity.
Here is how to build a fully functional Jekyll store with Snipcart.
What is Snipcart?
Snipcart is a headless e-commerce platform. You add their JavaScript to your site, mark your products with HTML data attributes, and Snipcart handles the cart, checkout, payment processing (via Stripe), and order management through their dashboard.
You keep full control of your site’s design. Snipcart handles everything that requires a server.
Pricing: 2% transaction fee on sales up to $500/month, then $20/month flat fee. Free to test with a sandbox mode.
Setting up Snipcart in Jekyll
Step 1: Create a Snipcart account
Sign up at snipcart.com. You will get a public API key for testing (sandbox) and one for production.
Step 2: Add Snipcart to your Jekyll layout
Add the following to your _layouts/default.html before the closing </body> tag:
{% if site.snipcart_key != "" %}
<link rel="preconnect" href="https://app.snipcart.com">
<link rel="preconnect" href="https://cdn.snipcart.com">
<link rel="stylesheet" href="https://cdn.snipcart.com/themes/v3.3.3/default/snipcart.css" />
<div hidden id="snipcart" data-api-key="{{ site.snipcart_key }}"></div>
<script async src="https://cdn.snipcart.com/themes/v3.3.3/default/snipcart.js"></script>
{% endif %}
Step 3: Add your API key to _config.yml
# _config.yml
snipcart_key: "" # Add your Snipcart public API key here
Keep your test key for local development and your live key in your hosting platform’s environment variables.
Step 4: Define products in front matter
Create a _products collection in _config.yml:
collections:
products:
output: true
permalink: /shop/:slug/
Create a product file at _products/jekyll-starter-theme.md:
---
layout: product
title: "Jekyll Starter Theme"
price: 29.00
sku: "JST-001"
description: "A clean, minimal Jekyll theme for developers. Includes dark mode, SEO optimisation, and full documentation."
image: /assets/images/products/jekyll-starter-theme.jpg
category: Themes
in_stock: true
---
Your full product description here in Markdown...
Step 5: Create the Add to Cart button
In your product layout or product listing, add a button with Snipcart’s data attributes:
<button
class="snipcart-add-item btn btn--primary"
data-item-id="{{ product.sku }}"
data-item-name="{{ product.title }}"
data-item-price="{{ product.price }}"
data-item-url="{{ product.url | absolute_url }}"
data-item-description="{{ product.description | strip_html | truncate: 255 }}"
data-item-image="{{ product.image | absolute_url }}"
>
Add to Cart — ${{ product.price }}
</button>
The data-item-url must point to the live product page where Snipcart can verify the price. This is Snipcart’s anti-fraud mechanism — it crawls the URL and confirms the price matches what was passed to the cart.
Step 6: Add the cart button to your nav
<button class="snipcart-checkout navbar__icon-btn" aria-label="Shopping cart">
<svg width="20" height="20" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"/>
</svg>
<span class="snipcart-items-count">0</span>
</button>
The snipcart-items-count class is updated automatically by Snipcart with the current cart item count.
Creating a product listing page
Create _pages/shop.html:
---
layout: default
title: "Shop"
permalink: /shop/
---
<div class="product-grid">
{% for product in site.products %}
<div class="product-card">
<img src="{{ product.image | relative_url }}" alt="{{ product.title }}">
<h3>{{ product.title }}</h3>
<p>{{ product.description | truncate: 120 }}</p>
<p class="price">${{ product.price }}</p>
<button
class="snipcart-add-item btn btn--primary"
data-item-id="{{ product.sku }}"
data-item-name="{{ product.title }}"
data-item-price="{{ product.price }}"
data-item-url="{{ product.url | absolute_url }}"
data-item-description="{{ product.description | strip_html | truncate: 255 }}"
data-item-image="{{ product.image | absolute_url }}"
>
Add to Cart
</button>
</div>
{% endfor %}
</div>
Handling digital products
Snipcart supports digital product delivery via a file URL. Add it to your button:
data-item-file-guid="YOUR_FILE_GUID"
You upload the file in the Snipcart dashboard and get a GUID. Snipcart delivers a download link to the customer after payment. This is ideal for selling theme files, ebooks, or templates.
Tax and shipping
Configure tax rules and shipping rates in the Snipcart dashboard — no code changes needed. You can set rates by country, region, or product category.
Alternatives to Snipcart
| Option | Best for |
|---|---|
| Snipcart | Most Jekyll stores — simplest setup |
| Gumroad | Digital products only — embed a Gumroad button |
| Stripe Payment Links | Single products, no cart needed |
| Shopify Buy Button | Larger catalogues with existing Shopify store |
| Lemon Squeezy | SaaS products, subscriptions, software |
Is Jekyll right for e-commerce?
Jekyll works well for stores with a small to medium catalogue (under a few hundred products), digital goods, or marketplaces where the product pages are mostly static content. It is not the right choice for large catalogues with complex inventory management, real-time stock levels, or customer accounts.
For selling a Jekyll theme or digital download, Jekyll plus Snipcart is a perfectly reasonable stack. For a 10,000-SKU physical goods store, reach for Shopify.
<!DOCTYPE html>
Jekyll Environment Variables: The Complete Guide
How to use environment variables in Jekyll — JEKYLL_ENV, accessing env vars in config, conditional builds, and best practices for managing secrets.
Environment variables in Jekyll are simpler than you might expect — but also more limited than many developers assume coming from Node.js or Python. Here is everything you need to know.
JEKYLL_ENV: the key environment variable
Jekyll ships with one built-in environment variable: JEKYLL_ENV. It defaults to development when you run jekyll serve or jekyll build locally. To set it to production, prefix your build command:
JEKYLL_ENV=production jekyll build
On Netlify, Cloudflare Pages, and most CI platforms, this is set automatically.
Using JEKYLL_ENV in Liquid templates
You can read the environment in your templates using jekyll.environment:
{% if jekyll.environment == "production" %}
{% include analytics.html %}
{% endif %}
This is the standard pattern for including analytics, chat widgets, and other scripts only in production builds — keeping your development output clean and your test data separate from real analytics.
Common production-only includes
{% comment %} In _layouts/default.html {% endcomment %}
{% if jekyll.environment == "production" %}
{% include analytics.html %}
{% include cookie-banner.html %}
{% endif %}
Can Jekyll read system environment variables?
Yes — but only through _config.yml using ERB interpolation, and only when Jekyll is run with the --config flag pointing to a .yml file processed as ERB. This is not supported out of the box in standard Jekyll.
The most reliable approach for secrets in Jekyll is to use your hosting platform’s environment variable system and inject values at build time.
Injecting environment variables via _config.yml on Netlify
Netlify lets you set environment variables in your site dashboard (Site settings → Environment variables). You can then reference them in netlify.toml:
[build]
command = "JEKYLL_ENV=production jekyll build"
publish = "_site"
[build.environment]
JEKYLL_ENV = "production"
For values you want available in your Liquid templates, the cleanest approach is to set them in _config.yml directly — keeping non-secret config in version control and only truly secret values (API keys, tokens) in the platform’s environment variable system.
Environment-specific config files
Jekyll supports multiple config files merged at build time. This is the recommended pattern for environment-specific settings:
# Development (default)
jekyll serve
# Production
jekyll build --config _config.yml,_config.production.yml
# Staging
jekyll build --config _config.yml,_config.staging.yml
Your _config.production.yml overrides only the values that differ:
# _config.production.yml
url: "https://yourdomain.com"
google_analytics: "G-XXXXXXXXXX"
show_drafts: false
Your _config.yml keeps safe defaults:
# _config.yml
url: "http://localhost:4000"
google_analytics: ""
show_drafts: true
Practical examples
Analytics only in production
{% comment %} _includes/analytics.html {% endcomment %}
{% if jekyll.environment == "production" and site.google_analytics != "" %}
<script async src="https://www.googletagmanager.com/gtag/js?id={{ site.google_analytics }}"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag("js", new Date());
gtag("config", "{{ site.google_analytics }}");
</script>
{% endif %}
Draft posts visible in development only
# _config.yml
show_drafts: false
# _config.development.yml
show_drafts: true
jekyll serve --config _config.yml,_config.development.yml --drafts
Different base URLs per environment
# _config.yml
url: "https://jekyllhub.com"
baseurl: ""
# _config.staging.yml
url: "https://staging.jekyllhub.com"
baseurl: "/staging"
Banner or maintenance mode
# _config.yml
maintenance_mode: false
{% if site.maintenance_mode %}
<div class="maintenance-banner">We are performing maintenance. Back shortly.</div>
{% endif %}
What you cannot do directly
Jekyll does not have a .env file loader like Node.js projects. You cannot write:
# This does NOT work in Jekyll
API_KEY=abc123
…and then access `` in a template. Jekyll does not read shell environment variables into the Liquid context.
If you need to expose an API key to client-side JavaScript, remember that anything in your built _site folder is public. Never embed secret API keys in static HTML. Use a proxy function (Netlify Functions, Cloudflare Workers) to make authenticated requests from the server side.
Summary
| Pattern | Use case |
|---|---|
JEKYLL_ENV=production |
Toggle analytics, ads, and scripts |
Multiple _config files |
Environment-specific URLs and settings |
Platform env vars in netlify.toml |
Inject build-time values |
jekyll.environment in Liquid |
Conditional template logic |
Keep your environment strategy simple. For most Jekyll sites, JEKYLL_ENV plus a production config override covers everything you need.
<!DOCTYPE html>
Jekyll Liquid Filters: The Complete Cheatsheet (2026)
Every Liquid filter you need for Jekyll — string manipulation, date formatting, array filters, URL helpers, and Jekyll-specific additions. With examples.
Liquid filters transform output in Jekyll templates. They are chained with the pipe character | and applied to variables, strings, numbers, arrays, and dates. This cheatsheet covers every filter you will actually use, with real examples.
String filters
append and prepend
Jekyll Themes
<!-- output: Jekyll Themes -->
Jekyll Themes
<!-- output: Jekyll Themes -->
upcase, downcase, capitalize
HELLO WORLD
<!-- output: HELLO WORLD -->
hello world
<!-- output: hello world -->
Hello world
<!-- output: Hello world -->
strip, lstrip, rstrip
Removes whitespace from both ends, left only, or right only.
hello
<!-- output: hello -->
replace and replace_first
JekyllHub is great, JekyllHub is fast
<!-- output: JekyllHub is great, JekyllHub is fast -->
JekyllHub is great, Jekyll is fast
<!-- output: JekyllHub is great, Jekyll is fast -->
remove and remove_first
Hello World!
<!-- output: Hello World! -->
truncate and truncatewords
The qui...
<!-- output: The qui... -->
The quick brown...
<!-- output: The quick brown... -->
split and join
{% assign tags = "jekyll,blog,themes" | split: "," %}
{{ tags | join: " · " }}
<!-- output: jekyll · blog · themes -->
slice
Returns a substring starting at the given index.
Jek
<!-- output: Jek -->
strip_html
Removes all HTML tags from a string — useful for generating meta descriptions from post content.
strip_newlines
<div class="read-progress" id="read-progress"></div><article class="post" itemscope itemtype="https://schema.org/BlogPosting"> <header class="post-hero"> <div class="container"> <div class="post-hero__breadcrumb"> <a href="/">Home</a> <span class="breadcrumb-sep">›</span> <a href="/blog/">Blog</a> <span class="breadcrumb-sep">›</span> <span>Best Minimal Jekyll Themes in 2026 (Clean, Fast, Distraction-Free)</span> </div> <div class="post-hero__inner"> <span class="post-hero__cat">Themes</span> <h1 class="post-hero__title" itemprop="name">Best Minimal Jekyll Themes in 2026 (Clean, Fast, Distraction-Free)</h1> <p class="post-hero__desc" itemprop="description">The best minimal Jekyll themes for blogs, portfolios, and personal sites — clean typography, fast load times, and zero visual clutter.</p> <div class="post-hero__meta"> <span class="post-meta-item"> <svg width="15" height="15" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"/></svg> Updated <time itemprop="dateModified" datetime="2026-07-05T00:00:00+00:00">July 5, 2026</time> </span> <span class="post-meta-item"> <svg width="15" height="15" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"/></svg> 4 min read </span> </div> </div> </div> </header> <div class="post-cover"> <div class="container"> <img src="/assets/images/blog/jekyll-minimal-themes.webp" alt="Best Minimal Jekyll Themes in 2026 (Clean, Fast, Distraction-Free)" class="post-cover__img" itemprop="image"> </div> </div> <div class="container"> <div class="post-body"> <div class="post-body__main"> <div class="post-toc" id="post-toc" data-collapsed="false" style="display:none"> <button class="post-toc__label" id="toc-toggle" aria-expanded="false" aria-controls="toc-body"> <span class="post-toc__label-left"> <svg width="14" height="14" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 10h16M4 14h10"/></svg> Table of Contents </span> <svg class="post-toc__chevron" width="14" height="14" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"/></svg> </button> <nav id="toc-body" class="toc"></nav> </div> <div class="prose" itemprop="articleBody"> <p>Minimal themes are the most popular category in the Jekyll ecosystem — and for good reason. A minimal design puts the focus on your content, loads in milliseconds, and never goes out of style. Here are the best minimal Jekyll themes in 2026.</p><h2 id="what-makes-a-theme-truly-minimal">What makes a theme truly minimal?</h2><p>A minimal Jekyll theme is not just a theme with less CSS. The best ones share a few key characteristics:</p><ul> <li><strong>Typography-first</strong> — the reading experience is the design</li> <li><strong>No unnecessary widgets</strong> — no popups, cookie banners, social share floods, or autoplay anything</li> <li><strong>Fast by default</strong> — no large hero images, no heavy JavaScript frameworks</li> <li><strong>Easy to customise</strong> — minimal markup means less to override</li> <li><strong>Responsive</strong> — works perfectly on mobile without a complex grid system</li></ul><h2 id="best-free-minimal-jekyll-themes">Best free minimal Jekyll themes</h2><h3 id="minima">Minima</h3><p>The default Jekyll theme and arguably the most used Jekyll theme in existence. Minima ships with every new Jekyll install. It is bare-bones by design: clean typography, a simple nav, an archive list, and not much else.</p><p><strong>Best for:</strong> Getting started, technical blogs, personal sites where content is everything.<br /><strong>GitHub:</strong> <a href="https://github.com/jekyll/minima">jekyll/minima</a> — 3,000+ stars</p><h3 id="klise">Klise</h3><p>Klise is a minimal, high contrast Jekyll theme with dark mode support. It focuses entirely on readability — clean sans-serif type, generous line height, and a subtle dark/light toggle. No hero, no sidebar, no decorative elements.</p><p><strong>Best for:</strong> Developer blogs, writing-focused sites.<br /><strong>GitHub:</strong> <a href="https://github.com/piharpi/jekyll-klise">piharpi/jekyll-klise</a> — 800+ stars</p><h3 id="chirpy">Chirpy</h3><p>Chirpy is minimal but feature-complete. It adds a left sidebar with categories and tags, a table of contents that follows the reader, and dark mode — all without visual noise. The design is calm and professional.</p><p><strong>Best for:</strong> Technical blogs that need categories and navigation without sacrificing simplicity.<br /><strong>GitHub:</strong> <a href="https://github.com/cotes2020/jekyll-theme-chirpy">cotes2020/jekyll-theme-chirpy</a> — 8,000+ stars</p><h3 id="no-style-please">No Style Please!</h3><p>Exactly what the name says. This theme applies almost no CSS — content renders in the browser’s default styles. Intentionally ugly, intentionally fast. Popular in the indie web and “small web” communities.</p><p><strong>Best for:</strong> Experimental sites, writers who want the ultimate zero-distraction canvas.<br /><strong>GitHub:</strong> <a href="https://github.com/riggraz/no-style-please">riggraz/no-style-please</a> — 800+ stars</p><h3 id="so-simple">So Simple</h3><p>A simple-is-better theme with a single-column layout, large readable type, and support for author profiles. The name is accurate. It is maintained by Michael Rose, who also built the excellent Minimal Mistakes theme.</p><p><strong>Best for:</strong> Personal sites, writing portfolios, minimalist blogs.</p><h3 id="researcher">Researcher</h3><p>Researcher is built for academic and research professionals who want a clean, no-frills presence online. It outputs a single-page site with sections for bio, publications, and projects. Nothing more.</p><p><strong>Best for:</strong> Academics, PhD students, researchers, scientists.<br /><strong>GitHub:</strong> <a href="https://github.com/ankitsultana/researcher">ankitsultana/researcher</a></p><h2 id="what-to-look-for-when-choosing-a-minimal-theme">What to look for when choosing a minimal theme</h2><p><strong>Typography:</strong> Check the font pairing, line height, and measure (line length). The ideal measure for body text is 50–75 characters per line. If the theme stretches text full-width on desktop, skip it.</p><p><strong>Dark mode:</strong> In 2026, dark mode is expected. Look for themes with a clean system-respecting dark mode rather than a garish inverted palette.</p><p><strong>Performance:</strong> Open the theme’s demo in PageSpeed Insights. A good minimal theme should score 95+ on mobile without any optimisation from you.</p><p><strong>Front matter support:</strong> Check what fields the theme supports: <code class="language-plaintext highlighter-rouge">description</code>, <code class="language-plaintext highlighter-rouge">image</code>, <code class="language-plaintext highlighter-rouge">author</code>, <code class="language-plaintext highlighter-rouge">toc</code>. Themes that support rich front matter give you more flexibility as your site grows.</p><h2 id="premium-minimal-options">Premium minimal options</h2><p>Free minimal themes are excellent, but if you want something more refined — custom typography, polished dark mode, better SEO defaults, and actual support — a premium theme is worth considering.</p><p>Browse <a href="/themes/?category=Blog">minimal Jekyll themes on JekyllHub</a> to compare free and premium options side by side.</p><h2 id="the-right-amount-of-minimal">The right amount of minimal</h2><p>“Minimal” is not the same as “unfinished.” The best minimal themes are the result of careful design decisions — every element has a reason to be there, and everything unnecessary has been removed. They are not lazy; they are deliberate.</p><p>When you find the right one, you will spend your time writing. That is the point.</p> </div> <div class="post-tags"> </div> <div class="post-share"> <span class="post-share__label">Share</span> <a href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fjekyllhub.com%2Fthemes%2F2026%2F05%2F20%2Fjekyll-minimal-themes%2F&text=Best+Minimal+Jekyll+Themes+in+2026+%28Clean%2C+Fast%2C+Distraction-Free%29" target="_blank" rel="noopener" class="post-share__btn post-share__btn--twitter"> <svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor"><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-4.714-6.231-5.401 6.231H2.746l7.73-8.835L1.254 2.25H8.08l4.253 5.622zm-1.161 17.52h1.833L7.084 4.126H5.117z"/></svg> X / Twitter </a> <a href="https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fjekyllhub.com%2Fthemes%2F2026%2F05%2F20%2Fjekyll-minimal-themes%2F&title=Best+Minimal+Jekyll+Themes+in+2026+%28Clean%2C+Fast%2C+Distraction-Free%29" target="_blank" rel="noopener" class="post-share__btn post-share__btn--linkedin"> <svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor"><path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 01-2.063-2.065 2.064 2.064 0 112.063 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"/></svg> LinkedIn </a> <button class="post-share__btn post-share__btn--copy" onclick="JekyllHub.copyPostLink(this)"> <svg width="14" height="14" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"/></svg> <span>Copy Link</span> </button> </div> <nav class="post-nav" aria-label="Post navigation"> <div class="post-nav__prev"> <a href="/comparison/2026/05/19/jekyll-vs-nextjs/" class="post-nav__link"> <span class="post-nav__label">← Previous</span> <span class="post-nav__title">Jekyll vs Next.js: A Practical Comparison for 2026</span> </a> </div> <div class="post-nav__center"> <a href="/blog/" class="btn btn--secondary btn--sm">All Posts</a> </div> <div class="post-nav__next"> <a href="/tutorial/2026/05/21/jekyll-liquid-filters-cheatsheet/" class="post-nav__link post-nav__link--next"> <span class="post-nav__label">Next →</span> <span class="post-nav__title">Jekyll Liquid Filters: The Complete Cheatsheet (2026)</span> </a> </div> </nav> </div> <aside class="post-body__sidebar"> <div class="sidebar-card"> <h3 class="sidebar-card__title">Browse Themes</h3> <ul class="post-sidebar__links"> <li><a href="/jekyll-academic-themes/">🎓 Academic Themes</a></li> <li><a href="/jekyll-blog-themes/">✍️ Blog Themes</a></li> <li><a href="/jekyll-business-themes/">💼 Business Themes</a></li> <li><a href="/jekyll-documentation-themes/">📚 Documentation Themes</a></li> <li><a href="/jekyll-e-commerce-themes/">🛒 E-commerce Themes</a></li> <li><a href="/jekyll-landing-page-themes/">🚀 Landing Page Themes</a></li> <li><a href="/jekyll-personal-themes/">👤 Personal Themes</a></li> <li><a href="/jekyll-portfolio-themes/">🎨 Portfolio Themes</a></li> <li><a href="/jekyll-resume-cv-themes/">📄 Resume/CV Themes</a></li> <li><a href="/jekyll-github-pages-themes/"><svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor" style="display:inline;vertical-align:middle;margin-right:4px"><path d="M12 0C5.374 0 0 5.373 0 12c0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23A11.509 11.509 0 0 1 12 5.803c1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576C20.566 21.797 24 17.3 24 12c0-6.627-5.373-12-12-12z"/></svg>GitHub Pages Themes</a></li> </ul> <a href="/themes/" class="btn btn--primary btn--full" style="margin-top:var(--space-5)">Browse All Themes →</a> </div> <div class="sidebar-card" style="margin-top:var(--space-6)"> <h3 class="sidebar-card__title">Submit Your Theme</h3> <p style="font-size:0.875rem;color:var(--text-3);line-height:1.6;margin-bottom:var(--space-4)">Built a Jekyll theme? Share it with thousands of developers.</p> <a href="/submit/" class="btn btn--secondary btn--full">Submit a Theme →</a> </div> </aside> </div> </div> <!-- Related Themes — rendered by JS from SITE_DATA, shuffled per page load --> <section class="post-related-themes" style="display:none"> <div class="container"> <h2 class="post-related-themes__title">Themes You Might Like</h2> <div class="themes-grid themes-grid--4" id="post-related-themes-grid" data-tags="[]" data-related-category="Blog"></div> </div> </section> </article><!-- Back to top --><button class="back-to-top" id="back-to-top" aria-label="Back to top" onclick="window.scrollTo({top:0,behavior:'smooth'})"> <svg fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5" d="M5 15l7-7 7 7"/> </svg></button><script src="/assets/js/post.js" defer></script>
newline_to_br
Converts newlines to <br> tags.
<div class="read-progress" id="read-progress"></div><br />
<br />
<article class="post" itemscope itemtype="https://schema.org/BlogPosting"><br />
<br />
<header class="post-hero"><br />
<div class="container"><br />
<div class="post-hero__breadcrumb"><br />
<a href="/">Home</a><br />
<span class="breadcrumb-sep">›</span><br />
<a href="/blog/">Blog</a><br />
<span class="breadcrumb-sep">›</span><br />
<span>Best Minimal Jekyll Themes in 2026 (Clean, Fast, Distraction-Free)</span><br />
</div><br />
<br />
<div class="post-hero__inner"><br />
<br />
<span class="post-hero__cat">Themes</span><br />
<br />
<br />
<h1 class="post-hero__title" itemprop="name">Best Minimal Jekyll Themes in 2026 (Clean, Fast, Distraction-Free)</h1><br />
<br />
<br />
<p class="post-hero__desc" itemprop="description">The best minimal Jekyll themes for blogs, portfolios, and personal sites — clean typography, fast load times, and zero visual clutter.</p><br />
<br />
<br />
<div class="post-hero__meta"><br />
<span class="post-meta-item"><br />
<svg width="15" height="15" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"/></svg><br />
Updated <time itemprop="dateModified" datetime="2026-07-05T00:00:00+00:00">July 5, 2026</time><br />
</span><br />
<br />
<span class="post-meta-item"><br />
<svg width="15" height="15" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"/></svg><br />
4 min read<br />
</span><br />
</div><br />
</div><br />
</div><br />
</header><br />
<br />
<br />
<div class="post-cover"><br />
<div class="container"><br />
<img src="/assets/images/blog/jekyll-minimal-themes.webp" alt="Best Minimal Jekyll Themes in 2026 (Clean, Fast, Distraction-Free)" class="post-cover__img" itemprop="image"><br />
</div><br />
</div><br />
<br />
<br />
<div class="container"><br />
<div class="post-body"><br />
<div class="post-body__main"><br />
<br />
<div class="post-toc" id="post-toc" data-collapsed="false" style="display:none"><br />
<button class="post-toc__label" id="toc-toggle" aria-expanded="false" aria-controls="toc-body"><br />
<span class="post-toc__label-left"><br />
<svg width="14" height="14" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 10h16M4 14h10"/></svg><br />
Table of Contents<br />
</span><br />
<svg class="post-toc__chevron" width="14" height="14" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"/></svg><br />
</button><br />
<nav id="toc-body" class="toc"></nav><br />
</div><br />
<br />
<br />
<div class="prose" itemprop="articleBody"><br />
<p>Minimal themes are the most popular category in the Jekyll ecosystem — and for good reason. A minimal design puts the focus on your content, loads in milliseconds, and never goes out of style. Here are the best minimal Jekyll themes in 2026.</p><br />
<br />
<h2 id="what-makes-a-theme-truly-minimal">What makes a theme truly minimal?</h2><br />
<br />
<p>A minimal Jekyll theme is not just a theme with less CSS. The best ones share a few key characteristics:</p><br />
<br />
<ul><br />
<li><strong>Typography-first</strong> — the reading experience is the design</li><br />
<li><strong>No unnecessary widgets</strong> — no popups, cookie banners, social share floods, or autoplay anything</li><br />
<li><strong>Fast by default</strong> — no large hero images, no heavy JavaScript frameworks</li><br />
<li><strong>Easy to customise</strong> — minimal markup means less to override</li><br />
<li><strong>Responsive</strong> — works perfectly on mobile without a complex grid system</li><br />
</ul><br />
<br />
<h2 id="best-free-minimal-jekyll-themes">Best free minimal Jekyll themes</h2><br />
<br />
<h3 id="minima">Minima</h3><br />
<br />
<p>The default Jekyll theme and arguably the most used Jekyll theme in existence. Minima ships with every new Jekyll install. It is bare-bones by design: clean typography, a simple nav, an archive list, and not much else.</p><br />
<br />
<p><strong>Best for:</strong> Getting started, technical blogs, personal sites where content is everything.<br /><br />
<strong>GitHub:</strong> <a href="https://github.com/jekyll/minima">jekyll/minima</a> — 3,000+ stars</p><br />
<br />
<h3 id="klise">Klise</h3><br />
<br />
<p>Klise is a minimal, high contrast Jekyll theme with dark mode support. It focuses entirely on readability — clean sans-serif type, generous line height, and a subtle dark/light toggle. No hero, no sidebar, no decorative elements.</p><br />
<br />
<p><strong>Best for:</strong> Developer blogs, writing-focused sites.<br /><br />
<strong>GitHub:</strong> <a href="https://github.com/piharpi/jekyll-klise">piharpi/jekyll-klise</a> — 800+ stars</p><br />
<br />
<h3 id="chirpy">Chirpy</h3><br />
<br />
<p>Chirpy is minimal but feature-complete. It adds a left sidebar with categories and tags, a table of contents that follows the reader, and dark mode — all without visual noise. The design is calm and professional.</p><br />
<br />
<p><strong>Best for:</strong> Technical blogs that need categories and navigation without sacrificing simplicity.<br /><br />
<strong>GitHub:</strong> <a href="https://github.com/cotes2020/jekyll-theme-chirpy">cotes2020/jekyll-theme-chirpy</a> — 8,000+ stars</p><br />
<br />
<h3 id="no-style-please">No Style Please!</h3><br />
<br />
<p>Exactly what the name says. This theme applies almost no CSS — content renders in the browser’s default styles. Intentionally ugly, intentionally fast. Popular in the indie web and “small web” communities.</p><br />
<br />
<p><strong>Best for:</strong> Experimental sites, writers who want the ultimate zero-distraction canvas.<br /><br />
<strong>GitHub:</strong> <a href="https://github.com/riggraz/no-style-please">riggraz/no-style-please</a> — 800+ stars</p><br />
<br />
<h3 id="so-simple">So Simple</h3><br />
<br />
<p>A simple-is-better theme with a single-column layout, large readable type, and support for author profiles. The name is accurate. It is maintained by Michael Rose, who also built the excellent Minimal Mistakes theme.</p><br />
<br />
<p><strong>Best for:</strong> Personal sites, writing portfolios, minimalist blogs.</p><br />
<br />
<h3 id="researcher">Researcher</h3><br />
<br />
<p>Researcher is built for academic and research professionals who want a clean, no-frills presence online. It outputs a single-page site with sections for bio, publications, and projects. Nothing more.</p><br />
<br />
<p><strong>Best for:</strong> Academics, PhD students, researchers, scientists.<br /><br />
<strong>GitHub:</strong> <a href="https://github.com/ankitsultana/researcher">ankitsultana/researcher</a></p><br />
<br />
<h2 id="what-to-look-for-when-choosing-a-minimal-theme">What to look for when choosing a minimal theme</h2><br />
<br />
<p><strong>Typography:</strong> Check the font pairing, line height, and measure (line length). The ideal measure for body text is 50–75 characters per line. If the theme stretches text full-width on desktop, skip it.</p><br />
<br />
<p><strong>Dark mode:</strong> In 2026, dark mode is expected. Look for themes with a clean system-respecting dark mode rather than a garish inverted palette.</p><br />
<br />
<p><strong>Performance:</strong> Open the theme’s demo in PageSpeed Insights. A good minimal theme should score 95+ on mobile without any optimisation from you.</p><br />
<br />
<p><strong>Front matter support:</strong> Check what fields the theme supports: <code class="language-plaintext highlighter-rouge">description</code>, <code class="language-plaintext highlighter-rouge">image</code>, <code class="language-plaintext highlighter-rouge">author</code>, <code class="language-plaintext highlighter-rouge">toc</code>. Themes that support rich front matter give you more flexibility as your site grows.</p><br />
<br />
<h2 id="premium-minimal-options">Premium minimal options</h2><br />
<br />
<p>Free minimal themes are excellent, but if you want something more refined — custom typography, polished dark mode, better SEO defaults, and actual support — a premium theme is worth considering.</p><br />
<br />
<p>Browse <a href="/themes/?category=Blog">minimal Jekyll themes on JekyllHub</a> to compare free and premium options side by side.</p><br />
<br />
<h2 id="the-right-amount-of-minimal">The right amount of minimal</h2><br />
<br />
<p>“Minimal” is not the same as “unfinished.” The best minimal themes are the result of careful design decisions — every element has a reason to be there, and everything unnecessary has been removed. They are not lazy; they are deliberate.</p><br />
<br />
<p>When you find the right one, you will spend your time writing. That is the point.</p><br />
<br />
</div><br />
<br />
<br />
<div class="post-tags"><br />
<br />
</div><br />
<br />
<br />
<div class="post-share"><br />
<span class="post-share__label">Share</span><br />
<a href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fjekyllhub.com%2Fthemes%2F2026%2F05%2F20%2Fjekyll-minimal-themes%2F&text=Best+Minimal+Jekyll+Themes+in+2026+%28Clean%2C+Fast%2C+Distraction-Free%29" target="_blank" rel="noopener" class="post-share__btn post-share__btn--twitter"><br />
<svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor"><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-4.714-6.231-5.401 6.231H2.746l7.73-8.835L1.254 2.25H8.08l4.253 5.622zm-1.161 17.52h1.833L7.084 4.126H5.117z"/></svg><br />
X / Twitter<br />
</a><br />
<a href="https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fjekyllhub.com%2Fthemes%2F2026%2F05%2F20%2Fjekyll-minimal-themes%2F&title=Best+Minimal+Jekyll+Themes+in+2026+%28Clean%2C+Fast%2C+Distraction-Free%29" target="_blank" rel="noopener" class="post-share__btn post-share__btn--linkedin"><br />
<svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor"><path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 01-2.063-2.065 2.064 2.064 0 112.063 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"/></svg><br />
LinkedIn<br />
</a><br />
<button class="post-share__btn post-share__btn--copy" onclick="JekyllHub.copyPostLink(this)"><br />
<svg width="14" height="14" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"/></svg><br />
<span>Copy Link</span><br />
</button><br />
</div><br />
<br />
<br />
<br />
<nav class="post-nav" aria-label="Post navigation"><br />
<div class="post-nav__prev"><br />
<br />
<a href="/comparison/2026/05/19/jekyll-vs-nextjs/" class="post-nav__link"><br />
<span class="post-nav__label">← Previous</span><br />
<span class="post-nav__title">Jekyll vs Next.js: A Practical Comparison for 2026</span><br />
</a><br />
<br />
</div><br />
<div class="post-nav__center"><br />
<a href="/blog/" class="btn btn--secondary btn--sm">All Posts</a><br />
</div><br />
<div class="post-nav__next"><br />
<br />
<a href="/tutorial/2026/05/21/jekyll-liquid-filters-cheatsheet/" class="post-nav__link post-nav__link--next"><br />
<span class="post-nav__label">Next →</span><br />
<span class="post-nav__title">Jekyll Liquid Filters: The Complete Cheatsheet (2026)</span><br />
</a><br />
<br />
</div><br />
</nav><br />
</div><br />
<br />
<aside class="post-body__sidebar"><br />
<div class="sidebar-card"><br />
<h3 class="sidebar-card__title">Browse Themes</h3><br />
<ul class="post-sidebar__links"><br />
<br />
<li><a href="/jekyll-academic-themes/">🎓 Academic Themes</a></li><br />
<br />
<li><a href="/jekyll-blog-themes/">✍️ Blog Themes</a></li><br />
<br />
<li><a href="/jekyll-business-themes/">💼 Business Themes</a></li><br />
<br />
<li><a href="/jekyll-documentation-themes/">📚 Documentation Themes</a></li><br />
<br />
<li><a href="/jekyll-e-commerce-themes/">🛒 E-commerce Themes</a></li><br />
<br />
<li><a href="/jekyll-landing-page-themes/">🚀 Landing Page Themes</a></li><br />
<br />
<li><a href="/jekyll-personal-themes/">👤 Personal Themes</a></li><br />
<br />
<li><a href="/jekyll-portfolio-themes/">🎨 Portfolio Themes</a></li><br />
<br />
<li><a href="/jekyll-resume-cv-themes/">📄 Resume/CV Themes</a></li><br />
<br />
<li><a href="/jekyll-github-pages-themes/"><svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor" style="display:inline;vertical-align:middle;margin-right:4px"><path d="M12 0C5.374 0 0 5.373 0 12c0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23A11.509 11.509 0 0 1 12 5.803c1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576C20.566 21.797 24 17.3 24 12c0-6.627-5.373-12-12-12z"/></svg>GitHub Pages Themes</a></li><br />
</ul><br />
<a href="/themes/" class="btn btn--primary btn--full" style="margin-top:var(--space-5)">Browse All Themes →</a><br />
</div><br />
<br />
<div class="sidebar-card" style="margin-top:var(--space-6)"><br />
<h3 class="sidebar-card__title">Submit Your Theme</h3><br />
<p style="font-size:0.875rem;color:var(--text-3);line-height:1.6;margin-bottom:var(--space-4)">Built a Jekyll theme? Share it with thousands of developers.</p><br />
<a href="/submit/" class="btn btn--secondary btn--full">Submit a Theme →</a><br />
</div><br />
</aside><br />
</div><br />
</div><br />
<br />
<!-- Related Themes — rendered by JS from SITE_DATA, shuffled per page load --><br />
<br />
<br />
<br />
<br />
<section class="post-related-themes" style="display:none"><br />
<div class="container"><br />
<h2 class="post-related-themes__title">Themes You Might Like</h2><br />
<div class="themes-grid themes-grid--4" id="post-related-themes-grid"<br />
data-tags="[]"<br />
data-related-category="Blog"></div><br />
</div><br />
</section><br />
<br />
<br />
</article><br />
<br />
<!-- Back to top --><br />
<button class="back-to-top" id="back-to-top" aria-label="Back to top" onclick="window.scrollTo({top:0,behavior:'smooth'})"><br />
<svg fill="none" stroke="currentColor" viewBox="0 0 24 24"><br />
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5" d="M5 15l7-7 7 7"/><br />
</svg><br />
</button><br />
<script src="/assets/js/post.js" defer></script><br />
escape and escape_once
HTML-encodes a string.
<script>
<!-- output: <script> -->
url_encode and url_decode
hello+world
<!-- output: hello+world -->
markdownify
Converts a Markdown string to HTML. Useful for front matter fields written in Markdown.
<p>Every Liquid filter you need for Jekyll — string manipulation, date formatting, array filters, URL helpers, and Jekyll-specific additions. With examples.</p>
jsonify
Converts an object to JSON. Essential for passing Jekyll data to JavaScript.
<script>
var themes = [{"path":"_themes/academicpages.md","relative_path":"_themes/academicpages.md","excerpt":"<p>Academic Pages is the most widely used academic personal website template on GitHub, with over 12,000 stars and hundreds of thousands of researchers using it worldwide. It’s a fork of Minimal Mistakes, extended specifically for academic use cases: publications with BibTeX citations, conference talks with slides and video links, course teaching pages, a project portfolio, and a CV that generates itself from structured YAML files.</p>\n\n","previous":null,"id":"/themes/academicpages","collection":"themes","next":{"path":"_themes/advance.md","relative_path":"_themes/advance.md","excerpt":"<p>Advance is the theme for teams and businesses that have outgrown a simple blog and need a full website — one that can handle services, a project portfolio, staff pages, and a content blog, all from a single Jekyll installation.</p>\n\n","previous":{"path":"_themes/academicpages.md","relative_path":"_themes/academicpages.md","id":"/themes/academicpages","collection":"themes","url":"/themes/academicpages/","draft":false,"categories":["Academic"],"layout":"theme","price_type":"free","featured":true,"dark_mode":false,"responsive":true,"title":"Academic Pages Jekyll Theme","description":"An academic portfolio Jekyll theme for researchers and scholars. Supports publications, talks, CV pages, and GitHub Pages out of the box.","key_features":["Publications Page","CV Layout","GitHub Pages","BibTeX Support"],"card_description":"Academic portfolio for researchers with publications, talks, and CV pages.","category":"Academic","card_image":"/assets/images/themes/academicpages-card.webp","theme_screenshots":["/assets/images/themes/academicpages-screenshot.webp","/assets/images/themes/academicpages-screenshot-2.webp","/assets/images/themes/academicpages-screenshot-3.webp"],"demo_url":"https://academicpages.github.io/","github_url":"https://github.com/academicpages/academicpages.github.io","author":"GitHub Community","github_author_name":"academicpages","github_author_url":"https://github.com/academicpages","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.7","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-include-cache"],"updated_at":"2024-06-01","added_at":"2026-06-07","popular":true,"trending":false,"bestseller":false,"version":"2.1.0","license":"MIT","stars":12000,"forks":8000,"features":["Dedicated pages for publications, talks, and teaching","Auto-generated CV from structured YAML data","Jupyter notebook integration for data-driven pages","Google Scholar and ORCID profile links","BibTeX citation support","Research portfolio with project pages","Blog section for news and updates","SEO optimised for academic search visibility","GitHub Pages compatible — no server required","Fork-to-publish workflow"],"slug":"academicpages","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/advance","collection":"themes","next":{"path":"_themes/agency.md","relative_path":"_themes/agency.md","id":"/themes/agency","collection":"themes","url":"/themes/agency/","draft":false,"categories":["Portfolio"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Agency Jekyll Theme","description":"A striking single-page agency Jekyll theme with full-screen sections, portfolio grid, and team showcase. Based on Start Bootstrap Agency.","key_features":["One-Page Design","Portfolio Grid","Team Showcase","Smooth Scroll"],"card_description":"Striking single-page agency theme with portfolio grid and team showcase.","category":"Portfolio","card_image":"/assets/images/themes/agency-card.webp","theme_screenshots":["/assets/images/themes/agency-screenshot.webp","/assets/images/themes/agency-screenshot-2.webp","/assets/images/themes/agency-screenshot-3.webp"],"demo_url":"https://y7kim.github.io/agency-jekyll-theme/","github_url":"https://github.com/y7kim/agency-jekyll-theme","author":"GitHub Community","github_author_name":"Rick Kim","github_author_url":"https://github.com/y7kim","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2023-06-01","added_at":"2026-01-10","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":820,"forks":420,"features":["Full-screen hero section","Project showcase grid","Dark aesthetic","Team and services sections","Contact form ready"],"slug":"agency","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Advance is the theme for teams and businesses that have outgrown a simple blog and need a full website — one that can handle services, a project portfolio, staff pages, and a content blog, all from a single Jekyll installation.\n\n### More Than a Blog\n\nMost Jekyll themes give you a blog and a few static pages. Advance ships with dedicated content types for **Services**, **Projects**, and **Team** — each with its own listing page and individual detail pages, all driven by markdown files and front-matter. Add a new team member, service offering, or case study the same way you'd add a blog post: create a markdown file and fill in the front-matter.\n\n### The Configurable Hero\n\nEvery page in Advance can have a unique hero section. Adjust the background image, colour overlay, blend effects, text alignment, and call-to-action — all from front-matter. No CSS editing required. The result is a site that feels custom-designed without custom development.\n\n### Performance by Default\n\nAdvance uses Bootstrap 5.2 for layout but strips jQuery entirely, keeping JavaScript to a minimum. Combined with automatic SEO meta tags, Open Graph data, and semantic HTML, the theme achieves strong Lighthouse scores out of the box. Dark mode is built in — automatic via system preference or manual toggle — so the design holds up in any context.\n\n### Deploy Anywhere\n\nAdvance is fully compatible with GitHub Pages (no custom plugins that break Pages builds) and ships with a `netlify.toml` for one-click Netlify deployment. Formspree and Netlify Forms are supported for contact forms; Disqus handles comments.\n\n**Who is it for?** Agencies, freelancers, and small businesses that want a professional multi-page Jekyll site — not just a blog — and need the flexibility to grow it over time.\n","url":"/themes/advance/","draft":false,"categories":["Business"],"layout":"theme","price_type":"premium","featured":true,"dark_mode":true,"responsive":true,"title":"Advance Jekyll Theme","rating":4.9,"rating_count":38,"description":"A premium multi-purpose Jekyll theme for building advanced marketing and business websites. Includes Services, Projects, and Team content types, a configurable hero section, full blog, dark mode, and Bootstrap 5.2.","card_description":"Premium multi-purpose theme — services, projects, team, blog, and configurable hero.","price":79,"category":"Business","card_image":"/assets/images/themes/advance-card.webp","theme_screenshots":["/assets/images/themes/advance-screenshot.webp","/assets/images/themes/advance-screenshot-2.webp","/assets/images/themes/advance-screenshot-3.webp"],"key_features":["Multi-Purpose","Dark Mode","Services & Team","Configurable Hero"],"demo_url":"https://jekyll-advance.netlify.app/","buy_url":"https://www.zerostatic.io/theme/jekyll-advance/","author":"Zerostatic","author_url":"https://www.zerostatic.io/","github_author_name":"Zerostatic","support":"6 months","github_pages_compatible":true,"min_jekyll_version":"4.2","plugins":["jekyll-feed","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2025-04-01","added_at":"2026-06-27","popular":true,"trending":true,"bestseller":true,"version":"1.0.0","license":"Commercial","features":["Jekyll 4.2+ with Bootstrap 5.2 — no jQuery, minimal vanilla JS","Services content type with individual service pages","Projects portfolio with filterable project showcase","Team content type for staff and contributor profiles","Full blog with pagination, categories, and author support","Highly configurable hero section — background image, colour overlay, alignment, text, and blend effects","Dark mode with automatic (system preference) and manual toggle","Breadcrumbs and sidebars on interior pages","Animated transparent header on scroll","All content editable via markdown, front-matter, or YAML — nothing hardcoded","Configure logo, colours, fonts, menus, and footer in _config.yml","Auto-generated SEO meta tags, Open Graph, and Twitter card data","Responsive nested dropdown navigation and mobile hamburger menu","Contact page with Netlify Forms and Formspree support","Disqus comments integration","Google Analytics and social media links","Google Fonts and Font Awesome 6 icons","Works with GitHub Pages and Netlify (includes netlify.toml)","All photos, illustrations, and icons included are royalty free","Full documentation at zerostatic.io/docs/jekyll-advance/"],"slug":"advance","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Academic Pages is the most widely used academic personal website template on GitHub, with over 12,000 stars and hundreds of thousands of researchers using it worldwide. It's a fork of Minimal Mistakes, extended specifically for academic use cases: publications with BibTeX citations, conference talks with slides and video links, course teaching pages, a project portfolio, and a CV that generates itself from structured YAML files.\n\nThe fork-to-publish model is particularly popular in academia — researchers can have a live personal website on GitHub Pages within minutes, with no server, no CMS, and no ongoing cost.\n\n**Who is it for?** Researchers, academics, PhD students, and scientists who want a professional web presence that highlights publications, talks, and research without complex web development.\n","url":"/themes/academicpages/","draft":false,"categories":["Academic"],"layout":"theme","price_type":"free","featured":true,"dark_mode":false,"responsive":true,"title":"Academic Pages Jekyll Theme","description":"An academic portfolio Jekyll theme for researchers and scholars. Supports publications, talks, CV pages, and GitHub Pages out of the box.","key_features":["Publications Page","CV Layout","GitHub Pages","BibTeX Support"],"card_description":"Academic portfolio for researchers with publications, talks, and CV pages.","category":"Academic","card_image":"/assets/images/themes/academicpages-card.webp","theme_screenshots":["/assets/images/themes/academicpages-screenshot.webp","/assets/images/themes/academicpages-screenshot-2.webp","/assets/images/themes/academicpages-screenshot-3.webp"],"demo_url":"https://academicpages.github.io/","github_url":"https://github.com/academicpages/academicpages.github.io","author":"GitHub Community","github_author_name":"academicpages","github_author_url":"https://github.com/academicpages","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.7","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-include-cache"],"updated_at":"2024-06-01","added_at":"2026-06-07","popular":true,"trending":false,"bestseller":false,"version":"2.1.0","license":"MIT","stars":12000,"forks":8000,"features":["Dedicated pages for publications, talks, and teaching","Auto-generated CV from structured YAML data","Jupyter notebook integration for data-driven pages","Google Scholar and ORCID profile links","BibTeX citation support","Research portfolio with project pages","Blog section for news and updates","SEO optimised for academic search visibility","GitHub Pages compatible — no server required","Fork-to-publish workflow"],"slug":"academicpages","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/advance.md","relative_path":"_themes/advance.md","excerpt":"<p>Advance is the theme for teams and businesses that have outgrown a simple blog and need a full website — one that can handle services, a project portfolio, staff pages, and a content blog, all from a single Jekyll installation.</p>\n\n","previous":{"path":"_themes/academicpages.md","relative_path":"_themes/academicpages.md","excerpt":"<p>Academic Pages is the most widely used academic personal website template on GitHub, with over 12,000 stars and hundreds of thousands of researchers using it worldwide. It’s a fork of Minimal Mistakes, extended specifically for academic use cases: publications with BibTeX citations, conference talks with slides and video links, course teaching pages, a project portfolio, and a CV that generates itself from structured YAML files.</p>\n\n","previous":null,"id":"/themes/academicpages","collection":"themes","next":{"path":"_themes/advance.md","relative_path":"_themes/advance.md","id":"/themes/advance","collection":"themes","url":"/themes/advance/","draft":false,"categories":["Business"],"layout":"theme","price_type":"premium","featured":true,"dark_mode":true,"responsive":true,"title":"Advance Jekyll Theme","rating":4.9,"rating_count":38,"description":"A premium multi-purpose Jekyll theme for building advanced marketing and business websites. Includes Services, Projects, and Team content types, a configurable hero section, full blog, dark mode, and Bootstrap 5.2.","card_description":"Premium multi-purpose theme — services, projects, team, blog, and configurable hero.","price":79,"category":"Business","card_image":"/assets/images/themes/advance-card.webp","theme_screenshots":["/assets/images/themes/advance-screenshot.webp","/assets/images/themes/advance-screenshot-2.webp","/assets/images/themes/advance-screenshot-3.webp"],"key_features":["Multi-Purpose","Dark Mode","Services & Team","Configurable Hero"],"demo_url":"https://jekyll-advance.netlify.app/","buy_url":"https://www.zerostatic.io/theme/jekyll-advance/","author":"Zerostatic","author_url":"https://www.zerostatic.io/","github_author_name":"Zerostatic","support":"6 months","github_pages_compatible":true,"min_jekyll_version":"4.2","plugins":["jekyll-feed","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2025-04-01","added_at":"2026-06-27","popular":true,"trending":true,"bestseller":true,"version":"1.0.0","license":"Commercial","features":["Jekyll 4.2+ with Bootstrap 5.2 — no jQuery, minimal vanilla JS","Services content type with individual service pages","Projects portfolio with filterable project showcase","Team content type for staff and contributor profiles","Full blog with pagination, categories, and author support","Highly configurable hero section — background image, colour overlay, alignment, text, and blend effects","Dark mode with automatic (system preference) and manual toggle","Breadcrumbs and sidebars on interior pages","Animated transparent header on scroll","All content editable via markdown, front-matter, or YAML — nothing hardcoded","Configure logo, colours, fonts, menus, and footer in _config.yml","Auto-generated SEO meta tags, Open Graph, and Twitter card data","Responsive nested dropdown navigation and mobile hamburger menu","Contact page with Netlify Forms and Formspree support","Disqus comments integration","Google Analytics and social media links","Google Fonts and Font Awesome 6 icons","Works with GitHub Pages and Netlify (includes netlify.toml)","All photos, illustrations, and icons included are royalty free","Full documentation at zerostatic.io/docs/jekyll-advance/"],"slug":"advance","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Academic Pages is the most widely used academic personal website template on GitHub, with over 12,000 stars and hundreds of thousands of researchers using it worldwide. It's a fork of Minimal Mistakes, extended specifically for academic use cases: publications with BibTeX citations, conference talks with slides and video links, course teaching pages, a project portfolio, and a CV that generates itself from structured YAML files.\n\nThe fork-to-publish model is particularly popular in academia — researchers can have a live personal website on GitHub Pages within minutes, with no server, no CMS, and no ongoing cost.\n\n**Who is it for?** Researchers, academics, PhD students, and scientists who want a professional web presence that highlights publications, talks, and research without complex web development.\n","url":"/themes/academicpages/","draft":false,"categories":["Academic"],"layout":"theme","price_type":"free","featured":true,"dark_mode":false,"responsive":true,"title":"Academic Pages Jekyll Theme","description":"An academic portfolio Jekyll theme for researchers and scholars. Supports publications, talks, CV pages, and GitHub Pages out of the box.","key_features":["Publications Page","CV Layout","GitHub Pages","BibTeX Support"],"card_description":"Academic portfolio for researchers with publications, talks, and CV pages.","category":"Academic","card_image":"/assets/images/themes/academicpages-card.webp","theme_screenshots":["/assets/images/themes/academicpages-screenshot.webp","/assets/images/themes/academicpages-screenshot-2.webp","/assets/images/themes/academicpages-screenshot-3.webp"],"demo_url":"https://academicpages.github.io/","github_url":"https://github.com/academicpages/academicpages.github.io","author":"GitHub Community","github_author_name":"academicpages","github_author_url":"https://github.com/academicpages","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.7","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-include-cache"],"updated_at":"2024-06-01","added_at":"2026-06-07","popular":true,"trending":false,"bestseller":false,"version":"2.1.0","license":"MIT","stars":12000,"forks":8000,"features":["Dedicated pages for publications, talks, and teaching","Auto-generated CV from structured YAML data","Jupyter notebook integration for data-driven pages","Google Scholar and ORCID profile links","BibTeX citation support","Research portfolio with project pages","Blog section for news and updates","SEO optimised for academic search visibility","GitHub Pages compatible — no server required","Fork-to-publish workflow"],"slug":"academicpages","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/advance","collection":"themes","next":{"path":"_themes/agency.md","relative_path":"_themes/agency.md","excerpt":"<p>Agency is a bold, dark-themed Jekyll portfolio theme inspired by the best creative agency sites on the web. It makes a strong first impression with a full-screen hero, then guides visitors through your work, services, and team in a single scrolling page.</p>\n\n","previous":{"path":"_themes/advance.md","relative_path":"_themes/advance.md","id":"/themes/advance","collection":"themes","url":"/themes/advance/","draft":false,"categories":["Business"],"layout":"theme","price_type":"premium","featured":true,"dark_mode":true,"responsive":true,"title":"Advance Jekyll Theme","rating":4.9,"rating_count":38,"description":"A premium multi-purpose Jekyll theme for building advanced marketing and business websites. Includes Services, Projects, and Team content types, a configurable hero section, full blog, dark mode, and Bootstrap 5.2.","card_description":"Premium multi-purpose theme — services, projects, team, blog, and configurable hero.","price":79,"category":"Business","card_image":"/assets/images/themes/advance-card.webp","theme_screenshots":["/assets/images/themes/advance-screenshot.webp","/assets/images/themes/advance-screenshot-2.webp","/assets/images/themes/advance-screenshot-3.webp"],"key_features":["Multi-Purpose","Dark Mode","Services & Team","Configurable Hero"],"demo_url":"https://jekyll-advance.netlify.app/","buy_url":"https://www.zerostatic.io/theme/jekyll-advance/","author":"Zerostatic","author_url":"https://www.zerostatic.io/","github_author_name":"Zerostatic","support":"6 months","github_pages_compatible":true,"min_jekyll_version":"4.2","plugins":["jekyll-feed","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2025-04-01","added_at":"2026-06-27","popular":true,"trending":true,"bestseller":true,"version":"1.0.0","license":"Commercial","features":["Jekyll 4.2+ with Bootstrap 5.2 — no jQuery, minimal vanilla JS","Services content type with individual service pages","Projects portfolio with filterable project showcase","Team content type for staff and contributor profiles","Full blog with pagination, categories, and author support","Highly configurable hero section — background image, colour overlay, alignment, text, and blend effects","Dark mode with automatic (system preference) and manual toggle","Breadcrumbs and sidebars on interior pages","Animated transparent header on scroll","All content editable via markdown, front-matter, or YAML — nothing hardcoded","Configure logo, colours, fonts, menus, and footer in _config.yml","Auto-generated SEO meta tags, Open Graph, and Twitter card data","Responsive nested dropdown navigation and mobile hamburger menu","Contact page with Netlify Forms and Formspree support","Disqus comments integration","Google Analytics and social media links","Google Fonts and Font Awesome 6 icons","Works with GitHub Pages and Netlify (includes netlify.toml)","All photos, illustrations, and icons included are royalty free","Full documentation at zerostatic.io/docs/jekyll-advance/"],"slug":"advance","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/agency","collection":"themes","next":{"path":"_themes/al-folio.md","relative_path":"_themes/al-folio.md","id":"/themes/al-folio","collection":"themes","url":"/themes/al-folio/","draft":false,"categories":["Academic"],"layout":"theme","price_type":"free","featured":true,"dark_mode":true,"responsive":true,"title":"al-folio Jekyll Theme","description":"A clean, minimal Jekyll theme built for academics and researchers. Beautifully renders publications, projects, and CV with BibTeX support.","key_features":["Publications List","BibTeX Support","Dark Mode","Project Pages"],"card_description":"Clean academic theme for researchers with BibTeX and publications support.","category":"Academic","card_image":"/assets/images/themes/al-folio-card.webp","theme_screenshots":["/assets/images/themes/al-folio-screenshot.webp","/assets/images/themes/al-folio-screenshot-2.webp","/assets/images/themes/al-folio-screenshot-3.webp"],"demo_url":"https://alshedivat.github.io/al-folio/","github_url":"https://github.com/alshedivat/al-folio","author":"GitHub Community","github_author_name":"Maruan Al-Shedivat","github_author_url":"https://github.com/alshedivat","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":false,"min_jekyll_version":"4.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag"],"updated_at":"2024-05-01","added_at":"2026-01-15","popular":true,"trending":true,"bestseller":false,"version":"0.12.0","license":"MIT","stars":11200,"forks":4800,"features":["Publication list with BibTeX","Project pages","Teaching and CV sections","Dark and light mode","MathJax and code highlighting"],"slug":"al-folio","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Agency is a bold, dark-themed Jekyll portfolio theme inspired by the best creative agency sites on the web. It makes a strong first impression with a full-screen hero, then guides visitors through your work, services, and team in a single scrolling page.\n\nBuilt for designers, developers, and studios who want their portfolio to look as professional as the work inside it.\n\n**Who is it for?** Freelancers, agencies, and creative studios who want a striking, one-page portfolio site.\n","url":"/themes/agency/","draft":false,"categories":["Portfolio"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Agency Jekyll Theme","description":"A striking single-page agency Jekyll theme with full-screen sections, portfolio grid, and team showcase. Based on Start Bootstrap Agency.","key_features":["One-Page Design","Portfolio Grid","Team Showcase","Smooth Scroll"],"card_description":"Striking single-page agency theme with portfolio grid and team showcase.","category":"Portfolio","card_image":"/assets/images/themes/agency-card.webp","theme_screenshots":["/assets/images/themes/agency-screenshot.webp","/assets/images/themes/agency-screenshot-2.webp","/assets/images/themes/agency-screenshot-3.webp"],"demo_url":"https://y7kim.github.io/agency-jekyll-theme/","github_url":"https://github.com/y7kim/agency-jekyll-theme","author":"GitHub Community","github_author_name":"Rick Kim","github_author_url":"https://github.com/y7kim","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2023-06-01","added_at":"2026-01-10","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":820,"forks":420,"features":["Full-screen hero section","Project showcase grid","Dark aesthetic","Team and services sections","Contact form ready"],"slug":"agency","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Advance is the theme for teams and businesses that have outgrown a simple blog and need a full website — one that can handle services, a project portfolio, staff pages, and a content blog, all from a single Jekyll installation.\n\n### More Than a Blog\n\nMost Jekyll themes give you a blog and a few static pages. Advance ships with dedicated content types for **Services**, **Projects**, and **Team** — each with its own listing page and individual detail pages, all driven by markdown files and front-matter. Add a new team member, service offering, or case study the same way you'd add a blog post: create a markdown file and fill in the front-matter.\n\n### The Configurable Hero\n\nEvery page in Advance can have a unique hero section. Adjust the background image, colour overlay, blend effects, text alignment, and call-to-action — all from front-matter. No CSS editing required. The result is a site that feels custom-designed without custom development.\n\n### Performance by Default\n\nAdvance uses Bootstrap 5.2 for layout but strips jQuery entirely, keeping JavaScript to a minimum. Combined with automatic SEO meta tags, Open Graph data, and semantic HTML, the theme achieves strong Lighthouse scores out of the box. Dark mode is built in — automatic via system preference or manual toggle — so the design holds up in any context.\n\n### Deploy Anywhere\n\nAdvance is fully compatible with GitHub Pages (no custom plugins that break Pages builds) and ships with a `netlify.toml` for one-click Netlify deployment. Formspree and Netlify Forms are supported for contact forms; Disqus handles comments.\n\n**Who is it for?** Agencies, freelancers, and small businesses that want a professional multi-page Jekyll site — not just a blog — and need the flexibility to grow it over time.\n","url":"/themes/advance/","draft":false,"categories":["Business"],"layout":"theme","price_type":"premium","featured":true,"dark_mode":true,"responsive":true,"title":"Advance Jekyll Theme","rating":4.9,"rating_count":38,"description":"A premium multi-purpose Jekyll theme for building advanced marketing and business websites. Includes Services, Projects, and Team content types, a configurable hero section, full blog, dark mode, and Bootstrap 5.2.","card_description":"Premium multi-purpose theme — services, projects, team, blog, and configurable hero.","price":79,"category":"Business","card_image":"/assets/images/themes/advance-card.webp","theme_screenshots":["/assets/images/themes/advance-screenshot.webp","/assets/images/themes/advance-screenshot-2.webp","/assets/images/themes/advance-screenshot-3.webp"],"key_features":["Multi-Purpose","Dark Mode","Services & Team","Configurable Hero"],"demo_url":"https://jekyll-advance.netlify.app/","buy_url":"https://www.zerostatic.io/theme/jekyll-advance/","author":"Zerostatic","author_url":"https://www.zerostatic.io/","github_author_name":"Zerostatic","support":"6 months","github_pages_compatible":true,"min_jekyll_version":"4.2","plugins":["jekyll-feed","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2025-04-01","added_at":"2026-06-27","popular":true,"trending":true,"bestseller":true,"version":"1.0.0","license":"Commercial","features":["Jekyll 4.2+ with Bootstrap 5.2 — no jQuery, minimal vanilla JS","Services content type with individual service pages","Projects portfolio with filterable project showcase","Team content type for staff and contributor profiles","Full blog with pagination, categories, and author support","Highly configurable hero section — background image, colour overlay, alignment, text, and blend effects","Dark mode with automatic (system preference) and manual toggle","Breadcrumbs and sidebars on interior pages","Animated transparent header on scroll","All content editable via markdown, front-matter, or YAML — nothing hardcoded","Configure logo, colours, fonts, menus, and footer in _config.yml","Auto-generated SEO meta tags, Open Graph, and Twitter card data","Responsive nested dropdown navigation and mobile hamburger menu","Contact page with Netlify Forms and Formspree support","Disqus comments integration","Google Analytics and social media links","Google Fonts and Font Awesome 6 icons","Works with GitHub Pages and Netlify (includes netlify.toml)","All photos, illustrations, and icons included are royalty free","Full documentation at zerostatic.io/docs/jekyll-advance/"],"slug":"advance","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/agency.md","relative_path":"_themes/agency.md","excerpt":"<p>Agency is a bold, dark-themed Jekyll portfolio theme inspired by the best creative agency sites on the web. It makes a strong first impression with a full-screen hero, then guides visitors through your work, services, and team in a single scrolling page.</p>\n\n","previous":{"path":"_themes/advance.md","relative_path":"_themes/advance.md","excerpt":"<p>Advance is the theme for teams and businesses that have outgrown a simple blog and need a full website — one that can handle services, a project portfolio, staff pages, and a content blog, all from a single Jekyll installation.</p>\n\n","previous":{"path":"_themes/academicpages.md","relative_path":"_themes/academicpages.md","id":"/themes/academicpages","collection":"themes","url":"/themes/academicpages/","draft":false,"categories":["Academic"],"layout":"theme","price_type":"free","featured":true,"dark_mode":false,"responsive":true,"title":"Academic Pages Jekyll Theme","description":"An academic portfolio Jekyll theme for researchers and scholars. Supports publications, talks, CV pages, and GitHub Pages out of the box.","key_features":["Publications Page","CV Layout","GitHub Pages","BibTeX Support"],"card_description":"Academic portfolio for researchers with publications, talks, and CV pages.","category":"Academic","card_image":"/assets/images/themes/academicpages-card.webp","theme_screenshots":["/assets/images/themes/academicpages-screenshot.webp","/assets/images/themes/academicpages-screenshot-2.webp","/assets/images/themes/academicpages-screenshot-3.webp"],"demo_url":"https://academicpages.github.io/","github_url":"https://github.com/academicpages/academicpages.github.io","author":"GitHub Community","github_author_name":"academicpages","github_author_url":"https://github.com/academicpages","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.7","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-include-cache"],"updated_at":"2024-06-01","added_at":"2026-06-07","popular":true,"trending":false,"bestseller":false,"version":"2.1.0","license":"MIT","stars":12000,"forks":8000,"features":["Dedicated pages for publications, talks, and teaching","Auto-generated CV from structured YAML data","Jupyter notebook integration for data-driven pages","Google Scholar and ORCID profile links","BibTeX citation support","Research portfolio with project pages","Blog section for news and updates","SEO optimised for academic search visibility","GitHub Pages compatible — no server required","Fork-to-publish workflow"],"slug":"academicpages","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/advance","collection":"themes","next":{"path":"_themes/agency.md","relative_path":"_themes/agency.md","id":"/themes/agency","collection":"themes","url":"/themes/agency/","draft":false,"categories":["Portfolio"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Agency Jekyll Theme","description":"A striking single-page agency Jekyll theme with full-screen sections, portfolio grid, and team showcase. Based on Start Bootstrap Agency.","key_features":["One-Page Design","Portfolio Grid","Team Showcase","Smooth Scroll"],"card_description":"Striking single-page agency theme with portfolio grid and team showcase.","category":"Portfolio","card_image":"/assets/images/themes/agency-card.webp","theme_screenshots":["/assets/images/themes/agency-screenshot.webp","/assets/images/themes/agency-screenshot-2.webp","/assets/images/themes/agency-screenshot-3.webp"],"demo_url":"https://y7kim.github.io/agency-jekyll-theme/","github_url":"https://github.com/y7kim/agency-jekyll-theme","author":"GitHub Community","github_author_name":"Rick Kim","github_author_url":"https://github.com/y7kim","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2023-06-01","added_at":"2026-01-10","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":820,"forks":420,"features":["Full-screen hero section","Project showcase grid","Dark aesthetic","Team and services sections","Contact form ready"],"slug":"agency","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Advance is the theme for teams and businesses that have outgrown a simple blog and need a full website — one that can handle services, a project portfolio, staff pages, and a content blog, all from a single Jekyll installation.\n\n### More Than a Blog\n\nMost Jekyll themes give you a blog and a few static pages. Advance ships with dedicated content types for **Services**, **Projects**, and **Team** — each with its own listing page and individual detail pages, all driven by markdown files and front-matter. Add a new team member, service offering, or case study the same way you'd add a blog post: create a markdown file and fill in the front-matter.\n\n### The Configurable Hero\n\nEvery page in Advance can have a unique hero section. Adjust the background image, colour overlay, blend effects, text alignment, and call-to-action — all from front-matter. No CSS editing required. The result is a site that feels custom-designed without custom development.\n\n### Performance by Default\n\nAdvance uses Bootstrap 5.2 for layout but strips jQuery entirely, keeping JavaScript to a minimum. Combined with automatic SEO meta tags, Open Graph data, and semantic HTML, the theme achieves strong Lighthouse scores out of the box. Dark mode is built in — automatic via system preference or manual toggle — so the design holds up in any context.\n\n### Deploy Anywhere\n\nAdvance is fully compatible with GitHub Pages (no custom plugins that break Pages builds) and ships with a `netlify.toml` for one-click Netlify deployment. Formspree and Netlify Forms are supported for contact forms; Disqus handles comments.\n\n**Who is it for?** Agencies, freelancers, and small businesses that want a professional multi-page Jekyll site — not just a blog — and need the flexibility to grow it over time.\n","url":"/themes/advance/","draft":false,"categories":["Business"],"layout":"theme","price_type":"premium","featured":true,"dark_mode":true,"responsive":true,"title":"Advance Jekyll Theme","rating":4.9,"rating_count":38,"description":"A premium multi-purpose Jekyll theme for building advanced marketing and business websites. Includes Services, Projects, and Team content types, a configurable hero section, full blog, dark mode, and Bootstrap 5.2.","card_description":"Premium multi-purpose theme — services, projects, team, blog, and configurable hero.","price":79,"category":"Business","card_image":"/assets/images/themes/advance-card.webp","theme_screenshots":["/assets/images/themes/advance-screenshot.webp","/assets/images/themes/advance-screenshot-2.webp","/assets/images/themes/advance-screenshot-3.webp"],"key_features":["Multi-Purpose","Dark Mode","Services & Team","Configurable Hero"],"demo_url":"https://jekyll-advance.netlify.app/","buy_url":"https://www.zerostatic.io/theme/jekyll-advance/","author":"Zerostatic","author_url":"https://www.zerostatic.io/","github_author_name":"Zerostatic","support":"6 months","github_pages_compatible":true,"min_jekyll_version":"4.2","plugins":["jekyll-feed","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2025-04-01","added_at":"2026-06-27","popular":true,"trending":true,"bestseller":true,"version":"1.0.0","license":"Commercial","features":["Jekyll 4.2+ with Bootstrap 5.2 — no jQuery, minimal vanilla JS","Services content type with individual service pages","Projects portfolio with filterable project showcase","Team content type for staff and contributor profiles","Full blog with pagination, categories, and author support","Highly configurable hero section — background image, colour overlay, alignment, text, and blend effects","Dark mode with automatic (system preference) and manual toggle","Breadcrumbs and sidebars on interior pages","Animated transparent header on scroll","All content editable via markdown, front-matter, or YAML — nothing hardcoded","Configure logo, colours, fonts, menus, and footer in _config.yml","Auto-generated SEO meta tags, Open Graph, and Twitter card data","Responsive nested dropdown navigation and mobile hamburger menu","Contact page with Netlify Forms and Formspree support","Disqus comments integration","Google Analytics and social media links","Google Fonts and Font Awesome 6 icons","Works with GitHub Pages and Netlify (includes netlify.toml)","All photos, illustrations, and icons included are royalty free","Full documentation at zerostatic.io/docs/jekyll-advance/"],"slug":"advance","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/agency","collection":"themes","next":{"path":"_themes/al-folio.md","relative_path":"_themes/al-folio.md","excerpt":"<p>al-folio is the go-to Jekyll theme for academics, researchers, and students who need a polished personal website. It handles everything specific to academic publishing — BibTeX citations, publication lists, project pages — with a clean, distraction-free design.</p>\n\n","previous":{"path":"_themes/agency.md","relative_path":"_themes/agency.md","id":"/themes/agency","collection":"themes","url":"/themes/agency/","draft":false,"categories":["Portfolio"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Agency Jekyll Theme","description":"A striking single-page agency Jekyll theme with full-screen sections, portfolio grid, and team showcase. Based on Start Bootstrap Agency.","key_features":["One-Page Design","Portfolio Grid","Team Showcase","Smooth Scroll"],"card_description":"Striking single-page agency theme with portfolio grid and team showcase.","category":"Portfolio","card_image":"/assets/images/themes/agency-card.webp","theme_screenshots":["/assets/images/themes/agency-screenshot.webp","/assets/images/themes/agency-screenshot-2.webp","/assets/images/themes/agency-screenshot-3.webp"],"demo_url":"https://y7kim.github.io/agency-jekyll-theme/","github_url":"https://github.com/y7kim/agency-jekyll-theme","author":"GitHub Community","github_author_name":"Rick Kim","github_author_url":"https://github.com/y7kim","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2023-06-01","added_at":"2026-01-10","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":820,"forks":420,"features":["Full-screen hero section","Project showcase grid","Dark aesthetic","Team and services sections","Contact form ready"],"slug":"agency","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/al-folio","collection":"themes","next":{"path":"_themes/alembic.md","relative_path":"_themes/alembic.md","id":"/themes/alembic","collection":"themes","url":"/themes/alembic/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Alembic Jekyll Theme","description":"A clean, minimal Jekyll theme with great typography and flexible page layouts. Works out of the box as a gem-based theme.","key_features":["Gem-Based Theme","Clean Typography","Flexible Layouts","GitHub Pages"],"card_description":"Clean, minimal gem-based theme with flexible page layouts.","category":"Blog","card_image":"/assets/images/themes/alembic-card.webp","theme_screenshots":["/assets/images/themes/alembic-screenshot.webp","/assets/images/themes/alembic-screenshot-2.webp","/assets/images/themes/alembic-screenshot-3.webp"],"demo_url":"https://alembic.darn.es/","github_url":"https://github.com/daviddarnes/alembic","author":"GitHub Community","github_author_name":"David Darnes","github_author_url":"https://github.com/daviddarnes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag"],"updated_at":"2024-01-01","added_at":"2026-02-01","popular":false,"trending":false,"bestseller":false,"version":"3.1.0","license":"MIT","stars":2600,"forks":760,"features":["Gem-based installation","Multiple page layouts","Configurable navigation","Syntax highlighting","SEO ready"],"slug":"alembic","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"al-folio is the go-to Jekyll theme for academics, researchers, and students who need a polished personal website. It handles everything specific to academic publishing — BibTeX citations, publication lists, project pages — with a clean, distraction-free design.\n\nOriginally created for a Princeton researcher, it has grown into one of the most starred academic Jekyll themes on GitHub with over 11,000 stars.\n\n**Who is it for?** PhD students, professors, researchers, and academics who want a professional online presence with proper support for publications and projects.\n","url":"/themes/al-folio/","draft":false,"categories":["Academic"],"layout":"theme","price_type":"free","featured":true,"dark_mode":true,"responsive":true,"title":"al-folio Jekyll Theme","description":"A clean, minimal Jekyll theme built for academics and researchers. Beautifully renders publications, projects, and CV with BibTeX support.","key_features":["Publications List","BibTeX Support","Dark Mode","Project Pages"],"card_description":"Clean academic theme for researchers with BibTeX and publications support.","category":"Academic","card_image":"/assets/images/themes/al-folio-card.webp","theme_screenshots":["/assets/images/themes/al-folio-screenshot.webp","/assets/images/themes/al-folio-screenshot-2.webp","/assets/images/themes/al-folio-screenshot-3.webp"],"demo_url":"https://alshedivat.github.io/al-folio/","github_url":"https://github.com/alshedivat/al-folio","author":"GitHub Community","github_author_name":"Maruan Al-Shedivat","github_author_url":"https://github.com/alshedivat","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":false,"min_jekyll_version":"4.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag"],"updated_at":"2024-05-01","added_at":"2026-01-15","popular":true,"trending":true,"bestseller":false,"version":"0.12.0","license":"MIT","stars":11200,"forks":4800,"features":["Publication list with BibTeX","Project pages","Teaching and CV sections","Dark and light mode","MathJax and code highlighting"],"slug":"al-folio","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Agency is a bold, dark-themed Jekyll portfolio theme inspired by the best creative agency sites on the web. It makes a strong first impression with a full-screen hero, then guides visitors through your work, services, and team in a single scrolling page.\n\nBuilt for designers, developers, and studios who want their portfolio to look as professional as the work inside it.\n\n**Who is it for?** Freelancers, agencies, and creative studios who want a striking, one-page portfolio site.\n","url":"/themes/agency/","draft":false,"categories":["Portfolio"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Agency Jekyll Theme","description":"A striking single-page agency Jekyll theme with full-screen sections, portfolio grid, and team showcase. Based on Start Bootstrap Agency.","key_features":["One-Page Design","Portfolio Grid","Team Showcase","Smooth Scroll"],"card_description":"Striking single-page agency theme with portfolio grid and team showcase.","category":"Portfolio","card_image":"/assets/images/themes/agency-card.webp","theme_screenshots":["/assets/images/themes/agency-screenshot.webp","/assets/images/themes/agency-screenshot-2.webp","/assets/images/themes/agency-screenshot-3.webp"],"demo_url":"https://y7kim.github.io/agency-jekyll-theme/","github_url":"https://github.com/y7kim/agency-jekyll-theme","author":"GitHub Community","github_author_name":"Rick Kim","github_author_url":"https://github.com/y7kim","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2023-06-01","added_at":"2026-01-10","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":820,"forks":420,"features":["Full-screen hero section","Project showcase grid","Dark aesthetic","Team and services sections","Contact form ready"],"slug":"agency","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/al-folio.md","relative_path":"_themes/al-folio.md","excerpt":"<p>al-folio is the go-to Jekyll theme for academics, researchers, and students who need a polished personal website. It handles everything specific to academic publishing — BibTeX citations, publication lists, project pages — with a clean, distraction-free design.</p>\n\n","previous":{"path":"_themes/agency.md","relative_path":"_themes/agency.md","excerpt":"<p>Agency is a bold, dark-themed Jekyll portfolio theme inspired by the best creative agency sites on the web. It makes a strong first impression with a full-screen hero, then guides visitors through your work, services, and team in a single scrolling page.</p>\n\n","previous":{"path":"_themes/advance.md","relative_path":"_themes/advance.md","id":"/themes/advance","collection":"themes","url":"/themes/advance/","draft":false,"categories":["Business"],"layout":"theme","price_type":"premium","featured":true,"dark_mode":true,"responsive":true,"title":"Advance Jekyll Theme","rating":4.9,"rating_count":38,"description":"A premium multi-purpose Jekyll theme for building advanced marketing and business websites. Includes Services, Projects, and Team content types, a configurable hero section, full blog, dark mode, and Bootstrap 5.2.","card_description":"Premium multi-purpose theme — services, projects, team, blog, and configurable hero.","price":79,"category":"Business","card_image":"/assets/images/themes/advance-card.webp","theme_screenshots":["/assets/images/themes/advance-screenshot.webp","/assets/images/themes/advance-screenshot-2.webp","/assets/images/themes/advance-screenshot-3.webp"],"key_features":["Multi-Purpose","Dark Mode","Services & Team","Configurable Hero"],"demo_url":"https://jekyll-advance.netlify.app/","buy_url":"https://www.zerostatic.io/theme/jekyll-advance/","author":"Zerostatic","author_url":"https://www.zerostatic.io/","github_author_name":"Zerostatic","support":"6 months","github_pages_compatible":true,"min_jekyll_version":"4.2","plugins":["jekyll-feed","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2025-04-01","added_at":"2026-06-27","popular":true,"trending":true,"bestseller":true,"version":"1.0.0","license":"Commercial","features":["Jekyll 4.2+ with Bootstrap 5.2 — no jQuery, minimal vanilla JS","Services content type with individual service pages","Projects portfolio with filterable project showcase","Team content type for staff and contributor profiles","Full blog with pagination, categories, and author support","Highly configurable hero section — background image, colour overlay, alignment, text, and blend effects","Dark mode with automatic (system preference) and manual toggle","Breadcrumbs and sidebars on interior pages","Animated transparent header on scroll","All content editable via markdown, front-matter, or YAML — nothing hardcoded","Configure logo, colours, fonts, menus, and footer in _config.yml","Auto-generated SEO meta tags, Open Graph, and Twitter card data","Responsive nested dropdown navigation and mobile hamburger menu","Contact page with Netlify Forms and Formspree support","Disqus comments integration","Google Analytics and social media links","Google Fonts and Font Awesome 6 icons","Works with GitHub Pages and Netlify (includes netlify.toml)","All photos, illustrations, and icons included are royalty free","Full documentation at zerostatic.io/docs/jekyll-advance/"],"slug":"advance","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/agency","collection":"themes","next":{"path":"_themes/al-folio.md","relative_path":"_themes/al-folio.md","id":"/themes/al-folio","collection":"themes","url":"/themes/al-folio/","draft":false,"categories":["Academic"],"layout":"theme","price_type":"free","featured":true,"dark_mode":true,"responsive":true,"title":"al-folio Jekyll Theme","description":"A clean, minimal Jekyll theme built for academics and researchers. Beautifully renders publications, projects, and CV with BibTeX support.","key_features":["Publications List","BibTeX Support","Dark Mode","Project Pages"],"card_description":"Clean academic theme for researchers with BibTeX and publications support.","category":"Academic","card_image":"/assets/images/themes/al-folio-card.webp","theme_screenshots":["/assets/images/themes/al-folio-screenshot.webp","/assets/images/themes/al-folio-screenshot-2.webp","/assets/images/themes/al-folio-screenshot-3.webp"],"demo_url":"https://alshedivat.github.io/al-folio/","github_url":"https://github.com/alshedivat/al-folio","author":"GitHub Community","github_author_name":"Maruan Al-Shedivat","github_author_url":"https://github.com/alshedivat","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":false,"min_jekyll_version":"4.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag"],"updated_at":"2024-05-01","added_at":"2026-01-15","popular":true,"trending":true,"bestseller":false,"version":"0.12.0","license":"MIT","stars":11200,"forks":4800,"features":["Publication list with BibTeX","Project pages","Teaching and CV sections","Dark and light mode","MathJax and code highlighting"],"slug":"al-folio","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Agency is a bold, dark-themed Jekyll portfolio theme inspired by the best creative agency sites on the web. It makes a strong first impression with a full-screen hero, then guides visitors through your work, services, and team in a single scrolling page.\n\nBuilt for designers, developers, and studios who want their portfolio to look as professional as the work inside it.\n\n**Who is it for?** Freelancers, agencies, and creative studios who want a striking, one-page portfolio site.\n","url":"/themes/agency/","draft":false,"categories":["Portfolio"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Agency Jekyll Theme","description":"A striking single-page agency Jekyll theme with full-screen sections, portfolio grid, and team showcase. Based on Start Bootstrap Agency.","key_features":["One-Page Design","Portfolio Grid","Team Showcase","Smooth Scroll"],"card_description":"Striking single-page agency theme with portfolio grid and team showcase.","category":"Portfolio","card_image":"/assets/images/themes/agency-card.webp","theme_screenshots":["/assets/images/themes/agency-screenshot.webp","/assets/images/themes/agency-screenshot-2.webp","/assets/images/themes/agency-screenshot-3.webp"],"demo_url":"https://y7kim.github.io/agency-jekyll-theme/","github_url":"https://github.com/y7kim/agency-jekyll-theme","author":"GitHub Community","github_author_name":"Rick Kim","github_author_url":"https://github.com/y7kim","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2023-06-01","added_at":"2026-01-10","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":820,"forks":420,"features":["Full-screen hero section","Project showcase grid","Dark aesthetic","Team and services sections","Contact form ready"],"slug":"agency","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/al-folio","collection":"themes","next":{"path":"_themes/alembic.md","relative_path":"_themes/alembic.md","excerpt":"<p>Alembic is a clean, gem-based Jekyll theme that works beautifully as a starting point for blogs, personal sites, and small business pages. It prioritises great typography and readable layouts over flashy design.</p>\n\n","previous":{"path":"_themes/al-folio.md","relative_path":"_themes/al-folio.md","id":"/themes/al-folio","collection":"themes","url":"/themes/al-folio/","draft":false,"categories":["Academic"],"layout":"theme","price_type":"free","featured":true,"dark_mode":true,"responsive":true,"title":"al-folio Jekyll Theme","description":"A clean, minimal Jekyll theme built for academics and researchers. Beautifully renders publications, projects, and CV with BibTeX support.","key_features":["Publications List","BibTeX Support","Dark Mode","Project Pages"],"card_description":"Clean academic theme for researchers with BibTeX and publications support.","category":"Academic","card_image":"/assets/images/themes/al-folio-card.webp","theme_screenshots":["/assets/images/themes/al-folio-screenshot.webp","/assets/images/themes/al-folio-screenshot-2.webp","/assets/images/themes/al-folio-screenshot-3.webp"],"demo_url":"https://alshedivat.github.io/al-folio/","github_url":"https://github.com/alshedivat/al-folio","author":"GitHub Community","github_author_name":"Maruan Al-Shedivat","github_author_url":"https://github.com/alshedivat","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":false,"min_jekyll_version":"4.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag"],"updated_at":"2024-05-01","added_at":"2026-01-15","popular":true,"trending":true,"bestseller":false,"version":"0.12.0","license":"MIT","stars":11200,"forks":4800,"features":["Publication list with BibTeX","Project pages","Teaching and CV sections","Dark and light mode","MathJax and code highlighting"],"slug":"al-folio","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/alembic","collection":"themes","next":{"path":"_themes/almace-scaffolding.md","relative_path":"_themes/almace-scaffolding.md","id":"/themes/almace-scaffolding","collection":"themes","url":"/themes/almace-scaffolding/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Almace Scaffolding Jekyll Theme","description":"A bold, minimal, and blazing fast Jekyll theme with a distinctive typographic style and performance-first architecture.","key_features":["Ultra Fast","Bold Typography","Performance First","Minimal Design"],"card_description":"Bold, minimal, blazing-fast theme with distinctive typographic style.","category":"Blog","card_image":"/assets/images/themes/almace-scaffolding-card.webp","theme_screenshots":["/assets/images/themes/almace-scaffolding-screenshot.webp","/assets/images/themes/almace-scaffolding-screenshot-2.webp","/assets/images/themes/almace-scaffolding-screenshot-3.webp"],"demo_url":"https://sparanoid.com/lab/amsf/","github_url":"https://github.com/sparanoid/almace-scaffolding","author":"GitHub Community","github_author_name":"sparanoid","github_author_url":"https://github.com/sparanoid","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":false,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap"],"updated_at":"2025-02-19","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"0.21.0","license":"MIT","stars":337,"forks":98,"features":["Bold typographic design","Performance-first architecture","Grunt build system","LESS stylesheets","SVG icon support","Custom post colours","Minimal navigation","Social links","RSS feed","Ultra-fast page loads"],"slug":"almace-scaffolding","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Alembic is a clean, gem-based Jekyll theme that works beautifully as a starting point for blogs, personal sites, and small business pages. It prioritises great typography and readable layouts over flashy design.\n\nBeing gem-based means you can install and update it like any Ruby gem, keeping your content separate from your theme.\n\n**Who is it for?** Bloggers and developers who want a clean, maintainable theme that installs as a gem.\n","url":"/themes/alembic/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Alembic Jekyll Theme","description":"A clean, minimal Jekyll theme with great typography and flexible page layouts. Works out of the box as a gem-based theme.","key_features":["Gem-Based Theme","Clean Typography","Flexible Layouts","GitHub Pages"],"card_description":"Clean, minimal gem-based theme with flexible page layouts.","category":"Blog","card_image":"/assets/images/themes/alembic-card.webp","theme_screenshots":["/assets/images/themes/alembic-screenshot.webp","/assets/images/themes/alembic-screenshot-2.webp","/assets/images/themes/alembic-screenshot-3.webp"],"demo_url":"https://alembic.darn.es/","github_url":"https://github.com/daviddarnes/alembic","author":"GitHub Community","github_author_name":"David Darnes","github_author_url":"https://github.com/daviddarnes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag"],"updated_at":"2024-01-01","added_at":"2026-02-01","popular":false,"trending":false,"bestseller":false,"version":"3.1.0","license":"MIT","stars":2600,"forks":760,"features":["Gem-based installation","Multiple page layouts","Configurable navigation","Syntax highlighting","SEO ready"],"slug":"alembic","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"al-folio is the go-to Jekyll theme for academics, researchers, and students who need a polished personal website. It handles everything specific to academic publishing — BibTeX citations, publication lists, project pages — with a clean, distraction-free design.\n\nOriginally created for a Princeton researcher, it has grown into one of the most starred academic Jekyll themes on GitHub with over 11,000 stars.\n\n**Who is it for?** PhD students, professors, researchers, and academics who want a professional online presence with proper support for publications and projects.\n","url":"/themes/al-folio/","draft":false,"categories":["Academic"],"layout":"theme","price_type":"free","featured":true,"dark_mode":true,"responsive":true,"title":"al-folio Jekyll Theme","description":"A clean, minimal Jekyll theme built for academics and researchers. Beautifully renders publications, projects, and CV with BibTeX support.","key_features":["Publications List","BibTeX Support","Dark Mode","Project Pages"],"card_description":"Clean academic theme for researchers with BibTeX and publications support.","category":"Academic","card_image":"/assets/images/themes/al-folio-card.webp","theme_screenshots":["/assets/images/themes/al-folio-screenshot.webp","/assets/images/themes/al-folio-screenshot-2.webp","/assets/images/themes/al-folio-screenshot-3.webp"],"demo_url":"https://alshedivat.github.io/al-folio/","github_url":"https://github.com/alshedivat/al-folio","author":"GitHub Community","github_author_name":"Maruan Al-Shedivat","github_author_url":"https://github.com/alshedivat","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":false,"min_jekyll_version":"4.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag"],"updated_at":"2024-05-01","added_at":"2026-01-15","popular":true,"trending":true,"bestseller":false,"version":"0.12.0","license":"MIT","stars":11200,"forks":4800,"features":["Publication list with BibTeX","Project pages","Teaching and CV sections","Dark and light mode","MathJax and code highlighting"],"slug":"al-folio","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/alembic.md","relative_path":"_themes/alembic.md","excerpt":"<p>Alembic is a clean, gem-based Jekyll theme that works beautifully as a starting point for blogs, personal sites, and small business pages. It prioritises great typography and readable layouts over flashy design.</p>\n\n","previous":{"path":"_themes/al-folio.md","relative_path":"_themes/al-folio.md","excerpt":"<p>al-folio is the go-to Jekyll theme for academics, researchers, and students who need a polished personal website. It handles everything specific to academic publishing — BibTeX citations, publication lists, project pages — with a clean, distraction-free design.</p>\n\n","previous":{"path":"_themes/agency.md","relative_path":"_themes/agency.md","id":"/themes/agency","collection":"themes","url":"/themes/agency/","draft":false,"categories":["Portfolio"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Agency Jekyll Theme","description":"A striking single-page agency Jekyll theme with full-screen sections, portfolio grid, and team showcase. Based on Start Bootstrap Agency.","key_features":["One-Page Design","Portfolio Grid","Team Showcase","Smooth Scroll"],"card_description":"Striking single-page agency theme with portfolio grid and team showcase.","category":"Portfolio","card_image":"/assets/images/themes/agency-card.webp","theme_screenshots":["/assets/images/themes/agency-screenshot.webp","/assets/images/themes/agency-screenshot-2.webp","/assets/images/themes/agency-screenshot-3.webp"],"demo_url":"https://y7kim.github.io/agency-jekyll-theme/","github_url":"https://github.com/y7kim/agency-jekyll-theme","author":"GitHub Community","github_author_name":"Rick Kim","github_author_url":"https://github.com/y7kim","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2023-06-01","added_at":"2026-01-10","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":820,"forks":420,"features":["Full-screen hero section","Project showcase grid","Dark aesthetic","Team and services sections","Contact form ready"],"slug":"agency","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/al-folio","collection":"themes","next":{"path":"_themes/alembic.md","relative_path":"_themes/alembic.md","id":"/themes/alembic","collection":"themes","url":"/themes/alembic/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Alembic Jekyll Theme","description":"A clean, minimal Jekyll theme with great typography and flexible page layouts. Works out of the box as a gem-based theme.","key_features":["Gem-Based Theme","Clean Typography","Flexible Layouts","GitHub Pages"],"card_description":"Clean, minimal gem-based theme with flexible page layouts.","category":"Blog","card_image":"/assets/images/themes/alembic-card.webp","theme_screenshots":["/assets/images/themes/alembic-screenshot.webp","/assets/images/themes/alembic-screenshot-2.webp","/assets/images/themes/alembic-screenshot-3.webp"],"demo_url":"https://alembic.darn.es/","github_url":"https://github.com/daviddarnes/alembic","author":"GitHub Community","github_author_name":"David Darnes","github_author_url":"https://github.com/daviddarnes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag"],"updated_at":"2024-01-01","added_at":"2026-02-01","popular":false,"trending":false,"bestseller":false,"version":"3.1.0","license":"MIT","stars":2600,"forks":760,"features":["Gem-based installation","Multiple page layouts","Configurable navigation","Syntax highlighting","SEO ready"],"slug":"alembic","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"al-folio is the go-to Jekyll theme for academics, researchers, and students who need a polished personal website. It handles everything specific to academic publishing — BibTeX citations, publication lists, project pages — with a clean, distraction-free design.\n\nOriginally created for a Princeton researcher, it has grown into one of the most starred academic Jekyll themes on GitHub with over 11,000 stars.\n\n**Who is it for?** PhD students, professors, researchers, and academics who want a professional online presence with proper support for publications and projects.\n","url":"/themes/al-folio/","draft":false,"categories":["Academic"],"layout":"theme","price_type":"free","featured":true,"dark_mode":true,"responsive":true,"title":"al-folio Jekyll Theme","description":"A clean, minimal Jekyll theme built for academics and researchers. Beautifully renders publications, projects, and CV with BibTeX support.","key_features":["Publications List","BibTeX Support","Dark Mode","Project Pages"],"card_description":"Clean academic theme for researchers with BibTeX and publications support.","category":"Academic","card_image":"/assets/images/themes/al-folio-card.webp","theme_screenshots":["/assets/images/themes/al-folio-screenshot.webp","/assets/images/themes/al-folio-screenshot-2.webp","/assets/images/themes/al-folio-screenshot-3.webp"],"demo_url":"https://alshedivat.github.io/al-folio/","github_url":"https://github.com/alshedivat/al-folio","author":"GitHub Community","github_author_name":"Maruan Al-Shedivat","github_author_url":"https://github.com/alshedivat","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":false,"min_jekyll_version":"4.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag"],"updated_at":"2024-05-01","added_at":"2026-01-15","popular":true,"trending":true,"bestseller":false,"version":"0.12.0","license":"MIT","stars":11200,"forks":4800,"features":["Publication list with BibTeX","Project pages","Teaching and CV sections","Dark and light mode","MathJax and code highlighting"],"slug":"al-folio","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/alembic","collection":"themes","next":{"path":"_themes/almace-scaffolding.md","relative_path":"_themes/almace-scaffolding.md","excerpt":"<p>Almace Scaffolding is a statement theme — bold typography, strong visual personality, and an obsessive focus on performance. Pages load in milliseconds thanks to a lean build pipeline that strips out everything unnecessary.</p>\n\n","previous":{"path":"_themes/alembic.md","relative_path":"_themes/alembic.md","id":"/themes/alembic","collection":"themes","url":"/themes/alembic/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Alembic Jekyll Theme","description":"A clean, minimal Jekyll theme with great typography and flexible page layouts. Works out of the box as a gem-based theme.","key_features":["Gem-Based Theme","Clean Typography","Flexible Layouts","GitHub Pages"],"card_description":"Clean, minimal gem-based theme with flexible page layouts.","category":"Blog","card_image":"/assets/images/themes/alembic-card.webp","theme_screenshots":["/assets/images/themes/alembic-screenshot.webp","/assets/images/themes/alembic-screenshot-2.webp","/assets/images/themes/alembic-screenshot-3.webp"],"demo_url":"https://alembic.darn.es/","github_url":"https://github.com/daviddarnes/alembic","author":"GitHub Community","github_author_name":"David Darnes","github_author_url":"https://github.com/daviddarnes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag"],"updated_at":"2024-01-01","added_at":"2026-02-01","popular":false,"trending":false,"bestseller":false,"version":"3.1.0","license":"MIT","stars":2600,"forks":760,"features":["Gem-based installation","Multiple page layouts","Configurable navigation","Syntax highlighting","SEO ready"],"slug":"alembic","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/almace-scaffolding","collection":"themes","next":{"path":"_themes/architect.md","relative_path":"_themes/architect.md","id":"/themes/architect","collection":"themes","url":"/themes/architect/","draft":false,"categories":["Documentation"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Architect Jekyll Theme","description":"A clean GitHub Pages Jekyll theme with a prominent sidebar and crisp typography. Official GitHub Pages theme, ideal for project documentation.","key_features":["GitHub Pages","Sidebar Nav","Code Blocks","Project Docs"],"card_description":"Clean GitHub Pages theme with prominent sidebar for project docs.","category":"Documentation","card_image":"/assets/images/themes/architect-card.webp","theme_screenshots":["/assets/images/themes/architect-screenshot.webp","/assets/images/themes/architect-screenshot-2.webp","/assets/images/themes/architect-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/architect/","github_url":"https://github.com/pages-themes/architect","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":500,"forks":450,"features":["Official GitHub Pages supported theme","Fixed sidebar for navigation","Clean, structured content area","Responsive layout","Single-line enable via _config.yml","No local Jekyll install needed","Suitable for multi-section documentation"],"slug":"architect","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Almace Scaffolding is a statement theme — bold typography, strong visual personality, and an obsessive focus on performance. Pages load in milliseconds thanks to a lean build pipeline that strips out everything unnecessary.\n\nThe Grunt-powered build system gives developers full control over the asset pipeline.\n\n**Who is it for?** Developers and designers who want a high-performance, visually distinctive blog that makes a strong typographic impression.\n","url":"/themes/almace-scaffolding/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Almace Scaffolding Jekyll Theme","description":"A bold, minimal, and blazing fast Jekyll theme with a distinctive typographic style and performance-first architecture.","key_features":["Ultra Fast","Bold Typography","Performance First","Minimal Design"],"card_description":"Bold, minimal, blazing-fast theme with distinctive typographic style.","category":"Blog","card_image":"/assets/images/themes/almace-scaffolding-card.webp","theme_screenshots":["/assets/images/themes/almace-scaffolding-screenshot.webp","/assets/images/themes/almace-scaffolding-screenshot-2.webp","/assets/images/themes/almace-scaffolding-screenshot-3.webp"],"demo_url":"https://sparanoid.com/lab/amsf/","github_url":"https://github.com/sparanoid/almace-scaffolding","author":"GitHub Community","github_author_name":"sparanoid","github_author_url":"https://github.com/sparanoid","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":false,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap"],"updated_at":"2025-02-19","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"0.21.0","license":"MIT","stars":337,"forks":98,"features":["Bold typographic design","Performance-first architecture","Grunt build system","LESS stylesheets","SVG icon support","Custom post colours","Minimal navigation","Social links","RSS feed","Ultra-fast page loads"],"slug":"almace-scaffolding","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Alembic is a clean, gem-based Jekyll theme that works beautifully as a starting point for blogs, personal sites, and small business pages. It prioritises great typography and readable layouts over flashy design.\n\nBeing gem-based means you can install and update it like any Ruby gem, keeping your content separate from your theme.\n\n**Who is it for?** Bloggers and developers who want a clean, maintainable theme that installs as a gem.\n","url":"/themes/alembic/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Alembic Jekyll Theme","description":"A clean, minimal Jekyll theme with great typography and flexible page layouts. Works out of the box as a gem-based theme.","key_features":["Gem-Based Theme","Clean Typography","Flexible Layouts","GitHub Pages"],"card_description":"Clean, minimal gem-based theme with flexible page layouts.","category":"Blog","card_image":"/assets/images/themes/alembic-card.webp","theme_screenshots":["/assets/images/themes/alembic-screenshot.webp","/assets/images/themes/alembic-screenshot-2.webp","/assets/images/themes/alembic-screenshot-3.webp"],"demo_url":"https://alembic.darn.es/","github_url":"https://github.com/daviddarnes/alembic","author":"GitHub Community","github_author_name":"David Darnes","github_author_url":"https://github.com/daviddarnes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag"],"updated_at":"2024-01-01","added_at":"2026-02-01","popular":false,"trending":false,"bestseller":false,"version":"3.1.0","license":"MIT","stars":2600,"forks":760,"features":["Gem-based installation","Multiple page layouts","Configurable navigation","Syntax highlighting","SEO ready"],"slug":"alembic","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/almace-scaffolding.md","relative_path":"_themes/almace-scaffolding.md","excerpt":"<p>Almace Scaffolding is a statement theme — bold typography, strong visual personality, and an obsessive focus on performance. Pages load in milliseconds thanks to a lean build pipeline that strips out everything unnecessary.</p>\n\n","previous":{"path":"_themes/alembic.md","relative_path":"_themes/alembic.md","excerpt":"<p>Alembic is a clean, gem-based Jekyll theme that works beautifully as a starting point for blogs, personal sites, and small business pages. It prioritises great typography and readable layouts over flashy design.</p>\n\n","previous":{"path":"_themes/al-folio.md","relative_path":"_themes/al-folio.md","id":"/themes/al-folio","collection":"themes","url":"/themes/al-folio/","draft":false,"categories":["Academic"],"layout":"theme","price_type":"free","featured":true,"dark_mode":true,"responsive":true,"title":"al-folio Jekyll Theme","description":"A clean, minimal Jekyll theme built for academics and researchers. Beautifully renders publications, projects, and CV with BibTeX support.","key_features":["Publications List","BibTeX Support","Dark Mode","Project Pages"],"card_description":"Clean academic theme for researchers with BibTeX and publications support.","category":"Academic","card_image":"/assets/images/themes/al-folio-card.webp","theme_screenshots":["/assets/images/themes/al-folio-screenshot.webp","/assets/images/themes/al-folio-screenshot-2.webp","/assets/images/themes/al-folio-screenshot-3.webp"],"demo_url":"https://alshedivat.github.io/al-folio/","github_url":"https://github.com/alshedivat/al-folio","author":"GitHub Community","github_author_name":"Maruan Al-Shedivat","github_author_url":"https://github.com/alshedivat","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":false,"min_jekyll_version":"4.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag"],"updated_at":"2024-05-01","added_at":"2026-01-15","popular":true,"trending":true,"bestseller":false,"version":"0.12.0","license":"MIT","stars":11200,"forks":4800,"features":["Publication list with BibTeX","Project pages","Teaching and CV sections","Dark and light mode","MathJax and code highlighting"],"slug":"al-folio","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/alembic","collection":"themes","next":{"path":"_themes/almace-scaffolding.md","relative_path":"_themes/almace-scaffolding.md","id":"/themes/almace-scaffolding","collection":"themes","url":"/themes/almace-scaffolding/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Almace Scaffolding Jekyll Theme","description":"A bold, minimal, and blazing fast Jekyll theme with a distinctive typographic style and performance-first architecture.","key_features":["Ultra Fast","Bold Typography","Performance First","Minimal Design"],"card_description":"Bold, minimal, blazing-fast theme with distinctive typographic style.","category":"Blog","card_image":"/assets/images/themes/almace-scaffolding-card.webp","theme_screenshots":["/assets/images/themes/almace-scaffolding-screenshot.webp","/assets/images/themes/almace-scaffolding-screenshot-2.webp","/assets/images/themes/almace-scaffolding-screenshot-3.webp"],"demo_url":"https://sparanoid.com/lab/amsf/","github_url":"https://github.com/sparanoid/almace-scaffolding","author":"GitHub Community","github_author_name":"sparanoid","github_author_url":"https://github.com/sparanoid","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":false,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap"],"updated_at":"2025-02-19","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"0.21.0","license":"MIT","stars":337,"forks":98,"features":["Bold typographic design","Performance-first architecture","Grunt build system","LESS stylesheets","SVG icon support","Custom post colours","Minimal navigation","Social links","RSS feed","Ultra-fast page loads"],"slug":"almace-scaffolding","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Alembic is a clean, gem-based Jekyll theme that works beautifully as a starting point for blogs, personal sites, and small business pages. It prioritises great typography and readable layouts over flashy design.\n\nBeing gem-based means you can install and update it like any Ruby gem, keeping your content separate from your theme.\n\n**Who is it for?** Bloggers and developers who want a clean, maintainable theme that installs as a gem.\n","url":"/themes/alembic/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Alembic Jekyll Theme","description":"A clean, minimal Jekyll theme with great typography and flexible page layouts. Works out of the box as a gem-based theme.","key_features":["Gem-Based Theme","Clean Typography","Flexible Layouts","GitHub Pages"],"card_description":"Clean, minimal gem-based theme with flexible page layouts.","category":"Blog","card_image":"/assets/images/themes/alembic-card.webp","theme_screenshots":["/assets/images/themes/alembic-screenshot.webp","/assets/images/themes/alembic-screenshot-2.webp","/assets/images/themes/alembic-screenshot-3.webp"],"demo_url":"https://alembic.darn.es/","github_url":"https://github.com/daviddarnes/alembic","author":"GitHub Community","github_author_name":"David Darnes","github_author_url":"https://github.com/daviddarnes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag"],"updated_at":"2024-01-01","added_at":"2026-02-01","popular":false,"trending":false,"bestseller":false,"version":"3.1.0","license":"MIT","stars":2600,"forks":760,"features":["Gem-based installation","Multiple page layouts","Configurable navigation","Syntax highlighting","SEO ready"],"slug":"alembic","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/almace-scaffolding","collection":"themes","next":{"path":"_themes/architect.md","relative_path":"_themes/architect.md","excerpt":"<p>Architect is GitHub’s documentation-oriented official theme. Its fixed sidebar and clearly delineated content area create an organised, easy-to-navigate layout that works well for project READMEs, API docs, and any site with multiple sections.</p>\n\n","previous":{"path":"_themes/almace-scaffolding.md","relative_path":"_themes/almace-scaffolding.md","id":"/themes/almace-scaffolding","collection":"themes","url":"/themes/almace-scaffolding/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Almace Scaffolding Jekyll Theme","description":"A bold, minimal, and blazing fast Jekyll theme with a distinctive typographic style and performance-first architecture.","key_features":["Ultra Fast","Bold Typography","Performance First","Minimal Design"],"card_description":"Bold, minimal, blazing-fast theme with distinctive typographic style.","category":"Blog","card_image":"/assets/images/themes/almace-scaffolding-card.webp","theme_screenshots":["/assets/images/themes/almace-scaffolding-screenshot.webp","/assets/images/themes/almace-scaffolding-screenshot-2.webp","/assets/images/themes/almace-scaffolding-screenshot-3.webp"],"demo_url":"https://sparanoid.com/lab/amsf/","github_url":"https://github.com/sparanoid/almace-scaffolding","author":"GitHub Community","github_author_name":"sparanoid","github_author_url":"https://github.com/sparanoid","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":false,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap"],"updated_at":"2025-02-19","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"0.21.0","license":"MIT","stars":337,"forks":98,"features":["Bold typographic design","Performance-first architecture","Grunt build system","LESS stylesheets","SVG icon support","Custom post colours","Minimal navigation","Social links","RSS feed","Ultra-fast page loads"],"slug":"almace-scaffolding","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/architect","collection":"themes","next":{"path":"_themes/aura-pro.md","relative_path":"_themes/aura-pro.md","id":"/themes/aura-pro","collection":"themes","url":"/themes/aura-pro/","draft":false,"categories":["Personal"],"layout":"theme","price_type":"premium","featured":true,"dark_mode":false,"responsive":true,"title":"Aura Pro Jekyll Theme","rating":5.0,"rating_count":27,"description":"The premium upgrade to the Aura Jekyll theme. Includes all Aura features plus advanced blog layouts, star-rated testimonials, Sendy newsletter support, and read-time indicators.","card_description":"Premium upgrade to Aura — advanced layouts, star testimonials, and read time.","price":9,"category":"Personal","card_image":"/assets/images/themes/aura-pro-card.webp","theme_screenshots":["/assets/images/themes/aura-pro-screenshot.webp","/assets/images/themes/aura-pro-screenshot-2.webp","/assets/images/themes/aura-pro-screenshot-3.webp"],"key_features":["Two Blog Layouts","Star Testimonials","Read Time","Sendy Newsletter"],"demo_url":"https://satishw.github.io/jekyll-theme-aura-pro/","buy_url":"https://satishw.github.io/jekyll-theme-aura-pro/features/","author":"Satish W","author_url":"https://satishw.github.io/jekyll-theme-aura-pro/","github_author_name":"Satish W","support":"lifetime","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2025-01-25","added_at":"2026-06-26","popular":false,"trending":true,"bestseller":false,"version":"1.0.0","license":"Commercial","discount_label":"launch_offer","discount_original_price":29,"features":["All features of the free Aura theme included","Two blog post layout options to suit different content styles","Read time indicator on every blog post","Testimonials section with star ratings","Sendy.co newsletter integration (in addition to MailChimp)","Logo section for brand or personal mark","Fully compatible with GitHub Pages — no custom plugins required","Contact form via Formspree, comments via Disqus","Image gallery with lazy loading and YouTube embed support","Google Analytics and social sharing built in","Free lifetime updates and support"],"slug":"aura-pro","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Architect is GitHub's documentation-oriented official theme. Its fixed sidebar and clearly delineated content area create an organised, easy-to-navigate layout that works well for project READMEs, API docs, and any site with multiple sections.\n\nThe theme's structured visual hierarchy gives your content immediate credibility, and its lightweight implementation means fast page loads even for large documentation sites.\n\n**Who is it for?** Developers building open-source project documentation or any structured informational site that benefits from persistent sidebar navigation.\n","url":"/themes/architect/","draft":false,"categories":["Documentation"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Architect Jekyll Theme","description":"A clean GitHub Pages Jekyll theme with a prominent sidebar and crisp typography. Official GitHub Pages theme, ideal for project documentation.","key_features":["GitHub Pages","Sidebar Nav","Code Blocks","Project Docs"],"card_description":"Clean GitHub Pages theme with prominent sidebar for project docs.","category":"Documentation","card_image":"/assets/images/themes/architect-card.webp","theme_screenshots":["/assets/images/themes/architect-screenshot.webp","/assets/images/themes/architect-screenshot-2.webp","/assets/images/themes/architect-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/architect/","github_url":"https://github.com/pages-themes/architect","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":500,"forks":450,"features":["Official GitHub Pages supported theme","Fixed sidebar for navigation","Clean, structured content area","Responsive layout","Single-line enable via _config.yml","No local Jekyll install needed","Suitable for multi-section documentation"],"slug":"architect","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Almace Scaffolding is a statement theme — bold typography, strong visual personality, and an obsessive focus on performance. Pages load in milliseconds thanks to a lean build pipeline that strips out everything unnecessary.\n\nThe Grunt-powered build system gives developers full control over the asset pipeline.\n\n**Who is it for?** Developers and designers who want a high-performance, visually distinctive blog that makes a strong typographic impression.\n","url":"/themes/almace-scaffolding/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Almace Scaffolding Jekyll Theme","description":"A bold, minimal, and blazing fast Jekyll theme with a distinctive typographic style and performance-first architecture.","key_features":["Ultra Fast","Bold Typography","Performance First","Minimal Design"],"card_description":"Bold, minimal, blazing-fast theme with distinctive typographic style.","category":"Blog","card_image":"/assets/images/themes/almace-scaffolding-card.webp","theme_screenshots":["/assets/images/themes/almace-scaffolding-screenshot.webp","/assets/images/themes/almace-scaffolding-screenshot-2.webp","/assets/images/themes/almace-scaffolding-screenshot-3.webp"],"demo_url":"https://sparanoid.com/lab/amsf/","github_url":"https://github.com/sparanoid/almace-scaffolding","author":"GitHub Community","github_author_name":"sparanoid","github_author_url":"https://github.com/sparanoid","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":false,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap"],"updated_at":"2025-02-19","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"0.21.0","license":"MIT","stars":337,"forks":98,"features":["Bold typographic design","Performance-first architecture","Grunt build system","LESS stylesheets","SVG icon support","Custom post colours","Minimal navigation","Social links","RSS feed","Ultra-fast page loads"],"slug":"almace-scaffolding","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/architect.md","relative_path":"_themes/architect.md","excerpt":"<p>Architect is GitHub’s documentation-oriented official theme. Its fixed sidebar and clearly delineated content area create an organised, easy-to-navigate layout that works well for project READMEs, API docs, and any site with multiple sections.</p>\n\n","previous":{"path":"_themes/almace-scaffolding.md","relative_path":"_themes/almace-scaffolding.md","excerpt":"<p>Almace Scaffolding is a statement theme — bold typography, strong visual personality, and an obsessive focus on performance. Pages load in milliseconds thanks to a lean build pipeline that strips out everything unnecessary.</p>\n\n","previous":{"path":"_themes/alembic.md","relative_path":"_themes/alembic.md","id":"/themes/alembic","collection":"themes","url":"/themes/alembic/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Alembic Jekyll Theme","description":"A clean, minimal Jekyll theme with great typography and flexible page layouts. Works out of the box as a gem-based theme.","key_features":["Gem-Based Theme","Clean Typography","Flexible Layouts","GitHub Pages"],"card_description":"Clean, minimal gem-based theme with flexible page layouts.","category":"Blog","card_image":"/assets/images/themes/alembic-card.webp","theme_screenshots":["/assets/images/themes/alembic-screenshot.webp","/assets/images/themes/alembic-screenshot-2.webp","/assets/images/themes/alembic-screenshot-3.webp"],"demo_url":"https://alembic.darn.es/","github_url":"https://github.com/daviddarnes/alembic","author":"GitHub Community","github_author_name":"David Darnes","github_author_url":"https://github.com/daviddarnes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag"],"updated_at":"2024-01-01","added_at":"2026-02-01","popular":false,"trending":false,"bestseller":false,"version":"3.1.0","license":"MIT","stars":2600,"forks":760,"features":["Gem-based installation","Multiple page layouts","Configurable navigation","Syntax highlighting","SEO ready"],"slug":"alembic","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/almace-scaffolding","collection":"themes","next":{"path":"_themes/architect.md","relative_path":"_themes/architect.md","id":"/themes/architect","collection":"themes","url":"/themes/architect/","draft":false,"categories":["Documentation"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Architect Jekyll Theme","description":"A clean GitHub Pages Jekyll theme with a prominent sidebar and crisp typography. Official GitHub Pages theme, ideal for project documentation.","key_features":["GitHub Pages","Sidebar Nav","Code Blocks","Project Docs"],"card_description":"Clean GitHub Pages theme with prominent sidebar for project docs.","category":"Documentation","card_image":"/assets/images/themes/architect-card.webp","theme_screenshots":["/assets/images/themes/architect-screenshot.webp","/assets/images/themes/architect-screenshot-2.webp","/assets/images/themes/architect-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/architect/","github_url":"https://github.com/pages-themes/architect","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":500,"forks":450,"features":["Official GitHub Pages supported theme","Fixed sidebar for navigation","Clean, structured content area","Responsive layout","Single-line enable via _config.yml","No local Jekyll install needed","Suitable for multi-section documentation"],"slug":"architect","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Almace Scaffolding is a statement theme — bold typography, strong visual personality, and an obsessive focus on performance. Pages load in milliseconds thanks to a lean build pipeline that strips out everything unnecessary.\n\nThe Grunt-powered build system gives developers full control over the asset pipeline.\n\n**Who is it for?** Developers and designers who want a high-performance, visually distinctive blog that makes a strong typographic impression.\n","url":"/themes/almace-scaffolding/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Almace Scaffolding Jekyll Theme","description":"A bold, minimal, and blazing fast Jekyll theme with a distinctive typographic style and performance-first architecture.","key_features":["Ultra Fast","Bold Typography","Performance First","Minimal Design"],"card_description":"Bold, minimal, blazing-fast theme with distinctive typographic style.","category":"Blog","card_image":"/assets/images/themes/almace-scaffolding-card.webp","theme_screenshots":["/assets/images/themes/almace-scaffolding-screenshot.webp","/assets/images/themes/almace-scaffolding-screenshot-2.webp","/assets/images/themes/almace-scaffolding-screenshot-3.webp"],"demo_url":"https://sparanoid.com/lab/amsf/","github_url":"https://github.com/sparanoid/almace-scaffolding","author":"GitHub Community","github_author_name":"sparanoid","github_author_url":"https://github.com/sparanoid","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":false,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap"],"updated_at":"2025-02-19","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"0.21.0","license":"MIT","stars":337,"forks":98,"features":["Bold typographic design","Performance-first architecture","Grunt build system","LESS stylesheets","SVG icon support","Custom post colours","Minimal navigation","Social links","RSS feed","Ultra-fast page loads"],"slug":"almace-scaffolding","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/architect","collection":"themes","next":{"path":"_themes/aura-pro.md","relative_path":"_themes/aura-pro.md","excerpt":"<p>Aura Pro is the premium evolution of the <a href=\"https://satishw.github.io/jekyll-theme-aura/\">Aura Jekyll theme</a> — everything in the free version, extended with features that content-focused sites demand.</p>\n\n","previous":{"path":"_themes/architect.md","relative_path":"_themes/architect.md","id":"/themes/architect","collection":"themes","url":"/themes/architect/","draft":false,"categories":["Documentation"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Architect Jekyll Theme","description":"A clean GitHub Pages Jekyll theme with a prominent sidebar and crisp typography. Official GitHub Pages theme, ideal for project documentation.","key_features":["GitHub Pages","Sidebar Nav","Code Blocks","Project Docs"],"card_description":"Clean GitHub Pages theme with prominent sidebar for project docs.","category":"Documentation","card_image":"/assets/images/themes/architect-card.webp","theme_screenshots":["/assets/images/themes/architect-screenshot.webp","/assets/images/themes/architect-screenshot-2.webp","/assets/images/themes/architect-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/architect/","github_url":"https://github.com/pages-themes/architect","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":500,"forks":450,"features":["Official GitHub Pages supported theme","Fixed sidebar for navigation","Clean, structured content area","Responsive layout","Single-line enable via _config.yml","No local Jekyll install needed","Suitable for multi-section documentation"],"slug":"architect","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/aura-pro","collection":"themes","next":{"path":"_themes/aura.md","relative_path":"_themes/aura.md","id":"/themes/aura","collection":"themes","url":"/themes/aura/","draft":false,"categories":["Personal"],"layout":"theme","price_type":"free","featured":true,"dark_mode":false,"responsive":true,"title":"Aura Jekyll Theme","description":"Versatile Jekyll theme designed for content creators, writers, and developers. Ships with blog, projects, testimonials, and portfolio sections — fully compatible with GitHub Pages.","key_features":["GitHub Pages","Blog & Projects","Testimonials","Contact Form"],"card_description":"Versatile Jekyll theme for creators and developers — blog, projects, and portfolio ready.","category":"Personal","card_image":"/assets/images/themes/aura-card.webp","theme_screenshots":["/assets/images/themes/aura-screenshot.webp","/assets/images/themes/aura-screenshot-2.webp","/assets/images/themes/aura-screenshot-3.webp"],"demo_url":"https://satishw.github.io/jekyll-theme-aura/","github_url":"https://github.com/satishw/jekyll-theme-aura","author":"Satish W","github_author_name":"Satish W","github_author_url":"https://github.com/satishw","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2025-01-25","added_at":"2026-02-10","popular":false,"trending":true,"bestseller":false,"version":"1.0.0","license":"MIT","stars":0,"forks":0,"features":["Fully compatible with GitHub Pages — no custom plugins required","Blog section with tag pages and code highlighting","Projects section to showcase your work","Testimonials section for social proof","Contact form via Formspree (no backend needed)","MailChimp newsletter integration","Disqus comments support","Image gallery with lazy loading","Embedded YouTube video support","Social sharing buttons on posts","Google Analytics integration","Scroll-to-top button and responsive mobile layout"],"slug":"aura","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Aura Pro is the premium evolution of the [Aura Jekyll theme](https://satishw.github.io/jekyll-theme-aura/) — everything in the free version, extended with features that content-focused sites demand.\n\nThe headline addition is two distinct blog post layout options, letting you vary the presentation of long-form content, tutorials, and short-form posts without theme customisation. Each post also shows a read-time estimate, which has become standard on quality editorial sites. The testimonials section now supports star ratings, making social proof more visually compelling for freelancers and small businesses.\n\nNewsletter support is expanded with [Sendy.co](https://sendy.co/) — a self-hosted alternative to MailChimp that keeps your subscriber list yours. Both Sendy and MailChimp are supported simultaneously.\n\n**Who is it for?** Writers, developers, and freelancers who started with Aura and need the next level — or anyone building a personal site that doubles as a professional presence from day one.\n\n**Upcoming features** include price boxes, additional home page layouts, animated sections, and a dark theme variant. All future updates are included free with your purchase.\n","url":"/themes/aura-pro/","draft":false,"categories":["Personal"],"layout":"theme","price_type":"premium","featured":true,"dark_mode":false,"responsive":true,"title":"Aura Pro Jekyll Theme","rating":5.0,"rating_count":27,"description":"The premium upgrade to the Aura Jekyll theme. Includes all Aura features plus advanced blog layouts, star-rated testimonials, Sendy newsletter support, and read-time indicators.","card_description":"Premium upgrade to Aura — advanced layouts, star testimonials, and read time.","price":9,"category":"Personal","card_image":"/assets/images/themes/aura-pro-card.webp","theme_screenshots":["/assets/images/themes/aura-pro-screenshot.webp","/assets/images/themes/aura-pro-screenshot-2.webp","/assets/images/themes/aura-pro-screenshot-3.webp"],"key_features":["Two Blog Layouts","Star Testimonials","Read Time","Sendy Newsletter"],"demo_url":"https://satishw.github.io/jekyll-theme-aura-pro/","buy_url":"https://satishw.github.io/jekyll-theme-aura-pro/features/","author":"Satish W","author_url":"https://satishw.github.io/jekyll-theme-aura-pro/","github_author_name":"Satish W","support":"lifetime","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2025-01-25","added_at":"2026-06-26","popular":false,"trending":true,"bestseller":false,"version":"1.0.0","license":"Commercial","discount_label":"launch_offer","discount_original_price":29,"features":["All features of the free Aura theme included","Two blog post layout options to suit different content styles","Read time indicator on every blog post","Testimonials section with star ratings","Sendy.co newsletter integration (in addition to MailChimp)","Logo section for brand or personal mark","Fully compatible with GitHub Pages — no custom plugins required","Contact form via Formspree, comments via Disqus","Image gallery with lazy loading and YouTube embed support","Google Analytics and social sharing built in","Free lifetime updates and support"],"slug":"aura-pro","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Architect is GitHub's documentation-oriented official theme. Its fixed sidebar and clearly delineated content area create an organised, easy-to-navigate layout that works well for project READMEs, API docs, and any site with multiple sections.\n\nThe theme's structured visual hierarchy gives your content immediate credibility, and its lightweight implementation means fast page loads even for large documentation sites.\n\n**Who is it for?** Developers building open-source project documentation or any structured informational site that benefits from persistent sidebar navigation.\n","url":"/themes/architect/","draft":false,"categories":["Documentation"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Architect Jekyll Theme","description":"A clean GitHub Pages Jekyll theme with a prominent sidebar and crisp typography. Official GitHub Pages theme, ideal for project documentation.","key_features":["GitHub Pages","Sidebar Nav","Code Blocks","Project Docs"],"card_description":"Clean GitHub Pages theme with prominent sidebar for project docs.","category":"Documentation","card_image":"/assets/images/themes/architect-card.webp","theme_screenshots":["/assets/images/themes/architect-screenshot.webp","/assets/images/themes/architect-screenshot-2.webp","/assets/images/themes/architect-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/architect/","github_url":"https://github.com/pages-themes/architect","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":500,"forks":450,"features":["Official GitHub Pages supported theme","Fixed sidebar for navigation","Clean, structured content area","Responsive layout","Single-line enable via _config.yml","No local Jekyll install needed","Suitable for multi-section documentation"],"slug":"architect","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/aura-pro.md","relative_path":"_themes/aura-pro.md","excerpt":"<p>Aura Pro is the premium evolution of the <a href=\"https://satishw.github.io/jekyll-theme-aura/\">Aura Jekyll theme</a> — everything in the free version, extended with features that content-focused sites demand.</p>\n\n","previous":{"path":"_themes/architect.md","relative_path":"_themes/architect.md","excerpt":"<p>Architect is GitHub’s documentation-oriented official theme. Its fixed sidebar and clearly delineated content area create an organised, easy-to-navigate layout that works well for project READMEs, API docs, and any site with multiple sections.</p>\n\n","previous":{"path":"_themes/almace-scaffolding.md","relative_path":"_themes/almace-scaffolding.md","id":"/themes/almace-scaffolding","collection":"themes","url":"/themes/almace-scaffolding/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Almace Scaffolding Jekyll Theme","description":"A bold, minimal, and blazing fast Jekyll theme with a distinctive typographic style and performance-first architecture.","key_features":["Ultra Fast","Bold Typography","Performance First","Minimal Design"],"card_description":"Bold, minimal, blazing-fast theme with distinctive typographic style.","category":"Blog","card_image":"/assets/images/themes/almace-scaffolding-card.webp","theme_screenshots":["/assets/images/themes/almace-scaffolding-screenshot.webp","/assets/images/themes/almace-scaffolding-screenshot-2.webp","/assets/images/themes/almace-scaffolding-screenshot-3.webp"],"demo_url":"https://sparanoid.com/lab/amsf/","github_url":"https://github.com/sparanoid/almace-scaffolding","author":"GitHub Community","github_author_name":"sparanoid","github_author_url":"https://github.com/sparanoid","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":false,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap"],"updated_at":"2025-02-19","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"0.21.0","license":"MIT","stars":337,"forks":98,"features":["Bold typographic design","Performance-first architecture","Grunt build system","LESS stylesheets","SVG icon support","Custom post colours","Minimal navigation","Social links","RSS feed","Ultra-fast page loads"],"slug":"almace-scaffolding","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/architect","collection":"themes","next":{"path":"_themes/aura-pro.md","relative_path":"_themes/aura-pro.md","id":"/themes/aura-pro","collection":"themes","url":"/themes/aura-pro/","draft":false,"categories":["Personal"],"layout":"theme","price_type":"premium","featured":true,"dark_mode":false,"responsive":true,"title":"Aura Pro Jekyll Theme","rating":5.0,"rating_count":27,"description":"The premium upgrade to the Aura Jekyll theme. Includes all Aura features plus advanced blog layouts, star-rated testimonials, Sendy newsletter support, and read-time indicators.","card_description":"Premium upgrade to Aura — advanced layouts, star testimonials, and read time.","price":9,"category":"Personal","card_image":"/assets/images/themes/aura-pro-card.webp","theme_screenshots":["/assets/images/themes/aura-pro-screenshot.webp","/assets/images/themes/aura-pro-screenshot-2.webp","/assets/images/themes/aura-pro-screenshot-3.webp"],"key_features":["Two Blog Layouts","Star Testimonials","Read Time","Sendy Newsletter"],"demo_url":"https://satishw.github.io/jekyll-theme-aura-pro/","buy_url":"https://satishw.github.io/jekyll-theme-aura-pro/features/","author":"Satish W","author_url":"https://satishw.github.io/jekyll-theme-aura-pro/","github_author_name":"Satish W","support":"lifetime","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2025-01-25","added_at":"2026-06-26","popular":false,"trending":true,"bestseller":false,"version":"1.0.0","license":"Commercial","discount_label":"launch_offer","discount_original_price":29,"features":["All features of the free Aura theme included","Two blog post layout options to suit different content styles","Read time indicator on every blog post","Testimonials section with star ratings","Sendy.co newsletter integration (in addition to MailChimp)","Logo section for brand or personal mark","Fully compatible with GitHub Pages — no custom plugins required","Contact form via Formspree, comments via Disqus","Image gallery with lazy loading and YouTube embed support","Google Analytics and social sharing built in","Free lifetime updates and support"],"slug":"aura-pro","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Architect is GitHub's documentation-oriented official theme. Its fixed sidebar and clearly delineated content area create an organised, easy-to-navigate layout that works well for project READMEs, API docs, and any site with multiple sections.\n\nThe theme's structured visual hierarchy gives your content immediate credibility, and its lightweight implementation means fast page loads even for large documentation sites.\n\n**Who is it for?** Developers building open-source project documentation or any structured informational site that benefits from persistent sidebar navigation.\n","url":"/themes/architect/","draft":false,"categories":["Documentation"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Architect Jekyll Theme","description":"A clean GitHub Pages Jekyll theme with a prominent sidebar and crisp typography. Official GitHub Pages theme, ideal for project documentation.","key_features":["GitHub Pages","Sidebar Nav","Code Blocks","Project Docs"],"card_description":"Clean GitHub Pages theme with prominent sidebar for project docs.","category":"Documentation","card_image":"/assets/images/themes/architect-card.webp","theme_screenshots":["/assets/images/themes/architect-screenshot.webp","/assets/images/themes/architect-screenshot-2.webp","/assets/images/themes/architect-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/architect/","github_url":"https://github.com/pages-themes/architect","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":500,"forks":450,"features":["Official GitHub Pages supported theme","Fixed sidebar for navigation","Clean, structured content area","Responsive layout","Single-line enable via _config.yml","No local Jekyll install needed","Suitable for multi-section documentation"],"slug":"architect","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/aura-pro","collection":"themes","next":{"path":"_themes/aura.md","relative_path":"_themes/aura.md","excerpt":"<p>Aura is a versatile Jekyll theme built for content creators, writers, and developers who need more than just a blog. It ships with dedicated sections for blog posts, projects, and testimonials — everything you need to build a personal site that represents you fully.</p>\n\n","previous":{"path":"_themes/aura-pro.md","relative_path":"_themes/aura-pro.md","id":"/themes/aura-pro","collection":"themes","url":"/themes/aura-pro/","draft":false,"categories":["Personal"],"layout":"theme","price_type":"premium","featured":true,"dark_mode":false,"responsive":true,"title":"Aura Pro Jekyll Theme","rating":5.0,"rating_count":27,"description":"The premium upgrade to the Aura Jekyll theme. Includes all Aura features plus advanced blog layouts, star-rated testimonials, Sendy newsletter support, and read-time indicators.","card_description":"Premium upgrade to Aura — advanced layouts, star testimonials, and read time.","price":9,"category":"Personal","card_image":"/assets/images/themes/aura-pro-card.webp","theme_screenshots":["/assets/images/themes/aura-pro-screenshot.webp","/assets/images/themes/aura-pro-screenshot-2.webp","/assets/images/themes/aura-pro-screenshot-3.webp"],"key_features":["Two Blog Layouts","Star Testimonials","Read Time","Sendy Newsletter"],"demo_url":"https://satishw.github.io/jekyll-theme-aura-pro/","buy_url":"https://satishw.github.io/jekyll-theme-aura-pro/features/","author":"Satish W","author_url":"https://satishw.github.io/jekyll-theme-aura-pro/","github_author_name":"Satish W","support":"lifetime","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2025-01-25","added_at":"2026-06-26","popular":false,"trending":true,"bestseller":false,"version":"1.0.0","license":"Commercial","discount_label":"launch_offer","discount_original_price":29,"features":["All features of the free Aura theme included","Two blog post layout options to suit different content styles","Read time indicator on every blog post","Testimonials section with star ratings","Sendy.co newsletter integration (in addition to MailChimp)","Logo section for brand or personal mark","Fully compatible with GitHub Pages — no custom plugins required","Contact form via Formspree, comments via Disqus","Image gallery with lazy loading and YouTube embed support","Google Analytics and social sharing built in","Free lifetime updates and support"],"slug":"aura-pro","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/aura","collection":"themes","next":{"path":"_themes/basically-basic.md","relative_path":"_themes/basically-basic.md","id":"/themes/basically-basic","collection":"themes","url":"/themes/basically-basic/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Basically Basic Jekyll Theme","description":"Your new Jekyll default theme — a modern, polished substitute for Minima. Six customisable colour skins, resume layout, off-canvas menu, and everything Minima should have been.","key_features":["6 Color Skins","Resume Layout","Off-Canvas Menu","GitHub Pages"],"card_description":"Modern Minima replacement with six colour skins and a resume layout.","category":"Blog","card_image":"/assets/images/themes/basically-basic-card.webp","theme_screenshots":["/assets/images/themes/basically-basic-screenshot.webp","/assets/images/themes/basically-basic-screenshot-2.webp","/assets/images/themes/basically-basic-screenshot-3.webp"],"demo_url":"https://mmistakes.github.io/jekyll-theme-basically-basic/","github_url":"https://github.com/mmistakes/jekyll-theme-basically-basic","author":"GitHub Community","github_author_name":"mmistakes","github_author_url":"https://github.com/mmistakes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.5","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"1.8.0","license":"MIT","stars":800,"forks":500,"features":["6 built-in colour skins","Off-canvas slide-out menu","Resume/CV page layout","Responsive design","Syntax highlighting","Google Analytics","Disqus comments","Read time estimates","Social sharing","GitHub Pages compatible"],"slug":"basically-basic","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Aura is a versatile Jekyll theme built for content creators, writers, and developers who need more than just a blog. It ships with dedicated sections for blog posts, projects, and testimonials — everything you need to build a personal site that represents you fully.\n\nThe theme is a fork of [CloudCannon's Vonge template](https://github.com/CloudCannon/vonge-jekyll-bookshop-template), extended with GitHub Pages compatibility and a richer feature set. Blog posts support code highlighting, image galleries, embedded YouTube videos, and a full table of contents — making it equally at home for technical writers and creative bloggers.\n\n**Who is it for?** Developers and creators who want a single theme that handles a personal site, portfolio, and blog without switching between multiple themes. If you want to show off projects, collect testimonials, and write posts — all in one clean package — Aura is built for exactly that.\n\n**AuraPro** — a premium version with additional layouts and components — is also available at [jekyll-theme-aura-pro](https://satishw.github.io/jekyll-theme-aura-pro/features).\n","url":"/themes/aura/","draft":false,"categories":["Personal"],"layout":"theme","price_type":"free","featured":true,"dark_mode":false,"responsive":true,"title":"Aura Jekyll Theme","description":"Versatile Jekyll theme designed for content creators, writers, and developers. Ships with blog, projects, testimonials, and portfolio sections — fully compatible with GitHub Pages.","key_features":["GitHub Pages","Blog & Projects","Testimonials","Contact Form"],"card_description":"Versatile Jekyll theme for creators and developers — blog, projects, and portfolio ready.","category":"Personal","card_image":"/assets/images/themes/aura-card.webp","theme_screenshots":["/assets/images/themes/aura-screenshot.webp","/assets/images/themes/aura-screenshot-2.webp","/assets/images/themes/aura-screenshot-3.webp"],"demo_url":"https://satishw.github.io/jekyll-theme-aura/","github_url":"https://github.com/satishw/jekyll-theme-aura","author":"Satish W","github_author_name":"Satish W","github_author_url":"https://github.com/satishw","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2025-01-25","added_at":"2026-02-10","popular":false,"trending":true,"bestseller":false,"version":"1.0.0","license":"MIT","stars":0,"forks":0,"features":["Fully compatible with GitHub Pages — no custom plugins required","Blog section with tag pages and code highlighting","Projects section to showcase your work","Testimonials section for social proof","Contact form via Formspree (no backend needed)","MailChimp newsletter integration","Disqus comments support","Image gallery with lazy loading","Embedded YouTube video support","Social sharing buttons on posts","Google Analytics integration","Scroll-to-top button and responsive mobile layout"],"slug":"aura","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Aura Pro is the premium evolution of the [Aura Jekyll theme](https://satishw.github.io/jekyll-theme-aura/) — everything in the free version, extended with features that content-focused sites demand.\n\nThe headline addition is two distinct blog post layout options, letting you vary the presentation of long-form content, tutorials, and short-form posts without theme customisation. Each post also shows a read-time estimate, which has become standard on quality editorial sites. The testimonials section now supports star ratings, making social proof more visually compelling for freelancers and small businesses.\n\nNewsletter support is expanded with [Sendy.co](https://sendy.co/) — a self-hosted alternative to MailChimp that keeps your subscriber list yours. Both Sendy and MailChimp are supported simultaneously.\n\n**Who is it for?** Writers, developers, and freelancers who started with Aura and need the next level — or anyone building a personal site that doubles as a professional presence from day one.\n\n**Upcoming features** include price boxes, additional home page layouts, animated sections, and a dark theme variant. All future updates are included free with your purchase.\n","url":"/themes/aura-pro/","draft":false,"categories":["Personal"],"layout":"theme","price_type":"premium","featured":true,"dark_mode":false,"responsive":true,"title":"Aura Pro Jekyll Theme","rating":5.0,"rating_count":27,"description":"The premium upgrade to the Aura Jekyll theme. Includes all Aura features plus advanced blog layouts, star-rated testimonials, Sendy newsletter support, and read-time indicators.","card_description":"Premium upgrade to Aura — advanced layouts, star testimonials, and read time.","price":9,"category":"Personal","card_image":"/assets/images/themes/aura-pro-card.webp","theme_screenshots":["/assets/images/themes/aura-pro-screenshot.webp","/assets/images/themes/aura-pro-screenshot-2.webp","/assets/images/themes/aura-pro-screenshot-3.webp"],"key_features":["Two Blog Layouts","Star Testimonials","Read Time","Sendy Newsletter"],"demo_url":"https://satishw.github.io/jekyll-theme-aura-pro/","buy_url":"https://satishw.github.io/jekyll-theme-aura-pro/features/","author":"Satish W","author_url":"https://satishw.github.io/jekyll-theme-aura-pro/","github_author_name":"Satish W","support":"lifetime","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2025-01-25","added_at":"2026-06-26","popular":false,"trending":true,"bestseller":false,"version":"1.0.0","license":"Commercial","discount_label":"launch_offer","discount_original_price":29,"features":["All features of the free Aura theme included","Two blog post layout options to suit different content styles","Read time indicator on every blog post","Testimonials section with star ratings","Sendy.co newsletter integration (in addition to MailChimp)","Logo section for brand or personal mark","Fully compatible with GitHub Pages — no custom plugins required","Contact form via Formspree, comments via Disqus","Image gallery with lazy loading and YouTube embed support","Google Analytics and social sharing built in","Free lifetime updates and support"],"slug":"aura-pro","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/aura.md","relative_path":"_themes/aura.md","excerpt":"<p>Aura is a versatile Jekyll theme built for content creators, writers, and developers who need more than just a blog. It ships with dedicated sections for blog posts, projects, and testimonials — everything you need to build a personal site that represents you fully.</p>\n\n","previous":{"path":"_themes/aura-pro.md","relative_path":"_themes/aura-pro.md","excerpt":"<p>Aura Pro is the premium evolution of the <a href=\"https://satishw.github.io/jekyll-theme-aura/\">Aura Jekyll theme</a> — everything in the free version, extended with features that content-focused sites demand.</p>\n\n","previous":{"path":"_themes/architect.md","relative_path":"_themes/architect.md","id":"/themes/architect","collection":"themes","url":"/themes/architect/","draft":false,"categories":["Documentation"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Architect Jekyll Theme","description":"A clean GitHub Pages Jekyll theme with a prominent sidebar and crisp typography. Official GitHub Pages theme, ideal for project documentation.","key_features":["GitHub Pages","Sidebar Nav","Code Blocks","Project Docs"],"card_description":"Clean GitHub Pages theme with prominent sidebar for project docs.","category":"Documentation","card_image":"/assets/images/themes/architect-card.webp","theme_screenshots":["/assets/images/themes/architect-screenshot.webp","/assets/images/themes/architect-screenshot-2.webp","/assets/images/themes/architect-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/architect/","github_url":"https://github.com/pages-themes/architect","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":500,"forks":450,"features":["Official GitHub Pages supported theme","Fixed sidebar for navigation","Clean, structured content area","Responsive layout","Single-line enable via _config.yml","No local Jekyll install needed","Suitable for multi-section documentation"],"slug":"architect","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/aura-pro","collection":"themes","next":{"path":"_themes/aura.md","relative_path":"_themes/aura.md","id":"/themes/aura","collection":"themes","url":"/themes/aura/","draft":false,"categories":["Personal"],"layout":"theme","price_type":"free","featured":true,"dark_mode":false,"responsive":true,"title":"Aura Jekyll Theme","description":"Versatile Jekyll theme designed for content creators, writers, and developers. Ships with blog, projects, testimonials, and portfolio sections — fully compatible with GitHub Pages.","key_features":["GitHub Pages","Blog & Projects","Testimonials","Contact Form"],"card_description":"Versatile Jekyll theme for creators and developers — blog, projects, and portfolio ready.","category":"Personal","card_image":"/assets/images/themes/aura-card.webp","theme_screenshots":["/assets/images/themes/aura-screenshot.webp","/assets/images/themes/aura-screenshot-2.webp","/assets/images/themes/aura-screenshot-3.webp"],"demo_url":"https://satishw.github.io/jekyll-theme-aura/","github_url":"https://github.com/satishw/jekyll-theme-aura","author":"Satish W","github_author_name":"Satish W","github_author_url":"https://github.com/satishw","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2025-01-25","added_at":"2026-02-10","popular":false,"trending":true,"bestseller":false,"version":"1.0.0","license":"MIT","stars":0,"forks":0,"features":["Fully compatible with GitHub Pages — no custom plugins required","Blog section with tag pages and code highlighting","Projects section to showcase your work","Testimonials section for social proof","Contact form via Formspree (no backend needed)","MailChimp newsletter integration","Disqus comments support","Image gallery with lazy loading","Embedded YouTube video support","Social sharing buttons on posts","Google Analytics integration","Scroll-to-top button and responsive mobile layout"],"slug":"aura","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Aura Pro is the premium evolution of the [Aura Jekyll theme](https://satishw.github.io/jekyll-theme-aura/) — everything in the free version, extended with features that content-focused sites demand.\n\nThe headline addition is two distinct blog post layout options, letting you vary the presentation of long-form content, tutorials, and short-form posts without theme customisation. Each post also shows a read-time estimate, which has become standard on quality editorial sites. The testimonials section now supports star ratings, making social proof more visually compelling for freelancers and small businesses.\n\nNewsletter support is expanded with [Sendy.co](https://sendy.co/) — a self-hosted alternative to MailChimp that keeps your subscriber list yours. Both Sendy and MailChimp are supported simultaneously.\n\n**Who is it for?** Writers, developers, and freelancers who started with Aura and need the next level — or anyone building a personal site that doubles as a professional presence from day one.\n\n**Upcoming features** include price boxes, additional home page layouts, animated sections, and a dark theme variant. All future updates are included free with your purchase.\n","url":"/themes/aura-pro/","draft":false,"categories":["Personal"],"layout":"theme","price_type":"premium","featured":true,"dark_mode":false,"responsive":true,"title":"Aura Pro Jekyll Theme","rating":5.0,"rating_count":27,"description":"The premium upgrade to the Aura Jekyll theme. Includes all Aura features plus advanced blog layouts, star-rated testimonials, Sendy newsletter support, and read-time indicators.","card_description":"Premium upgrade to Aura — advanced layouts, star testimonials, and read time.","price":9,"category":"Personal","card_image":"/assets/images/themes/aura-pro-card.webp","theme_screenshots":["/assets/images/themes/aura-pro-screenshot.webp","/assets/images/themes/aura-pro-screenshot-2.webp","/assets/images/themes/aura-pro-screenshot-3.webp"],"key_features":["Two Blog Layouts","Star Testimonials","Read Time","Sendy Newsletter"],"demo_url":"https://satishw.github.io/jekyll-theme-aura-pro/","buy_url":"https://satishw.github.io/jekyll-theme-aura-pro/features/","author":"Satish W","author_url":"https://satishw.github.io/jekyll-theme-aura-pro/","github_author_name":"Satish W","support":"lifetime","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2025-01-25","added_at":"2026-06-26","popular":false,"trending":true,"bestseller":false,"version":"1.0.0","license":"Commercial","discount_label":"launch_offer","discount_original_price":29,"features":["All features of the free Aura theme included","Two blog post layout options to suit different content styles","Read time indicator on every blog post","Testimonials section with star ratings","Sendy.co newsletter integration (in addition to MailChimp)","Logo section for brand or personal mark","Fully compatible with GitHub Pages — no custom plugins required","Contact form via Formspree, comments via Disqus","Image gallery with lazy loading and YouTube embed support","Google Analytics and social sharing built in","Free lifetime updates and support"],"slug":"aura-pro","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/aura","collection":"themes","next":{"path":"_themes/basically-basic.md","relative_path":"_themes/basically-basic.md","excerpt":"<p>Basically Basic is Michael Rose’s answer to the question: what if Minima was actually good? It keeps the simplicity and GitHub Pages compatibility of Jekyll’s default theme, but adds six colour skins, an off-canvas navigation menu, a dedicated resume layout, and the overall polish you’d expect from the author of Minimal Mistakes.</p>\n\n","previous":{"path":"_themes/aura.md","relative_path":"_themes/aura.md","id":"/themes/aura","collection":"themes","url":"/themes/aura/","draft":false,"categories":["Personal"],"layout":"theme","price_type":"free","featured":true,"dark_mode":false,"responsive":true,"title":"Aura Jekyll Theme","description":"Versatile Jekyll theme designed for content creators, writers, and developers. Ships with blog, projects, testimonials, and portfolio sections — fully compatible with GitHub Pages.","key_features":["GitHub Pages","Blog & Projects","Testimonials","Contact Form"],"card_description":"Versatile Jekyll theme for creators and developers — blog, projects, and portfolio ready.","category":"Personal","card_image":"/assets/images/themes/aura-card.webp","theme_screenshots":["/assets/images/themes/aura-screenshot.webp","/assets/images/themes/aura-screenshot-2.webp","/assets/images/themes/aura-screenshot-3.webp"],"demo_url":"https://satishw.github.io/jekyll-theme-aura/","github_url":"https://github.com/satishw/jekyll-theme-aura","author":"Satish W","github_author_name":"Satish W","github_author_url":"https://github.com/satishw","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2025-01-25","added_at":"2026-02-10","popular":false,"trending":true,"bestseller":false,"version":"1.0.0","license":"MIT","stars":0,"forks":0,"features":["Fully compatible with GitHub Pages — no custom plugins required","Blog section with tag pages and code highlighting","Projects section to showcase your work","Testimonials section for social proof","Contact form via Formspree (no backend needed)","MailChimp newsletter integration","Disqus comments support","Image gallery with lazy loading","Embedded YouTube video support","Social sharing buttons on posts","Google Analytics integration","Scroll-to-top button and responsive mobile layout"],"slug":"aura","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/basically-basic","collection":"themes","next":{"path":"_themes/beautiful-jekyll.md","relative_path":"_themes/beautiful-jekyll.md","id":"/themes/beautiful-jekyll","collection":"themes","url":"/themes/beautiful-jekyll/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":true,"dark_mode":false,"responsive":true,"title":"Beautiful Jekyll","description":"One of the most popular Jekyll blog themes. Easy to set up, highly customisable, and works perfectly on GitHub Pages.","key_features":["Quick Setup","GitHub Pages","Social Links","Highly Customisable"],"card_description":"Highly popular blog theme — easy setup, works on GitHub Pages.","category":"Blog","card_image":"/assets/images/themes/beautiful-jekyll-card.webp","theme_screenshots":["/assets/images/themes/beautiful-jekyll-screenshot.webp","/assets/images/themes/beautiful-jekyll-screenshot-2.webp","/assets/images/themes/beautiful-jekyll-screenshot-3.webp"],"demo_url":"https://beautifuljekyll.com/","github_url":"https://github.com/daattali/beautiful-jekyll","author":"GitHub Community","github_author_name":"Dean Attali","github_author_url":"https://github.com/daattali","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2024-04-01","added_at":"2026-01-20","popular":true,"trending":false,"bestseller":false,"version":"6.0.1","license":"MIT","stars":6200,"forks":18900,"features":["Multiple colour schemes","Disqus comments","Google Analytics","Social sharing","Image thumbnails on posts","Footer links"],"slug":"beautiful-jekyll","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Basically Basic is Michael Rose's answer to the question: what if Minima was actually good? It keeps the simplicity and GitHub Pages compatibility of Jekyll's default theme, but adds six colour skins, an off-canvas navigation menu, a dedicated resume layout, and the overall polish you'd expect from the author of Minimal Mistakes.\n\nIt's the theme to recommend when someone asks for something simple but not boring, and it works straight out of the box with GitHub Pages.\n\n**Who is it for?** Developers and writers who want a step up from Minima without jumping into the full complexity of Minimal Mistakes — a clean, modern blog with useful extras and zero setup friction.\n","url":"/themes/basically-basic/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Basically Basic Jekyll Theme","description":"Your new Jekyll default theme — a modern, polished substitute for Minima. Six customisable colour skins, resume layout, off-canvas menu, and everything Minima should have been.","key_features":["6 Color Skins","Resume Layout","Off-Canvas Menu","GitHub Pages"],"card_description":"Modern Minima replacement with six colour skins and a resume layout.","category":"Blog","card_image":"/assets/images/themes/basically-basic-card.webp","theme_screenshots":["/assets/images/themes/basically-basic-screenshot.webp","/assets/images/themes/basically-basic-screenshot-2.webp","/assets/images/themes/basically-basic-screenshot-3.webp"],"demo_url":"https://mmistakes.github.io/jekyll-theme-basically-basic/","github_url":"https://github.com/mmistakes/jekyll-theme-basically-basic","author":"GitHub Community","github_author_name":"mmistakes","github_author_url":"https://github.com/mmistakes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.5","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"1.8.0","license":"MIT","stars":800,"forks":500,"features":["6 built-in colour skins","Off-canvas slide-out menu","Resume/CV page layout","Responsive design","Syntax highlighting","Google Analytics","Disqus comments","Read time estimates","Social sharing","GitHub Pages compatible"],"slug":"basically-basic","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Aura is a versatile Jekyll theme built for content creators, writers, and developers who need more than just a blog. It ships with dedicated sections for blog posts, projects, and testimonials — everything you need to build a personal site that represents you fully.\n\nThe theme is a fork of [CloudCannon's Vonge template](https://github.com/CloudCannon/vonge-jekyll-bookshop-template), extended with GitHub Pages compatibility and a richer feature set. Blog posts support code highlighting, image galleries, embedded YouTube videos, and a full table of contents — making it equally at home for technical writers and creative bloggers.\n\n**Who is it for?** Developers and creators who want a single theme that handles a personal site, portfolio, and blog without switching between multiple themes. If you want to show off projects, collect testimonials, and write posts — all in one clean package — Aura is built for exactly that.\n\n**AuraPro** — a premium version with additional layouts and components — is also available at [jekyll-theme-aura-pro](https://satishw.github.io/jekyll-theme-aura-pro/features).\n","url":"/themes/aura/","draft":false,"categories":["Personal"],"layout":"theme","price_type":"free","featured":true,"dark_mode":false,"responsive":true,"title":"Aura Jekyll Theme","description":"Versatile Jekyll theme designed for content creators, writers, and developers. Ships with blog, projects, testimonials, and portfolio sections — fully compatible with GitHub Pages.","key_features":["GitHub Pages","Blog & Projects","Testimonials","Contact Form"],"card_description":"Versatile Jekyll theme for creators and developers — blog, projects, and portfolio ready.","category":"Personal","card_image":"/assets/images/themes/aura-card.webp","theme_screenshots":["/assets/images/themes/aura-screenshot.webp","/assets/images/themes/aura-screenshot-2.webp","/assets/images/themes/aura-screenshot-3.webp"],"demo_url":"https://satishw.github.io/jekyll-theme-aura/","github_url":"https://github.com/satishw/jekyll-theme-aura","author":"Satish W","github_author_name":"Satish W","github_author_url":"https://github.com/satishw","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2025-01-25","added_at":"2026-02-10","popular":false,"trending":true,"bestseller":false,"version":"1.0.0","license":"MIT","stars":0,"forks":0,"features":["Fully compatible with GitHub Pages — no custom plugins required","Blog section with tag pages and code highlighting","Projects section to showcase your work","Testimonials section for social proof","Contact form via Formspree (no backend needed)","MailChimp newsletter integration","Disqus comments support","Image gallery with lazy loading","Embedded YouTube video support","Social sharing buttons on posts","Google Analytics integration","Scroll-to-top button and responsive mobile layout"],"slug":"aura","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/basically-basic.md","relative_path":"_themes/basically-basic.md","excerpt":"<p>Basically Basic is Michael Rose’s answer to the question: what if Minima was actually good? It keeps the simplicity and GitHub Pages compatibility of Jekyll’s default theme, but adds six colour skins, an off-canvas navigation menu, a dedicated resume layout, and the overall polish you’d expect from the author of Minimal Mistakes.</p>\n\n","previous":{"path":"_themes/aura.md","relative_path":"_themes/aura.md","excerpt":"<p>Aura is a versatile Jekyll theme built for content creators, writers, and developers who need more than just a blog. It ships with dedicated sections for blog posts, projects, and testimonials — everything you need to build a personal site that represents you fully.</p>\n\n","previous":{"path":"_themes/aura-pro.md","relative_path":"_themes/aura-pro.md","id":"/themes/aura-pro","collection":"themes","url":"/themes/aura-pro/","draft":false,"categories":["Personal"],"layout":"theme","price_type":"premium","featured":true,"dark_mode":false,"responsive":true,"title":"Aura Pro Jekyll Theme","rating":5.0,"rating_count":27,"description":"The premium upgrade to the Aura Jekyll theme. Includes all Aura features plus advanced blog layouts, star-rated testimonials, Sendy newsletter support, and read-time indicators.","card_description":"Premium upgrade to Aura — advanced layouts, star testimonials, and read time.","price":9,"category":"Personal","card_image":"/assets/images/themes/aura-pro-card.webp","theme_screenshots":["/assets/images/themes/aura-pro-screenshot.webp","/assets/images/themes/aura-pro-screenshot-2.webp","/assets/images/themes/aura-pro-screenshot-3.webp"],"key_features":["Two Blog Layouts","Star Testimonials","Read Time","Sendy Newsletter"],"demo_url":"https://satishw.github.io/jekyll-theme-aura-pro/","buy_url":"https://satishw.github.io/jekyll-theme-aura-pro/features/","author":"Satish W","author_url":"https://satishw.github.io/jekyll-theme-aura-pro/","github_author_name":"Satish W","support":"lifetime","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2025-01-25","added_at":"2026-06-26","popular":false,"trending":true,"bestseller":false,"version":"1.0.0","license":"Commercial","discount_label":"launch_offer","discount_original_price":29,"features":["All features of the free Aura theme included","Two blog post layout options to suit different content styles","Read time indicator on every blog post","Testimonials section with star ratings","Sendy.co newsletter integration (in addition to MailChimp)","Logo section for brand or personal mark","Fully compatible with GitHub Pages — no custom plugins required","Contact form via Formspree, comments via Disqus","Image gallery with lazy loading and YouTube embed support","Google Analytics and social sharing built in","Free lifetime updates and support"],"slug":"aura-pro","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/aura","collection":"themes","next":{"path":"_themes/basically-basic.md","relative_path":"_themes/basically-basic.md","id":"/themes/basically-basic","collection":"themes","url":"/themes/basically-basic/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Basically Basic Jekyll Theme","description":"Your new Jekyll default theme — a modern, polished substitute for Minima. Six customisable colour skins, resume layout, off-canvas menu, and everything Minima should have been.","key_features":["6 Color Skins","Resume Layout","Off-Canvas Menu","GitHub Pages"],"card_description":"Modern Minima replacement with six colour skins and a resume layout.","category":"Blog","card_image":"/assets/images/themes/basically-basic-card.webp","theme_screenshots":["/assets/images/themes/basically-basic-screenshot.webp","/assets/images/themes/basically-basic-screenshot-2.webp","/assets/images/themes/basically-basic-screenshot-3.webp"],"demo_url":"https://mmistakes.github.io/jekyll-theme-basically-basic/","github_url":"https://github.com/mmistakes/jekyll-theme-basically-basic","author":"GitHub Community","github_author_name":"mmistakes","github_author_url":"https://github.com/mmistakes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.5","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"1.8.0","license":"MIT","stars":800,"forks":500,"features":["6 built-in colour skins","Off-canvas slide-out menu","Resume/CV page layout","Responsive design","Syntax highlighting","Google Analytics","Disqus comments","Read time estimates","Social sharing","GitHub Pages compatible"],"slug":"basically-basic","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Aura is a versatile Jekyll theme built for content creators, writers, and developers who need more than just a blog. It ships with dedicated sections for blog posts, projects, and testimonials — everything you need to build a personal site that represents you fully.\n\nThe theme is a fork of [CloudCannon's Vonge template](https://github.com/CloudCannon/vonge-jekyll-bookshop-template), extended with GitHub Pages compatibility and a richer feature set. Blog posts support code highlighting, image galleries, embedded YouTube videos, and a full table of contents — making it equally at home for technical writers and creative bloggers.\n\n**Who is it for?** Developers and creators who want a single theme that handles a personal site, portfolio, and blog without switching between multiple themes. If you want to show off projects, collect testimonials, and write posts — all in one clean package — Aura is built for exactly that.\n\n**AuraPro** — a premium version with additional layouts and components — is also available at [jekyll-theme-aura-pro](https://satishw.github.io/jekyll-theme-aura-pro/features).\n","url":"/themes/aura/","draft":false,"categories":["Personal"],"layout":"theme","price_type":"free","featured":true,"dark_mode":false,"responsive":true,"title":"Aura Jekyll Theme","description":"Versatile Jekyll theme designed for content creators, writers, and developers. Ships with blog, projects, testimonials, and portfolio sections — fully compatible with GitHub Pages.","key_features":["GitHub Pages","Blog & Projects","Testimonials","Contact Form"],"card_description":"Versatile Jekyll theme for creators and developers — blog, projects, and portfolio ready.","category":"Personal","card_image":"/assets/images/themes/aura-card.webp","theme_screenshots":["/assets/images/themes/aura-screenshot.webp","/assets/images/themes/aura-screenshot-2.webp","/assets/images/themes/aura-screenshot-3.webp"],"demo_url":"https://satishw.github.io/jekyll-theme-aura/","github_url":"https://github.com/satishw/jekyll-theme-aura","author":"Satish W","github_author_name":"Satish W","github_author_url":"https://github.com/satishw","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2025-01-25","added_at":"2026-02-10","popular":false,"trending":true,"bestseller":false,"version":"1.0.0","license":"MIT","stars":0,"forks":0,"features":["Fully compatible with GitHub Pages — no custom plugins required","Blog section with tag pages and code highlighting","Projects section to showcase your work","Testimonials section for social proof","Contact form via Formspree (no backend needed)","MailChimp newsletter integration","Disqus comments support","Image gallery with lazy loading","Embedded YouTube video support","Social sharing buttons on posts","Google Analytics integration","Scroll-to-top button and responsive mobile layout"],"slug":"aura","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/basically-basic","collection":"themes","next":{"path":"_themes/beautiful-jekyll.md","relative_path":"_themes/beautiful-jekyll.md","excerpt":"<p>Beautiful Jekyll is one of the most widely-used Jekyll themes on GitHub. Its combination of ease of setup, clean design, and deep customisability has made it the go-to choice for thousands of developers building personal blogs and project sites.</p>\n\n","previous":{"path":"_themes/basically-basic.md","relative_path":"_themes/basically-basic.md","id":"/themes/basically-basic","collection":"themes","url":"/themes/basically-basic/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Basically Basic Jekyll Theme","description":"Your new Jekyll default theme — a modern, polished substitute for Minima. Six customisable colour skins, resume layout, off-canvas menu, and everything Minima should have been.","key_features":["6 Color Skins","Resume Layout","Off-Canvas Menu","GitHub Pages"],"card_description":"Modern Minima replacement with six colour skins and a resume layout.","category":"Blog","card_image":"/assets/images/themes/basically-basic-card.webp","theme_screenshots":["/assets/images/themes/basically-basic-screenshot.webp","/assets/images/themes/basically-basic-screenshot-2.webp","/assets/images/themes/basically-basic-screenshot-3.webp"],"demo_url":"https://mmistakes.github.io/jekyll-theme-basically-basic/","github_url":"https://github.com/mmistakes/jekyll-theme-basically-basic","author":"GitHub Community","github_author_name":"mmistakes","github_author_url":"https://github.com/mmistakes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.5","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"1.8.0","license":"MIT","stars":800,"forks":500,"features":["6 built-in colour skins","Off-canvas slide-out menu","Resume/CV page layout","Responsive design","Syntax highlighting","Google Analytics","Disqus comments","Read time estimates","Social sharing","GitHub Pages compatible"],"slug":"basically-basic","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/beautiful-jekyll","collection":"themes","next":{"path":"_themes/bulma-clean-theme.md","relative_path":"_themes/bulma-clean-theme.md","id":"/themes/bulma-clean-theme","collection":"themes","url":"/themes/bulma-clean-theme/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Bulma Clean Theme Jekyll Theme","description":"A clean and modern Jekyll theme built with the Bulma CSS framework. Features a blog, portfolio, and docs-ready layout with extensive customisation.","key_features":["Bulma CSS","Portfolio Ready","Docs Layout","GitHub Pages"],"card_description":"Clean, modern Bulma CSS theme for blogs, portfolios, and docs.","category":"Blog","card_image":"/assets/images/themes/bulma-clean-theme-card.webp","theme_screenshots":["/assets/images/themes/bulma-clean-theme-screenshot.webp","/assets/images/themes/bulma-clean-theme-screenshot-2.webp","/assets/images/themes/bulma-clean-theme-screenshot-3.webp"],"demo_url":"https://www.csrhymes.com/bulma-clean-theme/","github_url":"https://github.com/chrisrhymes/bulma-clean-theme","author":"GitHub Community","github_author_name":"chrisrhymes","github_author_url":"https://github.com/chrisrhymes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-paginate"],"updated_at":"2025-06-03","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"0.14.0","license":"MIT","stars":407,"forks":196,"features":["Bulma CSS framework","Blog and portfolio layouts","Documentation-ready structure","Hero image sections","Call-to-action blocks","Product showcase pages","Notification banners","Tabs and cards components","GitHub Pages compatible","Extensively documented"],"slug":"bulma-clean-theme","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Beautiful Jekyll is one of the most widely-used Jekyll themes on GitHub. Its combination of ease of setup, clean design, and deep customisability has made it the go-to choice for thousands of developers building personal blogs and project sites.\n\nYou can go from zero to a live blog on GitHub Pages in minutes — fork the repo, update `_config.yml`, and you're done.\n\n**Who is it for?** Anyone who wants a polished blog on GitHub Pages with minimal setup and maximum flexibility.\n","url":"/themes/beautiful-jekyll/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":true,"dark_mode":false,"responsive":true,"title":"Beautiful Jekyll","description":"One of the most popular Jekyll blog themes. Easy to set up, highly customisable, and works perfectly on GitHub Pages.","key_features":["Quick Setup","GitHub Pages","Social Links","Highly Customisable"],"card_description":"Highly popular blog theme — easy setup, works on GitHub Pages.","category":"Blog","card_image":"/assets/images/themes/beautiful-jekyll-card.webp","theme_screenshots":["/assets/images/themes/beautiful-jekyll-screenshot.webp","/assets/images/themes/beautiful-jekyll-screenshot-2.webp","/assets/images/themes/beautiful-jekyll-screenshot-3.webp"],"demo_url":"https://beautifuljekyll.com/","github_url":"https://github.com/daattali/beautiful-jekyll","author":"GitHub Community","github_author_name":"Dean Attali","github_author_url":"https://github.com/daattali","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2024-04-01","added_at":"2026-01-20","popular":true,"trending":false,"bestseller":false,"version":"6.0.1","license":"MIT","stars":6200,"forks":18900,"features":["Multiple colour schemes","Disqus comments","Google Analytics","Social sharing","Image thumbnails on posts","Footer links"],"slug":"beautiful-jekyll","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Basically Basic is Michael Rose's answer to the question: what if Minima was actually good? It keeps the simplicity and GitHub Pages compatibility of Jekyll's default theme, but adds six colour skins, an off-canvas navigation menu, a dedicated resume layout, and the overall polish you'd expect from the author of Minimal Mistakes.\n\nIt's the theme to recommend when someone asks for something simple but not boring, and it works straight out of the box with GitHub Pages.\n\n**Who is it for?** Developers and writers who want a step up from Minima without jumping into the full complexity of Minimal Mistakes — a clean, modern blog with useful extras and zero setup friction.\n","url":"/themes/basically-basic/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Basically Basic Jekyll Theme","description":"Your new Jekyll default theme — a modern, polished substitute for Minima. Six customisable colour skins, resume layout, off-canvas menu, and everything Minima should have been.","key_features":["6 Color Skins","Resume Layout","Off-Canvas Menu","GitHub Pages"],"card_description":"Modern Minima replacement with six colour skins and a resume layout.","category":"Blog","card_image":"/assets/images/themes/basically-basic-card.webp","theme_screenshots":["/assets/images/themes/basically-basic-screenshot.webp","/assets/images/themes/basically-basic-screenshot-2.webp","/assets/images/themes/basically-basic-screenshot-3.webp"],"demo_url":"https://mmistakes.github.io/jekyll-theme-basically-basic/","github_url":"https://github.com/mmistakes/jekyll-theme-basically-basic","author":"GitHub Community","github_author_name":"mmistakes","github_author_url":"https://github.com/mmistakes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.5","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"1.8.0","license":"MIT","stars":800,"forks":500,"features":["6 built-in colour skins","Off-canvas slide-out menu","Resume/CV page layout","Responsive design","Syntax highlighting","Google Analytics","Disqus comments","Read time estimates","Social sharing","GitHub Pages compatible"],"slug":"basically-basic","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/beautiful-jekyll.md","relative_path":"_themes/beautiful-jekyll.md","excerpt":"<p>Beautiful Jekyll is one of the most widely-used Jekyll themes on GitHub. Its combination of ease of setup, clean design, and deep customisability has made it the go-to choice for thousands of developers building personal blogs and project sites.</p>\n\n","previous":{"path":"_themes/basically-basic.md","relative_path":"_themes/basically-basic.md","excerpt":"<p>Basically Basic is Michael Rose’s answer to the question: what if Minima was actually good? It keeps the simplicity and GitHub Pages compatibility of Jekyll’s default theme, but adds six colour skins, an off-canvas navigation menu, a dedicated resume layout, and the overall polish you’d expect from the author of Minimal Mistakes.</p>\n\n","previous":{"path":"_themes/aura.md","relative_path":"_themes/aura.md","id":"/themes/aura","collection":"themes","url":"/themes/aura/","draft":false,"categories":["Personal"],"layout":"theme","price_type":"free","featured":true,"dark_mode":false,"responsive":true,"title":"Aura Jekyll Theme","description":"Versatile Jekyll theme designed for content creators, writers, and developers. Ships with blog, projects, testimonials, and portfolio sections — fully compatible with GitHub Pages.","key_features":["GitHub Pages","Blog & Projects","Testimonials","Contact Form"],"card_description":"Versatile Jekyll theme for creators and developers — blog, projects, and portfolio ready.","category":"Personal","card_image":"/assets/images/themes/aura-card.webp","theme_screenshots":["/assets/images/themes/aura-screenshot.webp","/assets/images/themes/aura-screenshot-2.webp","/assets/images/themes/aura-screenshot-3.webp"],"demo_url":"https://satishw.github.io/jekyll-theme-aura/","github_url":"https://github.com/satishw/jekyll-theme-aura","author":"Satish W","github_author_name":"Satish W","github_author_url":"https://github.com/satishw","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2025-01-25","added_at":"2026-02-10","popular":false,"trending":true,"bestseller":false,"version":"1.0.0","license":"MIT","stars":0,"forks":0,"features":["Fully compatible with GitHub Pages — no custom plugins required","Blog section with tag pages and code highlighting","Projects section to showcase your work","Testimonials section for social proof","Contact form via Formspree (no backend needed)","MailChimp newsletter integration","Disqus comments support","Image gallery with lazy loading","Embedded YouTube video support","Social sharing buttons on posts","Google Analytics integration","Scroll-to-top button and responsive mobile layout"],"slug":"aura","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/basically-basic","collection":"themes","next":{"path":"_themes/beautiful-jekyll.md","relative_path":"_themes/beautiful-jekyll.md","id":"/themes/beautiful-jekyll","collection":"themes","url":"/themes/beautiful-jekyll/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":true,"dark_mode":false,"responsive":true,"title":"Beautiful Jekyll","description":"One of the most popular Jekyll blog themes. Easy to set up, highly customisable, and works perfectly on GitHub Pages.","key_features":["Quick Setup","GitHub Pages","Social Links","Highly Customisable"],"card_description":"Highly popular blog theme — easy setup, works on GitHub Pages.","category":"Blog","card_image":"/assets/images/themes/beautiful-jekyll-card.webp","theme_screenshots":["/assets/images/themes/beautiful-jekyll-screenshot.webp","/assets/images/themes/beautiful-jekyll-screenshot-2.webp","/assets/images/themes/beautiful-jekyll-screenshot-3.webp"],"demo_url":"https://beautifuljekyll.com/","github_url":"https://github.com/daattali/beautiful-jekyll","author":"GitHub Community","github_author_name":"Dean Attali","github_author_url":"https://github.com/daattali","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2024-04-01","added_at":"2026-01-20","popular":true,"trending":false,"bestseller":false,"version":"6.0.1","license":"MIT","stars":6200,"forks":18900,"features":["Multiple colour schemes","Disqus comments","Google Analytics","Social sharing","Image thumbnails on posts","Footer links"],"slug":"beautiful-jekyll","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Basically Basic is Michael Rose's answer to the question: what if Minima was actually good? It keeps the simplicity and GitHub Pages compatibility of Jekyll's default theme, but adds six colour skins, an off-canvas navigation menu, a dedicated resume layout, and the overall polish you'd expect from the author of Minimal Mistakes.\n\nIt's the theme to recommend when someone asks for something simple but not boring, and it works straight out of the box with GitHub Pages.\n\n**Who is it for?** Developers and writers who want a step up from Minima without jumping into the full complexity of Minimal Mistakes — a clean, modern blog with useful extras and zero setup friction.\n","url":"/themes/basically-basic/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Basically Basic Jekyll Theme","description":"Your new Jekyll default theme — a modern, polished substitute for Minima. Six customisable colour skins, resume layout, off-canvas menu, and everything Minima should have been.","key_features":["6 Color Skins","Resume Layout","Off-Canvas Menu","GitHub Pages"],"card_description":"Modern Minima replacement with six colour skins and a resume layout.","category":"Blog","card_image":"/assets/images/themes/basically-basic-card.webp","theme_screenshots":["/assets/images/themes/basically-basic-screenshot.webp","/assets/images/themes/basically-basic-screenshot-2.webp","/assets/images/themes/basically-basic-screenshot-3.webp"],"demo_url":"https://mmistakes.github.io/jekyll-theme-basically-basic/","github_url":"https://github.com/mmistakes/jekyll-theme-basically-basic","author":"GitHub Community","github_author_name":"mmistakes","github_author_url":"https://github.com/mmistakes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.5","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"1.8.0","license":"MIT","stars":800,"forks":500,"features":["6 built-in colour skins","Off-canvas slide-out menu","Resume/CV page layout","Responsive design","Syntax highlighting","Google Analytics","Disqus comments","Read time estimates","Social sharing","GitHub Pages compatible"],"slug":"basically-basic","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/beautiful-jekyll","collection":"themes","next":{"path":"_themes/bulma-clean-theme.md","relative_path":"_themes/bulma-clean-theme.md","excerpt":"<p>Bulma Clean Theme leverages the Bulma CSS framework to deliver a modern, component-rich Jekyll theme. Beyond a standard blog layout, it includes portfolio pages, product showcases, and documentation-style layouts.</p>\n\n","previous":{"path":"_themes/beautiful-jekyll.md","relative_path":"_themes/beautiful-jekyll.md","id":"/themes/beautiful-jekyll","collection":"themes","url":"/themes/beautiful-jekyll/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":true,"dark_mode":false,"responsive":true,"title":"Beautiful Jekyll","description":"One of the most popular Jekyll blog themes. Easy to set up, highly customisable, and works perfectly on GitHub Pages.","key_features":["Quick Setup","GitHub Pages","Social Links","Highly Customisable"],"card_description":"Highly popular blog theme — easy setup, works on GitHub Pages.","category":"Blog","card_image":"/assets/images/themes/beautiful-jekyll-card.webp","theme_screenshots":["/assets/images/themes/beautiful-jekyll-screenshot.webp","/assets/images/themes/beautiful-jekyll-screenshot-2.webp","/assets/images/themes/beautiful-jekyll-screenshot-3.webp"],"demo_url":"https://beautifuljekyll.com/","github_url":"https://github.com/daattali/beautiful-jekyll","author":"GitHub Community","github_author_name":"Dean Attali","github_author_url":"https://github.com/daattali","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2024-04-01","added_at":"2026-01-20","popular":true,"trending":false,"bestseller":false,"version":"6.0.1","license":"MIT","stars":6200,"forks":18900,"features":["Multiple colour schemes","Disqus comments","Google Analytics","Social sharing","Image thumbnails on posts","Footer links"],"slug":"beautiful-jekyll","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/bulma-clean-theme","collection":"themes","next":{"path":"_themes/cayman.md","relative_path":"_themes/cayman.md","id":"/themes/cayman","collection":"themes","url":"/themes/cayman/","draft":false,"categories":["Documentation"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Cayman Jekyll Theme","description":"A bright, clean GitHub Pages Jekyll theme with a large hero header and fluid typography. Simple and polished for project landing pages.","key_features":["GitHub Pages","Hero Header","Clean Layout","Project Docs"],"card_description":"Bright GitHub Pages theme with large hero header for project sites.","category":"Documentation","card_image":"/assets/images/themes/cayman-card.webp","theme_screenshots":["/assets/images/themes/cayman-screenshot.webp","/assets/images/themes/cayman-screenshot-2.webp","/assets/images/themes/cayman-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/cayman/","github_url":"https://github.com/pages-themes/cayman","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-09-01","added_at":"2026-02-20","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0","stars":2100,"forks":5700,"features":["Teal gradient header","Download buttons","Clean single-column layout","GitHub Pages native","SEO tag support"],"slug":"cayman","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Bulma Clean Theme leverages the Bulma CSS framework to deliver a modern, component-rich Jekyll theme. Beyond a standard blog layout, it includes portfolio pages, product showcases, and documentation-style layouts.\n\nThe theme is actively maintained and comes with thorough documentation, making it approachable for developers of all experience levels.\n\n**Who is it for?** Developers who want a modern Bulma-based theme with more layout variety than a typical blog theme.\n","url":"/themes/bulma-clean-theme/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Bulma Clean Theme Jekyll Theme","description":"A clean and modern Jekyll theme built with the Bulma CSS framework. Features a blog, portfolio, and docs-ready layout with extensive customisation.","key_features":["Bulma CSS","Portfolio Ready","Docs Layout","GitHub Pages"],"card_description":"Clean, modern Bulma CSS theme for blogs, portfolios, and docs.","category":"Blog","card_image":"/assets/images/themes/bulma-clean-theme-card.webp","theme_screenshots":["/assets/images/themes/bulma-clean-theme-screenshot.webp","/assets/images/themes/bulma-clean-theme-screenshot-2.webp","/assets/images/themes/bulma-clean-theme-screenshot-3.webp"],"demo_url":"https://www.csrhymes.com/bulma-clean-theme/","github_url":"https://github.com/chrisrhymes/bulma-clean-theme","author":"GitHub Community","github_author_name":"chrisrhymes","github_author_url":"https://github.com/chrisrhymes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-paginate"],"updated_at":"2025-06-03","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"0.14.0","license":"MIT","stars":407,"forks":196,"features":["Bulma CSS framework","Blog and portfolio layouts","Documentation-ready structure","Hero image sections","Call-to-action blocks","Product showcase pages","Notification banners","Tabs and cards components","GitHub Pages compatible","Extensively documented"],"slug":"bulma-clean-theme","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Beautiful Jekyll is one of the most widely-used Jekyll themes on GitHub. Its combination of ease of setup, clean design, and deep customisability has made it the go-to choice for thousands of developers building personal blogs and project sites.\n\nYou can go from zero to a live blog on GitHub Pages in minutes — fork the repo, update `_config.yml`, and you're done.\n\n**Who is it for?** Anyone who wants a polished blog on GitHub Pages with minimal setup and maximum flexibility.\n","url":"/themes/beautiful-jekyll/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":true,"dark_mode":false,"responsive":true,"title":"Beautiful Jekyll","description":"One of the most popular Jekyll blog themes. Easy to set up, highly customisable, and works perfectly on GitHub Pages.","key_features":["Quick Setup","GitHub Pages","Social Links","Highly Customisable"],"card_description":"Highly popular blog theme — easy setup, works on GitHub Pages.","category":"Blog","card_image":"/assets/images/themes/beautiful-jekyll-card.webp","theme_screenshots":["/assets/images/themes/beautiful-jekyll-screenshot.webp","/assets/images/themes/beautiful-jekyll-screenshot-2.webp","/assets/images/themes/beautiful-jekyll-screenshot-3.webp"],"demo_url":"https://beautifuljekyll.com/","github_url":"https://github.com/daattali/beautiful-jekyll","author":"GitHub Community","github_author_name":"Dean Attali","github_author_url":"https://github.com/daattali","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2024-04-01","added_at":"2026-01-20","popular":true,"trending":false,"bestseller":false,"version":"6.0.1","license":"MIT","stars":6200,"forks":18900,"features":["Multiple colour schemes","Disqus comments","Google Analytics","Social sharing","Image thumbnails on posts","Footer links"],"slug":"beautiful-jekyll","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/bulma-clean-theme.md","relative_path":"_themes/bulma-clean-theme.md","excerpt":"<p>Bulma Clean Theme leverages the Bulma CSS framework to deliver a modern, component-rich Jekyll theme. Beyond a standard blog layout, it includes portfolio pages, product showcases, and documentation-style layouts.</p>\n\n","previous":{"path":"_themes/beautiful-jekyll.md","relative_path":"_themes/beautiful-jekyll.md","excerpt":"<p>Beautiful Jekyll is one of the most widely-used Jekyll themes on GitHub. Its combination of ease of setup, clean design, and deep customisability has made it the go-to choice for thousands of developers building personal blogs and project sites.</p>\n\n","previous":{"path":"_themes/basically-basic.md","relative_path":"_themes/basically-basic.md","id":"/themes/basically-basic","collection":"themes","url":"/themes/basically-basic/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Basically Basic Jekyll Theme","description":"Your new Jekyll default theme — a modern, polished substitute for Minima. Six customisable colour skins, resume layout, off-canvas menu, and everything Minima should have been.","key_features":["6 Color Skins","Resume Layout","Off-Canvas Menu","GitHub Pages"],"card_description":"Modern Minima replacement with six colour skins and a resume layout.","category":"Blog","card_image":"/assets/images/themes/basically-basic-card.webp","theme_screenshots":["/assets/images/themes/basically-basic-screenshot.webp","/assets/images/themes/basically-basic-screenshot-2.webp","/assets/images/themes/basically-basic-screenshot-3.webp"],"demo_url":"https://mmistakes.github.io/jekyll-theme-basically-basic/","github_url":"https://github.com/mmistakes/jekyll-theme-basically-basic","author":"GitHub Community","github_author_name":"mmistakes","github_author_url":"https://github.com/mmistakes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.5","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"1.8.0","license":"MIT","stars":800,"forks":500,"features":["6 built-in colour skins","Off-canvas slide-out menu","Resume/CV page layout","Responsive design","Syntax highlighting","Google Analytics","Disqus comments","Read time estimates","Social sharing","GitHub Pages compatible"],"slug":"basically-basic","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/beautiful-jekyll","collection":"themes","next":{"path":"_themes/bulma-clean-theme.md","relative_path":"_themes/bulma-clean-theme.md","id":"/themes/bulma-clean-theme","collection":"themes","url":"/themes/bulma-clean-theme/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Bulma Clean Theme Jekyll Theme","description":"A clean and modern Jekyll theme built with the Bulma CSS framework. Features a blog, portfolio, and docs-ready layout with extensive customisation.","key_features":["Bulma CSS","Portfolio Ready","Docs Layout","GitHub Pages"],"card_description":"Clean, modern Bulma CSS theme for blogs, portfolios, and docs.","category":"Blog","card_image":"/assets/images/themes/bulma-clean-theme-card.webp","theme_screenshots":["/assets/images/themes/bulma-clean-theme-screenshot.webp","/assets/images/themes/bulma-clean-theme-screenshot-2.webp","/assets/images/themes/bulma-clean-theme-screenshot-3.webp"],"demo_url":"https://www.csrhymes.com/bulma-clean-theme/","github_url":"https://github.com/chrisrhymes/bulma-clean-theme","author":"GitHub Community","github_author_name":"chrisrhymes","github_author_url":"https://github.com/chrisrhymes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-paginate"],"updated_at":"2025-06-03","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"0.14.0","license":"MIT","stars":407,"forks":196,"features":["Bulma CSS framework","Blog and portfolio layouts","Documentation-ready structure","Hero image sections","Call-to-action blocks","Product showcase pages","Notification banners","Tabs and cards components","GitHub Pages compatible","Extensively documented"],"slug":"bulma-clean-theme","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Beautiful Jekyll is one of the most widely-used Jekyll themes on GitHub. Its combination of ease of setup, clean design, and deep customisability has made it the go-to choice for thousands of developers building personal blogs and project sites.\n\nYou can go from zero to a live blog on GitHub Pages in minutes — fork the repo, update `_config.yml`, and you're done.\n\n**Who is it for?** Anyone who wants a polished blog on GitHub Pages with minimal setup and maximum flexibility.\n","url":"/themes/beautiful-jekyll/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":true,"dark_mode":false,"responsive":true,"title":"Beautiful Jekyll","description":"One of the most popular Jekyll blog themes. Easy to set up, highly customisable, and works perfectly on GitHub Pages.","key_features":["Quick Setup","GitHub Pages","Social Links","Highly Customisable"],"card_description":"Highly popular blog theme — easy setup, works on GitHub Pages.","category":"Blog","card_image":"/assets/images/themes/beautiful-jekyll-card.webp","theme_screenshots":["/assets/images/themes/beautiful-jekyll-screenshot.webp","/assets/images/themes/beautiful-jekyll-screenshot-2.webp","/assets/images/themes/beautiful-jekyll-screenshot-3.webp"],"demo_url":"https://beautifuljekyll.com/","github_url":"https://github.com/daattali/beautiful-jekyll","author":"GitHub Community","github_author_name":"Dean Attali","github_author_url":"https://github.com/daattali","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2024-04-01","added_at":"2026-01-20","popular":true,"trending":false,"bestseller":false,"version":"6.0.1","license":"MIT","stars":6200,"forks":18900,"features":["Multiple colour schemes","Disqus comments","Google Analytics","Social sharing","Image thumbnails on posts","Footer links"],"slug":"beautiful-jekyll","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/bulma-clean-theme","collection":"themes","next":{"path":"_themes/cayman.md","relative_path":"_themes/cayman.md","excerpt":"<p>Cayman is the classic GitHub Pages documentation theme, recognisable by its signature teal gradient header. It’s the cleanest way to turn a repository’s README into a polished project page.</p>\n\n","previous":{"path":"_themes/bulma-clean-theme.md","relative_path":"_themes/bulma-clean-theme.md","id":"/themes/bulma-clean-theme","collection":"themes","url":"/themes/bulma-clean-theme/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Bulma Clean Theme Jekyll Theme","description":"A clean and modern Jekyll theme built with the Bulma CSS framework. Features a blog, portfolio, and docs-ready layout with extensive customisation.","key_features":["Bulma CSS","Portfolio Ready","Docs Layout","GitHub Pages"],"card_description":"Clean, modern Bulma CSS theme for blogs, portfolios, and docs.","category":"Blog","card_image":"/assets/images/themes/bulma-clean-theme-card.webp","theme_screenshots":["/assets/images/themes/bulma-clean-theme-screenshot.webp","/assets/images/themes/bulma-clean-theme-screenshot-2.webp","/assets/images/themes/bulma-clean-theme-screenshot-3.webp"],"demo_url":"https://www.csrhymes.com/bulma-clean-theme/","github_url":"https://github.com/chrisrhymes/bulma-clean-theme","author":"GitHub Community","github_author_name":"chrisrhymes","github_author_url":"https://github.com/chrisrhymes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-paginate"],"updated_at":"2025-06-03","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"0.14.0","license":"MIT","stars":407,"forks":196,"features":["Bulma CSS framework","Blog and portfolio layouts","Documentation-ready structure","Hero image sections","Call-to-action blocks","Product showcase pages","Notification banners","Tabs and cards components","GitHub Pages compatible","Extensively documented"],"slug":"bulma-clean-theme","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/cayman","collection":"themes","next":{"path":"_themes/centrarium.md","relative_path":"_themes/centrarium.md","id":"/themes/centrarium","collection":"themes","url":"/themes/centrarium/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Centrarium Jekyll Theme","description":"A simple, classy Jekyll blog theme with a large header image, featured posts, category pages, and Google Analytics integration.","key_features":["Featured Images","Category Pages","Analytics Ready","GitHub Pages"],"card_description":"Classy blog theme with large header images and featured posts.","category":"Blog","card_image":"/assets/images/themes/centrarium-card.webp","theme_screenshots":["/assets/images/themes/centrarium-screenshot.webp","/assets/images/themes/centrarium-screenshot-2.webp","/assets/images/themes/centrarium-screenshot-3.webp"],"demo_url":"https://bencentra.com/centrarium/","github_url":"https://github.com/bencentra/centrarium","author":"GitHub Community","github_author_name":"bencentra","github_author_url":"https://github.com/bencentra","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-paginate"],"updated_at":"2024-08-15","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"2.0.0","license":"MIT","stars":444,"forks":251,"features":["Large hero header image","Featured post support","Category archive pages","Tag archive pages","Disqus comments","Google Analytics","Social share buttons","Paginated post list","GitHub Pages compatible","Responsive design"],"slug":"centrarium","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Cayman is the classic GitHub Pages documentation theme, recognisable by its signature teal gradient header. It's the cleanest way to turn a repository's README into a polished project page.\n\nBuilt and maintained by GitHub itself, it's always up to date with the latest GitHub Pages Jekyll version.\n\n**Who is it for?** Open source projects, GitHub Pages documentation sites, and anyone who wants the classic, trusted project page look.\n","url":"/themes/cayman/","draft":false,"categories":["Documentation"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Cayman Jekyll Theme","description":"A bright, clean GitHub Pages Jekyll theme with a large hero header and fluid typography. Simple and polished for project landing pages.","key_features":["GitHub Pages","Hero Header","Clean Layout","Project Docs"],"card_description":"Bright GitHub Pages theme with large hero header for project sites.","category":"Documentation","card_image":"/assets/images/themes/cayman-card.webp","theme_screenshots":["/assets/images/themes/cayman-screenshot.webp","/assets/images/themes/cayman-screenshot-2.webp","/assets/images/themes/cayman-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/cayman/","github_url":"https://github.com/pages-themes/cayman","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-09-01","added_at":"2026-02-20","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0","stars":2100,"forks":5700,"features":["Teal gradient header","Download buttons","Clean single-column layout","GitHub Pages native","SEO tag support"],"slug":"cayman","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Bulma Clean Theme leverages the Bulma CSS framework to deliver a modern, component-rich Jekyll theme. Beyond a standard blog layout, it includes portfolio pages, product showcases, and documentation-style layouts.\n\nThe theme is actively maintained and comes with thorough documentation, making it approachable for developers of all experience levels.\n\n**Who is it for?** Developers who want a modern Bulma-based theme with more layout variety than a typical blog theme.\n","url":"/themes/bulma-clean-theme/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Bulma Clean Theme Jekyll Theme","description":"A clean and modern Jekyll theme built with the Bulma CSS framework. Features a blog, portfolio, and docs-ready layout with extensive customisation.","key_features":["Bulma CSS","Portfolio Ready","Docs Layout","GitHub Pages"],"card_description":"Clean, modern Bulma CSS theme for blogs, portfolios, and docs.","category":"Blog","card_image":"/assets/images/themes/bulma-clean-theme-card.webp","theme_screenshots":["/assets/images/themes/bulma-clean-theme-screenshot.webp","/assets/images/themes/bulma-clean-theme-screenshot-2.webp","/assets/images/themes/bulma-clean-theme-screenshot-3.webp"],"demo_url":"https://www.csrhymes.com/bulma-clean-theme/","github_url":"https://github.com/chrisrhymes/bulma-clean-theme","author":"GitHub Community","github_author_name":"chrisrhymes","github_author_url":"https://github.com/chrisrhymes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-paginate"],"updated_at":"2025-06-03","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"0.14.0","license":"MIT","stars":407,"forks":196,"features":["Bulma CSS framework","Blog and portfolio layouts","Documentation-ready structure","Hero image sections","Call-to-action blocks","Product showcase pages","Notification banners","Tabs and cards components","GitHub Pages compatible","Extensively documented"],"slug":"bulma-clean-theme","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/cayman.md","relative_path":"_themes/cayman.md","excerpt":"<p>Cayman is the classic GitHub Pages documentation theme, recognisable by its signature teal gradient header. It’s the cleanest way to turn a repository’s README into a polished project page.</p>\n\n","previous":{"path":"_themes/bulma-clean-theme.md","relative_path":"_themes/bulma-clean-theme.md","excerpt":"<p>Bulma Clean Theme leverages the Bulma CSS framework to deliver a modern, component-rich Jekyll theme. Beyond a standard blog layout, it includes portfolio pages, product showcases, and documentation-style layouts.</p>\n\n","previous":{"path":"_themes/beautiful-jekyll.md","relative_path":"_themes/beautiful-jekyll.md","id":"/themes/beautiful-jekyll","collection":"themes","url":"/themes/beautiful-jekyll/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":true,"dark_mode":false,"responsive":true,"title":"Beautiful Jekyll","description":"One of the most popular Jekyll blog themes. Easy to set up, highly customisable, and works perfectly on GitHub Pages.","key_features":["Quick Setup","GitHub Pages","Social Links","Highly Customisable"],"card_description":"Highly popular blog theme — easy setup, works on GitHub Pages.","category":"Blog","card_image":"/assets/images/themes/beautiful-jekyll-card.webp","theme_screenshots":["/assets/images/themes/beautiful-jekyll-screenshot.webp","/assets/images/themes/beautiful-jekyll-screenshot-2.webp","/assets/images/themes/beautiful-jekyll-screenshot-3.webp"],"demo_url":"https://beautifuljekyll.com/","github_url":"https://github.com/daattali/beautiful-jekyll","author":"GitHub Community","github_author_name":"Dean Attali","github_author_url":"https://github.com/daattali","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2024-04-01","added_at":"2026-01-20","popular":true,"trending":false,"bestseller":false,"version":"6.0.1","license":"MIT","stars":6200,"forks":18900,"features":["Multiple colour schemes","Disqus comments","Google Analytics","Social sharing","Image thumbnails on posts","Footer links"],"slug":"beautiful-jekyll","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/bulma-clean-theme","collection":"themes","next":{"path":"_themes/cayman.md","relative_path":"_themes/cayman.md","id":"/themes/cayman","collection":"themes","url":"/themes/cayman/","draft":false,"categories":["Documentation"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Cayman Jekyll Theme","description":"A bright, clean GitHub Pages Jekyll theme with a large hero header and fluid typography. Simple and polished for project landing pages.","key_features":["GitHub Pages","Hero Header","Clean Layout","Project Docs"],"card_description":"Bright GitHub Pages theme with large hero header for project sites.","category":"Documentation","card_image":"/assets/images/themes/cayman-card.webp","theme_screenshots":["/assets/images/themes/cayman-screenshot.webp","/assets/images/themes/cayman-screenshot-2.webp","/assets/images/themes/cayman-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/cayman/","github_url":"https://github.com/pages-themes/cayman","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-09-01","added_at":"2026-02-20","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0","stars":2100,"forks":5700,"features":["Teal gradient header","Download buttons","Clean single-column layout","GitHub Pages native","SEO tag support"],"slug":"cayman","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Bulma Clean Theme leverages the Bulma CSS framework to deliver a modern, component-rich Jekyll theme. Beyond a standard blog layout, it includes portfolio pages, product showcases, and documentation-style layouts.\n\nThe theme is actively maintained and comes with thorough documentation, making it approachable for developers of all experience levels.\n\n**Who is it for?** Developers who want a modern Bulma-based theme with more layout variety than a typical blog theme.\n","url":"/themes/bulma-clean-theme/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Bulma Clean Theme Jekyll Theme","description":"A clean and modern Jekyll theme built with the Bulma CSS framework. Features a blog, portfolio, and docs-ready layout with extensive customisation.","key_features":["Bulma CSS","Portfolio Ready","Docs Layout","GitHub Pages"],"card_description":"Clean, modern Bulma CSS theme for blogs, portfolios, and docs.","category":"Blog","card_image":"/assets/images/themes/bulma-clean-theme-card.webp","theme_screenshots":["/assets/images/themes/bulma-clean-theme-screenshot.webp","/assets/images/themes/bulma-clean-theme-screenshot-2.webp","/assets/images/themes/bulma-clean-theme-screenshot-3.webp"],"demo_url":"https://www.csrhymes.com/bulma-clean-theme/","github_url":"https://github.com/chrisrhymes/bulma-clean-theme","author":"GitHub Community","github_author_name":"chrisrhymes","github_author_url":"https://github.com/chrisrhymes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-paginate"],"updated_at":"2025-06-03","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"0.14.0","license":"MIT","stars":407,"forks":196,"features":["Bulma CSS framework","Blog and portfolio layouts","Documentation-ready structure","Hero image sections","Call-to-action blocks","Product showcase pages","Notification banners","Tabs and cards components","GitHub Pages compatible","Extensively documented"],"slug":"bulma-clean-theme","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/cayman","collection":"themes","next":{"path":"_themes/centrarium.md","relative_path":"_themes/centrarium.md","excerpt":"<p>Centrarium balances a clean, classy aesthetic with a generous feature set. The large header image gives each page a visual anchor, while the well-structured navigation makes it easy to explore categories and tags.</p>\n\n","previous":{"path":"_themes/cayman.md","relative_path":"_themes/cayman.md","id":"/themes/cayman","collection":"themes","url":"/themes/cayman/","draft":false,"categories":["Documentation"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Cayman Jekyll Theme","description":"A bright, clean GitHub Pages Jekyll theme with a large hero header and fluid typography. Simple and polished for project landing pages.","key_features":["GitHub Pages","Hero Header","Clean Layout","Project Docs"],"card_description":"Bright GitHub Pages theme with large hero header for project sites.","category":"Documentation","card_image":"/assets/images/themes/cayman-card.webp","theme_screenshots":["/assets/images/themes/cayman-screenshot.webp","/assets/images/themes/cayman-screenshot-2.webp","/assets/images/themes/cayman-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/cayman/","github_url":"https://github.com/pages-themes/cayman","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-09-01","added_at":"2026-02-20","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0","stars":2100,"forks":5700,"features":["Teal gradient header","Download buttons","Clean single-column layout","GitHub Pages native","SEO tag support"],"slug":"cayman","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/centrarium","collection":"themes","next":{"path":"_themes/chalk.md","relative_path":"_themes/chalk.md","id":"/themes/chalk","collection":"themes","url":"/themes/chalk/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Chalk Jekyll Theme","description":"A high quality, completely customisable Jekyll blog theme. Features an elegant two-column layout, full-text search, category filtering, and subtle animations that make the experience feel alive.","key_features":["Full-Text Search","Tag Filtering","Subtle Animations","Category Pages"],"card_description":"Elegant two-column blog with full-text search and category filtering.","category":"Blog","card_image":"/assets/images/themes/chalk-card.webp","theme_screenshots":["/assets/images/themes/chalk-screenshot.webp","/assets/images/themes/chalk-screenshot-2.webp","/assets/images/themes/chalk-screenshot-3.webp"],"demo_url":"https://chalk.nielsenramon.com/","github_url":"https://github.com/nielsenramon/chalk","author":"GitHub Community","github_author_name":"nielsenramon","github_author_url":"https://github.com/nielsenramon","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":false,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2022-01-01","added_at":"2026-06-07","popular":false,"trending":true,"bestseller":false,"version":"2.3.0","license":"MIT","stars":1300,"forks":350,"features":["Two-column layout with elegant sidebar","Full-text search powered by Lunr.js","Category filtering on the post listing","Subtle CSS animations throughout","Cross browser compatible","Disqus comments","Google Analytics","Apple touch icon support","Environment-based configuration","SVG social icons"],"slug":"chalk","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Centrarium balances a clean, classy aesthetic with a generous feature set. The large header image gives each page a visual anchor, while the well-structured navigation makes it easy to explore categories and tags.\n\nFeatured posts can be pinned to highlight important content, and the comment system integrates cleanly with Disqus.\n\n**Who is it for?** Bloggers who want a polished, feature-complete theme without the complexity of larger frameworks like Minimal Mistakes.\n","url":"/themes/centrarium/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Centrarium Jekyll Theme","description":"A simple, classy Jekyll blog theme with a large header image, featured posts, category pages, and Google Analytics integration.","key_features":["Featured Images","Category Pages","Analytics Ready","GitHub Pages"],"card_description":"Classy blog theme with large header images and featured posts.","category":"Blog","card_image":"/assets/images/themes/centrarium-card.webp","theme_screenshots":["/assets/images/themes/centrarium-screenshot.webp","/assets/images/themes/centrarium-screenshot-2.webp","/assets/images/themes/centrarium-screenshot-3.webp"],"demo_url":"https://bencentra.com/centrarium/","github_url":"https://github.com/bencentra/centrarium","author":"GitHub Community","github_author_name":"bencentra","github_author_url":"https://github.com/bencentra","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-paginate"],"updated_at":"2024-08-15","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"2.0.0","license":"MIT","stars":444,"forks":251,"features":["Large hero header image","Featured post support","Category archive pages","Tag archive pages","Disqus comments","Google Analytics","Social share buttons","Paginated post list","GitHub Pages compatible","Responsive design"],"slug":"centrarium","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Cayman is the classic GitHub Pages documentation theme, recognisable by its signature teal gradient header. It's the cleanest way to turn a repository's README into a polished project page.\n\nBuilt and maintained by GitHub itself, it's always up to date with the latest GitHub Pages Jekyll version.\n\n**Who is it for?** Open source projects, GitHub Pages documentation sites, and anyone who wants the classic, trusted project page look.\n","url":"/themes/cayman/","draft":false,"categories":["Documentation"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Cayman Jekyll Theme","description":"A bright, clean GitHub Pages Jekyll theme with a large hero header and fluid typography. Simple and polished for project landing pages.","key_features":["GitHub Pages","Hero Header","Clean Layout","Project Docs"],"card_description":"Bright GitHub Pages theme with large hero header for project sites.","category":"Documentation","card_image":"/assets/images/themes/cayman-card.webp","theme_screenshots":["/assets/images/themes/cayman-screenshot.webp","/assets/images/themes/cayman-screenshot-2.webp","/assets/images/themes/cayman-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/cayman/","github_url":"https://github.com/pages-themes/cayman","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-09-01","added_at":"2026-02-20","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0","stars":2100,"forks":5700,"features":["Teal gradient header","Download buttons","Clean single-column layout","GitHub Pages native","SEO tag support"],"slug":"cayman","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/centrarium.md","relative_path":"_themes/centrarium.md","excerpt":"<p>Centrarium balances a clean, classy aesthetic with a generous feature set. The large header image gives each page a visual anchor, while the well-structured navigation makes it easy to explore categories and tags.</p>\n\n","previous":{"path":"_themes/cayman.md","relative_path":"_themes/cayman.md","excerpt":"<p>Cayman is the classic GitHub Pages documentation theme, recognisable by its signature teal gradient header. It’s the cleanest way to turn a repository’s README into a polished project page.</p>\n\n","previous":{"path":"_themes/bulma-clean-theme.md","relative_path":"_themes/bulma-clean-theme.md","id":"/themes/bulma-clean-theme","collection":"themes","url":"/themes/bulma-clean-theme/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Bulma Clean Theme Jekyll Theme","description":"A clean and modern Jekyll theme built with the Bulma CSS framework. Features a blog, portfolio, and docs-ready layout with extensive customisation.","key_features":["Bulma CSS","Portfolio Ready","Docs Layout","GitHub Pages"],"card_description":"Clean, modern Bulma CSS theme for blogs, portfolios, and docs.","category":"Blog","card_image":"/assets/images/themes/bulma-clean-theme-card.webp","theme_screenshots":["/assets/images/themes/bulma-clean-theme-screenshot.webp","/assets/images/themes/bulma-clean-theme-screenshot-2.webp","/assets/images/themes/bulma-clean-theme-screenshot-3.webp"],"demo_url":"https://www.csrhymes.com/bulma-clean-theme/","github_url":"https://github.com/chrisrhymes/bulma-clean-theme","author":"GitHub Community","github_author_name":"chrisrhymes","github_author_url":"https://github.com/chrisrhymes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-paginate"],"updated_at":"2025-06-03","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"0.14.0","license":"MIT","stars":407,"forks":196,"features":["Bulma CSS framework","Blog and portfolio layouts","Documentation-ready structure","Hero image sections","Call-to-action blocks","Product showcase pages","Notification banners","Tabs and cards components","GitHub Pages compatible","Extensively documented"],"slug":"bulma-clean-theme","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/cayman","collection":"themes","next":{"path":"_themes/centrarium.md","relative_path":"_themes/centrarium.md","id":"/themes/centrarium","collection":"themes","url":"/themes/centrarium/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Centrarium Jekyll Theme","description":"A simple, classy Jekyll blog theme with a large header image, featured posts, category pages, and Google Analytics integration.","key_features":["Featured Images","Category Pages","Analytics Ready","GitHub Pages"],"card_description":"Classy blog theme with large header images and featured posts.","category":"Blog","card_image":"/assets/images/themes/centrarium-card.webp","theme_screenshots":["/assets/images/themes/centrarium-screenshot.webp","/assets/images/themes/centrarium-screenshot-2.webp","/assets/images/themes/centrarium-screenshot-3.webp"],"demo_url":"https://bencentra.com/centrarium/","github_url":"https://github.com/bencentra/centrarium","author":"GitHub Community","github_author_name":"bencentra","github_author_url":"https://github.com/bencentra","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-paginate"],"updated_at":"2024-08-15","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"2.0.0","license":"MIT","stars":444,"forks":251,"features":["Large hero header image","Featured post support","Category archive pages","Tag archive pages","Disqus comments","Google Analytics","Social share buttons","Paginated post list","GitHub Pages compatible","Responsive design"],"slug":"centrarium","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Cayman is the classic GitHub Pages documentation theme, recognisable by its signature teal gradient header. It's the cleanest way to turn a repository's README into a polished project page.\n\nBuilt and maintained by GitHub itself, it's always up to date with the latest GitHub Pages Jekyll version.\n\n**Who is it for?** Open source projects, GitHub Pages documentation sites, and anyone who wants the classic, trusted project page look.\n","url":"/themes/cayman/","draft":false,"categories":["Documentation"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Cayman Jekyll Theme","description":"A bright, clean GitHub Pages Jekyll theme with a large hero header and fluid typography. Simple and polished for project landing pages.","key_features":["GitHub Pages","Hero Header","Clean Layout","Project Docs"],"card_description":"Bright GitHub Pages theme with large hero header for project sites.","category":"Documentation","card_image":"/assets/images/themes/cayman-card.webp","theme_screenshots":["/assets/images/themes/cayman-screenshot.webp","/assets/images/themes/cayman-screenshot-2.webp","/assets/images/themes/cayman-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/cayman/","github_url":"https://github.com/pages-themes/cayman","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-09-01","added_at":"2026-02-20","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0","stars":2100,"forks":5700,"features":["Teal gradient header","Download buttons","Clean single-column layout","GitHub Pages native","SEO tag support"],"slug":"cayman","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/centrarium","collection":"themes","next":{"path":"_themes/chalk.md","relative_path":"_themes/chalk.md","excerpt":"<p>Chalk stands out in the crowded minimal blog space by adding just enough polish to feel premium without feeling heavy. The sidebar layout makes good use of horizontal space on desktop, and the subtle CSS animations — hover states, transitions, loading effects — give the whole site a crafted, alive feeling.</p>\n\n","previous":{"path":"_themes/centrarium.md","relative_path":"_themes/centrarium.md","id":"/themes/centrarium","collection":"themes","url":"/themes/centrarium/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Centrarium Jekyll Theme","description":"A simple, classy Jekyll blog theme with a large header image, featured posts, category pages, and Google Analytics integration.","key_features":["Featured Images","Category Pages","Analytics Ready","GitHub Pages"],"card_description":"Classy blog theme with large header images and featured posts.","category":"Blog","card_image":"/assets/images/themes/centrarium-card.webp","theme_screenshots":["/assets/images/themes/centrarium-screenshot.webp","/assets/images/themes/centrarium-screenshot-2.webp","/assets/images/themes/centrarium-screenshot-3.webp"],"demo_url":"https://bencentra.com/centrarium/","github_url":"https://github.com/bencentra/centrarium","author":"GitHub Community","github_author_name":"bencentra","github_author_url":"https://github.com/bencentra","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-paginate"],"updated_at":"2024-08-15","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"2.0.0","license":"MIT","stars":444,"forks":251,"features":["Large hero header image","Featured post support","Category archive pages","Tag archive pages","Disqus comments","Google Analytics","Social share buttons","Paginated post list","GitHub Pages compatible","Responsive design"],"slug":"centrarium","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/chalk","collection":"themes","next":{"path":"_themes/chirpy.md","relative_path":"_themes/chirpy.md","id":"/themes/chirpy","collection":"themes","url":"/themes/chirpy/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":true,"dark_mode":true,"responsive":true,"title":"Chirpy Jekyll Theme","description":"A polished, feature-rich blog theme with dark mode, full-text search, reading time, table of contents, and PWA support. One of the fastest-growing Jekyll themes.","key_features":["Dark Mode","Full-Text Search","PWA Support","Table of Contents"],"card_description":"Feature-rich blog with dark mode, search, TOC, and PWA support.","category":"Blog","card_image":"/assets/images/themes/chirpy-card.webp","theme_screenshots":["/assets/images/themes/chirpy-screenshot.webp","/assets/images/themes/chirpy-screenshot-2.webp","/assets/images/themes/chirpy-screenshot-3.webp"],"demo_url":"https://chirpy.cotes.page/","github_url":"https://github.com/cotes2020/jekyll-theme-chirpy","author":"GitHub Community","github_author_name":"Cotes Chung","github_author_url":"https://github.com/cotes2020","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":false,"min_jekyll_version":"4.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-archives","jekyll-paginate-v2"],"updated_at":"2024-04-01","added_at":"2026-01-05","popular":true,"trending":true,"bestseller":false,"version":"7.1.0","license":"MIT","stars":9800,"forks":1900,"features":["Light and dark mode toggle","Full-text Lunr.js search","Automatic table of contents","Reading time estimate per post","Progressive Web App (PWA) support","Disqus and giscus comments","Google Analytics and GoatCounter","SEO optimised with structured data","Pinned posts","Code syntax highlighting with copy button"],"slug":"chirpy","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Chalk stands out in the crowded minimal blog space by adding just enough polish to feel premium without feeling heavy. The sidebar layout makes good use of horizontal space on desktop, and the subtle CSS animations — hover states, transitions, loading effects — give the whole site a crafted, alive feeling.\n\nThe built-in Lunr.js search and category filtering are genuinely useful, and the theme's careful attention to cross-browser consistency means it looks right everywhere.\n\n**Who is it for?** Developers and bloggers who want a minimal aesthetic with a bit more visual refinement and user-friendly features like search and category browsing.\n","url":"/themes/chalk/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Chalk Jekyll Theme","description":"A high quality, completely customisable Jekyll blog theme. Features an elegant two-column layout, full-text search, category filtering, and subtle animations that make the experience feel alive.","key_features":["Full-Text Search","Tag Filtering","Subtle Animations","Category Pages"],"card_description":"Elegant two-column blog with full-text search and category filtering.","category":"Blog","card_image":"/assets/images/themes/chalk-card.webp","theme_screenshots":["/assets/images/themes/chalk-screenshot.webp","/assets/images/themes/chalk-screenshot-2.webp","/assets/images/themes/chalk-screenshot-3.webp"],"demo_url":"https://chalk.nielsenramon.com/","github_url":"https://github.com/nielsenramon/chalk","author":"GitHub Community","github_author_name":"nielsenramon","github_author_url":"https://github.com/nielsenramon","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":false,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2022-01-01","added_at":"2026-06-07","popular":false,"trending":true,"bestseller":false,"version":"2.3.0","license":"MIT","stars":1300,"forks":350,"features":["Two-column layout with elegant sidebar","Full-text search powered by Lunr.js","Category filtering on the post listing","Subtle CSS animations throughout","Cross browser compatible","Disqus comments","Google Analytics","Apple touch icon support","Environment-based configuration","SVG social icons"],"slug":"chalk","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Centrarium balances a clean, classy aesthetic with a generous feature set. The large header image gives each page a visual anchor, while the well-structured navigation makes it easy to explore categories and tags.\n\nFeatured posts can be pinned to highlight important content, and the comment system integrates cleanly with Disqus.\n\n**Who is it for?** Bloggers who want a polished, feature-complete theme without the complexity of larger frameworks like Minimal Mistakes.\n","url":"/themes/centrarium/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Centrarium Jekyll Theme","description":"A simple, classy Jekyll blog theme with a large header image, featured posts, category pages, and Google Analytics integration.","key_features":["Featured Images","Category Pages","Analytics Ready","GitHub Pages"],"card_description":"Classy blog theme with large header images and featured posts.","category":"Blog","card_image":"/assets/images/themes/centrarium-card.webp","theme_screenshots":["/assets/images/themes/centrarium-screenshot.webp","/assets/images/themes/centrarium-screenshot-2.webp","/assets/images/themes/centrarium-screenshot-3.webp"],"demo_url":"https://bencentra.com/centrarium/","github_url":"https://github.com/bencentra/centrarium","author":"GitHub Community","github_author_name":"bencentra","github_author_url":"https://github.com/bencentra","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-paginate"],"updated_at":"2024-08-15","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"2.0.0","license":"MIT","stars":444,"forks":251,"features":["Large hero header image","Featured post support","Category archive pages","Tag archive pages","Disqus comments","Google Analytics","Social share buttons","Paginated post list","GitHub Pages compatible","Responsive design"],"slug":"centrarium","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/chalk.md","relative_path":"_themes/chalk.md","excerpt":"<p>Chalk stands out in the crowded minimal blog space by adding just enough polish to feel premium without feeling heavy. The sidebar layout makes good use of horizontal space on desktop, and the subtle CSS animations — hover states, transitions, loading effects — give the whole site a crafted, alive feeling.</p>\n\n","previous":{"path":"_themes/centrarium.md","relative_path":"_themes/centrarium.md","excerpt":"<p>Centrarium balances a clean, classy aesthetic with a generous feature set. The large header image gives each page a visual anchor, while the well-structured navigation makes it easy to explore categories and tags.</p>\n\n","previous":{"path":"_themes/cayman.md","relative_path":"_themes/cayman.md","id":"/themes/cayman","collection":"themes","url":"/themes/cayman/","draft":false,"categories":["Documentation"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Cayman Jekyll Theme","description":"A bright, clean GitHub Pages Jekyll theme with a large hero header and fluid typography. Simple and polished for project landing pages.","key_features":["GitHub Pages","Hero Header","Clean Layout","Project Docs"],"card_description":"Bright GitHub Pages theme with large hero header for project sites.","category":"Documentation","card_image":"/assets/images/themes/cayman-card.webp","theme_screenshots":["/assets/images/themes/cayman-screenshot.webp","/assets/images/themes/cayman-screenshot-2.webp","/assets/images/themes/cayman-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/cayman/","github_url":"https://github.com/pages-themes/cayman","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-09-01","added_at":"2026-02-20","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0","stars":2100,"forks":5700,"features":["Teal gradient header","Download buttons","Clean single-column layout","GitHub Pages native","SEO tag support"],"slug":"cayman","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/centrarium","collection":"themes","next":{"path":"_themes/chalk.md","relative_path":"_themes/chalk.md","id":"/themes/chalk","collection":"themes","url":"/themes/chalk/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Chalk Jekyll Theme","description":"A high quality, completely customisable Jekyll blog theme. Features an elegant two-column layout, full-text search, category filtering, and subtle animations that make the experience feel alive.","key_features":["Full-Text Search","Tag Filtering","Subtle Animations","Category Pages"],"card_description":"Elegant two-column blog with full-text search and category filtering.","category":"Blog","card_image":"/assets/images/themes/chalk-card.webp","theme_screenshots":["/assets/images/themes/chalk-screenshot.webp","/assets/images/themes/chalk-screenshot-2.webp","/assets/images/themes/chalk-screenshot-3.webp"],"demo_url":"https://chalk.nielsenramon.com/","github_url":"https://github.com/nielsenramon/chalk","author":"GitHub Community","github_author_name":"nielsenramon","github_author_url":"https://github.com/nielsenramon","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":false,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2022-01-01","added_at":"2026-06-07","popular":false,"trending":true,"bestseller":false,"version":"2.3.0","license":"MIT","stars":1300,"forks":350,"features":["Two-column layout with elegant sidebar","Full-text search powered by Lunr.js","Category filtering on the post listing","Subtle CSS animations throughout","Cross browser compatible","Disqus comments","Google Analytics","Apple touch icon support","Environment-based configuration","SVG social icons"],"slug":"chalk","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Centrarium balances a clean, classy aesthetic with a generous feature set. The large header image gives each page a visual anchor, while the well-structured navigation makes it easy to explore categories and tags.\n\nFeatured posts can be pinned to highlight important content, and the comment system integrates cleanly with Disqus.\n\n**Who is it for?** Bloggers who want a polished, feature-complete theme without the complexity of larger frameworks like Minimal Mistakes.\n","url":"/themes/centrarium/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Centrarium Jekyll Theme","description":"A simple, classy Jekyll blog theme with a large header image, featured posts, category pages, and Google Analytics integration.","key_features":["Featured Images","Category Pages","Analytics Ready","GitHub Pages"],"card_description":"Classy blog theme with large header images and featured posts.","category":"Blog","card_image":"/assets/images/themes/centrarium-card.webp","theme_screenshots":["/assets/images/themes/centrarium-screenshot.webp","/assets/images/themes/centrarium-screenshot-2.webp","/assets/images/themes/centrarium-screenshot-3.webp"],"demo_url":"https://bencentra.com/centrarium/","github_url":"https://github.com/bencentra/centrarium","author":"GitHub Community","github_author_name":"bencentra","github_author_url":"https://github.com/bencentra","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-paginate"],"updated_at":"2024-08-15","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"2.0.0","license":"MIT","stars":444,"forks":251,"features":["Large hero header image","Featured post support","Category archive pages","Tag archive pages","Disqus comments","Google Analytics","Social share buttons","Paginated post list","GitHub Pages compatible","Responsive design"],"slug":"centrarium","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/chalk","collection":"themes","next":{"path":"_themes/chirpy.md","relative_path":"_themes/chirpy.md","excerpt":"<p>Chirpy has emerged as one of the most beloved Jekyll themes of the last few years. Where many themes offer either good looks or good features, Chirpy delivers both. Its clean, modern design prioritises readability — comfortable line lengths, generous whitespace, and a typographic hierarchy that guides your reader through even the longest technical articles.</p>\n\n","previous":{"path":"_themes/chalk.md","relative_path":"_themes/chalk.md","id":"/themes/chalk","collection":"themes","url":"/themes/chalk/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Chalk Jekyll Theme","description":"A high quality, completely customisable Jekyll blog theme. Features an elegant two-column layout, full-text search, category filtering, and subtle animations that make the experience feel alive.","key_features":["Full-Text Search","Tag Filtering","Subtle Animations","Category Pages"],"card_description":"Elegant two-column blog with full-text search and category filtering.","category":"Blog","card_image":"/assets/images/themes/chalk-card.webp","theme_screenshots":["/assets/images/themes/chalk-screenshot.webp","/assets/images/themes/chalk-screenshot-2.webp","/assets/images/themes/chalk-screenshot-3.webp"],"demo_url":"https://chalk.nielsenramon.com/","github_url":"https://github.com/nielsenramon/chalk","author":"GitHub Community","github_author_name":"nielsenramon","github_author_url":"https://github.com/nielsenramon","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":false,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2022-01-01","added_at":"2026-06-07","popular":false,"trending":true,"bestseller":false,"version":"2.3.0","license":"MIT","stars":1300,"forks":350,"features":["Two-column layout with elegant sidebar","Full-text search powered by Lunr.js","Category filtering on the post listing","Subtle CSS animations throughout","Cross browser compatible","Disqus comments","Google Analytics","Apple touch icon support","Environment-based configuration","SVG social icons"],"slug":"chalk","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/chirpy","collection":"themes","next":{"path":"_themes/clean-blog.md","relative_path":"_themes/clean-blog.md","id":"/themes/clean-blog","collection":"themes","url":"/themes/clean-blog/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":true,"dark_mode":false,"responsive":true,"title":"Clean Blog Jekyll Theme","description":"A clean, distraction-free blog theme with full-width header images per post. A Start Bootstrap original ported to Jekyll.","key_features":["Post Header Images","Clean Design","GitHub Pages","Bootstrap Based"],"card_description":"Distraction-free blog with full-width header images per post.","category":"Blog","card_image":"/assets/images/themes/clean-blog-card.webp","theme_screenshots":["/assets/images/themes/clean-blog-screenshot.webp","/assets/images/themes/clean-blog-screenshot-2.webp","/assets/images/themes/clean-blog-screenshot-3.webp"],"demo_url":"https://startbootstrap.github.io/startbootstrap-clean-blog-jekyll/","github_url":"https://github.com/StartBootstrap/startbootstrap-clean-blog-jekyll","author":"GitHub Community","github_author_name":"Start Bootstrap","github_author_url":"https://github.com/StartBootstrap","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2023-10-01","added_at":"2026-02-25","popular":true,"trending":false,"bestseller":false,"version":"6.0.9","license":"MIT","stars":2800,"forks":8100,"features":["Full-width header image per post","Bootstrap 5 based","Disqus comments","Contact form","Social sharing","Pagination"],"slug":"clean-blog","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Chirpy has emerged as one of the most beloved Jekyll themes of the last few years. Where many themes offer either good looks or good features, Chirpy delivers both. Its clean, modern design prioritises readability — comfortable line lengths, generous whitespace, and a typographic hierarchy that guides your reader through even the longest technical articles.\n\nThe dark mode implementation is among the best in the Jekyll ecosystem: it respects the operating system preference by default, remembers the user's manual override, and transitions smoothly without a flash of unstyled content.\n\n**Who is it for?** Technical bloggers, developers writing tutorials, and anyone publishing long-form content who wants their readers to have a genuinely great experience.\n","url":"/themes/chirpy/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":true,"dark_mode":true,"responsive":true,"title":"Chirpy Jekyll Theme","description":"A polished, feature-rich blog theme with dark mode, full-text search, reading time, table of contents, and PWA support. One of the fastest-growing Jekyll themes.","key_features":["Dark Mode","Full-Text Search","PWA Support","Table of Contents"],"card_description":"Feature-rich blog with dark mode, search, TOC, and PWA support.","category":"Blog","card_image":"/assets/images/themes/chirpy-card.webp","theme_screenshots":["/assets/images/themes/chirpy-screenshot.webp","/assets/images/themes/chirpy-screenshot-2.webp","/assets/images/themes/chirpy-screenshot-3.webp"],"demo_url":"https://chirpy.cotes.page/","github_url":"https://github.com/cotes2020/jekyll-theme-chirpy","author":"GitHub Community","github_author_name":"Cotes Chung","github_author_url":"https://github.com/cotes2020","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":false,"min_jekyll_version":"4.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-archives","jekyll-paginate-v2"],"updated_at":"2024-04-01","added_at":"2026-01-05","popular":true,"trending":true,"bestseller":false,"version":"7.1.0","license":"MIT","stars":9800,"forks":1900,"features":["Light and dark mode toggle","Full-text Lunr.js search","Automatic table of contents","Reading time estimate per post","Progressive Web App (PWA) support","Disqus and giscus comments","Google Analytics and GoatCounter","SEO optimised with structured data","Pinned posts","Code syntax highlighting with copy button"],"slug":"chirpy","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Chalk stands out in the crowded minimal blog space by adding just enough polish to feel premium without feeling heavy. The sidebar layout makes good use of horizontal space on desktop, and the subtle CSS animations — hover states, transitions, loading effects — give the whole site a crafted, alive feeling.\n\nThe built-in Lunr.js search and category filtering are genuinely useful, and the theme's careful attention to cross-browser consistency means it looks right everywhere.\n\n**Who is it for?** Developers and bloggers who want a minimal aesthetic with a bit more visual refinement and user-friendly features like search and category browsing.\n","url":"/themes/chalk/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Chalk Jekyll Theme","description":"A high quality, completely customisable Jekyll blog theme. Features an elegant two-column layout, full-text search, category filtering, and subtle animations that make the experience feel alive.","key_features":["Full-Text Search","Tag Filtering","Subtle Animations","Category Pages"],"card_description":"Elegant two-column blog with full-text search and category filtering.","category":"Blog","card_image":"/assets/images/themes/chalk-card.webp","theme_screenshots":["/assets/images/themes/chalk-screenshot.webp","/assets/images/themes/chalk-screenshot-2.webp","/assets/images/themes/chalk-screenshot-3.webp"],"demo_url":"https://chalk.nielsenramon.com/","github_url":"https://github.com/nielsenramon/chalk","author":"GitHub Community","github_author_name":"nielsenramon","github_author_url":"https://github.com/nielsenramon","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":false,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2022-01-01","added_at":"2026-06-07","popular":false,"trending":true,"bestseller":false,"version":"2.3.0","license":"MIT","stars":1300,"forks":350,"features":["Two-column layout with elegant sidebar","Full-text search powered by Lunr.js","Category filtering on the post listing","Subtle CSS animations throughout","Cross browser compatible","Disqus comments","Google Analytics","Apple touch icon support","Environment-based configuration","SVG social icons"],"slug":"chalk","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/chirpy.md","relative_path":"_themes/chirpy.md","excerpt":"<p>Chirpy has emerged as one of the most beloved Jekyll themes of the last few years. Where many themes offer either good looks or good features, Chirpy delivers both. Its clean, modern design prioritises readability — comfortable line lengths, generous whitespace, and a typographic hierarchy that guides your reader through even the longest technical articles.</p>\n\n","previous":{"path":"_themes/chalk.md","relative_path":"_themes/chalk.md","excerpt":"<p>Chalk stands out in the crowded minimal blog space by adding just enough polish to feel premium without feeling heavy. The sidebar layout makes good use of horizontal space on desktop, and the subtle CSS animations — hover states, transitions, loading effects — give the whole site a crafted, alive feeling.</p>\n\n","previous":{"path":"_themes/centrarium.md","relative_path":"_themes/centrarium.md","id":"/themes/centrarium","collection":"themes","url":"/themes/centrarium/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Centrarium Jekyll Theme","description":"A simple, classy Jekyll blog theme with a large header image, featured posts, category pages, and Google Analytics integration.","key_features":["Featured Images","Category Pages","Analytics Ready","GitHub Pages"],"card_description":"Classy blog theme with large header images and featured posts.","category":"Blog","card_image":"/assets/images/themes/centrarium-card.webp","theme_screenshots":["/assets/images/themes/centrarium-screenshot.webp","/assets/images/themes/centrarium-screenshot-2.webp","/assets/images/themes/centrarium-screenshot-3.webp"],"demo_url":"https://bencentra.com/centrarium/","github_url":"https://github.com/bencentra/centrarium","author":"GitHub Community","github_author_name":"bencentra","github_author_url":"https://github.com/bencentra","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-paginate"],"updated_at":"2024-08-15","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"2.0.0","license":"MIT","stars":444,"forks":251,"features":["Large hero header image","Featured post support","Category archive pages","Tag archive pages","Disqus comments","Google Analytics","Social share buttons","Paginated post list","GitHub Pages compatible","Responsive design"],"slug":"centrarium","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/chalk","collection":"themes","next":{"path":"_themes/chirpy.md","relative_path":"_themes/chirpy.md","id":"/themes/chirpy","collection":"themes","url":"/themes/chirpy/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":true,"dark_mode":true,"responsive":true,"title":"Chirpy Jekyll Theme","description":"A polished, feature-rich blog theme with dark mode, full-text search, reading time, table of contents, and PWA support. One of the fastest-growing Jekyll themes.","key_features":["Dark Mode","Full-Text Search","PWA Support","Table of Contents"],"card_description":"Feature-rich blog with dark mode, search, TOC, and PWA support.","category":"Blog","card_image":"/assets/images/themes/chirpy-card.webp","theme_screenshots":["/assets/images/themes/chirpy-screenshot.webp","/assets/images/themes/chirpy-screenshot-2.webp","/assets/images/themes/chirpy-screenshot-3.webp"],"demo_url":"https://chirpy.cotes.page/","github_url":"https://github.com/cotes2020/jekyll-theme-chirpy","author":"GitHub Community","github_author_name":"Cotes Chung","github_author_url":"https://github.com/cotes2020","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":false,"min_jekyll_version":"4.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-archives","jekyll-paginate-v2"],"updated_at":"2024-04-01","added_at":"2026-01-05","popular":true,"trending":true,"bestseller":false,"version":"7.1.0","license":"MIT","stars":9800,"forks":1900,"features":["Light and dark mode toggle","Full-text Lunr.js search","Automatic table of contents","Reading time estimate per post","Progressive Web App (PWA) support","Disqus and giscus comments","Google Analytics and GoatCounter","SEO optimised with structured data","Pinned posts","Code syntax highlighting with copy button"],"slug":"chirpy","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Chalk stands out in the crowded minimal blog space by adding just enough polish to feel premium without feeling heavy. The sidebar layout makes good use of horizontal space on desktop, and the subtle CSS animations — hover states, transitions, loading effects — give the whole site a crafted, alive feeling.\n\nThe built-in Lunr.js search and category filtering are genuinely useful, and the theme's careful attention to cross-browser consistency means it looks right everywhere.\n\n**Who is it for?** Developers and bloggers who want a minimal aesthetic with a bit more visual refinement and user-friendly features like search and category browsing.\n","url":"/themes/chalk/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Chalk Jekyll Theme","description":"A high quality, completely customisable Jekyll blog theme. Features an elegant two-column layout, full-text search, category filtering, and subtle animations that make the experience feel alive.","key_features":["Full-Text Search","Tag Filtering","Subtle Animations","Category Pages"],"card_description":"Elegant two-column blog with full-text search and category filtering.","category":"Blog","card_image":"/assets/images/themes/chalk-card.webp","theme_screenshots":["/assets/images/themes/chalk-screenshot.webp","/assets/images/themes/chalk-screenshot-2.webp","/assets/images/themes/chalk-screenshot-3.webp"],"demo_url":"https://chalk.nielsenramon.com/","github_url":"https://github.com/nielsenramon/chalk","author":"GitHub Community","github_author_name":"nielsenramon","github_author_url":"https://github.com/nielsenramon","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":false,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2022-01-01","added_at":"2026-06-07","popular":false,"trending":true,"bestseller":false,"version":"2.3.0","license":"MIT","stars":1300,"forks":350,"features":["Two-column layout with elegant sidebar","Full-text search powered by Lunr.js","Category filtering on the post listing","Subtle CSS animations throughout","Cross browser compatible","Disqus comments","Google Analytics","Apple touch icon support","Environment-based configuration","SVG social icons"],"slug":"chalk","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/chirpy","collection":"themes","next":{"path":"_themes/clean-blog.md","relative_path":"_themes/clean-blog.md","excerpt":"<p>Clean Blog is a straightforward, polished blog theme built on Bootstrap 5. Its signature feature is the full-width header image on every post — it gives each article its own visual identity without requiring any special setup.</p>\n\n","previous":{"path":"_themes/chirpy.md","relative_path":"_themes/chirpy.md","id":"/themes/chirpy","collection":"themes","url":"/themes/chirpy/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":true,"dark_mode":true,"responsive":true,"title":"Chirpy Jekyll Theme","description":"A polished, feature-rich blog theme with dark mode, full-text search, reading time, table of contents, and PWA support. One of the fastest-growing Jekyll themes.","key_features":["Dark Mode","Full-Text Search","PWA Support","Table of Contents"],"card_description":"Feature-rich blog with dark mode, search, TOC, and PWA support.","category":"Blog","card_image":"/assets/images/themes/chirpy-card.webp","theme_screenshots":["/assets/images/themes/chirpy-screenshot.webp","/assets/images/themes/chirpy-screenshot-2.webp","/assets/images/themes/chirpy-screenshot-3.webp"],"demo_url":"https://chirpy.cotes.page/","github_url":"https://github.com/cotes2020/jekyll-theme-chirpy","author":"GitHub Community","github_author_name":"Cotes Chung","github_author_url":"https://github.com/cotes2020","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":false,"min_jekyll_version":"4.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-archives","jekyll-paginate-v2"],"updated_at":"2024-04-01","added_at":"2026-01-05","popular":true,"trending":true,"bestseller":false,"version":"7.1.0","license":"MIT","stars":9800,"forks":1900,"features":["Light and dark mode toggle","Full-text Lunr.js search","Automatic table of contents","Reading time estimate per post","Progressive Web App (PWA) support","Disqus and giscus comments","Google Analytics and GoatCounter","SEO optimised with structured data","Pinned posts","Code syntax highlighting with copy button"],"slug":"chirpy","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/clean-blog","collection":"themes","next":{"path":"_themes/contrast.md","relative_path":"_themes/contrast.md","id":"/themes/contrast","collection":"themes","url":"/themes/contrast/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Contrast Jekyll Theme","description":"A simple, minimal Jekyll blog theme with strong typographic contrast, clean post listings, and support for tags and pagination.","key_features":["High Contrast","Tag Support","Minimal Design","Fast Loading"],"card_description":"Minimal blog with strong typographic contrast and tag support.","category":"Blog","card_image":"/assets/images/themes/contrast-card.webp","theme_screenshots":["/assets/images/themes/contrast-screenshot.webp","/assets/images/themes/contrast-screenshot-2.webp","/assets/images/themes/contrast-screenshot-3.webp"],"demo_url":"https://niklasbuschmann.github.io/contrast/","github_url":"https://github.com/niklasbuschmann/contrast","author":"GitHub Community","github_author_name":"niklasbuschmann","github_author_url":"https://github.com/niklasbuschmann","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate"],"updated_at":"2025-08-28","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":446,"forks":199,"features":["High contrast typography","Minimal navigation","Tag archive pages","Paginated post list","Clean post layout","RSS feed","GitHub Pages compatible","Fast load times","No JavaScript required","Mobile friendly"],"slug":"contrast","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Clean Blog is a straightforward, polished blog theme built on Bootstrap 5. Its signature feature is the full-width header image on every post — it gives each article its own visual identity without requiring any special setup.\n\nPorted from Start Bootstrap's original HTML template, it's one of the most forked Jekyll themes on GitHub.\n\n**Who is it for?** Bloggers who want a classic, reader-friendly blog layout with strong visual post headers.\n","url":"/themes/clean-blog/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":true,"dark_mode":false,"responsive":true,"title":"Clean Blog Jekyll Theme","description":"A clean, distraction-free blog theme with full-width header images per post. A Start Bootstrap original ported to Jekyll.","key_features":["Post Header Images","Clean Design","GitHub Pages","Bootstrap Based"],"card_description":"Distraction-free blog with full-width header images per post.","category":"Blog","card_image":"/assets/images/themes/clean-blog-card.webp","theme_screenshots":["/assets/images/themes/clean-blog-screenshot.webp","/assets/images/themes/clean-blog-screenshot-2.webp","/assets/images/themes/clean-blog-screenshot-3.webp"],"demo_url":"https://startbootstrap.github.io/startbootstrap-clean-blog-jekyll/","github_url":"https://github.com/StartBootstrap/startbootstrap-clean-blog-jekyll","author":"GitHub Community","github_author_name":"Start Bootstrap","github_author_url":"https://github.com/StartBootstrap","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2023-10-01","added_at":"2026-02-25","popular":true,"trending":false,"bestseller":false,"version":"6.0.9","license":"MIT","stars":2800,"forks":8100,"features":["Full-width header image per post","Bootstrap 5 based","Disqus comments","Contact form","Social sharing","Pagination"],"slug":"clean-blog","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Chirpy has emerged as one of the most beloved Jekyll themes of the last few years. Where many themes offer either good looks or good features, Chirpy delivers both. Its clean, modern design prioritises readability — comfortable line lengths, generous whitespace, and a typographic hierarchy that guides your reader through even the longest technical articles.\n\nThe dark mode implementation is among the best in the Jekyll ecosystem: it respects the operating system preference by default, remembers the user's manual override, and transitions smoothly without a flash of unstyled content.\n\n**Who is it for?** Technical bloggers, developers writing tutorials, and anyone publishing long-form content who wants their readers to have a genuinely great experience.\n","url":"/themes/chirpy/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":true,"dark_mode":true,"responsive":true,"title":"Chirpy Jekyll Theme","description":"A polished, feature-rich blog theme with dark mode, full-text search, reading time, table of contents, and PWA support. One of the fastest-growing Jekyll themes.","key_features":["Dark Mode","Full-Text Search","PWA Support","Table of Contents"],"card_description":"Feature-rich blog with dark mode, search, TOC, and PWA support.","category":"Blog","card_image":"/assets/images/themes/chirpy-card.webp","theme_screenshots":["/assets/images/themes/chirpy-screenshot.webp","/assets/images/themes/chirpy-screenshot-2.webp","/assets/images/themes/chirpy-screenshot-3.webp"],"demo_url":"https://chirpy.cotes.page/","github_url":"https://github.com/cotes2020/jekyll-theme-chirpy","author":"GitHub Community","github_author_name":"Cotes Chung","github_author_url":"https://github.com/cotes2020","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":false,"min_jekyll_version":"4.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-archives","jekyll-paginate-v2"],"updated_at":"2024-04-01","added_at":"2026-01-05","popular":true,"trending":true,"bestseller":false,"version":"7.1.0","license":"MIT","stars":9800,"forks":1900,"features":["Light and dark mode toggle","Full-text Lunr.js search","Automatic table of contents","Reading time estimate per post","Progressive Web App (PWA) support","Disqus and giscus comments","Google Analytics and GoatCounter","SEO optimised with structured data","Pinned posts","Code syntax highlighting with copy button"],"slug":"chirpy","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/clean-blog.md","relative_path":"_themes/clean-blog.md","excerpt":"<p>Clean Blog is a straightforward, polished blog theme built on Bootstrap 5. Its signature feature is the full-width header image on every post — it gives each article its own visual identity without requiring any special setup.</p>\n\n","previous":{"path":"_themes/chirpy.md","relative_path":"_themes/chirpy.md","excerpt":"<p>Chirpy has emerged as one of the most beloved Jekyll themes of the last few years. Where many themes offer either good looks or good features, Chirpy delivers both. Its clean, modern design prioritises readability — comfortable line lengths, generous whitespace, and a typographic hierarchy that guides your reader through even the longest technical articles.</p>\n\n","previous":{"path":"_themes/chalk.md","relative_path":"_themes/chalk.md","id":"/themes/chalk","collection":"themes","url":"/themes/chalk/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Chalk Jekyll Theme","description":"A high quality, completely customisable Jekyll blog theme. Features an elegant two-column layout, full-text search, category filtering, and subtle animations that make the experience feel alive.","key_features":["Full-Text Search","Tag Filtering","Subtle Animations","Category Pages"],"card_description":"Elegant two-column blog with full-text search and category filtering.","category":"Blog","card_image":"/assets/images/themes/chalk-card.webp","theme_screenshots":["/assets/images/themes/chalk-screenshot.webp","/assets/images/themes/chalk-screenshot-2.webp","/assets/images/themes/chalk-screenshot-3.webp"],"demo_url":"https://chalk.nielsenramon.com/","github_url":"https://github.com/nielsenramon/chalk","author":"GitHub Community","github_author_name":"nielsenramon","github_author_url":"https://github.com/nielsenramon","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":false,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2022-01-01","added_at":"2026-06-07","popular":false,"trending":true,"bestseller":false,"version":"2.3.0","license":"MIT","stars":1300,"forks":350,"features":["Two-column layout with elegant sidebar","Full-text search powered by Lunr.js","Category filtering on the post listing","Subtle CSS animations throughout","Cross browser compatible","Disqus comments","Google Analytics","Apple touch icon support","Environment-based configuration","SVG social icons"],"slug":"chalk","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/chirpy","collection":"themes","next":{"path":"_themes/clean-blog.md","relative_path":"_themes/clean-blog.md","id":"/themes/clean-blog","collection":"themes","url":"/themes/clean-blog/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":true,"dark_mode":false,"responsive":true,"title":"Clean Blog Jekyll Theme","description":"A clean, distraction-free blog theme with full-width header images per post. A Start Bootstrap original ported to Jekyll.","key_features":["Post Header Images","Clean Design","GitHub Pages","Bootstrap Based"],"card_description":"Distraction-free blog with full-width header images per post.","category":"Blog","card_image":"/assets/images/themes/clean-blog-card.webp","theme_screenshots":["/assets/images/themes/clean-blog-screenshot.webp","/assets/images/themes/clean-blog-screenshot-2.webp","/assets/images/themes/clean-blog-screenshot-3.webp"],"demo_url":"https://startbootstrap.github.io/startbootstrap-clean-blog-jekyll/","github_url":"https://github.com/StartBootstrap/startbootstrap-clean-blog-jekyll","author":"GitHub Community","github_author_name":"Start Bootstrap","github_author_url":"https://github.com/StartBootstrap","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2023-10-01","added_at":"2026-02-25","popular":true,"trending":false,"bestseller":false,"version":"6.0.9","license":"MIT","stars":2800,"forks":8100,"features":["Full-width header image per post","Bootstrap 5 based","Disqus comments","Contact form","Social sharing","Pagination"],"slug":"clean-blog","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Chirpy has emerged as one of the most beloved Jekyll themes of the last few years. Where many themes offer either good looks or good features, Chirpy delivers both. Its clean, modern design prioritises readability — comfortable line lengths, generous whitespace, and a typographic hierarchy that guides your reader through even the longest technical articles.\n\nThe dark mode implementation is among the best in the Jekyll ecosystem: it respects the operating system preference by default, remembers the user's manual override, and transitions smoothly without a flash of unstyled content.\n\n**Who is it for?** Technical bloggers, developers writing tutorials, and anyone publishing long-form content who wants their readers to have a genuinely great experience.\n","url":"/themes/chirpy/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":true,"dark_mode":true,"responsive":true,"title":"Chirpy Jekyll Theme","description":"A polished, feature-rich blog theme with dark mode, full-text search, reading time, table of contents, and PWA support. One of the fastest-growing Jekyll themes.","key_features":["Dark Mode","Full-Text Search","PWA Support","Table of Contents"],"card_description":"Feature-rich blog with dark mode, search, TOC, and PWA support.","category":"Blog","card_image":"/assets/images/themes/chirpy-card.webp","theme_screenshots":["/assets/images/themes/chirpy-screenshot.webp","/assets/images/themes/chirpy-screenshot-2.webp","/assets/images/themes/chirpy-screenshot-3.webp"],"demo_url":"https://chirpy.cotes.page/","github_url":"https://github.com/cotes2020/jekyll-theme-chirpy","author":"GitHub Community","github_author_name":"Cotes Chung","github_author_url":"https://github.com/cotes2020","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":false,"min_jekyll_version":"4.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-archives","jekyll-paginate-v2"],"updated_at":"2024-04-01","added_at":"2026-01-05","popular":true,"trending":true,"bestseller":false,"version":"7.1.0","license":"MIT","stars":9800,"forks":1900,"features":["Light and dark mode toggle","Full-text Lunr.js search","Automatic table of contents","Reading time estimate per post","Progressive Web App (PWA) support","Disqus and giscus comments","Google Analytics and GoatCounter","SEO optimised with structured data","Pinned posts","Code syntax highlighting with copy button"],"slug":"chirpy","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/clean-blog","collection":"themes","next":{"path":"_themes/contrast.md","relative_path":"_themes/contrast.md","excerpt":"<p>Contrast lives up to its name — bold, high-contrast typography makes every post immediately legible. The design is stripped back to the bare essentials: a post list, individual post pages, and tag archives.</p>\n\n","previous":{"path":"_themes/clean-blog.md","relative_path":"_themes/clean-blog.md","id":"/themes/clean-blog","collection":"themes","url":"/themes/clean-blog/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":true,"dark_mode":false,"responsive":true,"title":"Clean Blog Jekyll Theme","description":"A clean, distraction-free blog theme with full-width header images per post. A Start Bootstrap original ported to Jekyll.","key_features":["Post Header Images","Clean Design","GitHub Pages","Bootstrap Based"],"card_description":"Distraction-free blog with full-width header images per post.","category":"Blog","card_image":"/assets/images/themes/clean-blog-card.webp","theme_screenshots":["/assets/images/themes/clean-blog-screenshot.webp","/assets/images/themes/clean-blog-screenshot-2.webp","/assets/images/themes/clean-blog-screenshot-3.webp"],"demo_url":"https://startbootstrap.github.io/startbootstrap-clean-blog-jekyll/","github_url":"https://github.com/StartBootstrap/startbootstrap-clean-blog-jekyll","author":"GitHub Community","github_author_name":"Start Bootstrap","github_author_url":"https://github.com/StartBootstrap","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2023-10-01","added_at":"2026-02-25","popular":true,"trending":false,"bestseller":false,"version":"6.0.9","license":"MIT","stars":2800,"forks":8100,"features":["Full-width header image per post","Bootstrap 5 based","Disqus comments","Contact form","Social sharing","Pagination"],"slug":"clean-blog","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/contrast","collection":"themes","next":{"path":"_themes/creative.md","relative_path":"_themes/creative.md","id":"/themes/creative","collection":"themes","url":"/themes/creative/","draft":false,"categories":["Landing Page"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Creative Jekyll Theme","description":"A one-page Bootstrap landing page Jekyll theme with a fullscreen hero image, smooth scroll navigation, and portfolio sections.","key_features":["One-Page Layout","Smooth Scroll","Portfolio Sections","Bootstrap Based"],"card_description":"One-page Bootstrap landing page with fullscreen hero and portfolio.","category":"Landing Page","card_image":"/assets/images/themes/creative-card.webp","theme_screenshots":["/assets/images/themes/creative-screenshot.webp","/assets/images/themes/creative-screenshot-2.webp","/assets/images/themes/creative-screenshot-3.webp"],"demo_url":"https://volny.github.io/creative-theme-jekyll/","github_url":"https://github.com/volny/creative-theme-jekyll","author":"GitHub Community","github_author_name":"volny","github_author_url":"https://github.com/volny","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2024-08-20","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"Apache-2.0","stars":545,"forks":397,"features":["Fullscreen hero image","Smooth scroll navigation","Portfolio grid section","Services section","Call-to-action buttons","Bootstrap 3 powered","Animated scroll effects","Contact section","GitHub Pages compatible","One-page layout"],"slug":"creative","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Contrast lives up to its name — bold, high-contrast typography makes every post immediately legible. The design is stripped back to the bare essentials: a post list, individual post pages, and tag archives.\n\nWith no JavaScript dependencies, pages load nearly instantly.\n\n**Who is it for?** Writers who prioritise readability above all else and want a featherweight theme with zero bloat.\n","url":"/themes/contrast/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Contrast Jekyll Theme","description":"A simple, minimal Jekyll blog theme with strong typographic contrast, clean post listings, and support for tags and pagination.","key_features":["High Contrast","Tag Support","Minimal Design","Fast Loading"],"card_description":"Minimal blog with strong typographic contrast and tag support.","category":"Blog","card_image":"/assets/images/themes/contrast-card.webp","theme_screenshots":["/assets/images/themes/contrast-screenshot.webp","/assets/images/themes/contrast-screenshot-2.webp","/assets/images/themes/contrast-screenshot-3.webp"],"demo_url":"https://niklasbuschmann.github.io/contrast/","github_url":"https://github.com/niklasbuschmann/contrast","author":"GitHub Community","github_author_name":"niklasbuschmann","github_author_url":"https://github.com/niklasbuschmann","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate"],"updated_at":"2025-08-28","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":446,"forks":199,"features":["High contrast typography","Minimal navigation","Tag archive pages","Paginated post list","Clean post layout","RSS feed","GitHub Pages compatible","Fast load times","No JavaScript required","Mobile friendly"],"slug":"contrast","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Clean Blog is a straightforward, polished blog theme built on Bootstrap 5. Its signature feature is the full-width header image on every post — it gives each article its own visual identity without requiring any special setup.\n\nPorted from Start Bootstrap's original HTML template, it's one of the most forked Jekyll themes on GitHub.\n\n**Who is it for?** Bloggers who want a classic, reader-friendly blog layout with strong visual post headers.\n","url":"/themes/clean-blog/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":true,"dark_mode":false,"responsive":true,"title":"Clean Blog Jekyll Theme","description":"A clean, distraction-free blog theme with full-width header images per post. A Start Bootstrap original ported to Jekyll.","key_features":["Post Header Images","Clean Design","GitHub Pages","Bootstrap Based"],"card_description":"Distraction-free blog with full-width header images per post.","category":"Blog","card_image":"/assets/images/themes/clean-blog-card.webp","theme_screenshots":["/assets/images/themes/clean-blog-screenshot.webp","/assets/images/themes/clean-blog-screenshot-2.webp","/assets/images/themes/clean-blog-screenshot-3.webp"],"demo_url":"https://startbootstrap.github.io/startbootstrap-clean-blog-jekyll/","github_url":"https://github.com/StartBootstrap/startbootstrap-clean-blog-jekyll","author":"GitHub Community","github_author_name":"Start Bootstrap","github_author_url":"https://github.com/StartBootstrap","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2023-10-01","added_at":"2026-02-25","popular":true,"trending":false,"bestseller":false,"version":"6.0.9","license":"MIT","stars":2800,"forks":8100,"features":["Full-width header image per post","Bootstrap 5 based","Disqus comments","Contact form","Social sharing","Pagination"],"slug":"clean-blog","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/contrast.md","relative_path":"_themes/contrast.md","excerpt":"<p>Contrast lives up to its name — bold, high-contrast typography makes every post immediately legible. The design is stripped back to the bare essentials: a post list, individual post pages, and tag archives.</p>\n\n","previous":{"path":"_themes/clean-blog.md","relative_path":"_themes/clean-blog.md","excerpt":"<p>Clean Blog is a straightforward, polished blog theme built on Bootstrap 5. Its signature feature is the full-width header image on every post — it gives each article its own visual identity without requiring any special setup.</p>\n\n","previous":{"path":"_themes/chirpy.md","relative_path":"_themes/chirpy.md","id":"/themes/chirpy","collection":"themes","url":"/themes/chirpy/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":true,"dark_mode":true,"responsive":true,"title":"Chirpy Jekyll Theme","description":"A polished, feature-rich blog theme with dark mode, full-text search, reading time, table of contents, and PWA support. One of the fastest-growing Jekyll themes.","key_features":["Dark Mode","Full-Text Search","PWA Support","Table of Contents"],"card_description":"Feature-rich blog with dark mode, search, TOC, and PWA support.","category":"Blog","card_image":"/assets/images/themes/chirpy-card.webp","theme_screenshots":["/assets/images/themes/chirpy-screenshot.webp","/assets/images/themes/chirpy-screenshot-2.webp","/assets/images/themes/chirpy-screenshot-3.webp"],"demo_url":"https://chirpy.cotes.page/","github_url":"https://github.com/cotes2020/jekyll-theme-chirpy","author":"GitHub Community","github_author_name":"Cotes Chung","github_author_url":"https://github.com/cotes2020","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":false,"min_jekyll_version":"4.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-archives","jekyll-paginate-v2"],"updated_at":"2024-04-01","added_at":"2026-01-05","popular":true,"trending":true,"bestseller":false,"version":"7.1.0","license":"MIT","stars":9800,"forks":1900,"features":["Light and dark mode toggle","Full-text Lunr.js search","Automatic table of contents","Reading time estimate per post","Progressive Web App (PWA) support","Disqus and giscus comments","Google Analytics and GoatCounter","SEO optimised with structured data","Pinned posts","Code syntax highlighting with copy button"],"slug":"chirpy","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/clean-blog","collection":"themes","next":{"path":"_themes/contrast.md","relative_path":"_themes/contrast.md","id":"/themes/contrast","collection":"themes","url":"/themes/contrast/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Contrast Jekyll Theme","description":"A simple, minimal Jekyll blog theme with strong typographic contrast, clean post listings, and support for tags and pagination.","key_features":["High Contrast","Tag Support","Minimal Design","Fast Loading"],"card_description":"Minimal blog with strong typographic contrast and tag support.","category":"Blog","card_image":"/assets/images/themes/contrast-card.webp","theme_screenshots":["/assets/images/themes/contrast-screenshot.webp","/assets/images/themes/contrast-screenshot-2.webp","/assets/images/themes/contrast-screenshot-3.webp"],"demo_url":"https://niklasbuschmann.github.io/contrast/","github_url":"https://github.com/niklasbuschmann/contrast","author":"GitHub Community","github_author_name":"niklasbuschmann","github_author_url":"https://github.com/niklasbuschmann","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate"],"updated_at":"2025-08-28","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":446,"forks":199,"features":["High contrast typography","Minimal navigation","Tag archive pages","Paginated post list","Clean post layout","RSS feed","GitHub Pages compatible","Fast load times","No JavaScript required","Mobile friendly"],"slug":"contrast","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Clean Blog is a straightforward, polished blog theme built on Bootstrap 5. Its signature feature is the full-width header image on every post — it gives each article its own visual identity without requiring any special setup.\n\nPorted from Start Bootstrap's original HTML template, it's one of the most forked Jekyll themes on GitHub.\n\n**Who is it for?** Bloggers who want a classic, reader-friendly blog layout with strong visual post headers.\n","url":"/themes/clean-blog/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":true,"dark_mode":false,"responsive":true,"title":"Clean Blog Jekyll Theme","description":"A clean, distraction-free blog theme with full-width header images per post. A Start Bootstrap original ported to Jekyll.","key_features":["Post Header Images","Clean Design","GitHub Pages","Bootstrap Based"],"card_description":"Distraction-free blog with full-width header images per post.","category":"Blog","card_image":"/assets/images/themes/clean-blog-card.webp","theme_screenshots":["/assets/images/themes/clean-blog-screenshot.webp","/assets/images/themes/clean-blog-screenshot-2.webp","/assets/images/themes/clean-blog-screenshot-3.webp"],"demo_url":"https://startbootstrap.github.io/startbootstrap-clean-blog-jekyll/","github_url":"https://github.com/StartBootstrap/startbootstrap-clean-blog-jekyll","author":"GitHub Community","github_author_name":"Start Bootstrap","github_author_url":"https://github.com/StartBootstrap","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2023-10-01","added_at":"2026-02-25","popular":true,"trending":false,"bestseller":false,"version":"6.0.9","license":"MIT","stars":2800,"forks":8100,"features":["Full-width header image per post","Bootstrap 5 based","Disqus comments","Contact form","Social sharing","Pagination"],"slug":"clean-blog","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/contrast","collection":"themes","next":{"path":"_themes/creative.md","relative_path":"_themes/creative.md","excerpt":"<p>Creative is a Jekyll adaptation of Start Bootstrap’s Creative theme — a bold, fullscreen one-pager built for agencies, studios, and freelancers making a strong first impression.</p>\n\n","previous":{"path":"_themes/contrast.md","relative_path":"_themes/contrast.md","id":"/themes/contrast","collection":"themes","url":"/themes/contrast/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Contrast Jekyll Theme","description":"A simple, minimal Jekyll blog theme with strong typographic contrast, clean post listings, and support for tags and pagination.","key_features":["High Contrast","Tag Support","Minimal Design","Fast Loading"],"card_description":"Minimal blog with strong typographic contrast and tag support.","category":"Blog","card_image":"/assets/images/themes/contrast-card.webp","theme_screenshots":["/assets/images/themes/contrast-screenshot.webp","/assets/images/themes/contrast-screenshot-2.webp","/assets/images/themes/contrast-screenshot-3.webp"],"demo_url":"https://niklasbuschmann.github.io/contrast/","github_url":"https://github.com/niklasbuschmann/contrast","author":"GitHub Community","github_author_name":"niklasbuschmann","github_author_url":"https://github.com/niklasbuschmann","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate"],"updated_at":"2025-08-28","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":446,"forks":199,"features":["High contrast typography","Minimal navigation","Tag archive pages","Paginated post list","Clean post layout","RSS feed","GitHub Pages compatible","Fast load times","No JavaScript required","Mobile friendly"],"slug":"contrast","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/creative","collection":"themes","next":{"path":"_themes/devlopr-jekyll.md","relative_path":"_themes/devlopr-jekyll.md","id":"/themes/devlopr-jekyll","collection":"themes","url":"/themes/devlopr-jekyll/","draft":false,"categories":["Portfolio"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Devlopr Jekyll Theme","description":"A feature-rich developer portfolio Jekyll theme with an integrated blog, skills section, CMS support, and dark mode built in.","key_features":["Dark Mode","CMS Support","Skills Section","Portfolio & Blog"],"card_description":"Developer portfolio with blog, skills section, and dark mode built in.","category":"Portfolio","card_image":"/assets/images/themes/devlopr-jekyll-card.webp","theme_screenshots":["/assets/images/themes/devlopr-jekyll-screenshot.webp","/assets/images/themes/devlopr-jekyll-screenshot-2.webp","/assets/images/themes/devlopr-jekyll-screenshot-3.webp"],"demo_url":"https://devlopr.netlify.app/","github_url":"https://github.com/sujaykundu777/devlopr-jekyll","author":"GitHub Community","github_author_name":"sujaykundu777","github_author_url":"https://github.com/sujaykundu777","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"4.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2024-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"4.4.0","license":"MIT","stars":450,"forks":400,"features":["Built-in CMS support (Netlify CMS + Forestry)","Dark mode toggle","Developer portfolio section","Blog with categories and tags","Projects showcase grid","Skills and timeline sections","Newsletter subscription support","Disqus and Utterances comments","Google Analytics","GitHub Pages compatible"],"slug":"devlopr-jekyll","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Creative is a Jekyll adaptation of Start Bootstrap's Creative theme — a bold, fullscreen one-pager built for agencies, studios, and freelancers making a strong first impression.\n\nA large hero image commands attention above the fold, while smooth-scroll navigation guides visitors through portfolio, services, and contact sections below.\n\n**Who is it for?** Agencies and freelancers who need a striking one-page landing site that showcases their portfolio and services.\n","url":"/themes/creative/","draft":false,"categories":["Landing Page"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Creative Jekyll Theme","description":"A one-page Bootstrap landing page Jekyll theme with a fullscreen hero image, smooth scroll navigation, and portfolio sections.","key_features":["One-Page Layout","Smooth Scroll","Portfolio Sections","Bootstrap Based"],"card_description":"One-page Bootstrap landing page with fullscreen hero and portfolio.","category":"Landing Page","card_image":"/assets/images/themes/creative-card.webp","theme_screenshots":["/assets/images/themes/creative-screenshot.webp","/assets/images/themes/creative-screenshot-2.webp","/assets/images/themes/creative-screenshot-3.webp"],"demo_url":"https://volny.github.io/creative-theme-jekyll/","github_url":"https://github.com/volny/creative-theme-jekyll","author":"GitHub Community","github_author_name":"volny","github_author_url":"https://github.com/volny","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2024-08-20","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"Apache-2.0","stars":545,"forks":397,"features":["Fullscreen hero image","Smooth scroll navigation","Portfolio grid section","Services section","Call-to-action buttons","Bootstrap 3 powered","Animated scroll effects","Contact section","GitHub Pages compatible","One-page layout"],"slug":"creative","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Contrast lives up to its name — bold, high-contrast typography makes every post immediately legible. The design is stripped back to the bare essentials: a post list, individual post pages, and tag archives.\n\nWith no JavaScript dependencies, pages load nearly instantly.\n\n**Who is it for?** Writers who prioritise readability above all else and want a featherweight theme with zero bloat.\n","url":"/themes/contrast/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Contrast Jekyll Theme","description":"A simple, minimal Jekyll blog theme with strong typographic contrast, clean post listings, and support for tags and pagination.","key_features":["High Contrast","Tag Support","Minimal Design","Fast Loading"],"card_description":"Minimal blog with strong typographic contrast and tag support.","category":"Blog","card_image":"/assets/images/themes/contrast-card.webp","theme_screenshots":["/assets/images/themes/contrast-screenshot.webp","/assets/images/themes/contrast-screenshot-2.webp","/assets/images/themes/contrast-screenshot-3.webp"],"demo_url":"https://niklasbuschmann.github.io/contrast/","github_url":"https://github.com/niklasbuschmann/contrast","author":"GitHub Community","github_author_name":"niklasbuschmann","github_author_url":"https://github.com/niklasbuschmann","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate"],"updated_at":"2025-08-28","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":446,"forks":199,"features":["High contrast typography","Minimal navigation","Tag archive pages","Paginated post list","Clean post layout","RSS feed","GitHub Pages compatible","Fast load times","No JavaScript required","Mobile friendly"],"slug":"contrast","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/creative.md","relative_path":"_themes/creative.md","excerpt":"<p>Creative is a Jekyll adaptation of Start Bootstrap’s Creative theme — a bold, fullscreen one-pager built for agencies, studios, and freelancers making a strong first impression.</p>\n\n","previous":{"path":"_themes/contrast.md","relative_path":"_themes/contrast.md","excerpt":"<p>Contrast lives up to its name — bold, high-contrast typography makes every post immediately legible. The design is stripped back to the bare essentials: a post list, individual post pages, and tag archives.</p>\n\n","previous":{"path":"_themes/clean-blog.md","relative_path":"_themes/clean-blog.md","id":"/themes/clean-blog","collection":"themes","url":"/themes/clean-blog/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":true,"dark_mode":false,"responsive":true,"title":"Clean Blog Jekyll Theme","description":"A clean, distraction-free blog theme with full-width header images per post. A Start Bootstrap original ported to Jekyll.","key_features":["Post Header Images","Clean Design","GitHub Pages","Bootstrap Based"],"card_description":"Distraction-free blog with full-width header images per post.","category":"Blog","card_image":"/assets/images/themes/clean-blog-card.webp","theme_screenshots":["/assets/images/themes/clean-blog-screenshot.webp","/assets/images/themes/clean-blog-screenshot-2.webp","/assets/images/themes/clean-blog-screenshot-3.webp"],"demo_url":"https://startbootstrap.github.io/startbootstrap-clean-blog-jekyll/","github_url":"https://github.com/StartBootstrap/startbootstrap-clean-blog-jekyll","author":"GitHub Community","github_author_name":"Start Bootstrap","github_author_url":"https://github.com/StartBootstrap","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2023-10-01","added_at":"2026-02-25","popular":true,"trending":false,"bestseller":false,"version":"6.0.9","license":"MIT","stars":2800,"forks":8100,"features":["Full-width header image per post","Bootstrap 5 based","Disqus comments","Contact form","Social sharing","Pagination"],"slug":"clean-blog","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/contrast","collection":"themes","next":{"path":"_themes/creative.md","relative_path":"_themes/creative.md","id":"/themes/creative","collection":"themes","url":"/themes/creative/","draft":false,"categories":["Landing Page"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Creative Jekyll Theme","description":"A one-page Bootstrap landing page Jekyll theme with a fullscreen hero image, smooth scroll navigation, and portfolio sections.","key_features":["One-Page Layout","Smooth Scroll","Portfolio Sections","Bootstrap Based"],"card_description":"One-page Bootstrap landing page with fullscreen hero and portfolio.","category":"Landing Page","card_image":"/assets/images/themes/creative-card.webp","theme_screenshots":["/assets/images/themes/creative-screenshot.webp","/assets/images/themes/creative-screenshot-2.webp","/assets/images/themes/creative-screenshot-3.webp"],"demo_url":"https://volny.github.io/creative-theme-jekyll/","github_url":"https://github.com/volny/creative-theme-jekyll","author":"GitHub Community","github_author_name":"volny","github_author_url":"https://github.com/volny","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2024-08-20","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"Apache-2.0","stars":545,"forks":397,"features":["Fullscreen hero image","Smooth scroll navigation","Portfolio grid section","Services section","Call-to-action buttons","Bootstrap 3 powered","Animated scroll effects","Contact section","GitHub Pages compatible","One-page layout"],"slug":"creative","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Contrast lives up to its name — bold, high-contrast typography makes every post immediately legible. The design is stripped back to the bare essentials: a post list, individual post pages, and tag archives.\n\nWith no JavaScript dependencies, pages load nearly instantly.\n\n**Who is it for?** Writers who prioritise readability above all else and want a featherweight theme with zero bloat.\n","url":"/themes/contrast/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Contrast Jekyll Theme","description":"A simple, minimal Jekyll blog theme with strong typographic contrast, clean post listings, and support for tags and pagination.","key_features":["High Contrast","Tag Support","Minimal Design","Fast Loading"],"card_description":"Minimal blog with strong typographic contrast and tag support.","category":"Blog","card_image":"/assets/images/themes/contrast-card.webp","theme_screenshots":["/assets/images/themes/contrast-screenshot.webp","/assets/images/themes/contrast-screenshot-2.webp","/assets/images/themes/contrast-screenshot-3.webp"],"demo_url":"https://niklasbuschmann.github.io/contrast/","github_url":"https://github.com/niklasbuschmann/contrast","author":"GitHub Community","github_author_name":"niklasbuschmann","github_author_url":"https://github.com/niklasbuschmann","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate"],"updated_at":"2025-08-28","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":446,"forks":199,"features":["High contrast typography","Minimal navigation","Tag archive pages","Paginated post list","Clean post layout","RSS feed","GitHub Pages compatible","Fast load times","No JavaScript required","Mobile friendly"],"slug":"contrast","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/creative","collection":"themes","next":{"path":"_themes/devlopr-jekyll.md","relative_path":"_themes/devlopr-jekyll.md","excerpt":"<p>Devlopr stands out from every other Jekyll theme in one important way: it ships with built-in CMS support. You can write and publish blog posts through a browser-based admin interface — no terminal, no text editor, no git commits. This makes it genuinely practical for developers who want the speed and security of a static site but the convenience of a CMS for day-to-day content updates.</p>\n\n","previous":{"path":"_themes/creative.md","relative_path":"_themes/creative.md","id":"/themes/creative","collection":"themes","url":"/themes/creative/","draft":false,"categories":["Landing Page"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Creative Jekyll Theme","description":"A one-page Bootstrap landing page Jekyll theme with a fullscreen hero image, smooth scroll navigation, and portfolio sections.","key_features":["One-Page Layout","Smooth Scroll","Portfolio Sections","Bootstrap Based"],"card_description":"One-page Bootstrap landing page with fullscreen hero and portfolio.","category":"Landing Page","card_image":"/assets/images/themes/creative-card.webp","theme_screenshots":["/assets/images/themes/creative-screenshot.webp","/assets/images/themes/creative-screenshot-2.webp","/assets/images/themes/creative-screenshot-3.webp"],"demo_url":"https://volny.github.io/creative-theme-jekyll/","github_url":"https://github.com/volny/creative-theme-jekyll","author":"GitHub Community","github_author_name":"volny","github_author_url":"https://github.com/volny","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2024-08-20","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"Apache-2.0","stars":545,"forks":397,"features":["Fullscreen hero image","Smooth scroll navigation","Portfolio grid section","Services section","Call-to-action buttons","Bootstrap 3 powered","Animated scroll effects","Contact section","GitHub Pages compatible","One-page layout"],"slug":"creative","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/devlopr-jekyll","collection":"themes","next":{"path":"_themes/dinky.md","relative_path":"_themes/dinky.md","id":"/themes/dinky","collection":"themes","url":"/themes/dinky/","draft":false,"categories":["Documentation"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Dinky Jekyll Theme","description":"A compact GitHub Pages Jekyll theme with a fixed sidebar and clean layout. Great for small documentation pages and personal project sites.","key_features":["GitHub Pages","Fixed Sidebar","Project Docs","Compact Layout"],"card_description":"Compact GitHub Pages theme with fixed sidebar for small project sites.","category":"Documentation","card_image":"/assets/images/themes/dinky-card.webp","theme_screenshots":["/assets/images/themes/dinky-screenshot.webp","/assets/images/themes/dinky-screenshot-2.webp","/assets/images/themes/dinky-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/dinky/","github_url":"https://github.com/pages-themes/dinky","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":400,"forks":350,"features":["Official GitHub Pages supported theme","Compact sidebar navigation","Bright blue accent colours","Clean documentation layout","Single-line enable via _config.yml","Responsive design","No local Jekyll install needed"],"slug":"dinky","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Devlopr stands out from every other Jekyll theme in one important way: it ships with built-in CMS support. You can write and publish blog posts through a browser-based admin interface — no terminal, no text editor, no git commits. This makes it genuinely practical for developers who want the speed and security of a static site but the convenience of a CMS for day-to-day content updates.\n\nBeyond the CMS integration, it's a well-rounded developer portfolio theme with sections for projects, skills, timeline, and a blog — all with dark mode support.\n\n**Who is it for?** Developers who want a personal portfolio and blog with CMS-based content editing, so they can write posts from anywhere without a local development environment.\n","url":"/themes/devlopr-jekyll/","draft":false,"categories":["Portfolio"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Devlopr Jekyll Theme","description":"A feature-rich developer portfolio Jekyll theme with an integrated blog, skills section, CMS support, and dark mode built in.","key_features":["Dark Mode","CMS Support","Skills Section","Portfolio & Blog"],"card_description":"Developer portfolio with blog, skills section, and dark mode built in.","category":"Portfolio","card_image":"/assets/images/themes/devlopr-jekyll-card.webp","theme_screenshots":["/assets/images/themes/devlopr-jekyll-screenshot.webp","/assets/images/themes/devlopr-jekyll-screenshot-2.webp","/assets/images/themes/devlopr-jekyll-screenshot-3.webp"],"demo_url":"https://devlopr.netlify.app/","github_url":"https://github.com/sujaykundu777/devlopr-jekyll","author":"GitHub Community","github_author_name":"sujaykundu777","github_author_url":"https://github.com/sujaykundu777","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"4.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2024-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"4.4.0","license":"MIT","stars":450,"forks":400,"features":["Built-in CMS support (Netlify CMS + Forestry)","Dark mode toggle","Developer portfolio section","Blog with categories and tags","Projects showcase grid","Skills and timeline sections","Newsletter subscription support","Disqus and Utterances comments","Google Analytics","GitHub Pages compatible"],"slug":"devlopr-jekyll","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Creative is a Jekyll adaptation of Start Bootstrap's Creative theme — a bold, fullscreen one-pager built for agencies, studios, and freelancers making a strong first impression.\n\nA large hero image commands attention above the fold, while smooth-scroll navigation guides visitors through portfolio, services, and contact sections below.\n\n**Who is it for?** Agencies and freelancers who need a striking one-page landing site that showcases their portfolio and services.\n","url":"/themes/creative/","draft":false,"categories":["Landing Page"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Creative Jekyll Theme","description":"A one-page Bootstrap landing page Jekyll theme with a fullscreen hero image, smooth scroll navigation, and portfolio sections.","key_features":["One-Page Layout","Smooth Scroll","Portfolio Sections","Bootstrap Based"],"card_description":"One-page Bootstrap landing page with fullscreen hero and portfolio.","category":"Landing Page","card_image":"/assets/images/themes/creative-card.webp","theme_screenshots":["/assets/images/themes/creative-screenshot.webp","/assets/images/themes/creative-screenshot-2.webp","/assets/images/themes/creative-screenshot-3.webp"],"demo_url":"https://volny.github.io/creative-theme-jekyll/","github_url":"https://github.com/volny/creative-theme-jekyll","author":"GitHub Community","github_author_name":"volny","github_author_url":"https://github.com/volny","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2024-08-20","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"Apache-2.0","stars":545,"forks":397,"features":["Fullscreen hero image","Smooth scroll navigation","Portfolio grid section","Services section","Call-to-action buttons","Bootstrap 3 powered","Animated scroll effects","Contact section","GitHub Pages compatible","One-page layout"],"slug":"creative","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/devlopr-jekyll.md","relative_path":"_themes/devlopr-jekyll.md","excerpt":"<p>Devlopr stands out from every other Jekyll theme in one important way: it ships with built-in CMS support. You can write and publish blog posts through a browser-based admin interface — no terminal, no text editor, no git commits. This makes it genuinely practical for developers who want the speed and security of a static site but the convenience of a CMS for day-to-day content updates.</p>\n\n","previous":{"path":"_themes/creative.md","relative_path":"_themes/creative.md","excerpt":"<p>Creative is a Jekyll adaptation of Start Bootstrap’s Creative theme — a bold, fullscreen one-pager built for agencies, studios, and freelancers making a strong first impression.</p>\n\n","previous":{"path":"_themes/contrast.md","relative_path":"_themes/contrast.md","id":"/themes/contrast","collection":"themes","url":"/themes/contrast/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Contrast Jekyll Theme","description":"A simple, minimal Jekyll blog theme with strong typographic contrast, clean post listings, and support for tags and pagination.","key_features":["High Contrast","Tag Support","Minimal Design","Fast Loading"],"card_description":"Minimal blog with strong typographic contrast and tag support.","category":"Blog","card_image":"/assets/images/themes/contrast-card.webp","theme_screenshots":["/assets/images/themes/contrast-screenshot.webp","/assets/images/themes/contrast-screenshot-2.webp","/assets/images/themes/contrast-screenshot-3.webp"],"demo_url":"https://niklasbuschmann.github.io/contrast/","github_url":"https://github.com/niklasbuschmann/contrast","author":"GitHub Community","github_author_name":"niklasbuschmann","github_author_url":"https://github.com/niklasbuschmann","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate"],"updated_at":"2025-08-28","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":446,"forks":199,"features":["High contrast typography","Minimal navigation","Tag archive pages","Paginated post list","Clean post layout","RSS feed","GitHub Pages compatible","Fast load times","No JavaScript required","Mobile friendly"],"slug":"contrast","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/creative","collection":"themes","next":{"path":"_themes/devlopr-jekyll.md","relative_path":"_themes/devlopr-jekyll.md","id":"/themes/devlopr-jekyll","collection":"themes","url":"/themes/devlopr-jekyll/","draft":false,"categories":["Portfolio"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Devlopr Jekyll Theme","description":"A feature-rich developer portfolio Jekyll theme with an integrated blog, skills section, CMS support, and dark mode built in.","key_features":["Dark Mode","CMS Support","Skills Section","Portfolio & Blog"],"card_description":"Developer portfolio with blog, skills section, and dark mode built in.","category":"Portfolio","card_image":"/assets/images/themes/devlopr-jekyll-card.webp","theme_screenshots":["/assets/images/themes/devlopr-jekyll-screenshot.webp","/assets/images/themes/devlopr-jekyll-screenshot-2.webp","/assets/images/themes/devlopr-jekyll-screenshot-3.webp"],"demo_url":"https://devlopr.netlify.app/","github_url":"https://github.com/sujaykundu777/devlopr-jekyll","author":"GitHub Community","github_author_name":"sujaykundu777","github_author_url":"https://github.com/sujaykundu777","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"4.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2024-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"4.4.0","license":"MIT","stars":450,"forks":400,"features":["Built-in CMS support (Netlify CMS + Forestry)","Dark mode toggle","Developer portfolio section","Blog with categories and tags","Projects showcase grid","Skills and timeline sections","Newsletter subscription support","Disqus and Utterances comments","Google Analytics","GitHub Pages compatible"],"slug":"devlopr-jekyll","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Creative is a Jekyll adaptation of Start Bootstrap's Creative theme — a bold, fullscreen one-pager built for agencies, studios, and freelancers making a strong first impression.\n\nA large hero image commands attention above the fold, while smooth-scroll navigation guides visitors through portfolio, services, and contact sections below.\n\n**Who is it for?** Agencies and freelancers who need a striking one-page landing site that showcases their portfolio and services.\n","url":"/themes/creative/","draft":false,"categories":["Landing Page"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Creative Jekyll Theme","description":"A one-page Bootstrap landing page Jekyll theme with a fullscreen hero image, smooth scroll navigation, and portfolio sections.","key_features":["One-Page Layout","Smooth Scroll","Portfolio Sections","Bootstrap Based"],"card_description":"One-page Bootstrap landing page with fullscreen hero and portfolio.","category":"Landing Page","card_image":"/assets/images/themes/creative-card.webp","theme_screenshots":["/assets/images/themes/creative-screenshot.webp","/assets/images/themes/creative-screenshot-2.webp","/assets/images/themes/creative-screenshot-3.webp"],"demo_url":"https://volny.github.io/creative-theme-jekyll/","github_url":"https://github.com/volny/creative-theme-jekyll","author":"GitHub Community","github_author_name":"volny","github_author_url":"https://github.com/volny","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2024-08-20","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"Apache-2.0","stars":545,"forks":397,"features":["Fullscreen hero image","Smooth scroll navigation","Portfolio grid section","Services section","Call-to-action buttons","Bootstrap 3 powered","Animated scroll effects","Contact section","GitHub Pages compatible","One-page layout"],"slug":"creative","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/devlopr-jekyll","collection":"themes","next":{"path":"_themes/dinky.md","relative_path":"_themes/dinky.md","excerpt":"<p>Dinky is a compact, sidebar-based GitHub Pages official theme well suited to small-to-medium project documentation sites. Its bright blue accents and tidy layout feel modern and approachable, and the sidebar keeps navigation visible without consuming too much page space.</p>\n\n","previous":{"path":"_themes/devlopr-jekyll.md","relative_path":"_themes/devlopr-jekyll.md","id":"/themes/devlopr-jekyll","collection":"themes","url":"/themes/devlopr-jekyll/","draft":false,"categories":["Portfolio"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Devlopr Jekyll Theme","description":"A feature-rich developer portfolio Jekyll theme with an integrated blog, skills section, CMS support, and dark mode built in.","key_features":["Dark Mode","CMS Support","Skills Section","Portfolio & Blog"],"card_description":"Developer portfolio with blog, skills section, and dark mode built in.","category":"Portfolio","card_image":"/assets/images/themes/devlopr-jekyll-card.webp","theme_screenshots":["/assets/images/themes/devlopr-jekyll-screenshot.webp","/assets/images/themes/devlopr-jekyll-screenshot-2.webp","/assets/images/themes/devlopr-jekyll-screenshot-3.webp"],"demo_url":"https://devlopr.netlify.app/","github_url":"https://github.com/sujaykundu777/devlopr-jekyll","author":"GitHub Community","github_author_name":"sujaykundu777","github_author_url":"https://github.com/sujaykundu777","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"4.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2024-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"4.4.0","license":"MIT","stars":450,"forks":400,"features":["Built-in CMS support (Netlify CMS + Forestry)","Dark mode toggle","Developer portfolio section","Blog with categories and tags","Projects showcase grid","Skills and timeline sections","Newsletter subscription support","Disqus and Utterances comments","Google Analytics","GitHub Pages compatible"],"slug":"devlopr-jekyll","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/dinky","collection":"themes","next":{"path":"_themes/documentation.md","relative_path":"_themes/documentation.md","id":"/themes/documentation","collection":"themes","url":"/themes/documentation/","draft":false,"categories":["Documentation"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Documentation Jekyll Theme","description":"A documentation and help system Jekyll theme with search, navigation sidebar, and clean typography for technical writing.","key_features":["Search Built-in","Sidebar Nav","Clean Typography","GitHub Pages"],"card_description":"Help system theme with search, sidebar navigation, and clean typography.","category":"Documentation","card_image":"/assets/images/themes/documentation-card.webp","theme_screenshots":["/assets/images/themes/documentation-screenshot.webp","/assets/images/themes/documentation-screenshot-2.webp","/assets/images/themes/documentation-screenshot-3.webp"],"demo_url":"https://docs.cloudcannon.com/","github_url":"https://github.com/CloudCannon/documentation-jekyll-theme","author":"GitHub Community","github_author_name":"CloudCannon","github_author_url":"https://github.com/CloudCannon","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap"],"updated_at":"2024-03-03","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":1194,"forks":423,"features":["Collapsible sidebar navigation","Built-in search","Clean documentation layout","Breadcrumb navigation","Code syntax highlighting","Table of contents","Previous / Next page links","Responsive design","GitHub Pages compatible","Easy content organisation"],"slug":"documentation","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Dinky is a compact, sidebar-based GitHub Pages official theme well suited to small-to-medium project documentation sites. Its bright blue accents and tidy layout feel modern and approachable, and the sidebar keeps navigation visible without consuming too much page space.\n\nLike all official GitHub Pages themes, it activates with a single `theme:` line in your config — no gem management, no local installation.\n\n**Who is it for?** Developers who want a structured sidebar layout for project documentation without the complexity of full documentation frameworks like Just the Docs.\n","url":"/themes/dinky/","draft":false,"categories":["Documentation"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Dinky Jekyll Theme","description":"A compact GitHub Pages Jekyll theme with a fixed sidebar and clean layout. Great for small documentation pages and personal project sites.","key_features":["GitHub Pages","Fixed Sidebar","Project Docs","Compact Layout"],"card_description":"Compact GitHub Pages theme with fixed sidebar for small project sites.","category":"Documentation","card_image":"/assets/images/themes/dinky-card.webp","theme_screenshots":["/assets/images/themes/dinky-screenshot.webp","/assets/images/themes/dinky-screenshot-2.webp","/assets/images/themes/dinky-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/dinky/","github_url":"https://github.com/pages-themes/dinky","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":400,"forks":350,"features":["Official GitHub Pages supported theme","Compact sidebar navigation","Bright blue accent colours","Clean documentation layout","Single-line enable via _config.yml","Responsive design","No local Jekyll install needed"],"slug":"dinky","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Devlopr stands out from every other Jekyll theme in one important way: it ships with built-in CMS support. You can write and publish blog posts through a browser-based admin interface — no terminal, no text editor, no git commits. This makes it genuinely practical for developers who want the speed and security of a static site but the convenience of a CMS for day-to-day content updates.\n\nBeyond the CMS integration, it's a well-rounded developer portfolio theme with sections for projects, skills, timeline, and a blog — all with dark mode support.\n\n**Who is it for?** Developers who want a personal portfolio and blog with CMS-based content editing, so they can write posts from anywhere without a local development environment.\n","url":"/themes/devlopr-jekyll/","draft":false,"categories":["Portfolio"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Devlopr Jekyll Theme","description":"A feature-rich developer portfolio Jekyll theme with an integrated blog, skills section, CMS support, and dark mode built in.","key_features":["Dark Mode","CMS Support","Skills Section","Portfolio & Blog"],"card_description":"Developer portfolio with blog, skills section, and dark mode built in.","category":"Portfolio","card_image":"/assets/images/themes/devlopr-jekyll-card.webp","theme_screenshots":["/assets/images/themes/devlopr-jekyll-screenshot.webp","/assets/images/themes/devlopr-jekyll-screenshot-2.webp","/assets/images/themes/devlopr-jekyll-screenshot-3.webp"],"demo_url":"https://devlopr.netlify.app/","github_url":"https://github.com/sujaykundu777/devlopr-jekyll","author":"GitHub Community","github_author_name":"sujaykundu777","github_author_url":"https://github.com/sujaykundu777","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"4.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2024-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"4.4.0","license":"MIT","stars":450,"forks":400,"features":["Built-in CMS support (Netlify CMS + Forestry)","Dark mode toggle","Developer portfolio section","Blog with categories and tags","Projects showcase grid","Skills and timeline sections","Newsletter subscription support","Disqus and Utterances comments","Google Analytics","GitHub Pages compatible"],"slug":"devlopr-jekyll","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/dinky.md","relative_path":"_themes/dinky.md","excerpt":"<p>Dinky is a compact, sidebar-based GitHub Pages official theme well suited to small-to-medium project documentation sites. Its bright blue accents and tidy layout feel modern and approachable, and the sidebar keeps navigation visible without consuming too much page space.</p>\n\n","previous":{"path":"_themes/devlopr-jekyll.md","relative_path":"_themes/devlopr-jekyll.md","excerpt":"<p>Devlopr stands out from every other Jekyll theme in one important way: it ships with built-in CMS support. You can write and publish blog posts through a browser-based admin interface — no terminal, no text editor, no git commits. This makes it genuinely practical for developers who want the speed and security of a static site but the convenience of a CMS for day-to-day content updates.</p>\n\n","previous":{"path":"_themes/creative.md","relative_path":"_themes/creative.md","id":"/themes/creative","collection":"themes","url":"/themes/creative/","draft":false,"categories":["Landing Page"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Creative Jekyll Theme","description":"A one-page Bootstrap landing page Jekyll theme with a fullscreen hero image, smooth scroll navigation, and portfolio sections.","key_features":["One-Page Layout","Smooth Scroll","Portfolio Sections","Bootstrap Based"],"card_description":"One-page Bootstrap landing page with fullscreen hero and portfolio.","category":"Landing Page","card_image":"/assets/images/themes/creative-card.webp","theme_screenshots":["/assets/images/themes/creative-screenshot.webp","/assets/images/themes/creative-screenshot-2.webp","/assets/images/themes/creative-screenshot-3.webp"],"demo_url":"https://volny.github.io/creative-theme-jekyll/","github_url":"https://github.com/volny/creative-theme-jekyll","author":"GitHub Community","github_author_name":"volny","github_author_url":"https://github.com/volny","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2024-08-20","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"Apache-2.0","stars":545,"forks":397,"features":["Fullscreen hero image","Smooth scroll navigation","Portfolio grid section","Services section","Call-to-action buttons","Bootstrap 3 powered","Animated scroll effects","Contact section","GitHub Pages compatible","One-page layout"],"slug":"creative","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/devlopr-jekyll","collection":"themes","next":{"path":"_themes/dinky.md","relative_path":"_themes/dinky.md","id":"/themes/dinky","collection":"themes","url":"/themes/dinky/","draft":false,"categories":["Documentation"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Dinky Jekyll Theme","description":"A compact GitHub Pages Jekyll theme with a fixed sidebar and clean layout. Great for small documentation pages and personal project sites.","key_features":["GitHub Pages","Fixed Sidebar","Project Docs","Compact Layout"],"card_description":"Compact GitHub Pages theme with fixed sidebar for small project sites.","category":"Documentation","card_image":"/assets/images/themes/dinky-card.webp","theme_screenshots":["/assets/images/themes/dinky-screenshot.webp","/assets/images/themes/dinky-screenshot-2.webp","/assets/images/themes/dinky-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/dinky/","github_url":"https://github.com/pages-themes/dinky","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":400,"forks":350,"features":["Official GitHub Pages supported theme","Compact sidebar navigation","Bright blue accent colours","Clean documentation layout","Single-line enable via _config.yml","Responsive design","No local Jekyll install needed"],"slug":"dinky","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Devlopr stands out from every other Jekyll theme in one important way: it ships with built-in CMS support. You can write and publish blog posts through a browser-based admin interface — no terminal, no text editor, no git commits. This makes it genuinely practical for developers who want the speed and security of a static site but the convenience of a CMS for day-to-day content updates.\n\nBeyond the CMS integration, it's a well-rounded developer portfolio theme with sections for projects, skills, timeline, and a blog — all with dark mode support.\n\n**Who is it for?** Developers who want a personal portfolio and blog with CMS-based content editing, so they can write posts from anywhere without a local development environment.\n","url":"/themes/devlopr-jekyll/","draft":false,"categories":["Portfolio"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Devlopr Jekyll Theme","description":"A feature-rich developer portfolio Jekyll theme with an integrated blog, skills section, CMS support, and dark mode built in.","key_features":["Dark Mode","CMS Support","Skills Section","Portfolio & Blog"],"card_description":"Developer portfolio with blog, skills section, and dark mode built in.","category":"Portfolio","card_image":"/assets/images/themes/devlopr-jekyll-card.webp","theme_screenshots":["/assets/images/themes/devlopr-jekyll-screenshot.webp","/assets/images/themes/devlopr-jekyll-screenshot-2.webp","/assets/images/themes/devlopr-jekyll-screenshot-3.webp"],"demo_url":"https://devlopr.netlify.app/","github_url":"https://github.com/sujaykundu777/devlopr-jekyll","author":"GitHub Community","github_author_name":"sujaykundu777","github_author_url":"https://github.com/sujaykundu777","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"4.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2024-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"4.4.0","license":"MIT","stars":450,"forks":400,"features":["Built-in CMS support (Netlify CMS + Forestry)","Dark mode toggle","Developer portfolio section","Blog with categories and tags","Projects showcase grid","Skills and timeline sections","Newsletter subscription support","Disqus and Utterances comments","Google Analytics","GitHub Pages compatible"],"slug":"devlopr-jekyll","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/dinky","collection":"themes","next":{"path":"_themes/documentation.md","relative_path":"_themes/documentation.md","excerpt":"<p>Documentation is a clean, professional Jekyll theme from CloudCannon designed specifically for technical documentation and help systems.</p>\n\n","previous":{"path":"_themes/dinky.md","relative_path":"_themes/dinky.md","id":"/themes/dinky","collection":"themes","url":"/themes/dinky/","draft":false,"categories":["Documentation"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Dinky Jekyll Theme","description":"A compact GitHub Pages Jekyll theme with a fixed sidebar and clean layout. Great for small documentation pages and personal project sites.","key_features":["GitHub Pages","Fixed Sidebar","Project Docs","Compact Layout"],"card_description":"Compact GitHub Pages theme with fixed sidebar for small project sites.","category":"Documentation","card_image":"/assets/images/themes/dinky-card.webp","theme_screenshots":["/assets/images/themes/dinky-screenshot.webp","/assets/images/themes/dinky-screenshot-2.webp","/assets/images/themes/dinky-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/dinky/","github_url":"https://github.com/pages-themes/dinky","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":400,"forks":350,"features":["Official GitHub Pages supported theme","Compact sidebar navigation","Bright blue accent colours","Clean documentation layout","Single-line enable via _config.yml","Responsive design","No local Jekyll install needed"],"slug":"dinky","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/documentation","collection":"themes","next":{"path":"_themes/feeling-responsive.md","relative_path":"_themes/feeling-responsive.md","id":"/themes/feeling-responsive","collection":"themes","url":"/themes/feeling-responsive/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Feeling Responsive Jekyll Theme","description":"A multipurpose responsive Jekyll theme built on the Foundation framework with flexible layouts, widgets, and rich customisation options.","key_features":["Foundation Framework","Flexible Layouts","Rich Widgets","Multi-Purpose"],"card_description":"Multipurpose Foundation theme with flexible layouts and rich widgets.","category":"Blog","card_image":"/assets/images/themes/feeling-responsive-card.webp","theme_screenshots":["/assets/images/themes/feeling-responsive-screenshot.webp","/assets/images/themes/feeling-responsive-screenshot-2.webp","/assets/images/themes/feeling-responsive-screenshot-3.webp"],"demo_url":"https://phlow.github.io/feeling-responsive/","github_url":"https://github.com/Phlow/feeling-responsive","author":"GitHub Community","github_author_name":"Phlow","github_author_url":"https://github.com/Phlow","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap"],"updated_at":"2025-06-27","added_at":"2026-04-01","popular":true,"trending":false,"bestseller":false,"version":"2.0.0","license":"MIT","stars":945,"forks":614,"features":["Foundation framework","Multiple layout options","Widgetised sidebar","Video embedding support","Image galleries","Google Analytics","Disqus comments","Multilingual ready","GitHub Pages compatible","Extensive documentation"],"slug":"feeling-responsive","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Documentation is a clean, professional Jekyll theme from CloudCannon designed specifically for technical documentation and help systems.\n\nA collapsible sidebar handles deep navigation hierarchies, while built-in search lets users find content instantly. Code blocks are syntax-highlighted throughout.\n\n**Who is it for?** Developers and teams who need to publish product documentation, API references, or technical guides as a static site.\n","url":"/themes/documentation/","draft":false,"categories":["Documentation"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Documentation Jekyll Theme","description":"A documentation and help system Jekyll theme with search, navigation sidebar, and clean typography for technical writing.","key_features":["Search Built-in","Sidebar Nav","Clean Typography","GitHub Pages"],"card_description":"Help system theme with search, sidebar navigation, and clean typography.","category":"Documentation","card_image":"/assets/images/themes/documentation-card.webp","theme_screenshots":["/assets/images/themes/documentation-screenshot.webp","/assets/images/themes/documentation-screenshot-2.webp","/assets/images/themes/documentation-screenshot-3.webp"],"demo_url":"https://docs.cloudcannon.com/","github_url":"https://github.com/CloudCannon/documentation-jekyll-theme","author":"GitHub Community","github_author_name":"CloudCannon","github_author_url":"https://github.com/CloudCannon","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap"],"updated_at":"2024-03-03","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":1194,"forks":423,"features":["Collapsible sidebar navigation","Built-in search","Clean documentation layout","Breadcrumb navigation","Code syntax highlighting","Table of contents","Previous / Next page links","Responsive design","GitHub Pages compatible","Easy content organisation"],"slug":"documentation","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Dinky is a compact, sidebar-based GitHub Pages official theme well suited to small-to-medium project documentation sites. Its bright blue accents and tidy layout feel modern and approachable, and the sidebar keeps navigation visible without consuming too much page space.\n\nLike all official GitHub Pages themes, it activates with a single `theme:` line in your config — no gem management, no local installation.\n\n**Who is it for?** Developers who want a structured sidebar layout for project documentation without the complexity of full documentation frameworks like Just the Docs.\n","url":"/themes/dinky/","draft":false,"categories":["Documentation"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Dinky Jekyll Theme","description":"A compact GitHub Pages Jekyll theme with a fixed sidebar and clean layout. Great for small documentation pages and personal project sites.","key_features":["GitHub Pages","Fixed Sidebar","Project Docs","Compact Layout"],"card_description":"Compact GitHub Pages theme with fixed sidebar for small project sites.","category":"Documentation","card_image":"/assets/images/themes/dinky-card.webp","theme_screenshots":["/assets/images/themes/dinky-screenshot.webp","/assets/images/themes/dinky-screenshot-2.webp","/assets/images/themes/dinky-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/dinky/","github_url":"https://github.com/pages-themes/dinky","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":400,"forks":350,"features":["Official GitHub Pages supported theme","Compact sidebar navigation","Bright blue accent colours","Clean documentation layout","Single-line enable via _config.yml","Responsive design","No local Jekyll install needed"],"slug":"dinky","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/documentation.md","relative_path":"_themes/documentation.md","excerpt":"<p>Documentation is a clean, professional Jekyll theme from CloudCannon designed specifically for technical documentation and help systems.</p>\n\n","previous":{"path":"_themes/dinky.md","relative_path":"_themes/dinky.md","excerpt":"<p>Dinky is a compact, sidebar-based GitHub Pages official theme well suited to small-to-medium project documentation sites. Its bright blue accents and tidy layout feel modern and approachable, and the sidebar keeps navigation visible without consuming too much page space.</p>\n\n","previous":{"path":"_themes/devlopr-jekyll.md","relative_path":"_themes/devlopr-jekyll.md","id":"/themes/devlopr-jekyll","collection":"themes","url":"/themes/devlopr-jekyll/","draft":false,"categories":["Portfolio"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Devlopr Jekyll Theme","description":"A feature-rich developer portfolio Jekyll theme with an integrated blog, skills section, CMS support, and dark mode built in.","key_features":["Dark Mode","CMS Support","Skills Section","Portfolio & Blog"],"card_description":"Developer portfolio with blog, skills section, and dark mode built in.","category":"Portfolio","card_image":"/assets/images/themes/devlopr-jekyll-card.webp","theme_screenshots":["/assets/images/themes/devlopr-jekyll-screenshot.webp","/assets/images/themes/devlopr-jekyll-screenshot-2.webp","/assets/images/themes/devlopr-jekyll-screenshot-3.webp"],"demo_url":"https://devlopr.netlify.app/","github_url":"https://github.com/sujaykundu777/devlopr-jekyll","author":"GitHub Community","github_author_name":"sujaykundu777","github_author_url":"https://github.com/sujaykundu777","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"4.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2024-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"4.4.0","license":"MIT","stars":450,"forks":400,"features":["Built-in CMS support (Netlify CMS + Forestry)","Dark mode toggle","Developer portfolio section","Blog with categories and tags","Projects showcase grid","Skills and timeline sections","Newsletter subscription support","Disqus and Utterances comments","Google Analytics","GitHub Pages compatible"],"slug":"devlopr-jekyll","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/dinky","collection":"themes","next":{"path":"_themes/documentation.md","relative_path":"_themes/documentation.md","id":"/themes/documentation","collection":"themes","url":"/themes/documentation/","draft":false,"categories":["Documentation"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Documentation Jekyll Theme","description":"A documentation and help system Jekyll theme with search, navigation sidebar, and clean typography for technical writing.","key_features":["Search Built-in","Sidebar Nav","Clean Typography","GitHub Pages"],"card_description":"Help system theme with search, sidebar navigation, and clean typography.","category":"Documentation","card_image":"/assets/images/themes/documentation-card.webp","theme_screenshots":["/assets/images/themes/documentation-screenshot.webp","/assets/images/themes/documentation-screenshot-2.webp","/assets/images/themes/documentation-screenshot-3.webp"],"demo_url":"https://docs.cloudcannon.com/","github_url":"https://github.com/CloudCannon/documentation-jekyll-theme","author":"GitHub Community","github_author_name":"CloudCannon","github_author_url":"https://github.com/CloudCannon","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap"],"updated_at":"2024-03-03","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":1194,"forks":423,"features":["Collapsible sidebar navigation","Built-in search","Clean documentation layout","Breadcrumb navigation","Code syntax highlighting","Table of contents","Previous / Next page links","Responsive design","GitHub Pages compatible","Easy content organisation"],"slug":"documentation","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Dinky is a compact, sidebar-based GitHub Pages official theme well suited to small-to-medium project documentation sites. Its bright blue accents and tidy layout feel modern and approachable, and the sidebar keeps navigation visible without consuming too much page space.\n\nLike all official GitHub Pages themes, it activates with a single `theme:` line in your config — no gem management, no local installation.\n\n**Who is it for?** Developers who want a structured sidebar layout for project documentation without the complexity of full documentation frameworks like Just the Docs.\n","url":"/themes/dinky/","draft":false,"categories":["Documentation"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Dinky Jekyll Theme","description":"A compact GitHub Pages Jekyll theme with a fixed sidebar and clean layout. Great for small documentation pages and personal project sites.","key_features":["GitHub Pages","Fixed Sidebar","Project Docs","Compact Layout"],"card_description":"Compact GitHub Pages theme with fixed sidebar for small project sites.","category":"Documentation","card_image":"/assets/images/themes/dinky-card.webp","theme_screenshots":["/assets/images/themes/dinky-screenshot.webp","/assets/images/themes/dinky-screenshot-2.webp","/assets/images/themes/dinky-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/dinky/","github_url":"https://github.com/pages-themes/dinky","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":400,"forks":350,"features":["Official GitHub Pages supported theme","Compact sidebar navigation","Bright blue accent colours","Clean documentation layout","Single-line enable via _config.yml","Responsive design","No local Jekyll install needed"],"slug":"dinky","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/documentation","collection":"themes","next":{"path":"_themes/feeling-responsive.md","relative_path":"_themes/feeling-responsive.md","excerpt":"<p>Feeling Responsive is one of the most feature-rich free Jekyll themes available, built on Zurb’s Foundation framework. It offers a wide range of layouts — from full-width magazine-style pages to narrow reading columns.</p>\n\n","previous":{"path":"_themes/documentation.md","relative_path":"_themes/documentation.md","id":"/themes/documentation","collection":"themes","url":"/themes/documentation/","draft":false,"categories":["Documentation"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Documentation Jekyll Theme","description":"A documentation and help system Jekyll theme with search, navigation sidebar, and clean typography for technical writing.","key_features":["Search Built-in","Sidebar Nav","Clean Typography","GitHub Pages"],"card_description":"Help system theme with search, sidebar navigation, and clean typography.","category":"Documentation","card_image":"/assets/images/themes/documentation-card.webp","theme_screenshots":["/assets/images/themes/documentation-screenshot.webp","/assets/images/themes/documentation-screenshot-2.webp","/assets/images/themes/documentation-screenshot-3.webp"],"demo_url":"https://docs.cloudcannon.com/","github_url":"https://github.com/CloudCannon/documentation-jekyll-theme","author":"GitHub Community","github_author_name":"CloudCannon","github_author_url":"https://github.com/CloudCannon","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap"],"updated_at":"2024-03-03","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":1194,"forks":423,"features":["Collapsible sidebar navigation","Built-in search","Clean documentation layout","Breadcrumb navigation","Code syntax highlighting","Table of contents","Previous / Next page links","Responsive design","GitHub Pages compatible","Easy content organisation"],"slug":"documentation","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/feeling-responsive","collection":"themes","next":{"path":"_themes/flexible-jekyll.md","relative_path":"_themes/flexible-jekyll.md","id":"/themes/flexible-jekyll","collection":"themes","url":"/themes/flexible-jekyll/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Flexible Jekyll","description":"A simple and clean Jekyll theme with a minimal design, dark mode support, tag pages, and a flexible two-column layout.","key_features":["Dark Mode","Two-Column Layout","Tag Pages","Clean Design"],"card_description":"Simple, clean blog with dark mode and flexible two-column layout.","category":"Blog","card_image":"/assets/images/themes/flexible-jekyll-card.webp","theme_screenshots":["/assets/images/themes/flexible-jekyll-screenshot.webp","/assets/images/themes/flexible-jekyll-screenshot-2.webp","/assets/images/themes/flexible-jekyll-screenshot-3.webp"],"demo_url":"https://artemsheludko.github.io/flexible-jekyll/","github_url":"https://github.com/artemsheludko/flexible-jekyll","author":"GitHub Community","github_author_name":"artemsheludko","github_author_url":"https://github.com/artemsheludko","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate"],"updated_at":"2025-06-21","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":782,"forks":449,"features":["Light and dark mode","Two-column layout","Tag archive pages","Author sidebar","Featured post images","Disqus comments","Google Analytics","Social media links","GitHub Pages compatible","Clean minimal design"],"slug":"flexible-jekyll","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Feeling Responsive is one of the most feature-rich free Jekyll themes available, built on Zurb's Foundation framework. It offers a wide range of layouts — from full-width magazine-style pages to narrow reading columns.\n\nThe theme ships with widgets, gallery support, video embedding, and multilingual capabilities. Its extensive documentation makes customisation straightforward even for less experienced developers.\n\n**Who is it for?** Bloggers and small publishers who want a flexible, feature-rich theme without paying for a premium option.\n","url":"/themes/feeling-responsive/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Feeling Responsive Jekyll Theme","description":"A multipurpose responsive Jekyll theme built on the Foundation framework with flexible layouts, widgets, and rich customisation options.","key_features":["Foundation Framework","Flexible Layouts","Rich Widgets","Multi-Purpose"],"card_description":"Multipurpose Foundation theme with flexible layouts and rich widgets.","category":"Blog","card_image":"/assets/images/themes/feeling-responsive-card.webp","theme_screenshots":["/assets/images/themes/feeling-responsive-screenshot.webp","/assets/images/themes/feeling-responsive-screenshot-2.webp","/assets/images/themes/feeling-responsive-screenshot-3.webp"],"demo_url":"https://phlow.github.io/feeling-responsive/","github_url":"https://github.com/Phlow/feeling-responsive","author":"GitHub Community","github_author_name":"Phlow","github_author_url":"https://github.com/Phlow","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap"],"updated_at":"2025-06-27","added_at":"2026-04-01","popular":true,"trending":false,"bestseller":false,"version":"2.0.0","license":"MIT","stars":945,"forks":614,"features":["Foundation framework","Multiple layout options","Widgetised sidebar","Video embedding support","Image galleries","Google Analytics","Disqus comments","Multilingual ready","GitHub Pages compatible","Extensive documentation"],"slug":"feeling-responsive","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Documentation is a clean, professional Jekyll theme from CloudCannon designed specifically for technical documentation and help systems.\n\nA collapsible sidebar handles deep navigation hierarchies, while built-in search lets users find content instantly. Code blocks are syntax-highlighted throughout.\n\n**Who is it for?** Developers and teams who need to publish product documentation, API references, or technical guides as a static site.\n","url":"/themes/documentation/","draft":false,"categories":["Documentation"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Documentation Jekyll Theme","description":"A documentation and help system Jekyll theme with search, navigation sidebar, and clean typography for technical writing.","key_features":["Search Built-in","Sidebar Nav","Clean Typography","GitHub Pages"],"card_description":"Help system theme with search, sidebar navigation, and clean typography.","category":"Documentation","card_image":"/assets/images/themes/documentation-card.webp","theme_screenshots":["/assets/images/themes/documentation-screenshot.webp","/assets/images/themes/documentation-screenshot-2.webp","/assets/images/themes/documentation-screenshot-3.webp"],"demo_url":"https://docs.cloudcannon.com/","github_url":"https://github.com/CloudCannon/documentation-jekyll-theme","author":"GitHub Community","github_author_name":"CloudCannon","github_author_url":"https://github.com/CloudCannon","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap"],"updated_at":"2024-03-03","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":1194,"forks":423,"features":["Collapsible sidebar navigation","Built-in search","Clean documentation layout","Breadcrumb navigation","Code syntax highlighting","Table of contents","Previous / Next page links","Responsive design","GitHub Pages compatible","Easy content organisation"],"slug":"documentation","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/feeling-responsive.md","relative_path":"_themes/feeling-responsive.md","excerpt":"<p>Feeling Responsive is one of the most feature-rich free Jekyll themes available, built on Zurb’s Foundation framework. It offers a wide range of layouts — from full-width magazine-style pages to narrow reading columns.</p>\n\n","previous":{"path":"_themes/documentation.md","relative_path":"_themes/documentation.md","excerpt":"<p>Documentation is a clean, professional Jekyll theme from CloudCannon designed specifically for technical documentation and help systems.</p>\n\n","previous":{"path":"_themes/dinky.md","relative_path":"_themes/dinky.md","id":"/themes/dinky","collection":"themes","url":"/themes/dinky/","draft":false,"categories":["Documentation"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Dinky Jekyll Theme","description":"A compact GitHub Pages Jekyll theme with a fixed sidebar and clean layout. Great for small documentation pages and personal project sites.","key_features":["GitHub Pages","Fixed Sidebar","Project Docs","Compact Layout"],"card_description":"Compact GitHub Pages theme with fixed sidebar for small project sites.","category":"Documentation","card_image":"/assets/images/themes/dinky-card.webp","theme_screenshots":["/assets/images/themes/dinky-screenshot.webp","/assets/images/themes/dinky-screenshot-2.webp","/assets/images/themes/dinky-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/dinky/","github_url":"https://github.com/pages-themes/dinky","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":400,"forks":350,"features":["Official GitHub Pages supported theme","Compact sidebar navigation","Bright blue accent colours","Clean documentation layout","Single-line enable via _config.yml","Responsive design","No local Jekyll install needed"],"slug":"dinky","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/documentation","collection":"themes","next":{"path":"_themes/feeling-responsive.md","relative_path":"_themes/feeling-responsive.md","id":"/themes/feeling-responsive","collection":"themes","url":"/themes/feeling-responsive/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Feeling Responsive Jekyll Theme","description":"A multipurpose responsive Jekyll theme built on the Foundation framework with flexible layouts, widgets, and rich customisation options.","key_features":["Foundation Framework","Flexible Layouts","Rich Widgets","Multi-Purpose"],"card_description":"Multipurpose Foundation theme with flexible layouts and rich widgets.","category":"Blog","card_image":"/assets/images/themes/feeling-responsive-card.webp","theme_screenshots":["/assets/images/themes/feeling-responsive-screenshot.webp","/assets/images/themes/feeling-responsive-screenshot-2.webp","/assets/images/themes/feeling-responsive-screenshot-3.webp"],"demo_url":"https://phlow.github.io/feeling-responsive/","github_url":"https://github.com/Phlow/feeling-responsive","author":"GitHub Community","github_author_name":"Phlow","github_author_url":"https://github.com/Phlow","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap"],"updated_at":"2025-06-27","added_at":"2026-04-01","popular":true,"trending":false,"bestseller":false,"version":"2.0.0","license":"MIT","stars":945,"forks":614,"features":["Foundation framework","Multiple layout options","Widgetised sidebar","Video embedding support","Image galleries","Google Analytics","Disqus comments","Multilingual ready","GitHub Pages compatible","Extensive documentation"],"slug":"feeling-responsive","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Documentation is a clean, professional Jekyll theme from CloudCannon designed specifically for technical documentation and help systems.\n\nA collapsible sidebar handles deep navigation hierarchies, while built-in search lets users find content instantly. Code blocks are syntax-highlighted throughout.\n\n**Who is it for?** Developers and teams who need to publish product documentation, API references, or technical guides as a static site.\n","url":"/themes/documentation/","draft":false,"categories":["Documentation"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Documentation Jekyll Theme","description":"A documentation and help system Jekyll theme with search, navigation sidebar, and clean typography for technical writing.","key_features":["Search Built-in","Sidebar Nav","Clean Typography","GitHub Pages"],"card_description":"Help system theme with search, sidebar navigation, and clean typography.","category":"Documentation","card_image":"/assets/images/themes/documentation-card.webp","theme_screenshots":["/assets/images/themes/documentation-screenshot.webp","/assets/images/themes/documentation-screenshot-2.webp","/assets/images/themes/documentation-screenshot-3.webp"],"demo_url":"https://docs.cloudcannon.com/","github_url":"https://github.com/CloudCannon/documentation-jekyll-theme","author":"GitHub Community","github_author_name":"CloudCannon","github_author_url":"https://github.com/CloudCannon","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap"],"updated_at":"2024-03-03","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":1194,"forks":423,"features":["Collapsible sidebar navigation","Built-in search","Clean documentation layout","Breadcrumb navigation","Code syntax highlighting","Table of contents","Previous / Next page links","Responsive design","GitHub Pages compatible","Easy content organisation"],"slug":"documentation","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/feeling-responsive","collection":"themes","next":{"path":"_themes/flexible-jekyll.md","relative_path":"_themes/flexible-jekyll.md","excerpt":"<p>Flexible Jekyll is a clean, versatile theme with a two-column layout — posts on the left, author sidebar on the right. It ships with both light and dark modes, letting readers choose their preferred reading environment.</p>\n\n","previous":{"path":"_themes/feeling-responsive.md","relative_path":"_themes/feeling-responsive.md","id":"/themes/feeling-responsive","collection":"themes","url":"/themes/feeling-responsive/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Feeling Responsive Jekyll Theme","description":"A multipurpose responsive Jekyll theme built on the Foundation framework with flexible layouts, widgets, and rich customisation options.","key_features":["Foundation Framework","Flexible Layouts","Rich Widgets","Multi-Purpose"],"card_description":"Multipurpose Foundation theme with flexible layouts and rich widgets.","category":"Blog","card_image":"/assets/images/themes/feeling-responsive-card.webp","theme_screenshots":["/assets/images/themes/feeling-responsive-screenshot.webp","/assets/images/themes/feeling-responsive-screenshot-2.webp","/assets/images/themes/feeling-responsive-screenshot-3.webp"],"demo_url":"https://phlow.github.io/feeling-responsive/","github_url":"https://github.com/Phlow/feeling-responsive","author":"GitHub Community","github_author_name":"Phlow","github_author_url":"https://github.com/Phlow","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap"],"updated_at":"2025-06-27","added_at":"2026-04-01","popular":true,"trending":false,"bestseller":false,"version":"2.0.0","license":"MIT","stars":945,"forks":614,"features":["Foundation framework","Multiple layout options","Widgetised sidebar","Video embedding support","Image galleries","Google Analytics","Disqus comments","Multilingual ready","GitHub Pages compatible","Extensive documentation"],"slug":"feeling-responsive","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/flexible-jekyll","collection":"themes","next":{"path":"_themes/forty.md","relative_path":"_themes/forty.md","id":"/themes/forty","collection":"themes","url":"/themes/forty/","draft":false,"categories":["Portfolio"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Forty Jekyll Theme","description":"A visually striking multipurpose Jekyll theme inspired by HTML5 UP. Features tiled project sections and high-impact full-screen headers.","key_features":["Full-Screen Headers","Tiled Portfolio","Dark Mode","Striking Visuals"],"card_description":"Visually striking multipurpose theme with tiled sections and full-screen headers.","category":"Portfolio","card_image":"/assets/images/themes/forty-card.webp","theme_screenshots":["/assets/images/themes/forty-screenshot.webp","/assets/images/themes/forty-screenshot-2.webp","/assets/images/themes/forty-screenshot-3.webp"],"demo_url":"https://andrewbanchich.github.io/forty-jekyll-theme/","github_url":"https://github.com/andrewbanchich/forty-jekyll-theme","author":"GitHub Community","github_author_name":"Andrew Banchich","github_author_url":"https://github.com/andrewbanchich","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2023-05-01","added_at":"2026-03-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"CC3","stars":1100,"forks":1200,"features":["Tile-based portfolio grid","Full-screen banner","Dark/light tile contrast","Contact form","Portfolio and blog sections"],"slug":"forty","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Flexible Jekyll is a clean, versatile theme with a two-column layout — posts on the left, author sidebar on the right. It ships with both light and dark modes, letting readers choose their preferred reading environment.\n\nThe design is deliberately understated, keeping the focus entirely on content. Tag archive pages make it easy to navigate a large back-catalogue of posts.\n\n**Who is it for?** Bloggers who want a clean, readable two-column layout with dark mode support out of the box.\n","url":"/themes/flexible-jekyll/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Flexible Jekyll","description":"A simple and clean Jekyll theme with a minimal design, dark mode support, tag pages, and a flexible two-column layout.","key_features":["Dark Mode","Two-Column Layout","Tag Pages","Clean Design"],"card_description":"Simple, clean blog with dark mode and flexible two-column layout.","category":"Blog","card_image":"/assets/images/themes/flexible-jekyll-card.webp","theme_screenshots":["/assets/images/themes/flexible-jekyll-screenshot.webp","/assets/images/themes/flexible-jekyll-screenshot-2.webp","/assets/images/themes/flexible-jekyll-screenshot-3.webp"],"demo_url":"https://artemsheludko.github.io/flexible-jekyll/","github_url":"https://github.com/artemsheludko/flexible-jekyll","author":"GitHub Community","github_author_name":"artemsheludko","github_author_url":"https://github.com/artemsheludko","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate"],"updated_at":"2025-06-21","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":782,"forks":449,"features":["Light and dark mode","Two-column layout","Tag archive pages","Author sidebar","Featured post images","Disqus comments","Google Analytics","Social media links","GitHub Pages compatible","Clean minimal design"],"slug":"flexible-jekyll","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Feeling Responsive is one of the most feature-rich free Jekyll themes available, built on Zurb's Foundation framework. It offers a wide range of layouts — from full-width magazine-style pages to narrow reading columns.\n\nThe theme ships with widgets, gallery support, video embedding, and multilingual capabilities. Its extensive documentation makes customisation straightforward even for less experienced developers.\n\n**Who is it for?** Bloggers and small publishers who want a flexible, feature-rich theme without paying for a premium option.\n","url":"/themes/feeling-responsive/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Feeling Responsive Jekyll Theme","description":"A multipurpose responsive Jekyll theme built on the Foundation framework with flexible layouts, widgets, and rich customisation options.","key_features":["Foundation Framework","Flexible Layouts","Rich Widgets","Multi-Purpose"],"card_description":"Multipurpose Foundation theme with flexible layouts and rich widgets.","category":"Blog","card_image":"/assets/images/themes/feeling-responsive-card.webp","theme_screenshots":["/assets/images/themes/feeling-responsive-screenshot.webp","/assets/images/themes/feeling-responsive-screenshot-2.webp","/assets/images/themes/feeling-responsive-screenshot-3.webp"],"demo_url":"https://phlow.github.io/feeling-responsive/","github_url":"https://github.com/Phlow/feeling-responsive","author":"GitHub Community","github_author_name":"Phlow","github_author_url":"https://github.com/Phlow","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap"],"updated_at":"2025-06-27","added_at":"2026-04-01","popular":true,"trending":false,"bestseller":false,"version":"2.0.0","license":"MIT","stars":945,"forks":614,"features":["Foundation framework","Multiple layout options","Widgetised sidebar","Video embedding support","Image galleries","Google Analytics","Disqus comments","Multilingual ready","GitHub Pages compatible","Extensive documentation"],"slug":"feeling-responsive","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/flexible-jekyll.md","relative_path":"_themes/flexible-jekyll.md","excerpt":"<p>Flexible Jekyll is a clean, versatile theme with a two-column layout — posts on the left, author sidebar on the right. It ships with both light and dark modes, letting readers choose their preferred reading environment.</p>\n\n","previous":{"path":"_themes/feeling-responsive.md","relative_path":"_themes/feeling-responsive.md","excerpt":"<p>Feeling Responsive is one of the most feature-rich free Jekyll themes available, built on Zurb’s Foundation framework. It offers a wide range of layouts — from full-width magazine-style pages to narrow reading columns.</p>\n\n","previous":{"path":"_themes/documentation.md","relative_path":"_themes/documentation.md","id":"/themes/documentation","collection":"themes","url":"/themes/documentation/","draft":false,"categories":["Documentation"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Documentation Jekyll Theme","description":"A documentation and help system Jekyll theme with search, navigation sidebar, and clean typography for technical writing.","key_features":["Search Built-in","Sidebar Nav","Clean Typography","GitHub Pages"],"card_description":"Help system theme with search, sidebar navigation, and clean typography.","category":"Documentation","card_image":"/assets/images/themes/documentation-card.webp","theme_screenshots":["/assets/images/themes/documentation-screenshot.webp","/assets/images/themes/documentation-screenshot-2.webp","/assets/images/themes/documentation-screenshot-3.webp"],"demo_url":"https://docs.cloudcannon.com/","github_url":"https://github.com/CloudCannon/documentation-jekyll-theme","author":"GitHub Community","github_author_name":"CloudCannon","github_author_url":"https://github.com/CloudCannon","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap"],"updated_at":"2024-03-03","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":1194,"forks":423,"features":["Collapsible sidebar navigation","Built-in search","Clean documentation layout","Breadcrumb navigation","Code syntax highlighting","Table of contents","Previous / Next page links","Responsive design","GitHub Pages compatible","Easy content organisation"],"slug":"documentation","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/feeling-responsive","collection":"themes","next":{"path":"_themes/flexible-jekyll.md","relative_path":"_themes/flexible-jekyll.md","id":"/themes/flexible-jekyll","collection":"themes","url":"/themes/flexible-jekyll/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Flexible Jekyll","description":"A simple and clean Jekyll theme with a minimal design, dark mode support, tag pages, and a flexible two-column layout.","key_features":["Dark Mode","Two-Column Layout","Tag Pages","Clean Design"],"card_description":"Simple, clean blog with dark mode and flexible two-column layout.","category":"Blog","card_image":"/assets/images/themes/flexible-jekyll-card.webp","theme_screenshots":["/assets/images/themes/flexible-jekyll-screenshot.webp","/assets/images/themes/flexible-jekyll-screenshot-2.webp","/assets/images/themes/flexible-jekyll-screenshot-3.webp"],"demo_url":"https://artemsheludko.github.io/flexible-jekyll/","github_url":"https://github.com/artemsheludko/flexible-jekyll","author":"GitHub Community","github_author_name":"artemsheludko","github_author_url":"https://github.com/artemsheludko","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate"],"updated_at":"2025-06-21","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":782,"forks":449,"features":["Light and dark mode","Two-column layout","Tag archive pages","Author sidebar","Featured post images","Disqus comments","Google Analytics","Social media links","GitHub Pages compatible","Clean minimal design"],"slug":"flexible-jekyll","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Feeling Responsive is one of the most feature-rich free Jekyll themes available, built on Zurb's Foundation framework. It offers a wide range of layouts — from full-width magazine-style pages to narrow reading columns.\n\nThe theme ships with widgets, gallery support, video embedding, and multilingual capabilities. Its extensive documentation makes customisation straightforward even for less experienced developers.\n\n**Who is it for?** Bloggers and small publishers who want a flexible, feature-rich theme without paying for a premium option.\n","url":"/themes/feeling-responsive/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Feeling Responsive Jekyll Theme","description":"A multipurpose responsive Jekyll theme built on the Foundation framework with flexible layouts, widgets, and rich customisation options.","key_features":["Foundation Framework","Flexible Layouts","Rich Widgets","Multi-Purpose"],"card_description":"Multipurpose Foundation theme with flexible layouts and rich widgets.","category":"Blog","card_image":"/assets/images/themes/feeling-responsive-card.webp","theme_screenshots":["/assets/images/themes/feeling-responsive-screenshot.webp","/assets/images/themes/feeling-responsive-screenshot-2.webp","/assets/images/themes/feeling-responsive-screenshot-3.webp"],"demo_url":"https://phlow.github.io/feeling-responsive/","github_url":"https://github.com/Phlow/feeling-responsive","author":"GitHub Community","github_author_name":"Phlow","github_author_url":"https://github.com/Phlow","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap"],"updated_at":"2025-06-27","added_at":"2026-04-01","popular":true,"trending":false,"bestseller":false,"version":"2.0.0","license":"MIT","stars":945,"forks":614,"features":["Foundation framework","Multiple layout options","Widgetised sidebar","Video embedding support","Image galleries","Google Analytics","Disqus comments","Multilingual ready","GitHub Pages compatible","Extensive documentation"],"slug":"feeling-responsive","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/flexible-jekyll","collection":"themes","next":{"path":"_themes/forty.md","relative_path":"_themes/forty.md","excerpt":"<p>Forty is a Jekyll port of the popular HTML5 UP design of the same name. Its bold tile-based layout creates a striking visual grid where each tile can show off a project, case study, or article.</p>\n\n","previous":{"path":"_themes/flexible-jekyll.md","relative_path":"_themes/flexible-jekyll.md","id":"/themes/flexible-jekyll","collection":"themes","url":"/themes/flexible-jekyll/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Flexible Jekyll","description":"A simple and clean Jekyll theme with a minimal design, dark mode support, tag pages, and a flexible two-column layout.","key_features":["Dark Mode","Two-Column Layout","Tag Pages","Clean Design"],"card_description":"Simple, clean blog with dark mode and flexible two-column layout.","category":"Blog","card_image":"/assets/images/themes/flexible-jekyll-card.webp","theme_screenshots":["/assets/images/themes/flexible-jekyll-screenshot.webp","/assets/images/themes/flexible-jekyll-screenshot-2.webp","/assets/images/themes/flexible-jekyll-screenshot-3.webp"],"demo_url":"https://artemsheludko.github.io/flexible-jekyll/","github_url":"https://github.com/artemsheludko/flexible-jekyll","author":"GitHub Community","github_author_name":"artemsheludko","github_author_url":"https://github.com/artemsheludko","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate"],"updated_at":"2025-06-21","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":782,"forks":449,"features":["Light and dark mode","Two-column layout","Tag archive pages","Author sidebar","Featured post images","Disqus comments","Google Analytics","Social media links","GitHub Pages compatible","Clean minimal design"],"slug":"flexible-jekyll","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/forty","collection":"themes","next":{"path":"_themes/freelancer.md","relative_path":"_themes/freelancer.md","id":"/themes/freelancer","collection":"themes","url":"/themes/freelancer/","draft":false,"categories":["Portfolio"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Freelancer Jekyll Theme","description":"A flat design landing page and portfolio Jekyll theme based on the popular Freelancer Bootstrap theme by Start Bootstrap.","key_features":["One-Page Portfolio","Project Showcase","Contact Form","Bootstrap Based"],"card_description":"Flat design portfolio and landing page theme for freelancers.","category":"Portfolio","card_image":"/assets/images/themes/freelancer-card.webp","theme_screenshots":["/assets/images/themes/freelancer-screenshot.webp","/assets/images/themes/freelancer-screenshot-2.webp","/assets/images/themes/freelancer-screenshot-3.webp"],"demo_url":"https://jeromelachaud.com/freelancer-theme/","github_url":"https://github.com/jeromelachaud/freelancer-theme","author":"GitHub Community","github_author_name":"Jerome Lachaud","github_author_url":"https://github.com/jeromelachaud","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2024-08-20","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":1488,"forks":623,"features":["One-page scrolling layout","Portfolio grid with modals","Flat design aesthetic","Bootstrap 3 powered","Contact form section","Smooth scroll navigation","Animated header","Skills section","GitHub Pages compatible","Fully responsive"],"slug":"freelancer","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Forty is a Jekyll port of the popular HTML5 UP design of the same name. Its bold tile-based layout creates a striking visual grid where each tile can show off a project, case study, or article.\n\nThe alternating dark and light tiles create visual rhythm and make each piece of work feel intentional.\n\n**Who is it for?** Designers, photographers, and creatives who want a visually bold portfolio site that showcases work in large format.\n","url":"/themes/forty/","draft":false,"categories":["Portfolio"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Forty Jekyll Theme","description":"A visually striking multipurpose Jekyll theme inspired by HTML5 UP. Features tiled project sections and high-impact full-screen headers.","key_features":["Full-Screen Headers","Tiled Portfolio","Dark Mode","Striking Visuals"],"card_description":"Visually striking multipurpose theme with tiled sections and full-screen headers.","category":"Portfolio","card_image":"/assets/images/themes/forty-card.webp","theme_screenshots":["/assets/images/themes/forty-screenshot.webp","/assets/images/themes/forty-screenshot-2.webp","/assets/images/themes/forty-screenshot-3.webp"],"demo_url":"https://andrewbanchich.github.io/forty-jekyll-theme/","github_url":"https://github.com/andrewbanchich/forty-jekyll-theme","author":"GitHub Community","github_author_name":"Andrew Banchich","github_author_url":"https://github.com/andrewbanchich","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2023-05-01","added_at":"2026-03-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"CC3","stars":1100,"forks":1200,"features":["Tile-based portfolio grid","Full-screen banner","Dark/light tile contrast","Contact form","Portfolio and blog sections"],"slug":"forty","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Flexible Jekyll is a clean, versatile theme with a two-column layout — posts on the left, author sidebar on the right. It ships with both light and dark modes, letting readers choose their preferred reading environment.\n\nThe design is deliberately understated, keeping the focus entirely on content. Tag archive pages make it easy to navigate a large back-catalogue of posts.\n\n**Who is it for?** Bloggers who want a clean, readable two-column layout with dark mode support out of the box.\n","url":"/themes/flexible-jekyll/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Flexible Jekyll","description":"A simple and clean Jekyll theme with a minimal design, dark mode support, tag pages, and a flexible two-column layout.","key_features":["Dark Mode","Two-Column Layout","Tag Pages","Clean Design"],"card_description":"Simple, clean blog with dark mode and flexible two-column layout.","category":"Blog","card_image":"/assets/images/themes/flexible-jekyll-card.webp","theme_screenshots":["/assets/images/themes/flexible-jekyll-screenshot.webp","/assets/images/themes/flexible-jekyll-screenshot-2.webp","/assets/images/themes/flexible-jekyll-screenshot-3.webp"],"demo_url":"https://artemsheludko.github.io/flexible-jekyll/","github_url":"https://github.com/artemsheludko/flexible-jekyll","author":"GitHub Community","github_author_name":"artemsheludko","github_author_url":"https://github.com/artemsheludko","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate"],"updated_at":"2025-06-21","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":782,"forks":449,"features":["Light and dark mode","Two-column layout","Tag archive pages","Author sidebar","Featured post images","Disqus comments","Google Analytics","Social media links","GitHub Pages compatible","Clean minimal design"],"slug":"flexible-jekyll","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/forty.md","relative_path":"_themes/forty.md","excerpt":"<p>Forty is a Jekyll port of the popular HTML5 UP design of the same name. Its bold tile-based layout creates a striking visual grid where each tile can show off a project, case study, or article.</p>\n\n","previous":{"path":"_themes/flexible-jekyll.md","relative_path":"_themes/flexible-jekyll.md","excerpt":"<p>Flexible Jekyll is a clean, versatile theme with a two-column layout — posts on the left, author sidebar on the right. It ships with both light and dark modes, letting readers choose their preferred reading environment.</p>\n\n","previous":{"path":"_themes/feeling-responsive.md","relative_path":"_themes/feeling-responsive.md","id":"/themes/feeling-responsive","collection":"themes","url":"/themes/feeling-responsive/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Feeling Responsive Jekyll Theme","description":"A multipurpose responsive Jekyll theme built on the Foundation framework with flexible layouts, widgets, and rich customisation options.","key_features":["Foundation Framework","Flexible Layouts","Rich Widgets","Multi-Purpose"],"card_description":"Multipurpose Foundation theme with flexible layouts and rich widgets.","category":"Blog","card_image":"/assets/images/themes/feeling-responsive-card.webp","theme_screenshots":["/assets/images/themes/feeling-responsive-screenshot.webp","/assets/images/themes/feeling-responsive-screenshot-2.webp","/assets/images/themes/feeling-responsive-screenshot-3.webp"],"demo_url":"https://phlow.github.io/feeling-responsive/","github_url":"https://github.com/Phlow/feeling-responsive","author":"GitHub Community","github_author_name":"Phlow","github_author_url":"https://github.com/Phlow","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap"],"updated_at":"2025-06-27","added_at":"2026-04-01","popular":true,"trending":false,"bestseller":false,"version":"2.0.0","license":"MIT","stars":945,"forks":614,"features":["Foundation framework","Multiple layout options","Widgetised sidebar","Video embedding support","Image galleries","Google Analytics","Disqus comments","Multilingual ready","GitHub Pages compatible","Extensive documentation"],"slug":"feeling-responsive","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/flexible-jekyll","collection":"themes","next":{"path":"_themes/forty.md","relative_path":"_themes/forty.md","id":"/themes/forty","collection":"themes","url":"/themes/forty/","draft":false,"categories":["Portfolio"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Forty Jekyll Theme","description":"A visually striking multipurpose Jekyll theme inspired by HTML5 UP. Features tiled project sections and high-impact full-screen headers.","key_features":["Full-Screen Headers","Tiled Portfolio","Dark Mode","Striking Visuals"],"card_description":"Visually striking multipurpose theme with tiled sections and full-screen headers.","category":"Portfolio","card_image":"/assets/images/themes/forty-card.webp","theme_screenshots":["/assets/images/themes/forty-screenshot.webp","/assets/images/themes/forty-screenshot-2.webp","/assets/images/themes/forty-screenshot-3.webp"],"demo_url":"https://andrewbanchich.github.io/forty-jekyll-theme/","github_url":"https://github.com/andrewbanchich/forty-jekyll-theme","author":"GitHub Community","github_author_name":"Andrew Banchich","github_author_url":"https://github.com/andrewbanchich","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2023-05-01","added_at":"2026-03-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"CC3","stars":1100,"forks":1200,"features":["Tile-based portfolio grid","Full-screen banner","Dark/light tile contrast","Contact form","Portfolio and blog sections"],"slug":"forty","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Flexible Jekyll is a clean, versatile theme with a two-column layout — posts on the left, author sidebar on the right. It ships with both light and dark modes, letting readers choose their preferred reading environment.\n\nThe design is deliberately understated, keeping the focus entirely on content. Tag archive pages make it easy to navigate a large back-catalogue of posts.\n\n**Who is it for?** Bloggers who want a clean, readable two-column layout with dark mode support out of the box.\n","url":"/themes/flexible-jekyll/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Flexible Jekyll","description":"A simple and clean Jekyll theme with a minimal design, dark mode support, tag pages, and a flexible two-column layout.","key_features":["Dark Mode","Two-Column Layout","Tag Pages","Clean Design"],"card_description":"Simple, clean blog with dark mode and flexible two-column layout.","category":"Blog","card_image":"/assets/images/themes/flexible-jekyll-card.webp","theme_screenshots":["/assets/images/themes/flexible-jekyll-screenshot.webp","/assets/images/themes/flexible-jekyll-screenshot-2.webp","/assets/images/themes/flexible-jekyll-screenshot-3.webp"],"demo_url":"https://artemsheludko.github.io/flexible-jekyll/","github_url":"https://github.com/artemsheludko/flexible-jekyll","author":"GitHub Community","github_author_name":"artemsheludko","github_author_url":"https://github.com/artemsheludko","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate"],"updated_at":"2025-06-21","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":782,"forks":449,"features":["Light and dark mode","Two-column layout","Tag archive pages","Author sidebar","Featured post images","Disqus comments","Google Analytics","Social media links","GitHub Pages compatible","Clean minimal design"],"slug":"flexible-jekyll","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/forty","collection":"themes","next":{"path":"_themes/freelancer.md","relative_path":"_themes/freelancer.md","excerpt":"<p>Freelancer is a Jekyll port of Start Bootstrap’s popular Freelancer theme — a one-page scrolling layout built for designers and developers showcasing their work.</p>\n\n","previous":{"path":"_themes/forty.md","relative_path":"_themes/forty.md","id":"/themes/forty","collection":"themes","url":"/themes/forty/","draft":false,"categories":["Portfolio"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Forty Jekyll Theme","description":"A visually striking multipurpose Jekyll theme inspired by HTML5 UP. Features tiled project sections and high-impact full-screen headers.","key_features":["Full-Screen Headers","Tiled Portfolio","Dark Mode","Striking Visuals"],"card_description":"Visually striking multipurpose theme with tiled sections and full-screen headers.","category":"Portfolio","card_image":"/assets/images/themes/forty-card.webp","theme_screenshots":["/assets/images/themes/forty-screenshot.webp","/assets/images/themes/forty-screenshot-2.webp","/assets/images/themes/forty-screenshot-3.webp"],"demo_url":"https://andrewbanchich.github.io/forty-jekyll-theme/","github_url":"https://github.com/andrewbanchich/forty-jekyll-theme","author":"GitHub Community","github_author_name":"Andrew Banchich","github_author_url":"https://github.com/andrewbanchich","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2023-05-01","added_at":"2026-03-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"CC3","stars":1100,"forks":1200,"features":["Tile-based portfolio grid","Full-screen banner","Dark/light tile contrast","Contact form","Portfolio and blog sections"],"slug":"forty","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/freelancer","collection":"themes","next":{"path":"_themes/hacker-blog.md","relative_path":"_themes/hacker-blog.md","id":"/themes/hacker-blog","collection":"themes","url":"/themes/hacker-blog/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Hacker Blog Jekyll Theme","description":"A minimal, terminal-inspired dark Jekyll blog theme for developers. Pure CLI aesthetic — black background, monospace font, zero distractions.","key_features":["Terminal Aesthetic","GitHub Pages","Fast Loading","Minimal Design"],"card_description":"Terminal-inspired dark blog — monospace, minimal, distraction-free.","category":"Blog","card_image":"/assets/images/themes/hacker-blog-card.webp","theme_screenshots":["/assets/images/themes/hacker-blog-screenshot.webp","/assets/images/themes/hacker-blog-screenshot-2.webp","/assets/images/themes/hacker-blog-screenshot-3.webp"],"demo_url":"https://tocttou.github.io/hacker-blog/","github_url":"https://github.com/tocttou/hacker-blog","author":"GitHub Community","github_author_name":"Ashish Chaudhary","github_author_url":"https://github.com/tocttou","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2022-01-01","added_at":"2026-03-05","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":1200,"forks":380,"features":["Terminal-inspired aesthetic","Pure dark mode","Minimal layout","Fast loading","No JavaScript"],"slug":"hacker-blog","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Freelancer is a Jekyll port of Start Bootstrap's popular Freelancer theme — a one-page scrolling layout built for designers and developers showcasing their work.\n\nThe portfolio grid opens each project in a modal overlay, keeping the visitor on the same page. A flat design aesthetic with bold colours makes it stand out without being cluttered.\n\n**Who is it for?** Freelancers and designers who want a polished single-page portfolio to showcase their work and attract clients.\n","url":"/themes/freelancer/","draft":false,"categories":["Portfolio"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Freelancer Jekyll Theme","description":"A flat design landing page and portfolio Jekyll theme based on the popular Freelancer Bootstrap theme by Start Bootstrap.","key_features":["One-Page Portfolio","Project Showcase","Contact Form","Bootstrap Based"],"card_description":"Flat design portfolio and landing page theme for freelancers.","category":"Portfolio","card_image":"/assets/images/themes/freelancer-card.webp","theme_screenshots":["/assets/images/themes/freelancer-screenshot.webp","/assets/images/themes/freelancer-screenshot-2.webp","/assets/images/themes/freelancer-screenshot-3.webp"],"demo_url":"https://jeromelachaud.com/freelancer-theme/","github_url":"https://github.com/jeromelachaud/freelancer-theme","author":"GitHub Community","github_author_name":"Jerome Lachaud","github_author_url":"https://github.com/jeromelachaud","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2024-08-20","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":1488,"forks":623,"features":["One-page scrolling layout","Portfolio grid with modals","Flat design aesthetic","Bootstrap 3 powered","Contact form section","Smooth scroll navigation","Animated header","Skills section","GitHub Pages compatible","Fully responsive"],"slug":"freelancer","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Forty is a Jekyll port of the popular HTML5 UP design of the same name. Its bold tile-based layout creates a striking visual grid where each tile can show off a project, case study, or article.\n\nThe alternating dark and light tiles create visual rhythm and make each piece of work feel intentional.\n\n**Who is it for?** Designers, photographers, and creatives who want a visually bold portfolio site that showcases work in large format.\n","url":"/themes/forty/","draft":false,"categories":["Portfolio"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Forty Jekyll Theme","description":"A visually striking multipurpose Jekyll theme inspired by HTML5 UP. Features tiled project sections and high-impact full-screen headers.","key_features":["Full-Screen Headers","Tiled Portfolio","Dark Mode","Striking Visuals"],"card_description":"Visually striking multipurpose theme with tiled sections and full-screen headers.","category":"Portfolio","card_image":"/assets/images/themes/forty-card.webp","theme_screenshots":["/assets/images/themes/forty-screenshot.webp","/assets/images/themes/forty-screenshot-2.webp","/assets/images/themes/forty-screenshot-3.webp"],"demo_url":"https://andrewbanchich.github.io/forty-jekyll-theme/","github_url":"https://github.com/andrewbanchich/forty-jekyll-theme","author":"GitHub Community","github_author_name":"Andrew Banchich","github_author_url":"https://github.com/andrewbanchich","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2023-05-01","added_at":"2026-03-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"CC3","stars":1100,"forks":1200,"features":["Tile-based portfolio grid","Full-screen banner","Dark/light tile contrast","Contact form","Portfolio and blog sections"],"slug":"forty","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/freelancer.md","relative_path":"_themes/freelancer.md","excerpt":"<p>Freelancer is a Jekyll port of Start Bootstrap’s popular Freelancer theme — a one-page scrolling layout built for designers and developers showcasing their work.</p>\n\n","previous":{"path":"_themes/forty.md","relative_path":"_themes/forty.md","excerpt":"<p>Forty is a Jekyll port of the popular HTML5 UP design of the same name. Its bold tile-based layout creates a striking visual grid where each tile can show off a project, case study, or article.</p>\n\n","previous":{"path":"_themes/flexible-jekyll.md","relative_path":"_themes/flexible-jekyll.md","id":"/themes/flexible-jekyll","collection":"themes","url":"/themes/flexible-jekyll/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Flexible Jekyll","description":"A simple and clean Jekyll theme with a minimal design, dark mode support, tag pages, and a flexible two-column layout.","key_features":["Dark Mode","Two-Column Layout","Tag Pages","Clean Design"],"card_description":"Simple, clean blog with dark mode and flexible two-column layout.","category":"Blog","card_image":"/assets/images/themes/flexible-jekyll-card.webp","theme_screenshots":["/assets/images/themes/flexible-jekyll-screenshot.webp","/assets/images/themes/flexible-jekyll-screenshot-2.webp","/assets/images/themes/flexible-jekyll-screenshot-3.webp"],"demo_url":"https://artemsheludko.github.io/flexible-jekyll/","github_url":"https://github.com/artemsheludko/flexible-jekyll","author":"GitHub Community","github_author_name":"artemsheludko","github_author_url":"https://github.com/artemsheludko","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate"],"updated_at":"2025-06-21","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":782,"forks":449,"features":["Light and dark mode","Two-column layout","Tag archive pages","Author sidebar","Featured post images","Disqus comments","Google Analytics","Social media links","GitHub Pages compatible","Clean minimal design"],"slug":"flexible-jekyll","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/forty","collection":"themes","next":{"path":"_themes/freelancer.md","relative_path":"_themes/freelancer.md","id":"/themes/freelancer","collection":"themes","url":"/themes/freelancer/","draft":false,"categories":["Portfolio"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Freelancer Jekyll Theme","description":"A flat design landing page and portfolio Jekyll theme based on the popular Freelancer Bootstrap theme by Start Bootstrap.","key_features":["One-Page Portfolio","Project Showcase","Contact Form","Bootstrap Based"],"card_description":"Flat design portfolio and landing page theme for freelancers.","category":"Portfolio","card_image":"/assets/images/themes/freelancer-card.webp","theme_screenshots":["/assets/images/themes/freelancer-screenshot.webp","/assets/images/themes/freelancer-screenshot-2.webp","/assets/images/themes/freelancer-screenshot-3.webp"],"demo_url":"https://jeromelachaud.com/freelancer-theme/","github_url":"https://github.com/jeromelachaud/freelancer-theme","author":"GitHub Community","github_author_name":"Jerome Lachaud","github_author_url":"https://github.com/jeromelachaud","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2024-08-20","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":1488,"forks":623,"features":["One-page scrolling layout","Portfolio grid with modals","Flat design aesthetic","Bootstrap 3 powered","Contact form section","Smooth scroll navigation","Animated header","Skills section","GitHub Pages compatible","Fully responsive"],"slug":"freelancer","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Forty is a Jekyll port of the popular HTML5 UP design of the same name. Its bold tile-based layout creates a striking visual grid where each tile can show off a project, case study, or article.\n\nThe alternating dark and light tiles create visual rhythm and make each piece of work feel intentional.\n\n**Who is it for?** Designers, photographers, and creatives who want a visually bold portfolio site that showcases work in large format.\n","url":"/themes/forty/","draft":false,"categories":["Portfolio"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Forty Jekyll Theme","description":"A visually striking multipurpose Jekyll theme inspired by HTML5 UP. Features tiled project sections and high-impact full-screen headers.","key_features":["Full-Screen Headers","Tiled Portfolio","Dark Mode","Striking Visuals"],"card_description":"Visually striking multipurpose theme with tiled sections and full-screen headers.","category":"Portfolio","card_image":"/assets/images/themes/forty-card.webp","theme_screenshots":["/assets/images/themes/forty-screenshot.webp","/assets/images/themes/forty-screenshot-2.webp","/assets/images/themes/forty-screenshot-3.webp"],"demo_url":"https://andrewbanchich.github.io/forty-jekyll-theme/","github_url":"https://github.com/andrewbanchich/forty-jekyll-theme","author":"GitHub Community","github_author_name":"Andrew Banchich","github_author_url":"https://github.com/andrewbanchich","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2023-05-01","added_at":"2026-03-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"CC3","stars":1100,"forks":1200,"features":["Tile-based portfolio grid","Full-screen banner","Dark/light tile contrast","Contact form","Portfolio and blog sections"],"slug":"forty","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/freelancer","collection":"themes","next":{"path":"_themes/hacker-blog.md","relative_path":"_themes/hacker-blog.md","excerpt":"<p>Hacker Blog is a no-frills, terminal-inspired Jekyll blog theme for developers who want their writing space to feel like their workspace. Black background, monospace font, green or white text — that’s it.</p>\n\n","previous":{"path":"_themes/freelancer.md","relative_path":"_themes/freelancer.md","id":"/themes/freelancer","collection":"themes","url":"/themes/freelancer/","draft":false,"categories":["Portfolio"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Freelancer Jekyll Theme","description":"A flat design landing page and portfolio Jekyll theme based on the popular Freelancer Bootstrap theme by Start Bootstrap.","key_features":["One-Page Portfolio","Project Showcase","Contact Form","Bootstrap Based"],"card_description":"Flat design portfolio and landing page theme for freelancers.","category":"Portfolio","card_image":"/assets/images/themes/freelancer-card.webp","theme_screenshots":["/assets/images/themes/freelancer-screenshot.webp","/assets/images/themes/freelancer-screenshot-2.webp","/assets/images/themes/freelancer-screenshot-3.webp"],"demo_url":"https://jeromelachaud.com/freelancer-theme/","github_url":"https://github.com/jeromelachaud/freelancer-theme","author":"GitHub Community","github_author_name":"Jerome Lachaud","github_author_url":"https://github.com/jeromelachaud","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2024-08-20","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":1488,"forks":623,"features":["One-page scrolling layout","Portfolio grid with modals","Flat design aesthetic","Bootstrap 3 powered","Contact form section","Smooth scroll navigation","Animated header","Skills section","GitHub Pages compatible","Fully responsive"],"slug":"freelancer","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/hacker-blog","collection":"themes","next":{"path":"_themes/hacker.md","relative_path":"_themes/hacker.md","id":"/themes/hacker","collection":"themes","url":"/themes/hacker/","draft":false,"categories":["Personal"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Hacker Jekyll Theme","description":"The official GitHub Pages hacker Jekyll theme. Dark terminal-style design with monospace typography, built for developer project pages.","key_features":["Hacker Style","GitHub Pages","Minimal Design","Fast Loading"],"card_description":"Official GitHub Pages hacker theme with dark terminal-style design.","category":"Personal","card_image":"/assets/images/themes/hacker-card.webp","theme_screenshots":["/assets/images/themes/hacker-screenshot.webp","/assets/images/themes/hacker-screenshot-2.webp","/assets/images/themes/hacker-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/hacker/","github_url":"https://github.com/pages-themes/hacker","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":700,"forks":600,"features":["Official GitHub Pages supported theme","Terminal-inspired green-on-black colour scheme","Monospace typography throughout","Responsive layout","Single-line enable via _config.yml","No local setup required","Instant dark aesthetic"],"slug":"hacker","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Hacker Blog is a no-frills, terminal-inspired Jekyll blog theme for developers who want their writing space to feel like their workspace. Black background, monospace font, green or white text — that's it.\n\nNo images, no social buttons, no distractions. Just your words, formatted like a terminal.\n\n**Who is it for?** Developers and hackers who want a minimal, dark, CLI-aesthetic blog.\n","url":"/themes/hacker-blog/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Hacker Blog Jekyll Theme","description":"A minimal, terminal-inspired dark Jekyll blog theme for developers. Pure CLI aesthetic — black background, monospace font, zero distractions.","key_features":["Terminal Aesthetic","GitHub Pages","Fast Loading","Minimal Design"],"card_description":"Terminal-inspired dark blog — monospace, minimal, distraction-free.","category":"Blog","card_image":"/assets/images/themes/hacker-blog-card.webp","theme_screenshots":["/assets/images/themes/hacker-blog-screenshot.webp","/assets/images/themes/hacker-blog-screenshot-2.webp","/assets/images/themes/hacker-blog-screenshot-3.webp"],"demo_url":"https://tocttou.github.io/hacker-blog/","github_url":"https://github.com/tocttou/hacker-blog","author":"GitHub Community","github_author_name":"Ashish Chaudhary","github_author_url":"https://github.com/tocttou","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2022-01-01","added_at":"2026-03-05","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":1200,"forks":380,"features":["Terminal-inspired aesthetic","Pure dark mode","Minimal layout","Fast loading","No JavaScript"],"slug":"hacker-blog","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Freelancer is a Jekyll port of Start Bootstrap's popular Freelancer theme — a one-page scrolling layout built for designers and developers showcasing their work.\n\nThe portfolio grid opens each project in a modal overlay, keeping the visitor on the same page. A flat design aesthetic with bold colours makes it stand out without being cluttered.\n\n**Who is it for?** Freelancers and designers who want a polished single-page portfolio to showcase their work and attract clients.\n","url":"/themes/freelancer/","draft":false,"categories":["Portfolio"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Freelancer Jekyll Theme","description":"A flat design landing page and portfolio Jekyll theme based on the popular Freelancer Bootstrap theme by Start Bootstrap.","key_features":["One-Page Portfolio","Project Showcase","Contact Form","Bootstrap Based"],"card_description":"Flat design portfolio and landing page theme for freelancers.","category":"Portfolio","card_image":"/assets/images/themes/freelancer-card.webp","theme_screenshots":["/assets/images/themes/freelancer-screenshot.webp","/assets/images/themes/freelancer-screenshot-2.webp","/assets/images/themes/freelancer-screenshot-3.webp"],"demo_url":"https://jeromelachaud.com/freelancer-theme/","github_url":"https://github.com/jeromelachaud/freelancer-theme","author":"GitHub Community","github_author_name":"Jerome Lachaud","github_author_url":"https://github.com/jeromelachaud","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2024-08-20","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":1488,"forks":623,"features":["One-page scrolling layout","Portfolio grid with modals","Flat design aesthetic","Bootstrap 3 powered","Contact form section","Smooth scroll navigation","Animated header","Skills section","GitHub Pages compatible","Fully responsive"],"slug":"freelancer","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/hacker-blog.md","relative_path":"_themes/hacker-blog.md","excerpt":"<p>Hacker Blog is a no-frills, terminal-inspired Jekyll blog theme for developers who want their writing space to feel like their workspace. Black background, monospace font, green or white text — that’s it.</p>\n\n","previous":{"path":"_themes/freelancer.md","relative_path":"_themes/freelancer.md","excerpt":"<p>Freelancer is a Jekyll port of Start Bootstrap’s popular Freelancer theme — a one-page scrolling layout built for designers and developers showcasing their work.</p>\n\n","previous":{"path":"_themes/forty.md","relative_path":"_themes/forty.md","id":"/themes/forty","collection":"themes","url":"/themes/forty/","draft":false,"categories":["Portfolio"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Forty Jekyll Theme","description":"A visually striking multipurpose Jekyll theme inspired by HTML5 UP. Features tiled project sections and high-impact full-screen headers.","key_features":["Full-Screen Headers","Tiled Portfolio","Dark Mode","Striking Visuals"],"card_description":"Visually striking multipurpose theme with tiled sections and full-screen headers.","category":"Portfolio","card_image":"/assets/images/themes/forty-card.webp","theme_screenshots":["/assets/images/themes/forty-screenshot.webp","/assets/images/themes/forty-screenshot-2.webp","/assets/images/themes/forty-screenshot-3.webp"],"demo_url":"https://andrewbanchich.github.io/forty-jekyll-theme/","github_url":"https://github.com/andrewbanchich/forty-jekyll-theme","author":"GitHub Community","github_author_name":"Andrew Banchich","github_author_url":"https://github.com/andrewbanchich","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2023-05-01","added_at":"2026-03-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"CC3","stars":1100,"forks":1200,"features":["Tile-based portfolio grid","Full-screen banner","Dark/light tile contrast","Contact form","Portfolio and blog sections"],"slug":"forty","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/freelancer","collection":"themes","next":{"path":"_themes/hacker-blog.md","relative_path":"_themes/hacker-blog.md","id":"/themes/hacker-blog","collection":"themes","url":"/themes/hacker-blog/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Hacker Blog Jekyll Theme","description":"A minimal, terminal-inspired dark Jekyll blog theme for developers. Pure CLI aesthetic — black background, monospace font, zero distractions.","key_features":["Terminal Aesthetic","GitHub Pages","Fast Loading","Minimal Design"],"card_description":"Terminal-inspired dark blog — monospace, minimal, distraction-free.","category":"Blog","card_image":"/assets/images/themes/hacker-blog-card.webp","theme_screenshots":["/assets/images/themes/hacker-blog-screenshot.webp","/assets/images/themes/hacker-blog-screenshot-2.webp","/assets/images/themes/hacker-blog-screenshot-3.webp"],"demo_url":"https://tocttou.github.io/hacker-blog/","github_url":"https://github.com/tocttou/hacker-blog","author":"GitHub Community","github_author_name":"Ashish Chaudhary","github_author_url":"https://github.com/tocttou","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2022-01-01","added_at":"2026-03-05","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":1200,"forks":380,"features":["Terminal-inspired aesthetic","Pure dark mode","Minimal layout","Fast loading","No JavaScript"],"slug":"hacker-blog","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Freelancer is a Jekyll port of Start Bootstrap's popular Freelancer theme — a one-page scrolling layout built for designers and developers showcasing their work.\n\nThe portfolio grid opens each project in a modal overlay, keeping the visitor on the same page. A flat design aesthetic with bold colours makes it stand out without being cluttered.\n\n**Who is it for?** Freelancers and designers who want a polished single-page portfolio to showcase their work and attract clients.\n","url":"/themes/freelancer/","draft":false,"categories":["Portfolio"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Freelancer Jekyll Theme","description":"A flat design landing page and portfolio Jekyll theme based on the popular Freelancer Bootstrap theme by Start Bootstrap.","key_features":["One-Page Portfolio","Project Showcase","Contact Form","Bootstrap Based"],"card_description":"Flat design portfolio and landing page theme for freelancers.","category":"Portfolio","card_image":"/assets/images/themes/freelancer-card.webp","theme_screenshots":["/assets/images/themes/freelancer-screenshot.webp","/assets/images/themes/freelancer-screenshot-2.webp","/assets/images/themes/freelancer-screenshot-3.webp"],"demo_url":"https://jeromelachaud.com/freelancer-theme/","github_url":"https://github.com/jeromelachaud/freelancer-theme","author":"GitHub Community","github_author_name":"Jerome Lachaud","github_author_url":"https://github.com/jeromelachaud","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2024-08-20","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":1488,"forks":623,"features":["One-page scrolling layout","Portfolio grid with modals","Flat design aesthetic","Bootstrap 3 powered","Contact form section","Smooth scroll navigation","Animated header","Skills section","GitHub Pages compatible","Fully responsive"],"slug":"freelancer","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/hacker-blog","collection":"themes","next":{"path":"_themes/hacker.md","relative_path":"_themes/hacker.md","excerpt":"<p>Hacker is GitHub’s terminal-aesthetic official theme — green text on a black background, monospace type throughout, and the unmistakable look of a classic command-line interface. It’s the most distinctive of the official themes and immediately signals a technical, developer identity.</p>\n\n","previous":{"path":"_themes/hacker-blog.md","relative_path":"_themes/hacker-blog.md","id":"/themes/hacker-blog","collection":"themes","url":"/themes/hacker-blog/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Hacker Blog Jekyll Theme","description":"A minimal, terminal-inspired dark Jekyll blog theme for developers. Pure CLI aesthetic — black background, monospace font, zero distractions.","key_features":["Terminal Aesthetic","GitHub Pages","Fast Loading","Minimal Design"],"card_description":"Terminal-inspired dark blog — monospace, minimal, distraction-free.","category":"Blog","card_image":"/assets/images/themes/hacker-blog-card.webp","theme_screenshots":["/assets/images/themes/hacker-blog-screenshot.webp","/assets/images/themes/hacker-blog-screenshot-2.webp","/assets/images/themes/hacker-blog-screenshot-3.webp"],"demo_url":"https://tocttou.github.io/hacker-blog/","github_url":"https://github.com/tocttou/hacker-blog","author":"GitHub Community","github_author_name":"Ashish Chaudhary","github_author_url":"https://github.com/tocttou","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2022-01-01","added_at":"2026-03-05","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":1200,"forks":380,"features":["Terminal-inspired aesthetic","Pure dark mode","Minimal layout","Fast loading","No JavaScript"],"slug":"hacker-blog","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/hacker","collection":"themes","next":{"path":"_themes/hitchens.md","relative_path":"_themes/hitchens.md","id":"/themes/hitchens","collection":"themes","url":"/themes/hitchens/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Hitchens Jekyll Theme","description":"An unfussy Jekyll theme for serious writers. Minimal design, elegant typography, and a dark mode — inspired by the prose of Christopher Hitchens.","key_features":["Minimal Design","Typography Focus","Reading Time","GitHub Pages"],"card_description":"Unfussy, elegant theme for serious writers with dark mode built in.","category":"Blog","card_image":"/assets/images/themes/hitchens-card.webp","theme_screenshots":["/assets/images/themes/hitchens-screenshot.webp","/assets/images/themes/hitchens-screenshot-2.webp","/assets/images/themes/hitchens-screenshot-3.webp"],"demo_url":"https://hitchens.patdryburgh.com/","github_url":"https://github.com/patdryburgh/hitchens","author":"GitHub Community","github_author_name":"patdryburgh","github_author_url":"https://github.com/patdryburgh","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2024-07-19","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":381,"forks":146,"features":["Typography-first design","Built-in dark mode","Minimal navigation","Clean post layout","Reading time estimate","Tag pages","RSS feed","GitHub Pages compatible","No JavaScript dependencies","Print-friendly styles"],"slug":"hitchens","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Hacker is GitHub's terminal-aesthetic official theme — green text on a black background, monospace type throughout, and the unmistakable look of a classic command-line interface. It's the most distinctive of the official themes and immediately signals a technical, developer identity.\n\nAs an official GitHub Pages theme, setup is a single line in `_config.yml`. It's a popular choice for security researchers, CTF writeups, developer portfolios, and any project that wants to wear its technical credentials visually.\n\n**Who is it for?** Developers, security researchers, and technical writers who want their site to look like it was built by someone who knows their way around a terminal.\n","url":"/themes/hacker/","draft":false,"categories":["Personal"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Hacker Jekyll Theme","description":"The official GitHub Pages hacker Jekyll theme. Dark terminal-style design with monospace typography, built for developer project pages.","key_features":["Hacker Style","GitHub Pages","Minimal Design","Fast Loading"],"card_description":"Official GitHub Pages hacker theme with dark terminal-style design.","category":"Personal","card_image":"/assets/images/themes/hacker-card.webp","theme_screenshots":["/assets/images/themes/hacker-screenshot.webp","/assets/images/themes/hacker-screenshot-2.webp","/assets/images/themes/hacker-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/hacker/","github_url":"https://github.com/pages-themes/hacker","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":700,"forks":600,"features":["Official GitHub Pages supported theme","Terminal-inspired green-on-black colour scheme","Monospace typography throughout","Responsive layout","Single-line enable via _config.yml","No local setup required","Instant dark aesthetic"],"slug":"hacker","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Hacker Blog is a no-frills, terminal-inspired Jekyll blog theme for developers who want their writing space to feel like their workspace. Black background, monospace font, green or white text — that's it.\n\nNo images, no social buttons, no distractions. Just your words, formatted like a terminal.\n\n**Who is it for?** Developers and hackers who want a minimal, dark, CLI-aesthetic blog.\n","url":"/themes/hacker-blog/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Hacker Blog Jekyll Theme","description":"A minimal, terminal-inspired dark Jekyll blog theme for developers. Pure CLI aesthetic — black background, monospace font, zero distractions.","key_features":["Terminal Aesthetic","GitHub Pages","Fast Loading","Minimal Design"],"card_description":"Terminal-inspired dark blog — monospace, minimal, distraction-free.","category":"Blog","card_image":"/assets/images/themes/hacker-blog-card.webp","theme_screenshots":["/assets/images/themes/hacker-blog-screenshot.webp","/assets/images/themes/hacker-blog-screenshot-2.webp","/assets/images/themes/hacker-blog-screenshot-3.webp"],"demo_url":"https://tocttou.github.io/hacker-blog/","github_url":"https://github.com/tocttou/hacker-blog","author":"GitHub Community","github_author_name":"Ashish Chaudhary","github_author_url":"https://github.com/tocttou","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2022-01-01","added_at":"2026-03-05","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":1200,"forks":380,"features":["Terminal-inspired aesthetic","Pure dark mode","Minimal layout","Fast loading","No JavaScript"],"slug":"hacker-blog","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/hacker.md","relative_path":"_themes/hacker.md","excerpt":"<p>Hacker is GitHub’s terminal-aesthetic official theme — green text on a black background, monospace type throughout, and the unmistakable look of a classic command-line interface. It’s the most distinctive of the official themes and immediately signals a technical, developer identity.</p>\n\n","previous":{"path":"_themes/hacker-blog.md","relative_path":"_themes/hacker-blog.md","excerpt":"<p>Hacker Blog is a no-frills, terminal-inspired Jekyll blog theme for developers who want their writing space to feel like their workspace. Black background, monospace font, green or white text — that’s it.</p>\n\n","previous":{"path":"_themes/freelancer.md","relative_path":"_themes/freelancer.md","id":"/themes/freelancer","collection":"themes","url":"/themes/freelancer/","draft":false,"categories":["Portfolio"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Freelancer Jekyll Theme","description":"A flat design landing page and portfolio Jekyll theme based on the popular Freelancer Bootstrap theme by Start Bootstrap.","key_features":["One-Page Portfolio","Project Showcase","Contact Form","Bootstrap Based"],"card_description":"Flat design portfolio and landing page theme for freelancers.","category":"Portfolio","card_image":"/assets/images/themes/freelancer-card.webp","theme_screenshots":["/assets/images/themes/freelancer-screenshot.webp","/assets/images/themes/freelancer-screenshot-2.webp","/assets/images/themes/freelancer-screenshot-3.webp"],"demo_url":"https://jeromelachaud.com/freelancer-theme/","github_url":"https://github.com/jeromelachaud/freelancer-theme","author":"GitHub Community","github_author_name":"Jerome Lachaud","github_author_url":"https://github.com/jeromelachaud","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2024-08-20","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":1488,"forks":623,"features":["One-page scrolling layout","Portfolio grid with modals","Flat design aesthetic","Bootstrap 3 powered","Contact form section","Smooth scroll navigation","Animated header","Skills section","GitHub Pages compatible","Fully responsive"],"slug":"freelancer","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/hacker-blog","collection":"themes","next":{"path":"_themes/hacker.md","relative_path":"_themes/hacker.md","id":"/themes/hacker","collection":"themes","url":"/themes/hacker/","draft":false,"categories":["Personal"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Hacker Jekyll Theme","description":"The official GitHub Pages hacker Jekyll theme. Dark terminal-style design with monospace typography, built for developer project pages.","key_features":["Hacker Style","GitHub Pages","Minimal Design","Fast Loading"],"card_description":"Official GitHub Pages hacker theme with dark terminal-style design.","category":"Personal","card_image":"/assets/images/themes/hacker-card.webp","theme_screenshots":["/assets/images/themes/hacker-screenshot.webp","/assets/images/themes/hacker-screenshot-2.webp","/assets/images/themes/hacker-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/hacker/","github_url":"https://github.com/pages-themes/hacker","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":700,"forks":600,"features":["Official GitHub Pages supported theme","Terminal-inspired green-on-black colour scheme","Monospace typography throughout","Responsive layout","Single-line enable via _config.yml","No local setup required","Instant dark aesthetic"],"slug":"hacker","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Hacker Blog is a no-frills, terminal-inspired Jekyll blog theme for developers who want their writing space to feel like their workspace. Black background, monospace font, green or white text — that's it.\n\nNo images, no social buttons, no distractions. Just your words, formatted like a terminal.\n\n**Who is it for?** Developers and hackers who want a minimal, dark, CLI-aesthetic blog.\n","url":"/themes/hacker-blog/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Hacker Blog Jekyll Theme","description":"A minimal, terminal-inspired dark Jekyll blog theme for developers. Pure CLI aesthetic — black background, monospace font, zero distractions.","key_features":["Terminal Aesthetic","GitHub Pages","Fast Loading","Minimal Design"],"card_description":"Terminal-inspired dark blog — monospace, minimal, distraction-free.","category":"Blog","card_image":"/assets/images/themes/hacker-blog-card.webp","theme_screenshots":["/assets/images/themes/hacker-blog-screenshot.webp","/assets/images/themes/hacker-blog-screenshot-2.webp","/assets/images/themes/hacker-blog-screenshot-3.webp"],"demo_url":"https://tocttou.github.io/hacker-blog/","github_url":"https://github.com/tocttou/hacker-blog","author":"GitHub Community","github_author_name":"Ashish Chaudhary","github_author_url":"https://github.com/tocttou","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2022-01-01","added_at":"2026-03-05","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":1200,"forks":380,"features":["Terminal-inspired aesthetic","Pure dark mode","Minimal layout","Fast loading","No JavaScript"],"slug":"hacker-blog","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/hacker","collection":"themes","next":{"path":"_themes/hitchens.md","relative_path":"_themes/hitchens.md","excerpt":"<p>Hitchens is named after Christopher Hitchens and designed for writers who share his devotion to the written word. The design is austere by intention — every pixel either serves the text or stays out of the way.</p>\n\n","previous":{"path":"_themes/hacker.md","relative_path":"_themes/hacker.md","id":"/themes/hacker","collection":"themes","url":"/themes/hacker/","draft":false,"categories":["Personal"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Hacker Jekyll Theme","description":"The official GitHub Pages hacker Jekyll theme. Dark terminal-style design with monospace typography, built for developer project pages.","key_features":["Hacker Style","GitHub Pages","Minimal Design","Fast Loading"],"card_description":"Official GitHub Pages hacker theme with dark terminal-style design.","category":"Personal","card_image":"/assets/images/themes/hacker-card.webp","theme_screenshots":["/assets/images/themes/hacker-screenshot.webp","/assets/images/themes/hacker-screenshot-2.webp","/assets/images/themes/hacker-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/hacker/","github_url":"https://github.com/pages-themes/hacker","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":700,"forks":600,"features":["Official GitHub Pages supported theme","Terminal-inspired green-on-black colour scheme","Monospace typography throughout","Responsive layout","Single-line enable via _config.yml","No local setup required","Instant dark aesthetic"],"slug":"hacker","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/hitchens","collection":"themes","next":{"path":"_themes/hpstr.md","relative_path":"_themes/hpstr.md","id":"/themes/hpstr","collection":"themes","url":"/themes/hpstr/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"HPSTR Jekyll Theme","description":"A responsive, full-featured Jekyll blog theme by Michael Rose. Rich with image-forward posts, sliding panel navigation, and social sharing.","key_features":["Featured Images","Sliding Navigation","Social Sharing","GitHub Pages"],"card_description":"Image-forward blog with sliding panel navigation and social sharing.","category":"Blog","card_image":"/assets/images/themes/hpstr-card.webp","theme_screenshots":["/assets/images/themes/hpstr-screenshot.webp","/assets/images/themes/hpstr-screenshot-2.webp","/assets/images/themes/hpstr-screenshot-3.webp"],"demo_url":"https://mmistakes.github.io/hpstr-jekyll-theme/","github_url":"https://github.com/mmistakes/hpstr-jekyll-theme","author":"GitHub Community","github_author_name":"mmistakes","github_author_url":"https://github.com/mmistakes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-paginate"],"updated_at":"2021-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"2.0.0","license":"MIT","stars":1100,"forks":700,"features":["Large featured header images per post","Smooth CSS animations and transitions","Responsive mobile-first design","Sliding menu navigation","Disqus comments","Google Analytics","Tag and category pages","Syntax highlighting","Social sharing buttons","GitHub Pages compatible"],"slug":"hpstr","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Hitchens is named after Christopher Hitchens and designed for writers who share his devotion to the written word. The design is austere by intention — every pixel either serves the text or stays out of the way.\n\nDark mode is built in and toggleable, and the theme runs without a single line of JavaScript on the reader's device.\n\n**Who is it for?** Essayists, journalists, and serious writers who want a sophisticated, literary reading experience.\n","url":"/themes/hitchens/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Hitchens Jekyll Theme","description":"An unfussy Jekyll theme for serious writers. Minimal design, elegant typography, and a dark mode — inspired by the prose of Christopher Hitchens.","key_features":["Minimal Design","Typography Focus","Reading Time","GitHub Pages"],"card_description":"Unfussy, elegant theme for serious writers with dark mode built in.","category":"Blog","card_image":"/assets/images/themes/hitchens-card.webp","theme_screenshots":["/assets/images/themes/hitchens-screenshot.webp","/assets/images/themes/hitchens-screenshot-2.webp","/assets/images/themes/hitchens-screenshot-3.webp"],"demo_url":"https://hitchens.patdryburgh.com/","github_url":"https://github.com/patdryburgh/hitchens","author":"GitHub Community","github_author_name":"patdryburgh","github_author_url":"https://github.com/patdryburgh","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2024-07-19","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":381,"forks":146,"features":["Typography-first design","Built-in dark mode","Minimal navigation","Clean post layout","Reading time estimate","Tag pages","RSS feed","GitHub Pages compatible","No JavaScript dependencies","Print-friendly styles"],"slug":"hitchens","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Hacker is GitHub's terminal-aesthetic official theme — green text on a black background, monospace type throughout, and the unmistakable look of a classic command-line interface. It's the most distinctive of the official themes and immediately signals a technical, developer identity.\n\nAs an official GitHub Pages theme, setup is a single line in `_config.yml`. It's a popular choice for security researchers, CTF writeups, developer portfolios, and any project that wants to wear its technical credentials visually.\n\n**Who is it for?** Developers, security researchers, and technical writers who want their site to look like it was built by someone who knows their way around a terminal.\n","url":"/themes/hacker/","draft":false,"categories":["Personal"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Hacker Jekyll Theme","description":"The official GitHub Pages hacker Jekyll theme. Dark terminal-style design with monospace typography, built for developer project pages.","key_features":["Hacker Style","GitHub Pages","Minimal Design","Fast Loading"],"card_description":"Official GitHub Pages hacker theme with dark terminal-style design.","category":"Personal","card_image":"/assets/images/themes/hacker-card.webp","theme_screenshots":["/assets/images/themes/hacker-screenshot.webp","/assets/images/themes/hacker-screenshot-2.webp","/assets/images/themes/hacker-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/hacker/","github_url":"https://github.com/pages-themes/hacker","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":700,"forks":600,"features":["Official GitHub Pages supported theme","Terminal-inspired green-on-black colour scheme","Monospace typography throughout","Responsive layout","Single-line enable via _config.yml","No local setup required","Instant dark aesthetic"],"slug":"hacker","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/hitchens.md","relative_path":"_themes/hitchens.md","excerpt":"<p>Hitchens is named after Christopher Hitchens and designed for writers who share his devotion to the written word. The design is austere by intention — every pixel either serves the text or stays out of the way.</p>\n\n","previous":{"path":"_themes/hacker.md","relative_path":"_themes/hacker.md","excerpt":"<p>Hacker is GitHub’s terminal-aesthetic official theme — green text on a black background, monospace type throughout, and the unmistakable look of a classic command-line interface. It’s the most distinctive of the official themes and immediately signals a technical, developer identity.</p>\n\n","previous":{"path":"_themes/hacker-blog.md","relative_path":"_themes/hacker-blog.md","id":"/themes/hacker-blog","collection":"themes","url":"/themes/hacker-blog/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Hacker Blog Jekyll Theme","description":"A minimal, terminal-inspired dark Jekyll blog theme for developers. Pure CLI aesthetic — black background, monospace font, zero distractions.","key_features":["Terminal Aesthetic","GitHub Pages","Fast Loading","Minimal Design"],"card_description":"Terminal-inspired dark blog — monospace, minimal, distraction-free.","category":"Blog","card_image":"/assets/images/themes/hacker-blog-card.webp","theme_screenshots":["/assets/images/themes/hacker-blog-screenshot.webp","/assets/images/themes/hacker-blog-screenshot-2.webp","/assets/images/themes/hacker-blog-screenshot-3.webp"],"demo_url":"https://tocttou.github.io/hacker-blog/","github_url":"https://github.com/tocttou/hacker-blog","author":"GitHub Community","github_author_name":"Ashish Chaudhary","github_author_url":"https://github.com/tocttou","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2022-01-01","added_at":"2026-03-05","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":1200,"forks":380,"features":["Terminal-inspired aesthetic","Pure dark mode","Minimal layout","Fast loading","No JavaScript"],"slug":"hacker-blog","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/hacker","collection":"themes","next":{"path":"_themes/hitchens.md","relative_path":"_themes/hitchens.md","id":"/themes/hitchens","collection":"themes","url":"/themes/hitchens/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Hitchens Jekyll Theme","description":"An unfussy Jekyll theme for serious writers. Minimal design, elegant typography, and a dark mode — inspired by the prose of Christopher Hitchens.","key_features":["Minimal Design","Typography Focus","Reading Time","GitHub Pages"],"card_description":"Unfussy, elegant theme for serious writers with dark mode built in.","category":"Blog","card_image":"/assets/images/themes/hitchens-card.webp","theme_screenshots":["/assets/images/themes/hitchens-screenshot.webp","/assets/images/themes/hitchens-screenshot-2.webp","/assets/images/themes/hitchens-screenshot-3.webp"],"demo_url":"https://hitchens.patdryburgh.com/","github_url":"https://github.com/patdryburgh/hitchens","author":"GitHub Community","github_author_name":"patdryburgh","github_author_url":"https://github.com/patdryburgh","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2024-07-19","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":381,"forks":146,"features":["Typography-first design","Built-in dark mode","Minimal navigation","Clean post layout","Reading time estimate","Tag pages","RSS feed","GitHub Pages compatible","No JavaScript dependencies","Print-friendly styles"],"slug":"hitchens","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Hacker is GitHub's terminal-aesthetic official theme — green text on a black background, monospace type throughout, and the unmistakable look of a classic command-line interface. It's the most distinctive of the official themes and immediately signals a technical, developer identity.\n\nAs an official GitHub Pages theme, setup is a single line in `_config.yml`. It's a popular choice for security researchers, CTF writeups, developer portfolios, and any project that wants to wear its technical credentials visually.\n\n**Who is it for?** Developers, security researchers, and technical writers who want their site to look like it was built by someone who knows their way around a terminal.\n","url":"/themes/hacker/","draft":false,"categories":["Personal"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Hacker Jekyll Theme","description":"The official GitHub Pages hacker Jekyll theme. Dark terminal-style design with monospace typography, built for developer project pages.","key_features":["Hacker Style","GitHub Pages","Minimal Design","Fast Loading"],"card_description":"Official GitHub Pages hacker theme with dark terminal-style design.","category":"Personal","card_image":"/assets/images/themes/hacker-card.webp","theme_screenshots":["/assets/images/themes/hacker-screenshot.webp","/assets/images/themes/hacker-screenshot-2.webp","/assets/images/themes/hacker-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/hacker/","github_url":"https://github.com/pages-themes/hacker","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":700,"forks":600,"features":["Official GitHub Pages supported theme","Terminal-inspired green-on-black colour scheme","Monospace typography throughout","Responsive layout","Single-line enable via _config.yml","No local setup required","Instant dark aesthetic"],"slug":"hacker","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/hitchens","collection":"themes","next":{"path":"_themes/hpstr.md","relative_path":"_themes/hpstr.md","excerpt":"<p>HPSTR (pronounced “hipster”) is one of Michael Rose’s earlier Jekyll themes and remains one of the most visually striking options in the ecosystem. Its defining feature is the large full-width header image on each post — combined with smooth CSS animations, it creates a reading experience that feels polished and intentional.</p>\n\n","previous":{"path":"_themes/hitchens.md","relative_path":"_themes/hitchens.md","id":"/themes/hitchens","collection":"themes","url":"/themes/hitchens/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Hitchens Jekyll Theme","description":"An unfussy Jekyll theme for serious writers. Minimal design, elegant typography, and a dark mode — inspired by the prose of Christopher Hitchens.","key_features":["Minimal Design","Typography Focus","Reading Time","GitHub Pages"],"card_description":"Unfussy, elegant theme for serious writers with dark mode built in.","category":"Blog","card_image":"/assets/images/themes/hitchens-card.webp","theme_screenshots":["/assets/images/themes/hitchens-screenshot.webp","/assets/images/themes/hitchens-screenshot-2.webp","/assets/images/themes/hitchens-screenshot-3.webp"],"demo_url":"https://hitchens.patdryburgh.com/","github_url":"https://github.com/patdryburgh/hitchens","author":"GitHub Community","github_author_name":"patdryburgh","github_author_url":"https://github.com/patdryburgh","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2024-07-19","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":381,"forks":146,"features":["Typography-first design","Built-in dark mode","Minimal navigation","Clean post layout","Reading time estimate","Tag pages","RSS feed","GitHub Pages compatible","No JavaScript dependencies","Print-friendly styles"],"slug":"hitchens","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/hpstr","collection":"themes","next":{"path":"_themes/huxpro.md","relative_path":"_themes/huxpro.md","id":"/themes/huxpro","collection":"themes","url":"/themes/huxpro/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Huxpro Jekyll Theme","description":"A beautiful, cover-image-driven Jekyll blog theme inspired by Ghost's Casper. Features full-screen hero images, smooth transitions, and a clean reading experience.","key_features":["Full-Screen Hero","Cover Images","Ghost-Inspired","Smooth Transitions"],"card_description":"Cover-image-driven blog inspired by Ghost's Casper theme.","category":"Blog","card_image":"/assets/images/themes/huxpro-card.webp","theme_screenshots":["/assets/images/themes/huxpro-screenshot.webp","/assets/images/themes/huxpro-screenshot-2.webp","/assets/images/themes/huxpro-screenshot-3.webp"],"demo_url":"https://huxpro.github.io/","github_url":"https://github.com/Huxpro/huxpro.github.io","author":"GitHub Community","github_author_name":"Huxpro","github_author_url":"https://github.com/Huxpro","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate"],"updated_at":"2023-06-01","added_at":"2026-06-08","popular":true,"trending":false,"bestseller":false,"version":"1.0.0","license":"Apache-2.0","stars":5400,"forks":1800,"features":["Full-screen cover image per post","Ghost Casper-inspired design","Smooth page transitions","Disqus comments support","Google Analytics integration","Responsive layout","Tag pages","Chinese and English content support"],"slug":"huxpro","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"HPSTR (pronounced \"hipster\") is one of Michael Rose's earlier Jekyll themes and remains one of the most visually striking options in the ecosystem. Its defining feature is the large full-width header image on each post — combined with smooth CSS animations, it creates a reading experience that feels polished and intentional.\n\nThe sliding navigation menu and responsive layout were ahead of their time when the theme launched, and the overall design has aged well. Rose is the author of Minimal Mistakes and So Simple, so the code quality and documentation are characteristically excellent.\n\n**Who is it for?** Bloggers who want a visually bold, image-forward theme with smooth animations and a strong sense of style — particularly those publishing photography, design, or creative work alongside writing.\n","url":"/themes/hpstr/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"HPSTR Jekyll Theme","description":"A responsive, full-featured Jekyll blog theme by Michael Rose. Rich with image-forward posts, sliding panel navigation, and social sharing.","key_features":["Featured Images","Sliding Navigation","Social Sharing","GitHub Pages"],"card_description":"Image-forward blog with sliding panel navigation and social sharing.","category":"Blog","card_image":"/assets/images/themes/hpstr-card.webp","theme_screenshots":["/assets/images/themes/hpstr-screenshot.webp","/assets/images/themes/hpstr-screenshot-2.webp","/assets/images/themes/hpstr-screenshot-3.webp"],"demo_url":"https://mmistakes.github.io/hpstr-jekyll-theme/","github_url":"https://github.com/mmistakes/hpstr-jekyll-theme","author":"GitHub Community","github_author_name":"mmistakes","github_author_url":"https://github.com/mmistakes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-paginate"],"updated_at":"2021-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"2.0.0","license":"MIT","stars":1100,"forks":700,"features":["Large featured header images per post","Smooth CSS animations and transitions","Responsive mobile-first design","Sliding menu navigation","Disqus comments","Google Analytics","Tag and category pages","Syntax highlighting","Social sharing buttons","GitHub Pages compatible"],"slug":"hpstr","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Hitchens is named after Christopher Hitchens and designed for writers who share his devotion to the written word. The design is austere by intention — every pixel either serves the text or stays out of the way.\n\nDark mode is built in and toggleable, and the theme runs without a single line of JavaScript on the reader's device.\n\n**Who is it for?** Essayists, journalists, and serious writers who want a sophisticated, literary reading experience.\n","url":"/themes/hitchens/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Hitchens Jekyll Theme","description":"An unfussy Jekyll theme for serious writers. Minimal design, elegant typography, and a dark mode — inspired by the prose of Christopher Hitchens.","key_features":["Minimal Design","Typography Focus","Reading Time","GitHub Pages"],"card_description":"Unfussy, elegant theme for serious writers with dark mode built in.","category":"Blog","card_image":"/assets/images/themes/hitchens-card.webp","theme_screenshots":["/assets/images/themes/hitchens-screenshot.webp","/assets/images/themes/hitchens-screenshot-2.webp","/assets/images/themes/hitchens-screenshot-3.webp"],"demo_url":"https://hitchens.patdryburgh.com/","github_url":"https://github.com/patdryburgh/hitchens","author":"GitHub Community","github_author_name":"patdryburgh","github_author_url":"https://github.com/patdryburgh","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2024-07-19","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":381,"forks":146,"features":["Typography-first design","Built-in dark mode","Minimal navigation","Clean post layout","Reading time estimate","Tag pages","RSS feed","GitHub Pages compatible","No JavaScript dependencies","Print-friendly styles"],"slug":"hitchens","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/hpstr.md","relative_path":"_themes/hpstr.md","excerpt":"<p>HPSTR (pronounced “hipster”) is one of Michael Rose’s earlier Jekyll themes and remains one of the most visually striking options in the ecosystem. Its defining feature is the large full-width header image on each post — combined with smooth CSS animations, it creates a reading experience that feels polished and intentional.</p>\n\n","previous":{"path":"_themes/hitchens.md","relative_path":"_themes/hitchens.md","excerpt":"<p>Hitchens is named after Christopher Hitchens and designed for writers who share his devotion to the written word. The design is austere by intention — every pixel either serves the text or stays out of the way.</p>\n\n","previous":{"path":"_themes/hacker.md","relative_path":"_themes/hacker.md","id":"/themes/hacker","collection":"themes","url":"/themes/hacker/","draft":false,"categories":["Personal"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Hacker Jekyll Theme","description":"The official GitHub Pages hacker Jekyll theme. Dark terminal-style design with monospace typography, built for developer project pages.","key_features":["Hacker Style","GitHub Pages","Minimal Design","Fast Loading"],"card_description":"Official GitHub Pages hacker theme with dark terminal-style design.","category":"Personal","card_image":"/assets/images/themes/hacker-card.webp","theme_screenshots":["/assets/images/themes/hacker-screenshot.webp","/assets/images/themes/hacker-screenshot-2.webp","/assets/images/themes/hacker-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/hacker/","github_url":"https://github.com/pages-themes/hacker","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":700,"forks":600,"features":["Official GitHub Pages supported theme","Terminal-inspired green-on-black colour scheme","Monospace typography throughout","Responsive layout","Single-line enable via _config.yml","No local setup required","Instant dark aesthetic"],"slug":"hacker","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/hitchens","collection":"themes","next":{"path":"_themes/hpstr.md","relative_path":"_themes/hpstr.md","id":"/themes/hpstr","collection":"themes","url":"/themes/hpstr/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"HPSTR Jekyll Theme","description":"A responsive, full-featured Jekyll blog theme by Michael Rose. Rich with image-forward posts, sliding panel navigation, and social sharing.","key_features":["Featured Images","Sliding Navigation","Social Sharing","GitHub Pages"],"card_description":"Image-forward blog with sliding panel navigation and social sharing.","category":"Blog","card_image":"/assets/images/themes/hpstr-card.webp","theme_screenshots":["/assets/images/themes/hpstr-screenshot.webp","/assets/images/themes/hpstr-screenshot-2.webp","/assets/images/themes/hpstr-screenshot-3.webp"],"demo_url":"https://mmistakes.github.io/hpstr-jekyll-theme/","github_url":"https://github.com/mmistakes/hpstr-jekyll-theme","author":"GitHub Community","github_author_name":"mmistakes","github_author_url":"https://github.com/mmistakes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-paginate"],"updated_at":"2021-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"2.0.0","license":"MIT","stars":1100,"forks":700,"features":["Large featured header images per post","Smooth CSS animations and transitions","Responsive mobile-first design","Sliding menu navigation","Disqus comments","Google Analytics","Tag and category pages","Syntax highlighting","Social sharing buttons","GitHub Pages compatible"],"slug":"hpstr","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Hitchens is named after Christopher Hitchens and designed for writers who share his devotion to the written word. The design is austere by intention — every pixel either serves the text or stays out of the way.\n\nDark mode is built in and toggleable, and the theme runs without a single line of JavaScript on the reader's device.\n\n**Who is it for?** Essayists, journalists, and serious writers who want a sophisticated, literary reading experience.\n","url":"/themes/hitchens/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Hitchens Jekyll Theme","description":"An unfussy Jekyll theme for serious writers. Minimal design, elegant typography, and a dark mode — inspired by the prose of Christopher Hitchens.","key_features":["Minimal Design","Typography Focus","Reading Time","GitHub Pages"],"card_description":"Unfussy, elegant theme for serious writers with dark mode built in.","category":"Blog","card_image":"/assets/images/themes/hitchens-card.webp","theme_screenshots":["/assets/images/themes/hitchens-screenshot.webp","/assets/images/themes/hitchens-screenshot-2.webp","/assets/images/themes/hitchens-screenshot-3.webp"],"demo_url":"https://hitchens.patdryburgh.com/","github_url":"https://github.com/patdryburgh/hitchens","author":"GitHub Community","github_author_name":"patdryburgh","github_author_url":"https://github.com/patdryburgh","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2024-07-19","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":381,"forks":146,"features":["Typography-first design","Built-in dark mode","Minimal navigation","Clean post layout","Reading time estimate","Tag pages","RSS feed","GitHub Pages compatible","No JavaScript dependencies","Print-friendly styles"],"slug":"hitchens","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/hpstr","collection":"themes","next":{"path":"_themes/huxpro.md","relative_path":"_themes/huxpro.md","excerpt":"<p>Huxpro is one of the most-starred personal Jekyll blog themes on GitHub, built by Huasheng Luo as his own personal site and open-sourced for the community. Inspired by Ghost’s iconic Casper theme, it brings full-screen cover images and a magazine-quality reading experience to Jekyll.</p>\n\n","previous":{"path":"_themes/hpstr.md","relative_path":"_themes/hpstr.md","id":"/themes/hpstr","collection":"themes","url":"/themes/hpstr/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"HPSTR Jekyll Theme","description":"A responsive, full-featured Jekyll blog theme by Michael Rose. Rich with image-forward posts, sliding panel navigation, and social sharing.","key_features":["Featured Images","Sliding Navigation","Social Sharing","GitHub Pages"],"card_description":"Image-forward blog with sliding panel navigation and social sharing.","category":"Blog","card_image":"/assets/images/themes/hpstr-card.webp","theme_screenshots":["/assets/images/themes/hpstr-screenshot.webp","/assets/images/themes/hpstr-screenshot-2.webp","/assets/images/themes/hpstr-screenshot-3.webp"],"demo_url":"https://mmistakes.github.io/hpstr-jekyll-theme/","github_url":"https://github.com/mmistakes/hpstr-jekyll-theme","author":"GitHub Community","github_author_name":"mmistakes","github_author_url":"https://github.com/mmistakes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-paginate"],"updated_at":"2021-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"2.0.0","license":"MIT","stars":1100,"forks":700,"features":["Large featured header images per post","Smooth CSS animations and transitions","Responsive mobile-first design","Sliding menu navigation","Disqus comments","Google Analytics","Tag and category pages","Syntax highlighting","Social sharing buttons","GitHub Pages compatible"],"slug":"hpstr","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/huxpro","collection":"themes","next":{"path":"_themes/hyde.md","relative_path":"_themes/hyde.md","id":"/themes/hyde","collection":"themes","url":"/themes/hyde/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Hyde Jekyll Theme","description":"A brazen two-column Jekyll theme that pairs a prominent sidebar with uncomplicated content. Based on Poole, by Mark Otto.","key_features":["GitHub Pages","Sidebar Layout","Color Themes","Clean Typography"],"card_description":"Two-column theme with prominent sidebar — elegant and timeless.","category":"Blog","card_image":"/assets/images/themes/hyde-card.webp","theme_screenshots":["/assets/images/themes/hyde-screenshot.webp","/assets/images/themes/hyde-screenshot-2.webp","/assets/images/themes/hyde-screenshot-3.webp"],"demo_url":"https://hyde.getpoole.com/","github_url":"https://github.com/poole/hyde","author":"GitHub Community","github_author_name":"Mark Otto","github_author_url":"https://github.com/mdo","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-gist","jekyll-paginate"],"updated_at":"2023-01-01","added_at":"2026-01-25","popular":true,"trending":false,"bestseller":false,"version":"2.1.0","license":"MIT","stars":9700,"forks":3800,"features":["Persistent dark sidebar","Eight colour themes","Reverse layout variant","Clean typography","Mobile responsive"],"slug":"hyde","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Huxpro is one of the most-starred personal Jekyll blog themes on GitHub, built by Huasheng Luo as his own personal site and open-sourced for the community. Inspired by Ghost's iconic Casper theme, it brings full-screen cover images and a magazine-quality reading experience to Jekyll.\n\nEach post supports its own hero image, creating a visually rich archive page that immediately communicates the personality of a blog. The typography is clean and generous, making long-form writing genuinely pleasant to read.\n\n**Who is it for?** Writers, developers, and creatives who want a personal blog with a strong visual identity and cover-image-driven design.\n","url":"/themes/huxpro/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Huxpro Jekyll Theme","description":"A beautiful, cover-image-driven Jekyll blog theme inspired by Ghost's Casper. Features full-screen hero images, smooth transitions, and a clean reading experience.","key_features":["Full-Screen Hero","Cover Images","Ghost-Inspired","Smooth Transitions"],"card_description":"Cover-image-driven blog inspired by Ghost's Casper theme.","category":"Blog","card_image":"/assets/images/themes/huxpro-card.webp","theme_screenshots":["/assets/images/themes/huxpro-screenshot.webp","/assets/images/themes/huxpro-screenshot-2.webp","/assets/images/themes/huxpro-screenshot-3.webp"],"demo_url":"https://huxpro.github.io/","github_url":"https://github.com/Huxpro/huxpro.github.io","author":"GitHub Community","github_author_name":"Huxpro","github_author_url":"https://github.com/Huxpro","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate"],"updated_at":"2023-06-01","added_at":"2026-06-08","popular":true,"trending":false,"bestseller":false,"version":"1.0.0","license":"Apache-2.0","stars":5400,"forks":1800,"features":["Full-screen cover image per post","Ghost Casper-inspired design","Smooth page transitions","Disqus comments support","Google Analytics integration","Responsive layout","Tag pages","Chinese and English content support"],"slug":"huxpro","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"HPSTR (pronounced \"hipster\") is one of Michael Rose's earlier Jekyll themes and remains one of the most visually striking options in the ecosystem. Its defining feature is the large full-width header image on each post — combined with smooth CSS animations, it creates a reading experience that feels polished and intentional.\n\nThe sliding navigation menu and responsive layout were ahead of their time when the theme launched, and the overall design has aged well. Rose is the author of Minimal Mistakes and So Simple, so the code quality and documentation are characteristically excellent.\n\n**Who is it for?** Bloggers who want a visually bold, image-forward theme with smooth animations and a strong sense of style — particularly those publishing photography, design, or creative work alongside writing.\n","url":"/themes/hpstr/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"HPSTR Jekyll Theme","description":"A responsive, full-featured Jekyll blog theme by Michael Rose. Rich with image-forward posts, sliding panel navigation, and social sharing.","key_features":["Featured Images","Sliding Navigation","Social Sharing","GitHub Pages"],"card_description":"Image-forward blog with sliding panel navigation and social sharing.","category":"Blog","card_image":"/assets/images/themes/hpstr-card.webp","theme_screenshots":["/assets/images/themes/hpstr-screenshot.webp","/assets/images/themes/hpstr-screenshot-2.webp","/assets/images/themes/hpstr-screenshot-3.webp"],"demo_url":"https://mmistakes.github.io/hpstr-jekyll-theme/","github_url":"https://github.com/mmistakes/hpstr-jekyll-theme","author":"GitHub Community","github_author_name":"mmistakes","github_author_url":"https://github.com/mmistakes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-paginate"],"updated_at":"2021-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"2.0.0","license":"MIT","stars":1100,"forks":700,"features":["Large featured header images per post","Smooth CSS animations and transitions","Responsive mobile-first design","Sliding menu navigation","Disqus comments","Google Analytics","Tag and category pages","Syntax highlighting","Social sharing buttons","GitHub Pages compatible"],"slug":"hpstr","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/huxpro.md","relative_path":"_themes/huxpro.md","excerpt":"<p>Huxpro is one of the most-starred personal Jekyll blog themes on GitHub, built by Huasheng Luo as his own personal site and open-sourced for the community. Inspired by Ghost’s iconic Casper theme, it brings full-screen cover images and a magazine-quality reading experience to Jekyll.</p>\n\n","previous":{"path":"_themes/hpstr.md","relative_path":"_themes/hpstr.md","excerpt":"<p>HPSTR (pronounced “hipster”) is one of Michael Rose’s earlier Jekyll themes and remains one of the most visually striking options in the ecosystem. Its defining feature is the large full-width header image on each post — combined with smooth CSS animations, it creates a reading experience that feels polished and intentional.</p>\n\n","previous":{"path":"_themes/hitchens.md","relative_path":"_themes/hitchens.md","id":"/themes/hitchens","collection":"themes","url":"/themes/hitchens/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Hitchens Jekyll Theme","description":"An unfussy Jekyll theme for serious writers. Minimal design, elegant typography, and a dark mode — inspired by the prose of Christopher Hitchens.","key_features":["Minimal Design","Typography Focus","Reading Time","GitHub Pages"],"card_description":"Unfussy, elegant theme for serious writers with dark mode built in.","category":"Blog","card_image":"/assets/images/themes/hitchens-card.webp","theme_screenshots":["/assets/images/themes/hitchens-screenshot.webp","/assets/images/themes/hitchens-screenshot-2.webp","/assets/images/themes/hitchens-screenshot-3.webp"],"demo_url":"https://hitchens.patdryburgh.com/","github_url":"https://github.com/patdryburgh/hitchens","author":"GitHub Community","github_author_name":"patdryburgh","github_author_url":"https://github.com/patdryburgh","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2024-07-19","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":381,"forks":146,"features":["Typography-first design","Built-in dark mode","Minimal navigation","Clean post layout","Reading time estimate","Tag pages","RSS feed","GitHub Pages compatible","No JavaScript dependencies","Print-friendly styles"],"slug":"hitchens","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/hpstr","collection":"themes","next":{"path":"_themes/huxpro.md","relative_path":"_themes/huxpro.md","id":"/themes/huxpro","collection":"themes","url":"/themes/huxpro/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Huxpro Jekyll Theme","description":"A beautiful, cover-image-driven Jekyll blog theme inspired by Ghost's Casper. Features full-screen hero images, smooth transitions, and a clean reading experience.","key_features":["Full-Screen Hero","Cover Images","Ghost-Inspired","Smooth Transitions"],"card_description":"Cover-image-driven blog inspired by Ghost's Casper theme.","category":"Blog","card_image":"/assets/images/themes/huxpro-card.webp","theme_screenshots":["/assets/images/themes/huxpro-screenshot.webp","/assets/images/themes/huxpro-screenshot-2.webp","/assets/images/themes/huxpro-screenshot-3.webp"],"demo_url":"https://huxpro.github.io/","github_url":"https://github.com/Huxpro/huxpro.github.io","author":"GitHub Community","github_author_name":"Huxpro","github_author_url":"https://github.com/Huxpro","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate"],"updated_at":"2023-06-01","added_at":"2026-06-08","popular":true,"trending":false,"bestseller":false,"version":"1.0.0","license":"Apache-2.0","stars":5400,"forks":1800,"features":["Full-screen cover image per post","Ghost Casper-inspired design","Smooth page transitions","Disqus comments support","Google Analytics integration","Responsive layout","Tag pages","Chinese and English content support"],"slug":"huxpro","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"HPSTR (pronounced \"hipster\") is one of Michael Rose's earlier Jekyll themes and remains one of the most visually striking options in the ecosystem. Its defining feature is the large full-width header image on each post — combined with smooth CSS animations, it creates a reading experience that feels polished and intentional.\n\nThe sliding navigation menu and responsive layout were ahead of their time when the theme launched, and the overall design has aged well. Rose is the author of Minimal Mistakes and So Simple, so the code quality and documentation are characteristically excellent.\n\n**Who is it for?** Bloggers who want a visually bold, image-forward theme with smooth animations and a strong sense of style — particularly those publishing photography, design, or creative work alongside writing.\n","url":"/themes/hpstr/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"HPSTR Jekyll Theme","description":"A responsive, full-featured Jekyll blog theme by Michael Rose. Rich with image-forward posts, sliding panel navigation, and social sharing.","key_features":["Featured Images","Sliding Navigation","Social Sharing","GitHub Pages"],"card_description":"Image-forward blog with sliding panel navigation and social sharing.","category":"Blog","card_image":"/assets/images/themes/hpstr-card.webp","theme_screenshots":["/assets/images/themes/hpstr-screenshot.webp","/assets/images/themes/hpstr-screenshot-2.webp","/assets/images/themes/hpstr-screenshot-3.webp"],"demo_url":"https://mmistakes.github.io/hpstr-jekyll-theme/","github_url":"https://github.com/mmistakes/hpstr-jekyll-theme","author":"GitHub Community","github_author_name":"mmistakes","github_author_url":"https://github.com/mmistakes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-paginate"],"updated_at":"2021-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"2.0.0","license":"MIT","stars":1100,"forks":700,"features":["Large featured header images per post","Smooth CSS animations and transitions","Responsive mobile-first design","Sliding menu navigation","Disqus comments","Google Analytics","Tag and category pages","Syntax highlighting","Social sharing buttons","GitHub Pages compatible"],"slug":"hpstr","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/huxpro","collection":"themes","next":{"path":"_themes/hyde.md","relative_path":"_themes/hyde.md","excerpt":"<p>Hyde is one of Jekyll’s most iconic themes — a two-column layout with a bold dark sidebar and clean reading area. Built on Poole by Mark Otto (co-creator of Bootstrap), it sets the standard for elegant simplicity.</p>\n\n","previous":{"path":"_themes/huxpro.md","relative_path":"_themes/huxpro.md","id":"/themes/huxpro","collection":"themes","url":"/themes/huxpro/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Huxpro Jekyll Theme","description":"A beautiful, cover-image-driven Jekyll blog theme inspired by Ghost's Casper. Features full-screen hero images, smooth transitions, and a clean reading experience.","key_features":["Full-Screen Hero","Cover Images","Ghost-Inspired","Smooth Transitions"],"card_description":"Cover-image-driven blog inspired by Ghost's Casper theme.","category":"Blog","card_image":"/assets/images/themes/huxpro-card.webp","theme_screenshots":["/assets/images/themes/huxpro-screenshot.webp","/assets/images/themes/huxpro-screenshot-2.webp","/assets/images/themes/huxpro-screenshot-3.webp"],"demo_url":"https://huxpro.github.io/","github_url":"https://github.com/Huxpro/huxpro.github.io","author":"GitHub Community","github_author_name":"Huxpro","github_author_url":"https://github.com/Huxpro","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate"],"updated_at":"2023-06-01","added_at":"2026-06-08","popular":true,"trending":false,"bestseller":false,"version":"1.0.0","license":"Apache-2.0","stars":5400,"forks":1800,"features":["Full-screen cover image per post","Ghost Casper-inspired design","Smooth page transitions","Disqus comments support","Google Analytics integration","Responsive layout","Tag pages","Chinese and English content support"],"slug":"huxpro","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/hyde","collection":"themes","next":{"path":"_themes/hydejack.md","relative_path":"_themes/hydejack.md","id":"/themes/hydejack","collection":"themes","url":"/themes/hydejack/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":true,"dark_mode":true,"responsive":true,"title":"Hydejack Jekyll Theme","description":"A boutique Jekyll theme with a rich sidebar, smooth page transitions, and portfolio support. The premium evolution of Hyde.","key_features":["Dark Mode","Page Transitions","Portfolio Support","Rich Sidebar"],"card_description":"Boutique theme with smooth page transitions and portfolio support.","category":"Blog","card_image":"/assets/images/themes/hydejack-card.webp","theme_screenshots":["/assets/images/themes/hydejack-screenshot.webp","/assets/images/themes/hydejack-screenshot-2.webp","/assets/images/themes/hydejack-screenshot-3.webp"],"demo_url":"https://hydejack.com/","github_url":"https://github.com/hydecorp/hydejack","author":"GitHub Community","github_author_name":"Florian Klampfer","github_author_url":"https://github.com/qwtel","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":false,"min_jekyll_version":"4.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate-v2"],"updated_at":"2024-02-01","added_at":"2026-01-30","popular":true,"trending":false,"bestseller":false,"version":"9.2.1","license":"GPL-3.0","stars":9000,"forks":1700,"features":["Rich profile sidebar with avatar","Smooth page transitions","Portfolio / project pages","Dark and light themes","Math support (KaTeX)","Resume page layout","Offline support (PWA)"],"slug":"hydejack","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Hyde is one of Jekyll's most iconic themes — a two-column layout with a bold dark sidebar and clean reading area. Built on Poole by Mark Otto (co-creator of Bootstrap), it sets the standard for elegant simplicity.\n\nEight built-in colour themes let you swap the sidebar accent colour with a single config change.\n\n**Who is it for?** Writers and developers who want a classic, timeless Jekyll blog with a distinctive sidebar presence.\n","url":"/themes/hyde/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Hyde Jekyll Theme","description":"A brazen two-column Jekyll theme that pairs a prominent sidebar with uncomplicated content. Based on Poole, by Mark Otto.","key_features":["GitHub Pages","Sidebar Layout","Color Themes","Clean Typography"],"card_description":"Two-column theme with prominent sidebar — elegant and timeless.","category":"Blog","card_image":"/assets/images/themes/hyde-card.webp","theme_screenshots":["/assets/images/themes/hyde-screenshot.webp","/assets/images/themes/hyde-screenshot-2.webp","/assets/images/themes/hyde-screenshot-3.webp"],"demo_url":"https://hyde.getpoole.com/","github_url":"https://github.com/poole/hyde","author":"GitHub Community","github_author_name":"Mark Otto","github_author_url":"https://github.com/mdo","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-gist","jekyll-paginate"],"updated_at":"2023-01-01","added_at":"2026-01-25","popular":true,"trending":false,"bestseller":false,"version":"2.1.0","license":"MIT","stars":9700,"forks":3800,"features":["Persistent dark sidebar","Eight colour themes","Reverse layout variant","Clean typography","Mobile responsive"],"slug":"hyde","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Huxpro is one of the most-starred personal Jekyll blog themes on GitHub, built by Huasheng Luo as his own personal site and open-sourced for the community. Inspired by Ghost's iconic Casper theme, it brings full-screen cover images and a magazine-quality reading experience to Jekyll.\n\nEach post supports its own hero image, creating a visually rich archive page that immediately communicates the personality of a blog. The typography is clean and generous, making long-form writing genuinely pleasant to read.\n\n**Who is it for?** Writers, developers, and creatives who want a personal blog with a strong visual identity and cover-image-driven design.\n","url":"/themes/huxpro/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Huxpro Jekyll Theme","description":"A beautiful, cover-image-driven Jekyll blog theme inspired by Ghost's Casper. Features full-screen hero images, smooth transitions, and a clean reading experience.","key_features":["Full-Screen Hero","Cover Images","Ghost-Inspired","Smooth Transitions"],"card_description":"Cover-image-driven blog inspired by Ghost's Casper theme.","category":"Blog","card_image":"/assets/images/themes/huxpro-card.webp","theme_screenshots":["/assets/images/themes/huxpro-screenshot.webp","/assets/images/themes/huxpro-screenshot-2.webp","/assets/images/themes/huxpro-screenshot-3.webp"],"demo_url":"https://huxpro.github.io/","github_url":"https://github.com/Huxpro/huxpro.github.io","author":"GitHub Community","github_author_name":"Huxpro","github_author_url":"https://github.com/Huxpro","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate"],"updated_at":"2023-06-01","added_at":"2026-06-08","popular":true,"trending":false,"bestseller":false,"version":"1.0.0","license":"Apache-2.0","stars":5400,"forks":1800,"features":["Full-screen cover image per post","Ghost Casper-inspired design","Smooth page transitions","Disqus comments support","Google Analytics integration","Responsive layout","Tag pages","Chinese and English content support"],"slug":"huxpro","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/hyde.md","relative_path":"_themes/hyde.md","excerpt":"<p>Hyde is one of Jekyll’s most iconic themes — a two-column layout with a bold dark sidebar and clean reading area. Built on Poole by Mark Otto (co-creator of Bootstrap), it sets the standard for elegant simplicity.</p>\n\n","previous":{"path":"_themes/huxpro.md","relative_path":"_themes/huxpro.md","excerpt":"<p>Huxpro is one of the most-starred personal Jekyll blog themes on GitHub, built by Huasheng Luo as his own personal site and open-sourced for the community. Inspired by Ghost’s iconic Casper theme, it brings full-screen cover images and a magazine-quality reading experience to Jekyll.</p>\n\n","previous":{"path":"_themes/hpstr.md","relative_path":"_themes/hpstr.md","id":"/themes/hpstr","collection":"themes","url":"/themes/hpstr/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"HPSTR Jekyll Theme","description":"A responsive, full-featured Jekyll blog theme by Michael Rose. Rich with image-forward posts, sliding panel navigation, and social sharing.","key_features":["Featured Images","Sliding Navigation","Social Sharing","GitHub Pages"],"card_description":"Image-forward blog with sliding panel navigation and social sharing.","category":"Blog","card_image":"/assets/images/themes/hpstr-card.webp","theme_screenshots":["/assets/images/themes/hpstr-screenshot.webp","/assets/images/themes/hpstr-screenshot-2.webp","/assets/images/themes/hpstr-screenshot-3.webp"],"demo_url":"https://mmistakes.github.io/hpstr-jekyll-theme/","github_url":"https://github.com/mmistakes/hpstr-jekyll-theme","author":"GitHub Community","github_author_name":"mmistakes","github_author_url":"https://github.com/mmistakes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-paginate"],"updated_at":"2021-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"2.0.0","license":"MIT","stars":1100,"forks":700,"features":["Large featured header images per post","Smooth CSS animations and transitions","Responsive mobile-first design","Sliding menu navigation","Disqus comments","Google Analytics","Tag and category pages","Syntax highlighting","Social sharing buttons","GitHub Pages compatible"],"slug":"hpstr","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/huxpro","collection":"themes","next":{"path":"_themes/hyde.md","relative_path":"_themes/hyde.md","id":"/themes/hyde","collection":"themes","url":"/themes/hyde/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Hyde Jekyll Theme","description":"A brazen two-column Jekyll theme that pairs a prominent sidebar with uncomplicated content. Based on Poole, by Mark Otto.","key_features":["GitHub Pages","Sidebar Layout","Color Themes","Clean Typography"],"card_description":"Two-column theme with prominent sidebar — elegant and timeless.","category":"Blog","card_image":"/assets/images/themes/hyde-card.webp","theme_screenshots":["/assets/images/themes/hyde-screenshot.webp","/assets/images/themes/hyde-screenshot-2.webp","/assets/images/themes/hyde-screenshot-3.webp"],"demo_url":"https://hyde.getpoole.com/","github_url":"https://github.com/poole/hyde","author":"GitHub Community","github_author_name":"Mark Otto","github_author_url":"https://github.com/mdo","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-gist","jekyll-paginate"],"updated_at":"2023-01-01","added_at":"2026-01-25","popular":true,"trending":false,"bestseller":false,"version":"2.1.0","license":"MIT","stars":9700,"forks":3800,"features":["Persistent dark sidebar","Eight colour themes","Reverse layout variant","Clean typography","Mobile responsive"],"slug":"hyde","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Huxpro is one of the most-starred personal Jekyll blog themes on GitHub, built by Huasheng Luo as his own personal site and open-sourced for the community. Inspired by Ghost's iconic Casper theme, it brings full-screen cover images and a magazine-quality reading experience to Jekyll.\n\nEach post supports its own hero image, creating a visually rich archive page that immediately communicates the personality of a blog. The typography is clean and generous, making long-form writing genuinely pleasant to read.\n\n**Who is it for?** Writers, developers, and creatives who want a personal blog with a strong visual identity and cover-image-driven design.\n","url":"/themes/huxpro/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Huxpro Jekyll Theme","description":"A beautiful, cover-image-driven Jekyll blog theme inspired by Ghost's Casper. Features full-screen hero images, smooth transitions, and a clean reading experience.","key_features":["Full-Screen Hero","Cover Images","Ghost-Inspired","Smooth Transitions"],"card_description":"Cover-image-driven blog inspired by Ghost's Casper theme.","category":"Blog","card_image":"/assets/images/themes/huxpro-card.webp","theme_screenshots":["/assets/images/themes/huxpro-screenshot.webp","/assets/images/themes/huxpro-screenshot-2.webp","/assets/images/themes/huxpro-screenshot-3.webp"],"demo_url":"https://huxpro.github.io/","github_url":"https://github.com/Huxpro/huxpro.github.io","author":"GitHub Community","github_author_name":"Huxpro","github_author_url":"https://github.com/Huxpro","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate"],"updated_at":"2023-06-01","added_at":"2026-06-08","popular":true,"trending":false,"bestseller":false,"version":"1.0.0","license":"Apache-2.0","stars":5400,"forks":1800,"features":["Full-screen cover image per post","Ghost Casper-inspired design","Smooth page transitions","Disqus comments support","Google Analytics integration","Responsive layout","Tag pages","Chinese and English content support"],"slug":"huxpro","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/hyde","collection":"themes","next":{"path":"_themes/hydejack.md","relative_path":"_themes/hydejack.md","excerpt":"<p>Hydejack is the boutique evolution of Hyde — taking the two-column sidebar layout and elevating it with smooth page transitions, a polished profile sidebar, and full portfolio support.</p>\n\n","previous":{"path":"_themes/hyde.md","relative_path":"_themes/hyde.md","id":"/themes/hyde","collection":"themes","url":"/themes/hyde/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Hyde Jekyll Theme","description":"A brazen two-column Jekyll theme that pairs a prominent sidebar with uncomplicated content. Based on Poole, by Mark Otto.","key_features":["GitHub Pages","Sidebar Layout","Color Themes","Clean Typography"],"card_description":"Two-column theme with prominent sidebar — elegant and timeless.","category":"Blog","card_image":"/assets/images/themes/hyde-card.webp","theme_screenshots":["/assets/images/themes/hyde-screenshot.webp","/assets/images/themes/hyde-screenshot-2.webp","/assets/images/themes/hyde-screenshot-3.webp"],"demo_url":"https://hyde.getpoole.com/","github_url":"https://github.com/poole/hyde","author":"GitHub Community","github_author_name":"Mark Otto","github_author_url":"https://github.com/mdo","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-gist","jekyll-paginate"],"updated_at":"2023-01-01","added_at":"2026-01-25","popular":true,"trending":false,"bestseller":false,"version":"2.1.0","license":"MIT","stars":9700,"forks":3800,"features":["Persistent dark sidebar","Eight colour themes","Reverse layout variant","Clean typography","Mobile responsive"],"slug":"hyde","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/hydejack","collection":"themes","next":{"path":"_themes/hydra.md","relative_path":"_themes/hydra.md","id":"/themes/hydra","collection":"themes","url":"/themes/hydra/","draft":false,"categories":["Landing Page"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Hydra Jekyll Theme","description":"A product and SaaS marketing Jekyll theme with a clean hero section, feature grid, pricing table, and testimonials.","key_features":["Pricing Table","Feature Grid","GitHub Pages","SaaS Ready"],"card_description":"SaaS marketing theme with hero, feature grid, and pricing table.","category":"Landing Page","card_image":"/assets/images/themes/hydra-card.webp","theme_screenshots":["/assets/images/themes/hydra-screenshot.webp","/assets/images/themes/hydra-screenshot-2.webp","/assets/images/themes/hydra-screenshot-3.webp"],"demo_url":"https://orange-ape.cloudvent.net/","github_url":"https://github.com/CloudCannon/hydra-jekyll-template","author":"GitHub Community","github_author_name":"CloudCannon","github_author_url":"https://github.com/CloudCannon","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap"],"updated_at":"2025-05-14","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":450,"forks":213,"features":["SaaS marketing layout","Hero section with CTA","Feature grid","Pricing table","Testimonials section","Blog included","Contact form ready","GitHub Pages compatible","CloudCannon CMS ready","Fully responsive"],"slug":"hydra","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Hydejack is the boutique evolution of Hyde — taking the two-column sidebar layout and elevating it with smooth page transitions, a polished profile sidebar, and full portfolio support.\n\nOne of the most feature-rich free Jekyll themes available, it includes everything from KaTeX math rendering to offline PWA support. A paid PRO version adds extra layouts and features.\n\n**Who is it for?** Developers and technical writers who want a beautiful, full-featured blog and portfolio in one, with a distinctive aesthetic.\n","url":"/themes/hydejack/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":true,"dark_mode":true,"responsive":true,"title":"Hydejack Jekyll Theme","description":"A boutique Jekyll theme with a rich sidebar, smooth page transitions, and portfolio support. The premium evolution of Hyde.","key_features":["Dark Mode","Page Transitions","Portfolio Support","Rich Sidebar"],"card_description":"Boutique theme with smooth page transitions and portfolio support.","category":"Blog","card_image":"/assets/images/themes/hydejack-card.webp","theme_screenshots":["/assets/images/themes/hydejack-screenshot.webp","/assets/images/themes/hydejack-screenshot-2.webp","/assets/images/themes/hydejack-screenshot-3.webp"],"demo_url":"https://hydejack.com/","github_url":"https://github.com/hydecorp/hydejack","author":"GitHub Community","github_author_name":"Florian Klampfer","github_author_url":"https://github.com/qwtel","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":false,"min_jekyll_version":"4.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate-v2"],"updated_at":"2024-02-01","added_at":"2026-01-30","popular":true,"trending":false,"bestseller":false,"version":"9.2.1","license":"GPL-3.0","stars":9000,"forks":1700,"features":["Rich profile sidebar with avatar","Smooth page transitions","Portfolio / project pages","Dark and light themes","Math support (KaTeX)","Resume page layout","Offline support (PWA)"],"slug":"hydejack","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Hyde is one of Jekyll's most iconic themes — a two-column layout with a bold dark sidebar and clean reading area. Built on Poole by Mark Otto (co-creator of Bootstrap), it sets the standard for elegant simplicity.\n\nEight built-in colour themes let you swap the sidebar accent colour with a single config change.\n\n**Who is it for?** Writers and developers who want a classic, timeless Jekyll blog with a distinctive sidebar presence.\n","url":"/themes/hyde/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Hyde Jekyll Theme","description":"A brazen two-column Jekyll theme that pairs a prominent sidebar with uncomplicated content. Based on Poole, by Mark Otto.","key_features":["GitHub Pages","Sidebar Layout","Color Themes","Clean Typography"],"card_description":"Two-column theme with prominent sidebar — elegant and timeless.","category":"Blog","card_image":"/assets/images/themes/hyde-card.webp","theme_screenshots":["/assets/images/themes/hyde-screenshot.webp","/assets/images/themes/hyde-screenshot-2.webp","/assets/images/themes/hyde-screenshot-3.webp"],"demo_url":"https://hyde.getpoole.com/","github_url":"https://github.com/poole/hyde","author":"GitHub Community","github_author_name":"Mark Otto","github_author_url":"https://github.com/mdo","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-gist","jekyll-paginate"],"updated_at":"2023-01-01","added_at":"2026-01-25","popular":true,"trending":false,"bestseller":false,"version":"2.1.0","license":"MIT","stars":9700,"forks":3800,"features":["Persistent dark sidebar","Eight colour themes","Reverse layout variant","Clean typography","Mobile responsive"],"slug":"hyde","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/hydejack.md","relative_path":"_themes/hydejack.md","excerpt":"<p>Hydejack is the boutique evolution of Hyde — taking the two-column sidebar layout and elevating it with smooth page transitions, a polished profile sidebar, and full portfolio support.</p>\n\n","previous":{"path":"_themes/hyde.md","relative_path":"_themes/hyde.md","excerpt":"<p>Hyde is one of Jekyll’s most iconic themes — a two-column layout with a bold dark sidebar and clean reading area. Built on Poole by Mark Otto (co-creator of Bootstrap), it sets the standard for elegant simplicity.</p>\n\n","previous":{"path":"_themes/huxpro.md","relative_path":"_themes/huxpro.md","id":"/themes/huxpro","collection":"themes","url":"/themes/huxpro/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Huxpro Jekyll Theme","description":"A beautiful, cover-image-driven Jekyll blog theme inspired by Ghost's Casper. Features full-screen hero images, smooth transitions, and a clean reading experience.","key_features":["Full-Screen Hero","Cover Images","Ghost-Inspired","Smooth Transitions"],"card_description":"Cover-image-driven blog inspired by Ghost's Casper theme.","category":"Blog","card_image":"/assets/images/themes/huxpro-card.webp","theme_screenshots":["/assets/images/themes/huxpro-screenshot.webp","/assets/images/themes/huxpro-screenshot-2.webp","/assets/images/themes/huxpro-screenshot-3.webp"],"demo_url":"https://huxpro.github.io/","github_url":"https://github.com/Huxpro/huxpro.github.io","author":"GitHub Community","github_author_name":"Huxpro","github_author_url":"https://github.com/Huxpro","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate"],"updated_at":"2023-06-01","added_at":"2026-06-08","popular":true,"trending":false,"bestseller":false,"version":"1.0.0","license":"Apache-2.0","stars":5400,"forks":1800,"features":["Full-screen cover image per post","Ghost Casper-inspired design","Smooth page transitions","Disqus comments support","Google Analytics integration","Responsive layout","Tag pages","Chinese and English content support"],"slug":"huxpro","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/hyde","collection":"themes","next":{"path":"_themes/hydejack.md","relative_path":"_themes/hydejack.md","id":"/themes/hydejack","collection":"themes","url":"/themes/hydejack/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":true,"dark_mode":true,"responsive":true,"title":"Hydejack Jekyll Theme","description":"A boutique Jekyll theme with a rich sidebar, smooth page transitions, and portfolio support. The premium evolution of Hyde.","key_features":["Dark Mode","Page Transitions","Portfolio Support","Rich Sidebar"],"card_description":"Boutique theme with smooth page transitions and portfolio support.","category":"Blog","card_image":"/assets/images/themes/hydejack-card.webp","theme_screenshots":["/assets/images/themes/hydejack-screenshot.webp","/assets/images/themes/hydejack-screenshot-2.webp","/assets/images/themes/hydejack-screenshot-3.webp"],"demo_url":"https://hydejack.com/","github_url":"https://github.com/hydecorp/hydejack","author":"GitHub Community","github_author_name":"Florian Klampfer","github_author_url":"https://github.com/qwtel","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":false,"min_jekyll_version":"4.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate-v2"],"updated_at":"2024-02-01","added_at":"2026-01-30","popular":true,"trending":false,"bestseller":false,"version":"9.2.1","license":"GPL-3.0","stars":9000,"forks":1700,"features":["Rich profile sidebar with avatar","Smooth page transitions","Portfolio / project pages","Dark and light themes","Math support (KaTeX)","Resume page layout","Offline support (PWA)"],"slug":"hydejack","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Hyde is one of Jekyll's most iconic themes — a two-column layout with a bold dark sidebar and clean reading area. Built on Poole by Mark Otto (co-creator of Bootstrap), it sets the standard for elegant simplicity.\n\nEight built-in colour themes let you swap the sidebar accent colour with a single config change.\n\n**Who is it for?** Writers and developers who want a classic, timeless Jekyll blog with a distinctive sidebar presence.\n","url":"/themes/hyde/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Hyde Jekyll Theme","description":"A brazen two-column Jekyll theme that pairs a prominent sidebar with uncomplicated content. Based on Poole, by Mark Otto.","key_features":["GitHub Pages","Sidebar Layout","Color Themes","Clean Typography"],"card_description":"Two-column theme with prominent sidebar — elegant and timeless.","category":"Blog","card_image":"/assets/images/themes/hyde-card.webp","theme_screenshots":["/assets/images/themes/hyde-screenshot.webp","/assets/images/themes/hyde-screenshot-2.webp","/assets/images/themes/hyde-screenshot-3.webp"],"demo_url":"https://hyde.getpoole.com/","github_url":"https://github.com/poole/hyde","author":"GitHub Community","github_author_name":"Mark Otto","github_author_url":"https://github.com/mdo","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-gist","jekyll-paginate"],"updated_at":"2023-01-01","added_at":"2026-01-25","popular":true,"trending":false,"bestseller":false,"version":"2.1.0","license":"MIT","stars":9700,"forks":3800,"features":["Persistent dark sidebar","Eight colour themes","Reverse layout variant","Clean typography","Mobile responsive"],"slug":"hyde","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/hydejack","collection":"themes","next":{"path":"_themes/hydra.md","relative_path":"_themes/hydra.md","excerpt":"<p>Hydra is a product marketing theme from CloudCannon, built for SaaS products, apps, and services that need a professional landing page. Hero, features, pricing, and testimonials sections are all pre-built and easy to customise.</p>\n\n","previous":{"path":"_themes/hydejack.md","relative_path":"_themes/hydejack.md","id":"/themes/hydejack","collection":"themes","url":"/themes/hydejack/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":true,"dark_mode":true,"responsive":true,"title":"Hydejack Jekyll Theme","description":"A boutique Jekyll theme with a rich sidebar, smooth page transitions, and portfolio support. The premium evolution of Hyde.","key_features":["Dark Mode","Page Transitions","Portfolio Support","Rich Sidebar"],"card_description":"Boutique theme with smooth page transitions and portfolio support.","category":"Blog","card_image":"/assets/images/themes/hydejack-card.webp","theme_screenshots":["/assets/images/themes/hydejack-screenshot.webp","/assets/images/themes/hydejack-screenshot-2.webp","/assets/images/themes/hydejack-screenshot-3.webp"],"demo_url":"https://hydejack.com/","github_url":"https://github.com/hydecorp/hydejack","author":"GitHub Community","github_author_name":"Florian Klampfer","github_author_url":"https://github.com/qwtel","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":false,"min_jekyll_version":"4.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate-v2"],"updated_at":"2024-02-01","added_at":"2026-01-30","popular":true,"trending":false,"bestseller":false,"version":"9.2.1","license":"GPL-3.0","stars":9000,"forks":1700,"features":["Rich profile sidebar with avatar","Smooth page transitions","Portfolio / project pages","Dark and light themes","Math support (KaTeX)","Resume page layout","Offline support (PWA)"],"slug":"hydejack","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/hydra","collection":"themes","next":{"path":"_themes/jasper.md","relative_path":"_themes/jasper.md","id":"/themes/jasper","collection":"themes","url":"/themes/jasper/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Jasper Jekyll Theme","description":"A Jekyll port of Ghost's default Casper theme. Brings the polished, editorial feel of Ghost blogging to static Jekyll sites.","key_features":["Ghost-Inspired","GitHub Pages","Editorial Design","Featured Images"],"card_description":"Jekyll port of Ghost's Casper — polished, editorial feel.","category":"Blog","card_image":"/assets/images/themes/jasper-card.webp","theme_screenshots":["/assets/images/themes/jasper-screenshot.webp","/assets/images/themes/jasper-screenshot-2.webp","/assets/images/themes/jasper-screenshot-3.webp"],"demo_url":"https://jekyllt.github.io/jasper/","github_url":"https://github.com/biomadeira/jasper","author":"GitHub Community","github_author_name":"biomadeira","github_author_url":"https://github.com/biomadeira","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate"],"updated_at":"2023-05-05","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":587,"forks":290,"features":["Ghost Casper port","Cover image header","Tag-based navigation","Author profiles","Post cover images","Disqus comments","Google Analytics","RSS feed","GitHub Pages compatible","Responsive design"],"slug":"jasper","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Hydra is a product marketing theme from CloudCannon, built for SaaS products, apps, and services that need a professional landing page. Hero, features, pricing, and testimonials sections are all pre-built and easy to customise.\n\nA blog is included so you can publish content marketing articles alongside your product pages.\n\n**Who is it for?** Founders and teams launching SaaS products or apps who need a polished marketing site fast.\n","url":"/themes/hydra/","draft":false,"categories":["Landing Page"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Hydra Jekyll Theme","description":"A product and SaaS marketing Jekyll theme with a clean hero section, feature grid, pricing table, and testimonials.","key_features":["Pricing Table","Feature Grid","GitHub Pages","SaaS Ready"],"card_description":"SaaS marketing theme with hero, feature grid, and pricing table.","category":"Landing Page","card_image":"/assets/images/themes/hydra-card.webp","theme_screenshots":["/assets/images/themes/hydra-screenshot.webp","/assets/images/themes/hydra-screenshot-2.webp","/assets/images/themes/hydra-screenshot-3.webp"],"demo_url":"https://orange-ape.cloudvent.net/","github_url":"https://github.com/CloudCannon/hydra-jekyll-template","author":"GitHub Community","github_author_name":"CloudCannon","github_author_url":"https://github.com/CloudCannon","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap"],"updated_at":"2025-05-14","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":450,"forks":213,"features":["SaaS marketing layout","Hero section with CTA","Feature grid","Pricing table","Testimonials section","Blog included","Contact form ready","GitHub Pages compatible","CloudCannon CMS ready","Fully responsive"],"slug":"hydra","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Hydejack is the boutique evolution of Hyde — taking the two-column sidebar layout and elevating it with smooth page transitions, a polished profile sidebar, and full portfolio support.\n\nOne of the most feature-rich free Jekyll themes available, it includes everything from KaTeX math rendering to offline PWA support. A paid PRO version adds extra layouts and features.\n\n**Who is it for?** Developers and technical writers who want a beautiful, full-featured blog and portfolio in one, with a distinctive aesthetic.\n","url":"/themes/hydejack/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":true,"dark_mode":true,"responsive":true,"title":"Hydejack Jekyll Theme","description":"A boutique Jekyll theme with a rich sidebar, smooth page transitions, and portfolio support. The premium evolution of Hyde.","key_features":["Dark Mode","Page Transitions","Portfolio Support","Rich Sidebar"],"card_description":"Boutique theme with smooth page transitions and portfolio support.","category":"Blog","card_image":"/assets/images/themes/hydejack-card.webp","theme_screenshots":["/assets/images/themes/hydejack-screenshot.webp","/assets/images/themes/hydejack-screenshot-2.webp","/assets/images/themes/hydejack-screenshot-3.webp"],"demo_url":"https://hydejack.com/","github_url":"https://github.com/hydecorp/hydejack","author":"GitHub Community","github_author_name":"Florian Klampfer","github_author_url":"https://github.com/qwtel","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":false,"min_jekyll_version":"4.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate-v2"],"updated_at":"2024-02-01","added_at":"2026-01-30","popular":true,"trending":false,"bestseller":false,"version":"9.2.1","license":"GPL-3.0","stars":9000,"forks":1700,"features":["Rich profile sidebar with avatar","Smooth page transitions","Portfolio / project pages","Dark and light themes","Math support (KaTeX)","Resume page layout","Offline support (PWA)"],"slug":"hydejack","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/hydra.md","relative_path":"_themes/hydra.md","excerpt":"<p>Hydra is a product marketing theme from CloudCannon, built for SaaS products, apps, and services that need a professional landing page. Hero, features, pricing, and testimonials sections are all pre-built and easy to customise.</p>\n\n","previous":{"path":"_themes/hydejack.md","relative_path":"_themes/hydejack.md","excerpt":"<p>Hydejack is the boutique evolution of Hyde — taking the two-column sidebar layout and elevating it with smooth page transitions, a polished profile sidebar, and full portfolio support.</p>\n\n","previous":{"path":"_themes/hyde.md","relative_path":"_themes/hyde.md","id":"/themes/hyde","collection":"themes","url":"/themes/hyde/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Hyde Jekyll Theme","description":"A brazen two-column Jekyll theme that pairs a prominent sidebar with uncomplicated content. Based on Poole, by Mark Otto.","key_features":["GitHub Pages","Sidebar Layout","Color Themes","Clean Typography"],"card_description":"Two-column theme with prominent sidebar — elegant and timeless.","category":"Blog","card_image":"/assets/images/themes/hyde-card.webp","theme_screenshots":["/assets/images/themes/hyde-screenshot.webp","/assets/images/themes/hyde-screenshot-2.webp","/assets/images/themes/hyde-screenshot-3.webp"],"demo_url":"https://hyde.getpoole.com/","github_url":"https://github.com/poole/hyde","author":"GitHub Community","github_author_name":"Mark Otto","github_author_url":"https://github.com/mdo","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-gist","jekyll-paginate"],"updated_at":"2023-01-01","added_at":"2026-01-25","popular":true,"trending":false,"bestseller":false,"version":"2.1.0","license":"MIT","stars":9700,"forks":3800,"features":["Persistent dark sidebar","Eight colour themes","Reverse layout variant","Clean typography","Mobile responsive"],"slug":"hyde","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/hydejack","collection":"themes","next":{"path":"_themes/hydra.md","relative_path":"_themes/hydra.md","id":"/themes/hydra","collection":"themes","url":"/themes/hydra/","draft":false,"categories":["Landing Page"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Hydra Jekyll Theme","description":"A product and SaaS marketing Jekyll theme with a clean hero section, feature grid, pricing table, and testimonials.","key_features":["Pricing Table","Feature Grid","GitHub Pages","SaaS Ready"],"card_description":"SaaS marketing theme with hero, feature grid, and pricing table.","category":"Landing Page","card_image":"/assets/images/themes/hydra-card.webp","theme_screenshots":["/assets/images/themes/hydra-screenshot.webp","/assets/images/themes/hydra-screenshot-2.webp","/assets/images/themes/hydra-screenshot-3.webp"],"demo_url":"https://orange-ape.cloudvent.net/","github_url":"https://github.com/CloudCannon/hydra-jekyll-template","author":"GitHub Community","github_author_name":"CloudCannon","github_author_url":"https://github.com/CloudCannon","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap"],"updated_at":"2025-05-14","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":450,"forks":213,"features":["SaaS marketing layout","Hero section with CTA","Feature grid","Pricing table","Testimonials section","Blog included","Contact form ready","GitHub Pages compatible","CloudCannon CMS ready","Fully responsive"],"slug":"hydra","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Hydejack is the boutique evolution of Hyde — taking the two-column sidebar layout and elevating it with smooth page transitions, a polished profile sidebar, and full portfolio support.\n\nOne of the most feature-rich free Jekyll themes available, it includes everything from KaTeX math rendering to offline PWA support. A paid PRO version adds extra layouts and features.\n\n**Who is it for?** Developers and technical writers who want a beautiful, full-featured blog and portfolio in one, with a distinctive aesthetic.\n","url":"/themes/hydejack/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":true,"dark_mode":true,"responsive":true,"title":"Hydejack Jekyll Theme","description":"A boutique Jekyll theme with a rich sidebar, smooth page transitions, and portfolio support. The premium evolution of Hyde.","key_features":["Dark Mode","Page Transitions","Portfolio Support","Rich Sidebar"],"card_description":"Boutique theme with smooth page transitions and portfolio support.","category":"Blog","card_image":"/assets/images/themes/hydejack-card.webp","theme_screenshots":["/assets/images/themes/hydejack-screenshot.webp","/assets/images/themes/hydejack-screenshot-2.webp","/assets/images/themes/hydejack-screenshot-3.webp"],"demo_url":"https://hydejack.com/","github_url":"https://github.com/hydecorp/hydejack","author":"GitHub Community","github_author_name":"Florian Klampfer","github_author_url":"https://github.com/qwtel","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":false,"min_jekyll_version":"4.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate-v2"],"updated_at":"2024-02-01","added_at":"2026-01-30","popular":true,"trending":false,"bestseller":false,"version":"9.2.1","license":"GPL-3.0","stars":9000,"forks":1700,"features":["Rich profile sidebar with avatar","Smooth page transitions","Portfolio / project pages","Dark and light themes","Math support (KaTeX)","Resume page layout","Offline support (PWA)"],"slug":"hydejack","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/hydra","collection":"themes","next":{"path":"_themes/jasper.md","relative_path":"_themes/jasper.md","excerpt":"<p>Jasper brings the polished editorial aesthetic of Ghost’s default Casper theme to the Jekyll ecosystem. If you admire the clean, image-led layout of Ghost blogs but want to stay on a static site, Jasper is the natural choice.</p>\n\n","previous":{"path":"_themes/hydra.md","relative_path":"_themes/hydra.md","id":"/themes/hydra","collection":"themes","url":"/themes/hydra/","draft":false,"categories":["Landing Page"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Hydra Jekyll Theme","description":"A product and SaaS marketing Jekyll theme with a clean hero section, feature grid, pricing table, and testimonials.","key_features":["Pricing Table","Feature Grid","GitHub Pages","SaaS Ready"],"card_description":"SaaS marketing theme with hero, feature grid, and pricing table.","category":"Landing Page","card_image":"/assets/images/themes/hydra-card.webp","theme_screenshots":["/assets/images/themes/hydra-screenshot.webp","/assets/images/themes/hydra-screenshot-2.webp","/assets/images/themes/hydra-screenshot-3.webp"],"demo_url":"https://orange-ape.cloudvent.net/","github_url":"https://github.com/CloudCannon/hydra-jekyll-template","author":"GitHub Community","github_author_name":"CloudCannon","github_author_url":"https://github.com/CloudCannon","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap"],"updated_at":"2025-05-14","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":450,"forks":213,"features":["SaaS marketing layout","Hero section with CTA","Feature grid","Pricing table","Testimonials section","Blog included","Contact form ready","GitHub Pages compatible","CloudCannon CMS ready","Fully responsive"],"slug":"hydra","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/jasper","collection":"themes","next":{"path":"_themes/jekyll-now.md","relative_path":"_themes/jekyll-now.md","id":"/themes/jekyll-now","collection":"themes","url":"/themes/jekyll-now/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Jekyll Now","description":"The quickest way to start a Jekyll blog. Fork on GitHub, enable Pages, and you have a live blog in under a minute — zero command line required.","key_features":["Zero Setup","GitHub Pages","Fork to Deploy","Beginner Friendly"],"card_description":"Quickest way to start a Jekyll blog — fork, enable Pages, done.","category":"Blog","card_image":"/assets/images/themes/jekyll-now-card.webp","theme_screenshots":["/assets/images/themes/jekyll-now-screenshot.webp","/assets/images/themes/jekyll-now-screenshot-2.webp","/assets/images/themes/jekyll-now-screenshot-3.webp"],"demo_url":"https://barryclark.github.io/jekyll-now/","github_url":"https://github.com/barryclark/jekyll-now","author":"GitHub Community","github_author_name":"Barry Clark","github_author_url":"https://github.com/barryclark","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2023-06-01","added_at":"2026-06-07","popular":true,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":8400,"forks":3500,"features":["No command line required — fork and publish in 60 seconds","GitHub Pages native (zero config)","Disqus comments built in","Google Analytics support","Social icons for Twitter, GitHub, LinkedIn and more","Simple single-column blog layout","SVG social icons","RSS feed included","Beginner-friendly YAML configuration"],"slug":"jekyll-now","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Jasper brings the polished editorial aesthetic of Ghost's default Casper theme to the Jekyll ecosystem. If you admire the clean, image-led layout of Ghost blogs but want to stay on a static site, Jasper is the natural choice.\n\nCover images dominate the header of each post, creating a visual impact that draws readers in before they've read a word.\n\n**Who is it for?** Bloggers who love Ghost's editorial aesthetic but prefer or require a static Jekyll workflow.\n","url":"/themes/jasper/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Jasper Jekyll Theme","description":"A Jekyll port of Ghost's default Casper theme. Brings the polished, editorial feel of Ghost blogging to static Jekyll sites.","key_features":["Ghost-Inspired","GitHub Pages","Editorial Design","Featured Images"],"card_description":"Jekyll port of Ghost's Casper — polished, editorial feel.","category":"Blog","card_image":"/assets/images/themes/jasper-card.webp","theme_screenshots":["/assets/images/themes/jasper-screenshot.webp","/assets/images/themes/jasper-screenshot-2.webp","/assets/images/themes/jasper-screenshot-3.webp"],"demo_url":"https://jekyllt.github.io/jasper/","github_url":"https://github.com/biomadeira/jasper","author":"GitHub Community","github_author_name":"biomadeira","github_author_url":"https://github.com/biomadeira","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate"],"updated_at":"2023-05-05","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":587,"forks":290,"features":["Ghost Casper port","Cover image header","Tag-based navigation","Author profiles","Post cover images","Disqus comments","Google Analytics","RSS feed","GitHub Pages compatible","Responsive design"],"slug":"jasper","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Hydra is a product marketing theme from CloudCannon, built for SaaS products, apps, and services that need a professional landing page. Hero, features, pricing, and testimonials sections are all pre-built and easy to customise.\n\nA blog is included so you can publish content marketing articles alongside your product pages.\n\n**Who is it for?** Founders and teams launching SaaS products or apps who need a polished marketing site fast.\n","url":"/themes/hydra/","draft":false,"categories":["Landing Page"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Hydra Jekyll Theme","description":"A product and SaaS marketing Jekyll theme with a clean hero section, feature grid, pricing table, and testimonials.","key_features":["Pricing Table","Feature Grid","GitHub Pages","SaaS Ready"],"card_description":"SaaS marketing theme with hero, feature grid, and pricing table.","category":"Landing Page","card_image":"/assets/images/themes/hydra-card.webp","theme_screenshots":["/assets/images/themes/hydra-screenshot.webp","/assets/images/themes/hydra-screenshot-2.webp","/assets/images/themes/hydra-screenshot-3.webp"],"demo_url":"https://orange-ape.cloudvent.net/","github_url":"https://github.com/CloudCannon/hydra-jekyll-template","author":"GitHub Community","github_author_name":"CloudCannon","github_author_url":"https://github.com/CloudCannon","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap"],"updated_at":"2025-05-14","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":450,"forks":213,"features":["SaaS marketing layout","Hero section with CTA","Feature grid","Pricing table","Testimonials section","Blog included","Contact form ready","GitHub Pages compatible","CloudCannon CMS ready","Fully responsive"],"slug":"hydra","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/jasper.md","relative_path":"_themes/jasper.md","excerpt":"<p>Jasper brings the polished editorial aesthetic of Ghost’s default Casper theme to the Jekyll ecosystem. If you admire the clean, image-led layout of Ghost blogs but want to stay on a static site, Jasper is the natural choice.</p>\n\n","previous":{"path":"_themes/hydra.md","relative_path":"_themes/hydra.md","excerpt":"<p>Hydra is a product marketing theme from CloudCannon, built for SaaS products, apps, and services that need a professional landing page. Hero, features, pricing, and testimonials sections are all pre-built and easy to customise.</p>\n\n","previous":{"path":"_themes/hydejack.md","relative_path":"_themes/hydejack.md","id":"/themes/hydejack","collection":"themes","url":"/themes/hydejack/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":true,"dark_mode":true,"responsive":true,"title":"Hydejack Jekyll Theme","description":"A boutique Jekyll theme with a rich sidebar, smooth page transitions, and portfolio support. The premium evolution of Hyde.","key_features":["Dark Mode","Page Transitions","Portfolio Support","Rich Sidebar"],"card_description":"Boutique theme with smooth page transitions and portfolio support.","category":"Blog","card_image":"/assets/images/themes/hydejack-card.webp","theme_screenshots":["/assets/images/themes/hydejack-screenshot.webp","/assets/images/themes/hydejack-screenshot-2.webp","/assets/images/themes/hydejack-screenshot-3.webp"],"demo_url":"https://hydejack.com/","github_url":"https://github.com/hydecorp/hydejack","author":"GitHub Community","github_author_name":"Florian Klampfer","github_author_url":"https://github.com/qwtel","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":false,"min_jekyll_version":"4.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate-v2"],"updated_at":"2024-02-01","added_at":"2026-01-30","popular":true,"trending":false,"bestseller":false,"version":"9.2.1","license":"GPL-3.0","stars":9000,"forks":1700,"features":["Rich profile sidebar with avatar","Smooth page transitions","Portfolio / project pages","Dark and light themes","Math support (KaTeX)","Resume page layout","Offline support (PWA)"],"slug":"hydejack","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/hydra","collection":"themes","next":{"path":"_themes/jasper.md","relative_path":"_themes/jasper.md","id":"/themes/jasper","collection":"themes","url":"/themes/jasper/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Jasper Jekyll Theme","description":"A Jekyll port of Ghost's default Casper theme. Brings the polished, editorial feel of Ghost blogging to static Jekyll sites.","key_features":["Ghost-Inspired","GitHub Pages","Editorial Design","Featured Images"],"card_description":"Jekyll port of Ghost's Casper — polished, editorial feel.","category":"Blog","card_image":"/assets/images/themes/jasper-card.webp","theme_screenshots":["/assets/images/themes/jasper-screenshot.webp","/assets/images/themes/jasper-screenshot-2.webp","/assets/images/themes/jasper-screenshot-3.webp"],"demo_url":"https://jekyllt.github.io/jasper/","github_url":"https://github.com/biomadeira/jasper","author":"GitHub Community","github_author_name":"biomadeira","github_author_url":"https://github.com/biomadeira","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate"],"updated_at":"2023-05-05","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":587,"forks":290,"features":["Ghost Casper port","Cover image header","Tag-based navigation","Author profiles","Post cover images","Disqus comments","Google Analytics","RSS feed","GitHub Pages compatible","Responsive design"],"slug":"jasper","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Hydra is a product marketing theme from CloudCannon, built for SaaS products, apps, and services that need a professional landing page. Hero, features, pricing, and testimonials sections are all pre-built and easy to customise.\n\nA blog is included so you can publish content marketing articles alongside your product pages.\n\n**Who is it for?** Founders and teams launching SaaS products or apps who need a polished marketing site fast.\n","url":"/themes/hydra/","draft":false,"categories":["Landing Page"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Hydra Jekyll Theme","description":"A product and SaaS marketing Jekyll theme with a clean hero section, feature grid, pricing table, and testimonials.","key_features":["Pricing Table","Feature Grid","GitHub Pages","SaaS Ready"],"card_description":"SaaS marketing theme with hero, feature grid, and pricing table.","category":"Landing Page","card_image":"/assets/images/themes/hydra-card.webp","theme_screenshots":["/assets/images/themes/hydra-screenshot.webp","/assets/images/themes/hydra-screenshot-2.webp","/assets/images/themes/hydra-screenshot-3.webp"],"demo_url":"https://orange-ape.cloudvent.net/","github_url":"https://github.com/CloudCannon/hydra-jekyll-template","author":"GitHub Community","github_author_name":"CloudCannon","github_author_url":"https://github.com/CloudCannon","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap"],"updated_at":"2025-05-14","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":450,"forks":213,"features":["SaaS marketing layout","Hero section with CTA","Feature grid","Pricing table","Testimonials section","Blog included","Contact form ready","GitHub Pages compatible","CloudCannon CMS ready","Fully responsive"],"slug":"hydra","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/jasper","collection":"themes","next":{"path":"_themes/jekyll-now.md","relative_path":"_themes/jekyll-now.md","excerpt":"<p>Jekyll Now is the most-forked Jekyll theme on GitHub and the go-to starting point for anyone who wants a blog without touching the command line. The setup is genuinely three steps: fork the repository, rename it to <code class=\"language-plaintext highlighter-rouge\">username.github.io</code>, and your blog is live.</p>\n\n","previous":{"path":"_themes/jasper.md","relative_path":"_themes/jasper.md","id":"/themes/jasper","collection":"themes","url":"/themes/jasper/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Jasper Jekyll Theme","description":"A Jekyll port of Ghost's default Casper theme. Brings the polished, editorial feel of Ghost blogging to static Jekyll sites.","key_features":["Ghost-Inspired","GitHub Pages","Editorial Design","Featured Images"],"card_description":"Jekyll port of Ghost's Casper — polished, editorial feel.","category":"Blog","card_image":"/assets/images/themes/jasper-card.webp","theme_screenshots":["/assets/images/themes/jasper-screenshot.webp","/assets/images/themes/jasper-screenshot-2.webp","/assets/images/themes/jasper-screenshot-3.webp"],"demo_url":"https://jekyllt.github.io/jasper/","github_url":"https://github.com/biomadeira/jasper","author":"GitHub Community","github_author_name":"biomadeira","github_author_url":"https://github.com/biomadeira","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate"],"updated_at":"2023-05-05","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":587,"forks":290,"features":["Ghost Casper port","Cover image header","Tag-based navigation","Author profiles","Post cover images","Disqus comments","Google Analytics","RSS feed","GitHub Pages compatible","Responsive design"],"slug":"jasper","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/jekyll-now","collection":"themes","next":{"path":"_themes/jekyll-text-theme.md","relative_path":"_themes/jekyll-text-theme.md","id":"/themes/jekyll-text-theme","collection":"themes","url":"/themes/jekyll-text-theme/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":true,"dark_mode":true,"responsive":true,"title":"TeXt Jekyll Theme","description":"A highly customisable Jekyll theme inspired by iOS 11 style. Features multiple skins, rich built-in components, full internationalisation, and support for blogs, documentation, and team sites.","key_features":["Multiple Skins","Dark Mode","Internationalisation","GitHub Pages"],"card_description":"iOS-inspired theme with multiple skins and rich built-in components.","category":"Blog","card_image":"/assets/images/themes/jekyll-text-theme-card.webp","theme_screenshots":["/assets/images/themes/jekyll-text-theme-screenshot.webp","/assets/images/themes/jekyll-text-theme-screenshot-2.webp","/assets/images/themes/jekyll-text-theme-screenshot-3.webp"],"demo_url":"https://kitian616.github.io/jekyll-TeXt-theme/","github_url":"https://github.com/kitian616/jekyll-TeXt-theme","author":"GitHub Community","github_author_name":"kitian616","github_author_url":"https://github.com/kitian616","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.8","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2024-01-01","added_at":"2026-06-07","popular":true,"trending":false,"bestseller":false,"version":"2.2.6","license":"MIT","stars":3300,"forks":700,"features":["6 built-in colour skins","Dark mode support","Full internationalisation (i18n) with 10+ languages","Article reading progress bar","Disqus, Gitalk, and Valine comment systems","MathJax and Mermaid diagram support","Full-text search via Algolia or Simple Jekyll Search","Table of contents sidebar","Responsive image galleries","GitHub Pages compatible"],"slug":"jekyll-text-theme","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Jekyll Now is the most-forked Jekyll theme on GitHub and the go-to starting point for anyone who wants a blog without touching the command line. The setup is genuinely three steps: fork the repository, rename it to `username.github.io`, and your blog is live.\n\nBarry Clark built Jekyll Now to lower the barrier to entry as far as it could go. The theme is intentionally minimal — clean typography, a responsive single-column layout, and just enough configuration to feel personal without overwhelming a new user.\n\n**Who is it for?** Beginners, writers, and developers who want a quick personal blog on GitHub Pages with no local setup required.\n","url":"/themes/jekyll-now/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Jekyll Now","description":"The quickest way to start a Jekyll blog. Fork on GitHub, enable Pages, and you have a live blog in under a minute — zero command line required.","key_features":["Zero Setup","GitHub Pages","Fork to Deploy","Beginner Friendly"],"card_description":"Quickest way to start a Jekyll blog — fork, enable Pages, done.","category":"Blog","card_image":"/assets/images/themes/jekyll-now-card.webp","theme_screenshots":["/assets/images/themes/jekyll-now-screenshot.webp","/assets/images/themes/jekyll-now-screenshot-2.webp","/assets/images/themes/jekyll-now-screenshot-3.webp"],"demo_url":"https://barryclark.github.io/jekyll-now/","github_url":"https://github.com/barryclark/jekyll-now","author":"GitHub Community","github_author_name":"Barry Clark","github_author_url":"https://github.com/barryclark","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2023-06-01","added_at":"2026-06-07","popular":true,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":8400,"forks":3500,"features":["No command line required — fork and publish in 60 seconds","GitHub Pages native (zero config)","Disqus comments built in","Google Analytics support","Social icons for Twitter, GitHub, LinkedIn and more","Simple single-column blog layout","SVG social icons","RSS feed included","Beginner-friendly YAML configuration"],"slug":"jekyll-now","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Jasper brings the polished editorial aesthetic of Ghost's default Casper theme to the Jekyll ecosystem. If you admire the clean, image-led layout of Ghost blogs but want to stay on a static site, Jasper is the natural choice.\n\nCover images dominate the header of each post, creating a visual impact that draws readers in before they've read a word.\n\n**Who is it for?** Bloggers who love Ghost's editorial aesthetic but prefer or require a static Jekyll workflow.\n","url":"/themes/jasper/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Jasper Jekyll Theme","description":"A Jekyll port of Ghost's default Casper theme. Brings the polished, editorial feel of Ghost blogging to static Jekyll sites.","key_features":["Ghost-Inspired","GitHub Pages","Editorial Design","Featured Images"],"card_description":"Jekyll port of Ghost's Casper — polished, editorial feel.","category":"Blog","card_image":"/assets/images/themes/jasper-card.webp","theme_screenshots":["/assets/images/themes/jasper-screenshot.webp","/assets/images/themes/jasper-screenshot-2.webp","/assets/images/themes/jasper-screenshot-3.webp"],"demo_url":"https://jekyllt.github.io/jasper/","github_url":"https://github.com/biomadeira/jasper","author":"GitHub Community","github_author_name":"biomadeira","github_author_url":"https://github.com/biomadeira","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate"],"updated_at":"2023-05-05","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":587,"forks":290,"features":["Ghost Casper port","Cover image header","Tag-based navigation","Author profiles","Post cover images","Disqus comments","Google Analytics","RSS feed","GitHub Pages compatible","Responsive design"],"slug":"jasper","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/jekyll-now.md","relative_path":"_themes/jekyll-now.md","excerpt":"<p>Jekyll Now is the most-forked Jekyll theme on GitHub and the go-to starting point for anyone who wants a blog without touching the command line. The setup is genuinely three steps: fork the repository, rename it to <code class=\"language-plaintext highlighter-rouge\">username.github.io</code>, and your blog is live.</p>\n\n","previous":{"path":"_themes/jasper.md","relative_path":"_themes/jasper.md","excerpt":"<p>Jasper brings the polished editorial aesthetic of Ghost’s default Casper theme to the Jekyll ecosystem. If you admire the clean, image-led layout of Ghost blogs but want to stay on a static site, Jasper is the natural choice.</p>\n\n","previous":{"path":"_themes/hydra.md","relative_path":"_themes/hydra.md","id":"/themes/hydra","collection":"themes","url":"/themes/hydra/","draft":false,"categories":["Landing Page"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Hydra Jekyll Theme","description":"A product and SaaS marketing Jekyll theme with a clean hero section, feature grid, pricing table, and testimonials.","key_features":["Pricing Table","Feature Grid","GitHub Pages","SaaS Ready"],"card_description":"SaaS marketing theme with hero, feature grid, and pricing table.","category":"Landing Page","card_image":"/assets/images/themes/hydra-card.webp","theme_screenshots":["/assets/images/themes/hydra-screenshot.webp","/assets/images/themes/hydra-screenshot-2.webp","/assets/images/themes/hydra-screenshot-3.webp"],"demo_url":"https://orange-ape.cloudvent.net/","github_url":"https://github.com/CloudCannon/hydra-jekyll-template","author":"GitHub Community","github_author_name":"CloudCannon","github_author_url":"https://github.com/CloudCannon","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap"],"updated_at":"2025-05-14","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":450,"forks":213,"features":["SaaS marketing layout","Hero section with CTA","Feature grid","Pricing table","Testimonials section","Blog included","Contact form ready","GitHub Pages compatible","CloudCannon CMS ready","Fully responsive"],"slug":"hydra","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/jasper","collection":"themes","next":{"path":"_themes/jekyll-now.md","relative_path":"_themes/jekyll-now.md","id":"/themes/jekyll-now","collection":"themes","url":"/themes/jekyll-now/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Jekyll Now","description":"The quickest way to start a Jekyll blog. Fork on GitHub, enable Pages, and you have a live blog in under a minute — zero command line required.","key_features":["Zero Setup","GitHub Pages","Fork to Deploy","Beginner Friendly"],"card_description":"Quickest way to start a Jekyll blog — fork, enable Pages, done.","category":"Blog","card_image":"/assets/images/themes/jekyll-now-card.webp","theme_screenshots":["/assets/images/themes/jekyll-now-screenshot.webp","/assets/images/themes/jekyll-now-screenshot-2.webp","/assets/images/themes/jekyll-now-screenshot-3.webp"],"demo_url":"https://barryclark.github.io/jekyll-now/","github_url":"https://github.com/barryclark/jekyll-now","author":"GitHub Community","github_author_name":"Barry Clark","github_author_url":"https://github.com/barryclark","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2023-06-01","added_at":"2026-06-07","popular":true,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":8400,"forks":3500,"features":["No command line required — fork and publish in 60 seconds","GitHub Pages native (zero config)","Disqus comments built in","Google Analytics support","Social icons for Twitter, GitHub, LinkedIn and more","Simple single-column blog layout","SVG social icons","RSS feed included","Beginner-friendly YAML configuration"],"slug":"jekyll-now","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Jasper brings the polished editorial aesthetic of Ghost's default Casper theme to the Jekyll ecosystem. If you admire the clean, image-led layout of Ghost blogs but want to stay on a static site, Jasper is the natural choice.\n\nCover images dominate the header of each post, creating a visual impact that draws readers in before they've read a word.\n\n**Who is it for?** Bloggers who love Ghost's editorial aesthetic but prefer or require a static Jekyll workflow.\n","url":"/themes/jasper/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Jasper Jekyll Theme","description":"A Jekyll port of Ghost's default Casper theme. Brings the polished, editorial feel of Ghost blogging to static Jekyll sites.","key_features":["Ghost-Inspired","GitHub Pages","Editorial Design","Featured Images"],"card_description":"Jekyll port of Ghost's Casper — polished, editorial feel.","category":"Blog","card_image":"/assets/images/themes/jasper-card.webp","theme_screenshots":["/assets/images/themes/jasper-screenshot.webp","/assets/images/themes/jasper-screenshot-2.webp","/assets/images/themes/jasper-screenshot-3.webp"],"demo_url":"https://jekyllt.github.io/jasper/","github_url":"https://github.com/biomadeira/jasper","author":"GitHub Community","github_author_name":"biomadeira","github_author_url":"https://github.com/biomadeira","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate"],"updated_at":"2023-05-05","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":587,"forks":290,"features":["Ghost Casper port","Cover image header","Tag-based navigation","Author profiles","Post cover images","Disqus comments","Google Analytics","RSS feed","GitHub Pages compatible","Responsive design"],"slug":"jasper","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/jekyll-now","collection":"themes","next":{"path":"_themes/jekyll-text-theme.md","relative_path":"_themes/jekyll-text-theme.md","excerpt":"<p>TeXt is one of the most feature-complete free Jekyll themes available. Its iOS 11-inspired design is clean and modern, and the depth of built-in functionality is remarkable for a free theme — you get multiple colour skins, dark mode, reading progress, multiple comment systems, maths rendering, diagram support, and full internationalisation all out of the box.</p>\n\n","previous":{"path":"_themes/jekyll-now.md","relative_path":"_themes/jekyll-now.md","id":"/themes/jekyll-now","collection":"themes","url":"/themes/jekyll-now/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Jekyll Now","description":"The quickest way to start a Jekyll blog. Fork on GitHub, enable Pages, and you have a live blog in under a minute — zero command line required.","key_features":["Zero Setup","GitHub Pages","Fork to Deploy","Beginner Friendly"],"card_description":"Quickest way to start a Jekyll blog — fork, enable Pages, done.","category":"Blog","card_image":"/assets/images/themes/jekyll-now-card.webp","theme_screenshots":["/assets/images/themes/jekyll-now-screenshot.webp","/assets/images/themes/jekyll-now-screenshot-2.webp","/assets/images/themes/jekyll-now-screenshot-3.webp"],"demo_url":"https://barryclark.github.io/jekyll-now/","github_url":"https://github.com/barryclark/jekyll-now","author":"GitHub Community","github_author_name":"Barry Clark","github_author_url":"https://github.com/barryclark","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2023-06-01","added_at":"2026-06-07","popular":true,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":8400,"forks":3500,"features":["No command line required — fork and publish in 60 seconds","GitHub Pages native (zero config)","Disqus comments built in","Google Analytics support","Social icons for Twitter, GitHub, LinkedIn and more","Simple single-column blog layout","SVG social icons","RSS feed included","Beginner-friendly YAML configuration"],"slug":"jekyll-now","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/jekyll-text-theme","collection":"themes","next":{"path":"_themes/just-the-docs.md","relative_path":"_themes/just-the-docs.md","id":"/themes/just-the-docs","collection":"themes","url":"/themes/just-the-docs/","draft":false,"categories":["Documentation"],"layout":"theme","price_type":"free","featured":true,"dark_mode":true,"responsive":true,"title":"Just the Docs Jekyll Theme","description":"The most popular Jekyll documentation theme. Clean sidebar navigation, full-text search, and excellent code block support.","key_features":["Dark Mode","Full-Text Search","Sidebar Nav","GitHub Pages"],"card_description":"Most popular Jekyll docs theme with sidebar navigation and search.","category":"Documentation","card_image":"/assets/images/themes/just-the-docs-card.webp","theme_screenshots":["/assets/images/themes/just-the-docs-screenshot.webp","/assets/images/themes/just-the-docs-screenshot-2.webp","/assets/images/themes/just-the-docs-screenshot-3.webp"],"demo_url":"https://just-the-docs.com/","github_url":"https://github.com/just-the-docs/just-the-docs","author":"GitHub Community","github_author_name":"Just the Docs","github_author_url":"https://github.com/just-the-docs","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.8","plugins":["jekyll-feed","jekyll-seo-tag","jekyll-sitemap"],"updated_at":"2024-05-01","added_at":"2026-01-08","popular":true,"trending":true,"bestseller":false,"version":"0.10.0","license":"MIT","stars":7800,"forks":3100,"features":["Full-text search (client-side)","Multi-level sidebar navigation","Light and dark colour schemes","Code syntax highlighting","Table of contents per page","Configurable navigation order","Customisable colour variables"],"slug":"just-the-docs","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"TeXt is one of the most feature-complete free Jekyll themes available. Its iOS 11-inspired design is clean and modern, and the depth of built-in functionality is remarkable for a free theme — you get multiple colour skins, dark mode, reading progress, multiple comment systems, maths rendering, diagram support, and full internationalisation all out of the box.\n\nThe theme works equally well for personal blogs, team sites, and documentation. Its YAML-driven configuration keeps customisation accessible without requiring deep Jekyll knowledge.\n\n**Who is it for?** Bloggers, developers, and teams who want a polished, professional site with broad feature coverage and don't want to piece together plugins manually.\n","url":"/themes/jekyll-text-theme/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":true,"dark_mode":true,"responsive":true,"title":"TeXt Jekyll Theme","description":"A highly customisable Jekyll theme inspired by iOS 11 style. Features multiple skins, rich built-in components, full internationalisation, and support for blogs, documentation, and team sites.","key_features":["Multiple Skins","Dark Mode","Internationalisation","GitHub Pages"],"card_description":"iOS-inspired theme with multiple skins and rich built-in components.","category":"Blog","card_image":"/assets/images/themes/jekyll-text-theme-card.webp","theme_screenshots":["/assets/images/themes/jekyll-text-theme-screenshot.webp","/assets/images/themes/jekyll-text-theme-screenshot-2.webp","/assets/images/themes/jekyll-text-theme-screenshot-3.webp"],"demo_url":"https://kitian616.github.io/jekyll-TeXt-theme/","github_url":"https://github.com/kitian616/jekyll-TeXt-theme","author":"GitHub Community","github_author_name":"kitian616","github_author_url":"https://github.com/kitian616","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.8","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2024-01-01","added_at":"2026-06-07","popular":true,"trending":false,"bestseller":false,"version":"2.2.6","license":"MIT","stars":3300,"forks":700,"features":["6 built-in colour skins","Dark mode support","Full internationalisation (i18n) with 10+ languages","Article reading progress bar","Disqus, Gitalk, and Valine comment systems","MathJax and Mermaid diagram support","Full-text search via Algolia or Simple Jekyll Search","Table of contents sidebar","Responsive image galleries","GitHub Pages compatible"],"slug":"jekyll-text-theme","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Jekyll Now is the most-forked Jekyll theme on GitHub and the go-to starting point for anyone who wants a blog without touching the command line. The setup is genuinely three steps: fork the repository, rename it to `username.github.io`, and your blog is live.\n\nBarry Clark built Jekyll Now to lower the barrier to entry as far as it could go. The theme is intentionally minimal — clean typography, a responsive single-column layout, and just enough configuration to feel personal without overwhelming a new user.\n\n**Who is it for?** Beginners, writers, and developers who want a quick personal blog on GitHub Pages with no local setup required.\n","url":"/themes/jekyll-now/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Jekyll Now","description":"The quickest way to start a Jekyll blog. Fork on GitHub, enable Pages, and you have a live blog in under a minute — zero command line required.","key_features":["Zero Setup","GitHub Pages","Fork to Deploy","Beginner Friendly"],"card_description":"Quickest way to start a Jekyll blog — fork, enable Pages, done.","category":"Blog","card_image":"/assets/images/themes/jekyll-now-card.webp","theme_screenshots":["/assets/images/themes/jekyll-now-screenshot.webp","/assets/images/themes/jekyll-now-screenshot-2.webp","/assets/images/themes/jekyll-now-screenshot-3.webp"],"demo_url":"https://barryclark.github.io/jekyll-now/","github_url":"https://github.com/barryclark/jekyll-now","author":"GitHub Community","github_author_name":"Barry Clark","github_author_url":"https://github.com/barryclark","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2023-06-01","added_at":"2026-06-07","popular":true,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":8400,"forks":3500,"features":["No command line required — fork and publish in 60 seconds","GitHub Pages native (zero config)","Disqus comments built in","Google Analytics support","Social icons for Twitter, GitHub, LinkedIn and more","Simple single-column blog layout","SVG social icons","RSS feed included","Beginner-friendly YAML configuration"],"slug":"jekyll-now","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/jekyll-text-theme.md","relative_path":"_themes/jekyll-text-theme.md","excerpt":"<p>TeXt is one of the most feature-complete free Jekyll themes available. Its iOS 11-inspired design is clean and modern, and the depth of built-in functionality is remarkable for a free theme — you get multiple colour skins, dark mode, reading progress, multiple comment systems, maths rendering, diagram support, and full internationalisation all out of the box.</p>\n\n","previous":{"path":"_themes/jekyll-now.md","relative_path":"_themes/jekyll-now.md","excerpt":"<p>Jekyll Now is the most-forked Jekyll theme on GitHub and the go-to starting point for anyone who wants a blog without touching the command line. The setup is genuinely three steps: fork the repository, rename it to <code class=\"language-plaintext highlighter-rouge\">username.github.io</code>, and your blog is live.</p>\n\n","previous":{"path":"_themes/jasper.md","relative_path":"_themes/jasper.md","id":"/themes/jasper","collection":"themes","url":"/themes/jasper/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Jasper Jekyll Theme","description":"A Jekyll port of Ghost's default Casper theme. Brings the polished, editorial feel of Ghost blogging to static Jekyll sites.","key_features":["Ghost-Inspired","GitHub Pages","Editorial Design","Featured Images"],"card_description":"Jekyll port of Ghost's Casper — polished, editorial feel.","category":"Blog","card_image":"/assets/images/themes/jasper-card.webp","theme_screenshots":["/assets/images/themes/jasper-screenshot.webp","/assets/images/themes/jasper-screenshot-2.webp","/assets/images/themes/jasper-screenshot-3.webp"],"demo_url":"https://jekyllt.github.io/jasper/","github_url":"https://github.com/biomadeira/jasper","author":"GitHub Community","github_author_name":"biomadeira","github_author_url":"https://github.com/biomadeira","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate"],"updated_at":"2023-05-05","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":587,"forks":290,"features":["Ghost Casper port","Cover image header","Tag-based navigation","Author profiles","Post cover images","Disqus comments","Google Analytics","RSS feed","GitHub Pages compatible","Responsive design"],"slug":"jasper","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/jekyll-now","collection":"themes","next":{"path":"_themes/jekyll-text-theme.md","relative_path":"_themes/jekyll-text-theme.md","id":"/themes/jekyll-text-theme","collection":"themes","url":"/themes/jekyll-text-theme/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":true,"dark_mode":true,"responsive":true,"title":"TeXt Jekyll Theme","description":"A highly customisable Jekyll theme inspired by iOS 11 style. Features multiple skins, rich built-in components, full internationalisation, and support for blogs, documentation, and team sites.","key_features":["Multiple Skins","Dark Mode","Internationalisation","GitHub Pages"],"card_description":"iOS-inspired theme with multiple skins and rich built-in components.","category":"Blog","card_image":"/assets/images/themes/jekyll-text-theme-card.webp","theme_screenshots":["/assets/images/themes/jekyll-text-theme-screenshot.webp","/assets/images/themes/jekyll-text-theme-screenshot-2.webp","/assets/images/themes/jekyll-text-theme-screenshot-3.webp"],"demo_url":"https://kitian616.github.io/jekyll-TeXt-theme/","github_url":"https://github.com/kitian616/jekyll-TeXt-theme","author":"GitHub Community","github_author_name":"kitian616","github_author_url":"https://github.com/kitian616","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.8","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2024-01-01","added_at":"2026-06-07","popular":true,"trending":false,"bestseller":false,"version":"2.2.6","license":"MIT","stars":3300,"forks":700,"features":["6 built-in colour skins","Dark mode support","Full internationalisation (i18n) with 10+ languages","Article reading progress bar","Disqus, Gitalk, and Valine comment systems","MathJax and Mermaid diagram support","Full-text search via Algolia or Simple Jekyll Search","Table of contents sidebar","Responsive image galleries","GitHub Pages compatible"],"slug":"jekyll-text-theme","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Jekyll Now is the most-forked Jekyll theme on GitHub and the go-to starting point for anyone who wants a blog without touching the command line. The setup is genuinely three steps: fork the repository, rename it to `username.github.io`, and your blog is live.\n\nBarry Clark built Jekyll Now to lower the barrier to entry as far as it could go. The theme is intentionally minimal — clean typography, a responsive single-column layout, and just enough configuration to feel personal without overwhelming a new user.\n\n**Who is it for?** Beginners, writers, and developers who want a quick personal blog on GitHub Pages with no local setup required.\n","url":"/themes/jekyll-now/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Jekyll Now","description":"The quickest way to start a Jekyll blog. Fork on GitHub, enable Pages, and you have a live blog in under a minute — zero command line required.","key_features":["Zero Setup","GitHub Pages","Fork to Deploy","Beginner Friendly"],"card_description":"Quickest way to start a Jekyll blog — fork, enable Pages, done.","category":"Blog","card_image":"/assets/images/themes/jekyll-now-card.webp","theme_screenshots":["/assets/images/themes/jekyll-now-screenshot.webp","/assets/images/themes/jekyll-now-screenshot-2.webp","/assets/images/themes/jekyll-now-screenshot-3.webp"],"demo_url":"https://barryclark.github.io/jekyll-now/","github_url":"https://github.com/barryclark/jekyll-now","author":"GitHub Community","github_author_name":"Barry Clark","github_author_url":"https://github.com/barryclark","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2023-06-01","added_at":"2026-06-07","popular":true,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":8400,"forks":3500,"features":["No command line required — fork and publish in 60 seconds","GitHub Pages native (zero config)","Disqus comments built in","Google Analytics support","Social icons for Twitter, GitHub, LinkedIn and more","Simple single-column blog layout","SVG social icons","RSS feed included","Beginner-friendly YAML configuration"],"slug":"jekyll-now","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/jekyll-text-theme","collection":"themes","next":{"path":"_themes/just-the-docs.md","relative_path":"_themes/just-the-docs.md","excerpt":"<p>Just the Docs is the undisputed standard for Jekyll documentation sites. Thousands of open source projects use it to ship clean, searchable documentation — from small libraries to major frameworks.</p>\n\n","previous":{"path":"_themes/jekyll-text-theme.md","relative_path":"_themes/jekyll-text-theme.md","id":"/themes/jekyll-text-theme","collection":"themes","url":"/themes/jekyll-text-theme/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":true,"dark_mode":true,"responsive":true,"title":"TeXt Jekyll Theme","description":"A highly customisable Jekyll theme inspired by iOS 11 style. Features multiple skins, rich built-in components, full internationalisation, and support for blogs, documentation, and team sites.","key_features":["Multiple Skins","Dark Mode","Internationalisation","GitHub Pages"],"card_description":"iOS-inspired theme with multiple skins and rich built-in components.","category":"Blog","card_image":"/assets/images/themes/jekyll-text-theme-card.webp","theme_screenshots":["/assets/images/themes/jekyll-text-theme-screenshot.webp","/assets/images/themes/jekyll-text-theme-screenshot-2.webp","/assets/images/themes/jekyll-text-theme-screenshot-3.webp"],"demo_url":"https://kitian616.github.io/jekyll-TeXt-theme/","github_url":"https://github.com/kitian616/jekyll-TeXt-theme","author":"GitHub Community","github_author_name":"kitian616","github_author_url":"https://github.com/kitian616","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.8","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2024-01-01","added_at":"2026-06-07","popular":true,"trending":false,"bestseller":false,"version":"2.2.6","license":"MIT","stars":3300,"forks":700,"features":["6 built-in colour skins","Dark mode support","Full internationalisation (i18n) with 10+ languages","Article reading progress bar","Disqus, Gitalk, and Valine comment systems","MathJax and Mermaid diagram support","Full-text search via Algolia or Simple Jekyll Search","Table of contents sidebar","Responsive image galleries","GitHub Pages compatible"],"slug":"jekyll-text-theme","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/just-the-docs","collection":"themes","next":{"path":"_themes/klise.md","relative_path":"_themes/klise.md","id":"/themes/klise","collection":"themes","url":"/themes/klise/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Klisé Jekyll Theme","description":"A minimalist Jekyll theme with seamless light and dark mode. Clean typography, fast performance, and a modern aesthetic — designed for personal sites and blogs that value simplicity.","key_features":["Dark Mode","Seamless Toggle","Minimal Design","Fast Performance"],"card_description":"Minimalist theme with seamless dark mode and clean typography.","category":"Blog","card_image":"/assets/images/themes/klise-card.webp","theme_screenshots":["/assets/images/themes/klise-screenshot.webp","/assets/images/themes/klise-screenshot-2.webp","/assets/images/themes/klise-screenshot-3.webp"],"demo_url":"https://klise.vercel.app/","github_url":"https://github.com/piharpi/jekyll-klise","author":"GitHub Community","github_author_name":"piharpi","github_author_url":"https://github.com/piharpi","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"4.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2023-06-01","added_at":"2026-06-07","popular":false,"trending":true,"bestseller":false,"version":"0.4.1","license":"MIT","stars":300,"forks":200,"features":["Seamless light and dark mode toggle","Clean, modern minimal design","Fast performance (minimal CSS/JS)","Post categories and tags","Syntax highlighting","Responsive images","Reading time estimates","SEO optimised","GitHub Pages compatible","Vercel deploy ready"],"slug":"klise","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Just the Docs is the undisputed standard for Jekyll documentation sites. Thousands of open source projects use it to ship clean, searchable documentation — from small libraries to major frameworks.\n\nIts sidebar navigation supports multiple levels of nesting, its search is fast and client-side, and the whole thing is deeply customisable through SCSS variables.\n\n**Who is it for?** Open source projects, developer tools, APIs, and anyone building a documentation site that needs to look professional and be easy to navigate.\n","url":"/themes/just-the-docs/","draft":false,"categories":["Documentation"],"layout":"theme","price_type":"free","featured":true,"dark_mode":true,"responsive":true,"title":"Just the Docs Jekyll Theme","description":"The most popular Jekyll documentation theme. Clean sidebar navigation, full-text search, and excellent code block support.","key_features":["Dark Mode","Full-Text Search","Sidebar Nav","GitHub Pages"],"card_description":"Most popular Jekyll docs theme with sidebar navigation and search.","category":"Documentation","card_image":"/assets/images/themes/just-the-docs-card.webp","theme_screenshots":["/assets/images/themes/just-the-docs-screenshot.webp","/assets/images/themes/just-the-docs-screenshot-2.webp","/assets/images/themes/just-the-docs-screenshot-3.webp"],"demo_url":"https://just-the-docs.com/","github_url":"https://github.com/just-the-docs/just-the-docs","author":"GitHub Community","github_author_name":"Just the Docs","github_author_url":"https://github.com/just-the-docs","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.8","plugins":["jekyll-feed","jekyll-seo-tag","jekyll-sitemap"],"updated_at":"2024-05-01","added_at":"2026-01-08","popular":true,"trending":true,"bestseller":false,"version":"0.10.0","license":"MIT","stars":7800,"forks":3100,"features":["Full-text search (client-side)","Multi-level sidebar navigation","Light and dark colour schemes","Code syntax highlighting","Table of contents per page","Configurable navigation order","Customisable colour variables"],"slug":"just-the-docs","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"TeXt is one of the most feature-complete free Jekyll themes available. Its iOS 11-inspired design is clean and modern, and the depth of built-in functionality is remarkable for a free theme — you get multiple colour skins, dark mode, reading progress, multiple comment systems, maths rendering, diagram support, and full internationalisation all out of the box.\n\nThe theme works equally well for personal blogs, team sites, and documentation. Its YAML-driven configuration keeps customisation accessible without requiring deep Jekyll knowledge.\n\n**Who is it for?** Bloggers, developers, and teams who want a polished, professional site with broad feature coverage and don't want to piece together plugins manually.\n","url":"/themes/jekyll-text-theme/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":true,"dark_mode":true,"responsive":true,"title":"TeXt Jekyll Theme","description":"A highly customisable Jekyll theme inspired by iOS 11 style. Features multiple skins, rich built-in components, full internationalisation, and support for blogs, documentation, and team sites.","key_features":["Multiple Skins","Dark Mode","Internationalisation","GitHub Pages"],"card_description":"iOS-inspired theme with multiple skins and rich built-in components.","category":"Blog","card_image":"/assets/images/themes/jekyll-text-theme-card.webp","theme_screenshots":["/assets/images/themes/jekyll-text-theme-screenshot.webp","/assets/images/themes/jekyll-text-theme-screenshot-2.webp","/assets/images/themes/jekyll-text-theme-screenshot-3.webp"],"demo_url":"https://kitian616.github.io/jekyll-TeXt-theme/","github_url":"https://github.com/kitian616/jekyll-TeXt-theme","author":"GitHub Community","github_author_name":"kitian616","github_author_url":"https://github.com/kitian616","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.8","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2024-01-01","added_at":"2026-06-07","popular":true,"trending":false,"bestseller":false,"version":"2.2.6","license":"MIT","stars":3300,"forks":700,"features":["6 built-in colour skins","Dark mode support","Full internationalisation (i18n) with 10+ languages","Article reading progress bar","Disqus, Gitalk, and Valine comment systems","MathJax and Mermaid diagram support","Full-text search via Algolia or Simple Jekyll Search","Table of contents sidebar","Responsive image galleries","GitHub Pages compatible"],"slug":"jekyll-text-theme","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/just-the-docs.md","relative_path":"_themes/just-the-docs.md","excerpt":"<p>Just the Docs is the undisputed standard for Jekyll documentation sites. Thousands of open source projects use it to ship clean, searchable documentation — from small libraries to major frameworks.</p>\n\n","previous":{"path":"_themes/jekyll-text-theme.md","relative_path":"_themes/jekyll-text-theme.md","excerpt":"<p>TeXt is one of the most feature-complete free Jekyll themes available. Its iOS 11-inspired design is clean and modern, and the depth of built-in functionality is remarkable for a free theme — you get multiple colour skins, dark mode, reading progress, multiple comment systems, maths rendering, diagram support, and full internationalisation all out of the box.</p>\n\n","previous":{"path":"_themes/jekyll-now.md","relative_path":"_themes/jekyll-now.md","id":"/themes/jekyll-now","collection":"themes","url":"/themes/jekyll-now/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Jekyll Now","description":"The quickest way to start a Jekyll blog. Fork on GitHub, enable Pages, and you have a live blog in under a minute — zero command line required.","key_features":["Zero Setup","GitHub Pages","Fork to Deploy","Beginner Friendly"],"card_description":"Quickest way to start a Jekyll blog — fork, enable Pages, done.","category":"Blog","card_image":"/assets/images/themes/jekyll-now-card.webp","theme_screenshots":["/assets/images/themes/jekyll-now-screenshot.webp","/assets/images/themes/jekyll-now-screenshot-2.webp","/assets/images/themes/jekyll-now-screenshot-3.webp"],"demo_url":"https://barryclark.github.io/jekyll-now/","github_url":"https://github.com/barryclark/jekyll-now","author":"GitHub Community","github_author_name":"Barry Clark","github_author_url":"https://github.com/barryclark","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2023-06-01","added_at":"2026-06-07","popular":true,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":8400,"forks":3500,"features":["No command line required — fork and publish in 60 seconds","GitHub Pages native (zero config)","Disqus comments built in","Google Analytics support","Social icons for Twitter, GitHub, LinkedIn and more","Simple single-column blog layout","SVG social icons","RSS feed included","Beginner-friendly YAML configuration"],"slug":"jekyll-now","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/jekyll-text-theme","collection":"themes","next":{"path":"_themes/just-the-docs.md","relative_path":"_themes/just-the-docs.md","id":"/themes/just-the-docs","collection":"themes","url":"/themes/just-the-docs/","draft":false,"categories":["Documentation"],"layout":"theme","price_type":"free","featured":true,"dark_mode":true,"responsive":true,"title":"Just the Docs Jekyll Theme","description":"The most popular Jekyll documentation theme. Clean sidebar navigation, full-text search, and excellent code block support.","key_features":["Dark Mode","Full-Text Search","Sidebar Nav","GitHub Pages"],"card_description":"Most popular Jekyll docs theme with sidebar navigation and search.","category":"Documentation","card_image":"/assets/images/themes/just-the-docs-card.webp","theme_screenshots":["/assets/images/themes/just-the-docs-screenshot.webp","/assets/images/themes/just-the-docs-screenshot-2.webp","/assets/images/themes/just-the-docs-screenshot-3.webp"],"demo_url":"https://just-the-docs.com/","github_url":"https://github.com/just-the-docs/just-the-docs","author":"GitHub Community","github_author_name":"Just the Docs","github_author_url":"https://github.com/just-the-docs","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.8","plugins":["jekyll-feed","jekyll-seo-tag","jekyll-sitemap"],"updated_at":"2024-05-01","added_at":"2026-01-08","popular":true,"trending":true,"bestseller":false,"version":"0.10.0","license":"MIT","stars":7800,"forks":3100,"features":["Full-text search (client-side)","Multi-level sidebar navigation","Light and dark colour schemes","Code syntax highlighting","Table of contents per page","Configurable navigation order","Customisable colour variables"],"slug":"just-the-docs","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"TeXt is one of the most feature-complete free Jekyll themes available. Its iOS 11-inspired design is clean and modern, and the depth of built-in functionality is remarkable for a free theme — you get multiple colour skins, dark mode, reading progress, multiple comment systems, maths rendering, diagram support, and full internationalisation all out of the box.\n\nThe theme works equally well for personal blogs, team sites, and documentation. Its YAML-driven configuration keeps customisation accessible without requiring deep Jekyll knowledge.\n\n**Who is it for?** Bloggers, developers, and teams who want a polished, professional site with broad feature coverage and don't want to piece together plugins manually.\n","url":"/themes/jekyll-text-theme/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":true,"dark_mode":true,"responsive":true,"title":"TeXt Jekyll Theme","description":"A highly customisable Jekyll theme inspired by iOS 11 style. Features multiple skins, rich built-in components, full internationalisation, and support for blogs, documentation, and team sites.","key_features":["Multiple Skins","Dark Mode","Internationalisation","GitHub Pages"],"card_description":"iOS-inspired theme with multiple skins and rich built-in components.","category":"Blog","card_image":"/assets/images/themes/jekyll-text-theme-card.webp","theme_screenshots":["/assets/images/themes/jekyll-text-theme-screenshot.webp","/assets/images/themes/jekyll-text-theme-screenshot-2.webp","/assets/images/themes/jekyll-text-theme-screenshot-3.webp"],"demo_url":"https://kitian616.github.io/jekyll-TeXt-theme/","github_url":"https://github.com/kitian616/jekyll-TeXt-theme","author":"GitHub Community","github_author_name":"kitian616","github_author_url":"https://github.com/kitian616","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.8","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2024-01-01","added_at":"2026-06-07","popular":true,"trending":false,"bestseller":false,"version":"2.2.6","license":"MIT","stars":3300,"forks":700,"features":["6 built-in colour skins","Dark mode support","Full internationalisation (i18n) with 10+ languages","Article reading progress bar","Disqus, Gitalk, and Valine comment systems","MathJax and Mermaid diagram support","Full-text search via Algolia or Simple Jekyll Search","Table of contents sidebar","Responsive image galleries","GitHub Pages compatible"],"slug":"jekyll-text-theme","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/just-the-docs","collection":"themes","next":{"path":"_themes/klise.md","relative_path":"_themes/klise.md","excerpt":"<p>Klisé (pronounced “cliché”) is the modern minimalist’s Jekyll theme. Its defining feature is a light/dark mode toggle that’s smooth, instant, and remembers your preference — implemented with care rather than as an afterthought.</p>\n\n","previous":{"path":"_themes/just-the-docs.md","relative_path":"_themes/just-the-docs.md","id":"/themes/just-the-docs","collection":"themes","url":"/themes/just-the-docs/","draft":false,"categories":["Documentation"],"layout":"theme","price_type":"free","featured":true,"dark_mode":true,"responsive":true,"title":"Just the Docs Jekyll Theme","description":"The most popular Jekyll documentation theme. Clean sidebar navigation, full-text search, and excellent code block support.","key_features":["Dark Mode","Full-Text Search","Sidebar Nav","GitHub Pages"],"card_description":"Most popular Jekyll docs theme with sidebar navigation and search.","category":"Documentation","card_image":"/assets/images/themes/just-the-docs-card.webp","theme_screenshots":["/assets/images/themes/just-the-docs-screenshot.webp","/assets/images/themes/just-the-docs-screenshot-2.webp","/assets/images/themes/just-the-docs-screenshot-3.webp"],"demo_url":"https://just-the-docs.com/","github_url":"https://github.com/just-the-docs/just-the-docs","author":"GitHub Community","github_author_name":"Just the Docs","github_author_url":"https://github.com/just-the-docs","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.8","plugins":["jekyll-feed","jekyll-seo-tag","jekyll-sitemap"],"updated_at":"2024-05-01","added_at":"2026-01-08","popular":true,"trending":true,"bestseller":false,"version":"0.10.0","license":"MIT","stars":7800,"forks":3100,"features":["Full-text search (client-side)","Multi-level sidebar navigation","Light and dark colour schemes","Code syntax highlighting","Table of contents per page","Configurable navigation order","Customisable colour variables"],"slug":"just-the-docs","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/klise","collection":"themes","next":{"path":"_themes/lanyon.md","relative_path":"_themes/lanyon.md","id":"/themes/lanyon","collection":"themes","url":"/themes/lanyon/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Lanyon Jekyll Theme","description":"A Jekyll theme that hides its sidebar until you need it. Clean, spacious reading layout with a smooth slide-out navigation drawer.","key_features":["Slide-Out Sidebar","GitHub Pages","Clean Reading","Hidden Navigation"],"card_description":"Clean blog theme with a smooth slide-out navigation drawer.","category":"Blog","card_image":"/assets/images/themes/lanyon-card.webp","theme_screenshots":["/assets/images/themes/lanyon-screenshot.webp","/assets/images/themes/lanyon-screenshot-2.webp","/assets/images/themes/lanyon-screenshot-3.webp"],"demo_url":"https://lanyon.getpoole.com/","github_url":"https://github.com/poole/lanyon","author":"GitHub Community","github_author_name":"Mark Otto","github_author_url":"https://github.com/mdo","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-gist","jekyll-paginate"],"updated_at":"2023-01-01","added_at":"2026-02-05","popular":true,"trending":false,"bestseller":false,"version":"1.1.0","license":"MIT","stars":5700,"forks":2600,"features":["Hidden slide-out sidebar","Toggle button for navigation","Full-width reading area","Eight colour themes","Clean Poole base"],"slug":"lanyon","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Klisé (pronounced \"cliché\") is the modern minimalist's Jekyll theme. Its defining feature is a light/dark mode toggle that's smooth, instant, and remembers your preference — implemented with care rather than as an afterthought.\n\nThe overall design is clean and contemporary: generous whitespace, careful typographic choices, and a colour palette that works equally well in both modes. It's the theme you'd reach for if you want something that looks like it was built this year, not five years ago.\n\n**Who is it for?** Developers and writers who want a modern minimal blog with a polished dark mode implementation and a design that feels current.\n","url":"/themes/klise/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Klisé Jekyll Theme","description":"A minimalist Jekyll theme with seamless light and dark mode. Clean typography, fast performance, and a modern aesthetic — designed for personal sites and blogs that value simplicity.","key_features":["Dark Mode","Seamless Toggle","Minimal Design","Fast Performance"],"card_description":"Minimalist theme with seamless dark mode and clean typography.","category":"Blog","card_image":"/assets/images/themes/klise-card.webp","theme_screenshots":["/assets/images/themes/klise-screenshot.webp","/assets/images/themes/klise-screenshot-2.webp","/assets/images/themes/klise-screenshot-3.webp"],"demo_url":"https://klise.vercel.app/","github_url":"https://github.com/piharpi/jekyll-klise","author":"GitHub Community","github_author_name":"piharpi","github_author_url":"https://github.com/piharpi","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"4.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2023-06-01","added_at":"2026-06-07","popular":false,"trending":true,"bestseller":false,"version":"0.4.1","license":"MIT","stars":300,"forks":200,"features":["Seamless light and dark mode toggle","Clean, modern minimal design","Fast performance (minimal CSS/JS)","Post categories and tags","Syntax highlighting","Responsive images","Reading time estimates","SEO optimised","GitHub Pages compatible","Vercel deploy ready"],"slug":"klise","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Just the Docs is the undisputed standard for Jekyll documentation sites. Thousands of open source projects use it to ship clean, searchable documentation — from small libraries to major frameworks.\n\nIts sidebar navigation supports multiple levels of nesting, its search is fast and client-side, and the whole thing is deeply customisable through SCSS variables.\n\n**Who is it for?** Open source projects, developer tools, APIs, and anyone building a documentation site that needs to look professional and be easy to navigate.\n","url":"/themes/just-the-docs/","draft":false,"categories":["Documentation"],"layout":"theme","price_type":"free","featured":true,"dark_mode":true,"responsive":true,"title":"Just the Docs Jekyll Theme","description":"The most popular Jekyll documentation theme. Clean sidebar navigation, full-text search, and excellent code block support.","key_features":["Dark Mode","Full-Text Search","Sidebar Nav","GitHub Pages"],"card_description":"Most popular Jekyll docs theme with sidebar navigation and search.","category":"Documentation","card_image":"/assets/images/themes/just-the-docs-card.webp","theme_screenshots":["/assets/images/themes/just-the-docs-screenshot.webp","/assets/images/themes/just-the-docs-screenshot-2.webp","/assets/images/themes/just-the-docs-screenshot-3.webp"],"demo_url":"https://just-the-docs.com/","github_url":"https://github.com/just-the-docs/just-the-docs","author":"GitHub Community","github_author_name":"Just the Docs","github_author_url":"https://github.com/just-the-docs","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.8","plugins":["jekyll-feed","jekyll-seo-tag","jekyll-sitemap"],"updated_at":"2024-05-01","added_at":"2026-01-08","popular":true,"trending":true,"bestseller":false,"version":"0.10.0","license":"MIT","stars":7800,"forks":3100,"features":["Full-text search (client-side)","Multi-level sidebar navigation","Light and dark colour schemes","Code syntax highlighting","Table of contents per page","Configurable navigation order","Customisable colour variables"],"slug":"just-the-docs","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/klise.md","relative_path":"_themes/klise.md","excerpt":"<p>Klisé (pronounced “cliché”) is the modern minimalist’s Jekyll theme. Its defining feature is a light/dark mode toggle that’s smooth, instant, and remembers your preference — implemented with care rather than as an afterthought.</p>\n\n","previous":{"path":"_themes/just-the-docs.md","relative_path":"_themes/just-the-docs.md","excerpt":"<p>Just the Docs is the undisputed standard for Jekyll documentation sites. Thousands of open source projects use it to ship clean, searchable documentation — from small libraries to major frameworks.</p>\n\n","previous":{"path":"_themes/jekyll-text-theme.md","relative_path":"_themes/jekyll-text-theme.md","id":"/themes/jekyll-text-theme","collection":"themes","url":"/themes/jekyll-text-theme/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":true,"dark_mode":true,"responsive":true,"title":"TeXt Jekyll Theme","description":"A highly customisable Jekyll theme inspired by iOS 11 style. Features multiple skins, rich built-in components, full internationalisation, and support for blogs, documentation, and team sites.","key_features":["Multiple Skins","Dark Mode","Internationalisation","GitHub Pages"],"card_description":"iOS-inspired theme with multiple skins and rich built-in components.","category":"Blog","card_image":"/assets/images/themes/jekyll-text-theme-card.webp","theme_screenshots":["/assets/images/themes/jekyll-text-theme-screenshot.webp","/assets/images/themes/jekyll-text-theme-screenshot-2.webp","/assets/images/themes/jekyll-text-theme-screenshot-3.webp"],"demo_url":"https://kitian616.github.io/jekyll-TeXt-theme/","github_url":"https://github.com/kitian616/jekyll-TeXt-theme","author":"GitHub Community","github_author_name":"kitian616","github_author_url":"https://github.com/kitian616","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.8","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2024-01-01","added_at":"2026-06-07","popular":true,"trending":false,"bestseller":false,"version":"2.2.6","license":"MIT","stars":3300,"forks":700,"features":["6 built-in colour skins","Dark mode support","Full internationalisation (i18n) with 10+ languages","Article reading progress bar","Disqus, Gitalk, and Valine comment systems","MathJax and Mermaid diagram support","Full-text search via Algolia or Simple Jekyll Search","Table of contents sidebar","Responsive image galleries","GitHub Pages compatible"],"slug":"jekyll-text-theme","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/just-the-docs","collection":"themes","next":{"path":"_themes/klise.md","relative_path":"_themes/klise.md","id":"/themes/klise","collection":"themes","url":"/themes/klise/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Klisé Jekyll Theme","description":"A minimalist Jekyll theme with seamless light and dark mode. Clean typography, fast performance, and a modern aesthetic — designed for personal sites and blogs that value simplicity.","key_features":["Dark Mode","Seamless Toggle","Minimal Design","Fast Performance"],"card_description":"Minimalist theme with seamless dark mode and clean typography.","category":"Blog","card_image":"/assets/images/themes/klise-card.webp","theme_screenshots":["/assets/images/themes/klise-screenshot.webp","/assets/images/themes/klise-screenshot-2.webp","/assets/images/themes/klise-screenshot-3.webp"],"demo_url":"https://klise.vercel.app/","github_url":"https://github.com/piharpi/jekyll-klise","author":"GitHub Community","github_author_name":"piharpi","github_author_url":"https://github.com/piharpi","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"4.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2023-06-01","added_at":"2026-06-07","popular":false,"trending":true,"bestseller":false,"version":"0.4.1","license":"MIT","stars":300,"forks":200,"features":["Seamless light and dark mode toggle","Clean, modern minimal design","Fast performance (minimal CSS/JS)","Post categories and tags","Syntax highlighting","Responsive images","Reading time estimates","SEO optimised","GitHub Pages compatible","Vercel deploy ready"],"slug":"klise","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Just the Docs is the undisputed standard for Jekyll documentation sites. Thousands of open source projects use it to ship clean, searchable documentation — from small libraries to major frameworks.\n\nIts sidebar navigation supports multiple levels of nesting, its search is fast and client-side, and the whole thing is deeply customisable through SCSS variables.\n\n**Who is it for?** Open source projects, developer tools, APIs, and anyone building a documentation site that needs to look professional and be easy to navigate.\n","url":"/themes/just-the-docs/","draft":false,"categories":["Documentation"],"layout":"theme","price_type":"free","featured":true,"dark_mode":true,"responsive":true,"title":"Just the Docs Jekyll Theme","description":"The most popular Jekyll documentation theme. Clean sidebar navigation, full-text search, and excellent code block support.","key_features":["Dark Mode","Full-Text Search","Sidebar Nav","GitHub Pages"],"card_description":"Most popular Jekyll docs theme with sidebar navigation and search.","category":"Documentation","card_image":"/assets/images/themes/just-the-docs-card.webp","theme_screenshots":["/assets/images/themes/just-the-docs-screenshot.webp","/assets/images/themes/just-the-docs-screenshot-2.webp","/assets/images/themes/just-the-docs-screenshot-3.webp"],"demo_url":"https://just-the-docs.com/","github_url":"https://github.com/just-the-docs/just-the-docs","author":"GitHub Community","github_author_name":"Just the Docs","github_author_url":"https://github.com/just-the-docs","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.8","plugins":["jekyll-feed","jekyll-seo-tag","jekyll-sitemap"],"updated_at":"2024-05-01","added_at":"2026-01-08","popular":true,"trending":true,"bestseller":false,"version":"0.10.0","license":"MIT","stars":7800,"forks":3100,"features":["Full-text search (client-side)","Multi-level sidebar navigation","Light and dark colour schemes","Code syntax highlighting","Table of contents per page","Configurable navigation order","Customisable colour variables"],"slug":"just-the-docs","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/klise","collection":"themes","next":{"path":"_themes/lanyon.md","relative_path":"_themes/lanyon.md","excerpt":"<p>Lanyon is Hyde’s sibling from the Poole family — sharing the same clean foundation but hiding its sidebar until the reader needs it. A small toggle button reveals a smooth slide-out navigation drawer, keeping the reading area completely clean by default.</p>\n\n","previous":{"path":"_themes/klise.md","relative_path":"_themes/klise.md","id":"/themes/klise","collection":"themes","url":"/themes/klise/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Klisé Jekyll Theme","description":"A minimalist Jekyll theme with seamless light and dark mode. Clean typography, fast performance, and a modern aesthetic — designed for personal sites and blogs that value simplicity.","key_features":["Dark Mode","Seamless Toggle","Minimal Design","Fast Performance"],"card_description":"Minimalist theme with seamless dark mode and clean typography.","category":"Blog","card_image":"/assets/images/themes/klise-card.webp","theme_screenshots":["/assets/images/themes/klise-screenshot.webp","/assets/images/themes/klise-screenshot-2.webp","/assets/images/themes/klise-screenshot-3.webp"],"demo_url":"https://klise.vercel.app/","github_url":"https://github.com/piharpi/jekyll-klise","author":"GitHub Community","github_author_name":"piharpi","github_author_url":"https://github.com/piharpi","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"4.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2023-06-01","added_at":"2026-06-07","popular":false,"trending":true,"bestseller":false,"version":"0.4.1","license":"MIT","stars":300,"forks":200,"features":["Seamless light and dark mode toggle","Clean, modern minimal design","Fast performance (minimal CSS/JS)","Post categories and tags","Syntax highlighting","Responsive images","Reading time estimates","SEO optimised","GitHub Pages compatible","Vercel deploy ready"],"slug":"klise","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/lanyon","collection":"themes","next":{"path":"_themes/leonids.md","relative_path":"_themes/leonids.md","id":"/themes/leonids","collection":"themes","url":"/themes/leonids/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Leonids Jekyll Theme","description":"A simple and clean two-column Jekyll blog theme. Fixed sidebar with author bio and social links, clean post listing, and a timeless layout that puts content front and centre.","key_features":["Fixed Sidebar","Author Bio","Social Links","GitHub Pages"],"card_description":"Two-column blog with fixed sidebar and timeless content-first layout.","category":"Blog","card_image":"/assets/images/themes/leonids-card.webp","theme_screenshots":["/assets/images/themes/leonids-screenshot.webp","/assets/images/themes/leonids-screenshot-2.webp","/assets/images/themes/leonids-screenshot-3.webp"],"demo_url":"https://renyuanz.github.io/leonids/","github_url":"https://github.com/renyuanz/leonids","author":"GitHub Community","github_author_name":"renyuanz","github_author_url":"https://github.com/renyuanz","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate","jekyll-sitemap"],"updated_at":"2022-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"2.0.0","license":"MIT","stars":1400,"forks":500,"features":["Fixed two-column layout with sidebar","Author bio and avatar in sidebar","Social media links","Category and tag support","Paginated post listing","Syntax highlighting","Disqus comments","Google Analytics","RSS feed","GitHub Pages compatible"],"slug":"leonids","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Lanyon is Hyde's sibling from the Poole family — sharing the same clean foundation but hiding its sidebar until the reader needs it. A small toggle button reveals a smooth slide-out navigation drawer, keeping the reading area completely clean by default.\n\nThe result is one of the most spacious and focused reading experiences in the Jekyll theme ecosystem.\n\n**Who is it for?** Writers who want maximum reading space and a navigation drawer that stays out of the way.\n","url":"/themes/lanyon/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Lanyon Jekyll Theme","description":"A Jekyll theme that hides its sidebar until you need it. Clean, spacious reading layout with a smooth slide-out navigation drawer.","key_features":["Slide-Out Sidebar","GitHub Pages","Clean Reading","Hidden Navigation"],"card_description":"Clean blog theme with a smooth slide-out navigation drawer.","category":"Blog","card_image":"/assets/images/themes/lanyon-card.webp","theme_screenshots":["/assets/images/themes/lanyon-screenshot.webp","/assets/images/themes/lanyon-screenshot-2.webp","/assets/images/themes/lanyon-screenshot-3.webp"],"demo_url":"https://lanyon.getpoole.com/","github_url":"https://github.com/poole/lanyon","author":"GitHub Community","github_author_name":"Mark Otto","github_author_url":"https://github.com/mdo","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-gist","jekyll-paginate"],"updated_at":"2023-01-01","added_at":"2026-02-05","popular":true,"trending":false,"bestseller":false,"version":"1.1.0","license":"MIT","stars":5700,"forks":2600,"features":["Hidden slide-out sidebar","Toggle button for navigation","Full-width reading area","Eight colour themes","Clean Poole base"],"slug":"lanyon","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Klisé (pronounced \"cliché\") is the modern minimalist's Jekyll theme. Its defining feature is a light/dark mode toggle that's smooth, instant, and remembers your preference — implemented with care rather than as an afterthought.\n\nThe overall design is clean and contemporary: generous whitespace, careful typographic choices, and a colour palette that works equally well in both modes. It's the theme you'd reach for if you want something that looks like it was built this year, not five years ago.\n\n**Who is it for?** Developers and writers who want a modern minimal blog with a polished dark mode implementation and a design that feels current.\n","url":"/themes/klise/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Klisé Jekyll Theme","description":"A minimalist Jekyll theme with seamless light and dark mode. Clean typography, fast performance, and a modern aesthetic — designed for personal sites and blogs that value simplicity.","key_features":["Dark Mode","Seamless Toggle","Minimal Design","Fast Performance"],"card_description":"Minimalist theme with seamless dark mode and clean typography.","category":"Blog","card_image":"/assets/images/themes/klise-card.webp","theme_screenshots":["/assets/images/themes/klise-screenshot.webp","/assets/images/themes/klise-screenshot-2.webp","/assets/images/themes/klise-screenshot-3.webp"],"demo_url":"https://klise.vercel.app/","github_url":"https://github.com/piharpi/jekyll-klise","author":"GitHub Community","github_author_name":"piharpi","github_author_url":"https://github.com/piharpi","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"4.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2023-06-01","added_at":"2026-06-07","popular":false,"trending":true,"bestseller":false,"version":"0.4.1","license":"MIT","stars":300,"forks":200,"features":["Seamless light and dark mode toggle","Clean, modern minimal design","Fast performance (minimal CSS/JS)","Post categories and tags","Syntax highlighting","Responsive images","Reading time estimates","SEO optimised","GitHub Pages compatible","Vercel deploy ready"],"slug":"klise","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/lanyon.md","relative_path":"_themes/lanyon.md","excerpt":"<p>Lanyon is Hyde’s sibling from the Poole family — sharing the same clean foundation but hiding its sidebar until the reader needs it. A small toggle button reveals a smooth slide-out navigation drawer, keeping the reading area completely clean by default.</p>\n\n","previous":{"path":"_themes/klise.md","relative_path":"_themes/klise.md","excerpt":"<p>Klisé (pronounced “cliché”) is the modern minimalist’s Jekyll theme. Its defining feature is a light/dark mode toggle that’s smooth, instant, and remembers your preference — implemented with care rather than as an afterthought.</p>\n\n","previous":{"path":"_themes/just-the-docs.md","relative_path":"_themes/just-the-docs.md","id":"/themes/just-the-docs","collection":"themes","url":"/themes/just-the-docs/","draft":false,"categories":["Documentation"],"layout":"theme","price_type":"free","featured":true,"dark_mode":true,"responsive":true,"title":"Just the Docs Jekyll Theme","description":"The most popular Jekyll documentation theme. Clean sidebar navigation, full-text search, and excellent code block support.","key_features":["Dark Mode","Full-Text Search","Sidebar Nav","GitHub Pages"],"card_description":"Most popular Jekyll docs theme with sidebar navigation and search.","category":"Documentation","card_image":"/assets/images/themes/just-the-docs-card.webp","theme_screenshots":["/assets/images/themes/just-the-docs-screenshot.webp","/assets/images/themes/just-the-docs-screenshot-2.webp","/assets/images/themes/just-the-docs-screenshot-3.webp"],"demo_url":"https://just-the-docs.com/","github_url":"https://github.com/just-the-docs/just-the-docs","author":"GitHub Community","github_author_name":"Just the Docs","github_author_url":"https://github.com/just-the-docs","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.8","plugins":["jekyll-feed","jekyll-seo-tag","jekyll-sitemap"],"updated_at":"2024-05-01","added_at":"2026-01-08","popular":true,"trending":true,"bestseller":false,"version":"0.10.0","license":"MIT","stars":7800,"forks":3100,"features":["Full-text search (client-side)","Multi-level sidebar navigation","Light and dark colour schemes","Code syntax highlighting","Table of contents per page","Configurable navigation order","Customisable colour variables"],"slug":"just-the-docs","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/klise","collection":"themes","next":{"path":"_themes/lanyon.md","relative_path":"_themes/lanyon.md","id":"/themes/lanyon","collection":"themes","url":"/themes/lanyon/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Lanyon Jekyll Theme","description":"A Jekyll theme that hides its sidebar until you need it. Clean, spacious reading layout with a smooth slide-out navigation drawer.","key_features":["Slide-Out Sidebar","GitHub Pages","Clean Reading","Hidden Navigation"],"card_description":"Clean blog theme with a smooth slide-out navigation drawer.","category":"Blog","card_image":"/assets/images/themes/lanyon-card.webp","theme_screenshots":["/assets/images/themes/lanyon-screenshot.webp","/assets/images/themes/lanyon-screenshot-2.webp","/assets/images/themes/lanyon-screenshot-3.webp"],"demo_url":"https://lanyon.getpoole.com/","github_url":"https://github.com/poole/lanyon","author":"GitHub Community","github_author_name":"Mark Otto","github_author_url":"https://github.com/mdo","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-gist","jekyll-paginate"],"updated_at":"2023-01-01","added_at":"2026-02-05","popular":true,"trending":false,"bestseller":false,"version":"1.1.0","license":"MIT","stars":5700,"forks":2600,"features":["Hidden slide-out sidebar","Toggle button for navigation","Full-width reading area","Eight colour themes","Clean Poole base"],"slug":"lanyon","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Klisé (pronounced \"cliché\") is the modern minimalist's Jekyll theme. Its defining feature is a light/dark mode toggle that's smooth, instant, and remembers your preference — implemented with care rather than as an afterthought.\n\nThe overall design is clean and contemporary: generous whitespace, careful typographic choices, and a colour palette that works equally well in both modes. It's the theme you'd reach for if you want something that looks like it was built this year, not five years ago.\n\n**Who is it for?** Developers and writers who want a modern minimal blog with a polished dark mode implementation and a design that feels current.\n","url":"/themes/klise/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Klisé Jekyll Theme","description":"A minimalist Jekyll theme with seamless light and dark mode. Clean typography, fast performance, and a modern aesthetic — designed for personal sites and blogs that value simplicity.","key_features":["Dark Mode","Seamless Toggle","Minimal Design","Fast Performance"],"card_description":"Minimalist theme with seamless dark mode and clean typography.","category":"Blog","card_image":"/assets/images/themes/klise-card.webp","theme_screenshots":["/assets/images/themes/klise-screenshot.webp","/assets/images/themes/klise-screenshot-2.webp","/assets/images/themes/klise-screenshot-3.webp"],"demo_url":"https://klise.vercel.app/","github_url":"https://github.com/piharpi/jekyll-klise","author":"GitHub Community","github_author_name":"piharpi","github_author_url":"https://github.com/piharpi","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"4.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2023-06-01","added_at":"2026-06-07","popular":false,"trending":true,"bestseller":false,"version":"0.4.1","license":"MIT","stars":300,"forks":200,"features":["Seamless light and dark mode toggle","Clean, modern minimal design","Fast performance (minimal CSS/JS)","Post categories and tags","Syntax highlighting","Responsive images","Reading time estimates","SEO optimised","GitHub Pages compatible","Vercel deploy ready"],"slug":"klise","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/lanyon","collection":"themes","next":{"path":"_themes/leonids.md","relative_path":"_themes/leonids.md","excerpt":"<p>Leonids is a two-column Jekyll theme that gets the balance right between sidebar utility and content space. The fixed sidebar keeps your author bio, avatar, and social links persistently visible, while the main column gives posts the room they need to breathe.</p>\n\n","previous":{"path":"_themes/lanyon.md","relative_path":"_themes/lanyon.md","id":"/themes/lanyon","collection":"themes","url":"/themes/lanyon/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Lanyon Jekyll Theme","description":"A Jekyll theme that hides its sidebar until you need it. Clean, spacious reading layout with a smooth slide-out navigation drawer.","key_features":["Slide-Out Sidebar","GitHub Pages","Clean Reading","Hidden Navigation"],"card_description":"Clean blog theme with a smooth slide-out navigation drawer.","category":"Blog","card_image":"/assets/images/themes/lanyon-card.webp","theme_screenshots":["/assets/images/themes/lanyon-screenshot.webp","/assets/images/themes/lanyon-screenshot-2.webp","/assets/images/themes/lanyon-screenshot-3.webp"],"demo_url":"https://lanyon.getpoole.com/","github_url":"https://github.com/poole/lanyon","author":"GitHub Community","github_author_name":"Mark Otto","github_author_url":"https://github.com/mdo","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-gist","jekyll-paginate"],"updated_at":"2023-01-01","added_at":"2026-02-05","popular":true,"trending":false,"bestseller":false,"version":"1.1.0","license":"MIT","stars":5700,"forks":2600,"features":["Hidden slide-out sidebar","Toggle button for navigation","Full-width reading area","Eight colour themes","Clean Poole base"],"slug":"lanyon","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/leonids","collection":"themes","next":{"path":"_themes/livvic.md","relative_path":"_themes/livvic.md","id":"/themes/livvic","collection":"themes","url":"/themes/livvic/","draft":false,"categories":["Portfolio"],"layout":"theme","price_type":"premium","featured":true,"dark_mode":false,"responsive":true,"title":"Livvic Jekyll Theme","rating":4.6,"rating_count":24,"description":"A clean, creative, and unique Jekyll theme for agency and personal portfolio websites. Features a flat modern design, unique effects, Bootstrap 4, and Font Awesome — ready to customise and launch in hours.","card_description":"Clean creative portfolio theme for agencies and freelancers — minimal, unique, responsive.","price":49,"category":"Portfolio","card_image":"/assets/images/themes/livvic-card.webp","theme_screenshots":["/assets/images/themes/livvic-screenshot.webp","/assets/images/themes/livvic-screenshot-2.webp","/assets/images/themes/livvic-screenshot-3.webp"],"key_features":["Minimal Design","Portfolio Layouts","Agency Ready","Bootstrap 4"],"demo_url":"https://livvic-jekyll.tortoizthemes.com/","buy_url":"https://tortoizthemes.com/theme/livvic-jekyll-theme/","author":"Tortoiz Themes","author_url":"https://tortoizthemes.com/","github_author_name":"tortoizthemes","support":"6 months","github_pages_compatible":true,"min_jekyll_version":"3.9","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2025-01-01","added_at":"2026-06-27","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"Commercial","features":["Unique homepage version with eye-catching design","Flat, modern, and clean aesthetic throughout","Unique effects and interactive functionality","Built with Bootstrap 4 — fully responsive and cross-browser compatible","Pixel-perfect design on all screen sizes and devices","Font Awesome icon font included","Google Fonts integration","Valid W3C HTML5 and CSS3 markup","Easy to customise with well-structured, commented code","Extended documentation included","Suitable for personal portfolios, creative agencies, freelancers, and consultants"],"slug":"livvic","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Leonids is a two-column Jekyll theme that gets the balance right between sidebar utility and content space. The fixed sidebar keeps your author bio, avatar, and social links persistently visible, while the main column gives posts the room they need to breathe.\n\nThe design is clean and timeless — no trendy flourishes that will date it, just solid typography and a layout that works equally well for technical writing, personal essays, or mixed-content blogs.\n\n**Who is it for?** Bloggers who want a classic two-column layout with a persistent author sidebar, without the complexity of heavier themes like Minimal Mistakes.\n","url":"/themes/leonids/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Leonids Jekyll Theme","description":"A simple and clean two-column Jekyll blog theme. Fixed sidebar with author bio and social links, clean post listing, and a timeless layout that puts content front and centre.","key_features":["Fixed Sidebar","Author Bio","Social Links","GitHub Pages"],"card_description":"Two-column blog with fixed sidebar and timeless content-first layout.","category":"Blog","card_image":"/assets/images/themes/leonids-card.webp","theme_screenshots":["/assets/images/themes/leonids-screenshot.webp","/assets/images/themes/leonids-screenshot-2.webp","/assets/images/themes/leonids-screenshot-3.webp"],"demo_url":"https://renyuanz.github.io/leonids/","github_url":"https://github.com/renyuanz/leonids","author":"GitHub Community","github_author_name":"renyuanz","github_author_url":"https://github.com/renyuanz","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate","jekyll-sitemap"],"updated_at":"2022-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"2.0.0","license":"MIT","stars":1400,"forks":500,"features":["Fixed two-column layout with sidebar","Author bio and avatar in sidebar","Social media links","Category and tag support","Paginated post listing","Syntax highlighting","Disqus comments","Google Analytics","RSS feed","GitHub Pages compatible"],"slug":"leonids","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Lanyon is Hyde's sibling from the Poole family — sharing the same clean foundation but hiding its sidebar until the reader needs it. A small toggle button reveals a smooth slide-out navigation drawer, keeping the reading area completely clean by default.\n\nThe result is one of the most spacious and focused reading experiences in the Jekyll theme ecosystem.\n\n**Who is it for?** Writers who want maximum reading space and a navigation drawer that stays out of the way.\n","url":"/themes/lanyon/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Lanyon Jekyll Theme","description":"A Jekyll theme that hides its sidebar until you need it. Clean, spacious reading layout with a smooth slide-out navigation drawer.","key_features":["Slide-Out Sidebar","GitHub Pages","Clean Reading","Hidden Navigation"],"card_description":"Clean blog theme with a smooth slide-out navigation drawer.","category":"Blog","card_image":"/assets/images/themes/lanyon-card.webp","theme_screenshots":["/assets/images/themes/lanyon-screenshot.webp","/assets/images/themes/lanyon-screenshot-2.webp","/assets/images/themes/lanyon-screenshot-3.webp"],"demo_url":"https://lanyon.getpoole.com/","github_url":"https://github.com/poole/lanyon","author":"GitHub Community","github_author_name":"Mark Otto","github_author_url":"https://github.com/mdo","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-gist","jekyll-paginate"],"updated_at":"2023-01-01","added_at":"2026-02-05","popular":true,"trending":false,"bestseller":false,"version":"1.1.0","license":"MIT","stars":5700,"forks":2600,"features":["Hidden slide-out sidebar","Toggle button for navigation","Full-width reading area","Eight colour themes","Clean Poole base"],"slug":"lanyon","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/leonids.md","relative_path":"_themes/leonids.md","excerpt":"<p>Leonids is a two-column Jekyll theme that gets the balance right between sidebar utility and content space. The fixed sidebar keeps your author bio, avatar, and social links persistently visible, while the main column gives posts the room they need to breathe.</p>\n\n","previous":{"path":"_themes/lanyon.md","relative_path":"_themes/lanyon.md","excerpt":"<p>Lanyon is Hyde’s sibling from the Poole family — sharing the same clean foundation but hiding its sidebar until the reader needs it. A small toggle button reveals a smooth slide-out navigation drawer, keeping the reading area completely clean by default.</p>\n\n","previous":{"path":"_themes/klise.md","relative_path":"_themes/klise.md","id":"/themes/klise","collection":"themes","url":"/themes/klise/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Klisé Jekyll Theme","description":"A minimalist Jekyll theme with seamless light and dark mode. Clean typography, fast performance, and a modern aesthetic — designed for personal sites and blogs that value simplicity.","key_features":["Dark Mode","Seamless Toggle","Minimal Design","Fast Performance"],"card_description":"Minimalist theme with seamless dark mode and clean typography.","category":"Blog","card_image":"/assets/images/themes/klise-card.webp","theme_screenshots":["/assets/images/themes/klise-screenshot.webp","/assets/images/themes/klise-screenshot-2.webp","/assets/images/themes/klise-screenshot-3.webp"],"demo_url":"https://klise.vercel.app/","github_url":"https://github.com/piharpi/jekyll-klise","author":"GitHub Community","github_author_name":"piharpi","github_author_url":"https://github.com/piharpi","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"4.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2023-06-01","added_at":"2026-06-07","popular":false,"trending":true,"bestseller":false,"version":"0.4.1","license":"MIT","stars":300,"forks":200,"features":["Seamless light and dark mode toggle","Clean, modern minimal design","Fast performance (minimal CSS/JS)","Post categories and tags","Syntax highlighting","Responsive images","Reading time estimates","SEO optimised","GitHub Pages compatible","Vercel deploy ready"],"slug":"klise","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/lanyon","collection":"themes","next":{"path":"_themes/leonids.md","relative_path":"_themes/leonids.md","id":"/themes/leonids","collection":"themes","url":"/themes/leonids/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Leonids Jekyll Theme","description":"A simple and clean two-column Jekyll blog theme. Fixed sidebar with author bio and social links, clean post listing, and a timeless layout that puts content front and centre.","key_features":["Fixed Sidebar","Author Bio","Social Links","GitHub Pages"],"card_description":"Two-column blog with fixed sidebar and timeless content-first layout.","category":"Blog","card_image":"/assets/images/themes/leonids-card.webp","theme_screenshots":["/assets/images/themes/leonids-screenshot.webp","/assets/images/themes/leonids-screenshot-2.webp","/assets/images/themes/leonids-screenshot-3.webp"],"demo_url":"https://renyuanz.github.io/leonids/","github_url":"https://github.com/renyuanz/leonids","author":"GitHub Community","github_author_name":"renyuanz","github_author_url":"https://github.com/renyuanz","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate","jekyll-sitemap"],"updated_at":"2022-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"2.0.0","license":"MIT","stars":1400,"forks":500,"features":["Fixed two-column layout with sidebar","Author bio and avatar in sidebar","Social media links","Category and tag support","Paginated post listing","Syntax highlighting","Disqus comments","Google Analytics","RSS feed","GitHub Pages compatible"],"slug":"leonids","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Lanyon is Hyde's sibling from the Poole family — sharing the same clean foundation but hiding its sidebar until the reader needs it. A small toggle button reveals a smooth slide-out navigation drawer, keeping the reading area completely clean by default.\n\nThe result is one of the most spacious and focused reading experiences in the Jekyll theme ecosystem.\n\n**Who is it for?** Writers who want maximum reading space and a navigation drawer that stays out of the way.\n","url":"/themes/lanyon/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Lanyon Jekyll Theme","description":"A Jekyll theme that hides its sidebar until you need it. Clean, spacious reading layout with a smooth slide-out navigation drawer.","key_features":["Slide-Out Sidebar","GitHub Pages","Clean Reading","Hidden Navigation"],"card_description":"Clean blog theme with a smooth slide-out navigation drawer.","category":"Blog","card_image":"/assets/images/themes/lanyon-card.webp","theme_screenshots":["/assets/images/themes/lanyon-screenshot.webp","/assets/images/themes/lanyon-screenshot-2.webp","/assets/images/themes/lanyon-screenshot-3.webp"],"demo_url":"https://lanyon.getpoole.com/","github_url":"https://github.com/poole/lanyon","author":"GitHub Community","github_author_name":"Mark Otto","github_author_url":"https://github.com/mdo","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-gist","jekyll-paginate"],"updated_at":"2023-01-01","added_at":"2026-02-05","popular":true,"trending":false,"bestseller":false,"version":"1.1.0","license":"MIT","stars":5700,"forks":2600,"features":["Hidden slide-out sidebar","Toggle button for navigation","Full-width reading area","Eight colour themes","Clean Poole base"],"slug":"lanyon","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/leonids","collection":"themes","next":{"path":"_themes/livvic.md","relative_path":"_themes/livvic.md","excerpt":"<p>Livvic keeps things focused: one strong homepage layout, clean typography, and a set of unique interactive effects that make the design feel alive without being distracting. For designers and agencies who want their portfolio site to reflect the same restraint and craft they apply to client work, that focus is exactly the point.</p>\n\n","previous":{"path":"_themes/leonids.md","relative_path":"_themes/leonids.md","id":"/themes/leonids","collection":"themes","url":"/themes/leonids/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Leonids Jekyll Theme","description":"A simple and clean two-column Jekyll blog theme. Fixed sidebar with author bio and social links, clean post listing, and a timeless layout that puts content front and centre.","key_features":["Fixed Sidebar","Author Bio","Social Links","GitHub Pages"],"card_description":"Two-column blog with fixed sidebar and timeless content-first layout.","category":"Blog","card_image":"/assets/images/themes/leonids-card.webp","theme_screenshots":["/assets/images/themes/leonids-screenshot.webp","/assets/images/themes/leonids-screenshot-2.webp","/assets/images/themes/leonids-screenshot-3.webp"],"demo_url":"https://renyuanz.github.io/leonids/","github_url":"https://github.com/renyuanz/leonids","author":"GitHub Community","github_author_name":"renyuanz","github_author_url":"https://github.com/renyuanz","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate","jekyll-sitemap"],"updated_at":"2022-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"2.0.0","license":"MIT","stars":1400,"forks":500,"features":["Fixed two-column layout with sidebar","Author bio and avatar in sidebar","Social media links","Category and tag support","Paginated post listing","Syntax highlighting","Disqus comments","Google Analytics","RSS feed","GitHub Pages compatible"],"slug":"leonids","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/livvic","collection":"themes","next":{"path":"_themes/long-haul.md","relative_path":"_themes/long-haul.md","id":"/themes/long-haul","collection":"themes","url":"/themes/long-haul/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Long Haul Jekyll Theme","description":"A minimal, type-focused Jekyll theme designed for long-form writing. Understated design that keeps the reader's attention on the words.","key_features":["Long-Form Writing","Type Focused","Minimal Design","GitHub Pages"],"card_description":"Minimal, type-focused theme designed for long-form writing.","category":"Blog","card_image":"/assets/images/themes/long-haul-card.webp","theme_screenshots":["/assets/images/themes/long-haul-screenshot.webp","/assets/images/themes/long-haul-screenshot-2.webp","/assets/images/themes/long-haul-screenshot-3.webp"],"demo_url":"https://brianmaierjr.com/long-haul/","github_url":"https://github.com/brianmaierjr/long-haul","author":"GitHub Community","github_author_name":"brianmaierjr","github_author_url":"https://github.com/brianmaierjr","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2024-08-10","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":697,"forks":305,"features":["Typography-first design","Minimal navigation","Large readable font sizes","Clean post listing","Social links","RSS feed","Google Analytics","GitHub Pages compatible","No JavaScript dependencies","Lightweight and fast"],"slug":"long-haul","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Livvic keeps things focused: one strong homepage layout, clean typography, and a set of unique interactive effects that make the design feel alive without being distracting. For designers and agencies who want their portfolio site to reflect the same restraint and craft they apply to client work, that focus is exactly the point.\n\n### Design Philosophy\n\nThe flat, modern aesthetic means Livvic ages well — there are no trendy gradients or animation gimmicks that date the design after twelve months. What you get instead is clean grid structure, thoughtful whitespace, and the kind of pixel-perfect spacing that signals professional attention to detail to the clients visiting your portfolio.\n\n### Built to Customise\n\nThe Bootstrap 4 base and W3C-valid HTML5/CSS3 code mean any frontend developer can extend or restyle Livvic without fighting proprietary conventions. The well-commented codebase and extended documentation make onboarding quick whether you're the theme buyer or a developer handed the project.\n\n**Who is it for?** Freelance designers, creative agencies, consultants, and personal portfolio builders who want a distinctive, minimal presentation for their work — without the weight of a feature-heavy multipurpose theme.\n","url":"/themes/livvic/","draft":false,"categories":["Portfolio"],"layout":"theme","price_type":"premium","featured":true,"dark_mode":false,"responsive":true,"title":"Livvic Jekyll Theme","rating":4.6,"rating_count":24,"description":"A clean, creative, and unique Jekyll theme for agency and personal portfolio websites. Features a flat modern design, unique effects, Bootstrap 4, and Font Awesome — ready to customise and launch in hours.","card_description":"Clean creative portfolio theme for agencies and freelancers — minimal, unique, responsive.","price":49,"category":"Portfolio","card_image":"/assets/images/themes/livvic-card.webp","theme_screenshots":["/assets/images/themes/livvic-screenshot.webp","/assets/images/themes/livvic-screenshot-2.webp","/assets/images/themes/livvic-screenshot-3.webp"],"key_features":["Minimal Design","Portfolio Layouts","Agency Ready","Bootstrap 4"],"demo_url":"https://livvic-jekyll.tortoizthemes.com/","buy_url":"https://tortoizthemes.com/theme/livvic-jekyll-theme/","author":"Tortoiz Themes","author_url":"https://tortoizthemes.com/","github_author_name":"tortoizthemes","support":"6 months","github_pages_compatible":true,"min_jekyll_version":"3.9","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2025-01-01","added_at":"2026-06-27","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"Commercial","features":["Unique homepage version with eye-catching design","Flat, modern, and clean aesthetic throughout","Unique effects and interactive functionality","Built with Bootstrap 4 — fully responsive and cross-browser compatible","Pixel-perfect design on all screen sizes and devices","Font Awesome icon font included","Google Fonts integration","Valid W3C HTML5 and CSS3 markup","Easy to customise with well-structured, commented code","Extended documentation included","Suitable for personal portfolios, creative agencies, freelancers, and consultants"],"slug":"livvic","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Leonids is a two-column Jekyll theme that gets the balance right between sidebar utility and content space. The fixed sidebar keeps your author bio, avatar, and social links persistently visible, while the main column gives posts the room they need to breathe.\n\nThe design is clean and timeless — no trendy flourishes that will date it, just solid typography and a layout that works equally well for technical writing, personal essays, or mixed-content blogs.\n\n**Who is it for?** Bloggers who want a classic two-column layout with a persistent author sidebar, without the complexity of heavier themes like Minimal Mistakes.\n","url":"/themes/leonids/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Leonids Jekyll Theme","description":"A simple and clean two-column Jekyll blog theme. Fixed sidebar with author bio and social links, clean post listing, and a timeless layout that puts content front and centre.","key_features":["Fixed Sidebar","Author Bio","Social Links","GitHub Pages"],"card_description":"Two-column blog with fixed sidebar and timeless content-first layout.","category":"Blog","card_image":"/assets/images/themes/leonids-card.webp","theme_screenshots":["/assets/images/themes/leonids-screenshot.webp","/assets/images/themes/leonids-screenshot-2.webp","/assets/images/themes/leonids-screenshot-3.webp"],"demo_url":"https://renyuanz.github.io/leonids/","github_url":"https://github.com/renyuanz/leonids","author":"GitHub Community","github_author_name":"renyuanz","github_author_url":"https://github.com/renyuanz","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate","jekyll-sitemap"],"updated_at":"2022-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"2.0.0","license":"MIT","stars":1400,"forks":500,"features":["Fixed two-column layout with sidebar","Author bio and avatar in sidebar","Social media links","Category and tag support","Paginated post listing","Syntax highlighting","Disqus comments","Google Analytics","RSS feed","GitHub Pages compatible"],"slug":"leonids","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/livvic.md","relative_path":"_themes/livvic.md","excerpt":"<p>Livvic keeps things focused: one strong homepage layout, clean typography, and a set of unique interactive effects that make the design feel alive without being distracting. For designers and agencies who want their portfolio site to reflect the same restraint and craft they apply to client work, that focus is exactly the point.</p>\n\n","previous":{"path":"_themes/leonids.md","relative_path":"_themes/leonids.md","excerpt":"<p>Leonids is a two-column Jekyll theme that gets the balance right between sidebar utility and content space. The fixed sidebar keeps your author bio, avatar, and social links persistently visible, while the main column gives posts the room they need to breathe.</p>\n\n","previous":{"path":"_themes/lanyon.md","relative_path":"_themes/lanyon.md","id":"/themes/lanyon","collection":"themes","url":"/themes/lanyon/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Lanyon Jekyll Theme","description":"A Jekyll theme that hides its sidebar until you need it. Clean, spacious reading layout with a smooth slide-out navigation drawer.","key_features":["Slide-Out Sidebar","GitHub Pages","Clean Reading","Hidden Navigation"],"card_description":"Clean blog theme with a smooth slide-out navigation drawer.","category":"Blog","card_image":"/assets/images/themes/lanyon-card.webp","theme_screenshots":["/assets/images/themes/lanyon-screenshot.webp","/assets/images/themes/lanyon-screenshot-2.webp","/assets/images/themes/lanyon-screenshot-3.webp"],"demo_url":"https://lanyon.getpoole.com/","github_url":"https://github.com/poole/lanyon","author":"GitHub Community","github_author_name":"Mark Otto","github_author_url":"https://github.com/mdo","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-gist","jekyll-paginate"],"updated_at":"2023-01-01","added_at":"2026-02-05","popular":true,"trending":false,"bestseller":false,"version":"1.1.0","license":"MIT","stars":5700,"forks":2600,"features":["Hidden slide-out sidebar","Toggle button for navigation","Full-width reading area","Eight colour themes","Clean Poole base"],"slug":"lanyon","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/leonids","collection":"themes","next":{"path":"_themes/livvic.md","relative_path":"_themes/livvic.md","id":"/themes/livvic","collection":"themes","url":"/themes/livvic/","draft":false,"categories":["Portfolio"],"layout":"theme","price_type":"premium","featured":true,"dark_mode":false,"responsive":true,"title":"Livvic Jekyll Theme","rating":4.6,"rating_count":24,"description":"A clean, creative, and unique Jekyll theme for agency and personal portfolio websites. Features a flat modern design, unique effects, Bootstrap 4, and Font Awesome — ready to customise and launch in hours.","card_description":"Clean creative portfolio theme for agencies and freelancers — minimal, unique, responsive.","price":49,"category":"Portfolio","card_image":"/assets/images/themes/livvic-card.webp","theme_screenshots":["/assets/images/themes/livvic-screenshot.webp","/assets/images/themes/livvic-screenshot-2.webp","/assets/images/themes/livvic-screenshot-3.webp"],"key_features":["Minimal Design","Portfolio Layouts","Agency Ready","Bootstrap 4"],"demo_url":"https://livvic-jekyll.tortoizthemes.com/","buy_url":"https://tortoizthemes.com/theme/livvic-jekyll-theme/","author":"Tortoiz Themes","author_url":"https://tortoizthemes.com/","github_author_name":"tortoizthemes","support":"6 months","github_pages_compatible":true,"min_jekyll_version":"3.9","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2025-01-01","added_at":"2026-06-27","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"Commercial","features":["Unique homepage version with eye-catching design","Flat, modern, and clean aesthetic throughout","Unique effects and interactive functionality","Built with Bootstrap 4 — fully responsive and cross-browser compatible","Pixel-perfect design on all screen sizes and devices","Font Awesome icon font included","Google Fonts integration","Valid W3C HTML5 and CSS3 markup","Easy to customise with well-structured, commented code","Extended documentation included","Suitable for personal portfolios, creative agencies, freelancers, and consultants"],"slug":"livvic","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Leonids is a two-column Jekyll theme that gets the balance right between sidebar utility and content space. The fixed sidebar keeps your author bio, avatar, and social links persistently visible, while the main column gives posts the room they need to breathe.\n\nThe design is clean and timeless — no trendy flourishes that will date it, just solid typography and a layout that works equally well for technical writing, personal essays, or mixed-content blogs.\n\n**Who is it for?** Bloggers who want a classic two-column layout with a persistent author sidebar, without the complexity of heavier themes like Minimal Mistakes.\n","url":"/themes/leonids/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Leonids Jekyll Theme","description":"A simple and clean two-column Jekyll blog theme. Fixed sidebar with author bio and social links, clean post listing, and a timeless layout that puts content front and centre.","key_features":["Fixed Sidebar","Author Bio","Social Links","GitHub Pages"],"card_description":"Two-column blog with fixed sidebar and timeless content-first layout.","category":"Blog","card_image":"/assets/images/themes/leonids-card.webp","theme_screenshots":["/assets/images/themes/leonids-screenshot.webp","/assets/images/themes/leonids-screenshot-2.webp","/assets/images/themes/leonids-screenshot-3.webp"],"demo_url":"https://renyuanz.github.io/leonids/","github_url":"https://github.com/renyuanz/leonids","author":"GitHub Community","github_author_name":"renyuanz","github_author_url":"https://github.com/renyuanz","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate","jekyll-sitemap"],"updated_at":"2022-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"2.0.0","license":"MIT","stars":1400,"forks":500,"features":["Fixed two-column layout with sidebar","Author bio and avatar in sidebar","Social media links","Category and tag support","Paginated post listing","Syntax highlighting","Disqus comments","Google Analytics","RSS feed","GitHub Pages compatible"],"slug":"leonids","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/livvic","collection":"themes","next":{"path":"_themes/long-haul.md","relative_path":"_themes/long-haul.md","excerpt":"<p>Long Haul is built for writers who take their craft seriously. Every design decision favours the text — generous line height, carefully chosen typefaces, and a layout that disappears behind the words.</p>\n\n","previous":{"path":"_themes/livvic.md","relative_path":"_themes/livvic.md","id":"/themes/livvic","collection":"themes","url":"/themes/livvic/","draft":false,"categories":["Portfolio"],"layout":"theme","price_type":"premium","featured":true,"dark_mode":false,"responsive":true,"title":"Livvic Jekyll Theme","rating":4.6,"rating_count":24,"description":"A clean, creative, and unique Jekyll theme for agency and personal portfolio websites. Features a flat modern design, unique effects, Bootstrap 4, and Font Awesome — ready to customise and launch in hours.","card_description":"Clean creative portfolio theme for agencies and freelancers — minimal, unique, responsive.","price":49,"category":"Portfolio","card_image":"/assets/images/themes/livvic-card.webp","theme_screenshots":["/assets/images/themes/livvic-screenshot.webp","/assets/images/themes/livvic-screenshot-2.webp","/assets/images/themes/livvic-screenshot-3.webp"],"key_features":["Minimal Design","Portfolio Layouts","Agency Ready","Bootstrap 4"],"demo_url":"https://livvic-jekyll.tortoizthemes.com/","buy_url":"https://tortoizthemes.com/theme/livvic-jekyll-theme/","author":"Tortoiz Themes","author_url":"https://tortoizthemes.com/","github_author_name":"tortoizthemes","support":"6 months","github_pages_compatible":true,"min_jekyll_version":"3.9","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2025-01-01","added_at":"2026-06-27","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"Commercial","features":["Unique homepage version with eye-catching design","Flat, modern, and clean aesthetic throughout","Unique effects and interactive functionality","Built with Bootstrap 4 — fully responsive and cross-browser compatible","Pixel-perfect design on all screen sizes and devices","Font Awesome icon font included","Google Fonts integration","Valid W3C HTML5 and CSS3 markup","Easy to customise with well-structured, commented code","Extended documentation included","Suitable for personal portfolios, creative agencies, freelancers, and consultants"],"slug":"livvic","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/long-haul","collection":"themes","next":{"path":"_themes/massively.md","relative_path":"_themes/massively.md","id":"/themes/massively","collection":"themes","url":"/themes/massively/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Massively Jekyll Theme","description":"A bold, image-driven Jekyll blog theme ported from HTML5 UP. Full-screen background image on the homepage, large featured post images, and a striking visual identity unlike any other Jekyll theme.","key_features":["Full-Screen Images","Bold Design","GitHub Pages","HTML5 UP Port"],"card_description":"Bold, image-driven blog with full-screen homepage background.","category":"Blog","card_image":"/assets/images/themes/massively-card.webp","theme_screenshots":["/assets/images/themes/massively-screenshot.webp","/assets/images/themes/massively-screenshot-2.webp","/assets/images/themes/massively-screenshot-3.webp"],"demo_url":"https://jekyllup.github.io/jekyll-theme-massively/","github_url":"https://github.com/jekyllup/jekyll-theme-massively","author":"GitHub Community","github_author_name":"jekyllup","github_author_url":"https://github.com/jekyllup","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.5","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2022-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"CC BY 3.0","stars":300,"forks":350,"features":["Full-screen background image on homepage","Large featured images per post","Bold typographic headings","Smooth scroll effects","Article-oriented post grid layout","Social media links","Disqus comments","Google Analytics","Responsive design","GitHub Pages compatible"],"slug":"massively","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Long Haul is built for writers who take their craft seriously. Every design decision favours the text — generous line height, carefully chosen typefaces, and a layout that disappears behind the words.\n\nNavigation is minimal, distractions are absent, and pages load almost instantly with no JavaScript dependencies.\n\n**Who is it for?** Serious writers and essayists who want a distraction-free reading experience that puts content first.\n","url":"/themes/long-haul/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Long Haul Jekyll Theme","description":"A minimal, type-focused Jekyll theme designed for long-form writing. Understated design that keeps the reader's attention on the words.","key_features":["Long-Form Writing","Type Focused","Minimal Design","GitHub Pages"],"card_description":"Minimal, type-focused theme designed for long-form writing.","category":"Blog","card_image":"/assets/images/themes/long-haul-card.webp","theme_screenshots":["/assets/images/themes/long-haul-screenshot.webp","/assets/images/themes/long-haul-screenshot-2.webp","/assets/images/themes/long-haul-screenshot-3.webp"],"demo_url":"https://brianmaierjr.com/long-haul/","github_url":"https://github.com/brianmaierjr/long-haul","author":"GitHub Community","github_author_name":"brianmaierjr","github_author_url":"https://github.com/brianmaierjr","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2024-08-10","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":697,"forks":305,"features":["Typography-first design","Minimal navigation","Large readable font sizes","Clean post listing","Social links","RSS feed","Google Analytics","GitHub Pages compatible","No JavaScript dependencies","Lightweight and fast"],"slug":"long-haul","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Livvic keeps things focused: one strong homepage layout, clean typography, and a set of unique interactive effects that make the design feel alive without being distracting. For designers and agencies who want their portfolio site to reflect the same restraint and craft they apply to client work, that focus is exactly the point.\n\n### Design Philosophy\n\nThe flat, modern aesthetic means Livvic ages well — there are no trendy gradients or animation gimmicks that date the design after twelve months. What you get instead is clean grid structure, thoughtful whitespace, and the kind of pixel-perfect spacing that signals professional attention to detail to the clients visiting your portfolio.\n\n### Built to Customise\n\nThe Bootstrap 4 base and W3C-valid HTML5/CSS3 code mean any frontend developer can extend or restyle Livvic without fighting proprietary conventions. The well-commented codebase and extended documentation make onboarding quick whether you're the theme buyer or a developer handed the project.\n\n**Who is it for?** Freelance designers, creative agencies, consultants, and personal portfolio builders who want a distinctive, minimal presentation for their work — without the weight of a feature-heavy multipurpose theme.\n","url":"/themes/livvic/","draft":false,"categories":["Portfolio"],"layout":"theme","price_type":"premium","featured":true,"dark_mode":false,"responsive":true,"title":"Livvic Jekyll Theme","rating":4.6,"rating_count":24,"description":"A clean, creative, and unique Jekyll theme for agency and personal portfolio websites. Features a flat modern design, unique effects, Bootstrap 4, and Font Awesome — ready to customise and launch in hours.","card_description":"Clean creative portfolio theme for agencies and freelancers — minimal, unique, responsive.","price":49,"category":"Portfolio","card_image":"/assets/images/themes/livvic-card.webp","theme_screenshots":["/assets/images/themes/livvic-screenshot.webp","/assets/images/themes/livvic-screenshot-2.webp","/assets/images/themes/livvic-screenshot-3.webp"],"key_features":["Minimal Design","Portfolio Layouts","Agency Ready","Bootstrap 4"],"demo_url":"https://livvic-jekyll.tortoizthemes.com/","buy_url":"https://tortoizthemes.com/theme/livvic-jekyll-theme/","author":"Tortoiz Themes","author_url":"https://tortoizthemes.com/","github_author_name":"tortoizthemes","support":"6 months","github_pages_compatible":true,"min_jekyll_version":"3.9","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2025-01-01","added_at":"2026-06-27","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"Commercial","features":["Unique homepage version with eye-catching design","Flat, modern, and clean aesthetic throughout","Unique effects and interactive functionality","Built with Bootstrap 4 — fully responsive and cross-browser compatible","Pixel-perfect design on all screen sizes and devices","Font Awesome icon font included","Google Fonts integration","Valid W3C HTML5 and CSS3 markup","Easy to customise with well-structured, commented code","Extended documentation included","Suitable for personal portfolios, creative agencies, freelancers, and consultants"],"slug":"livvic","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/long-haul.md","relative_path":"_themes/long-haul.md","excerpt":"<p>Long Haul is built for writers who take their craft seriously. Every design decision favours the text — generous line height, carefully chosen typefaces, and a layout that disappears behind the words.</p>\n\n","previous":{"path":"_themes/livvic.md","relative_path":"_themes/livvic.md","excerpt":"<p>Livvic keeps things focused: one strong homepage layout, clean typography, and a set of unique interactive effects that make the design feel alive without being distracting. For designers and agencies who want their portfolio site to reflect the same restraint and craft they apply to client work, that focus is exactly the point.</p>\n\n","previous":{"path":"_themes/leonids.md","relative_path":"_themes/leonids.md","id":"/themes/leonids","collection":"themes","url":"/themes/leonids/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Leonids Jekyll Theme","description":"A simple and clean two-column Jekyll blog theme. Fixed sidebar with author bio and social links, clean post listing, and a timeless layout that puts content front and centre.","key_features":["Fixed Sidebar","Author Bio","Social Links","GitHub Pages"],"card_description":"Two-column blog with fixed sidebar and timeless content-first layout.","category":"Blog","card_image":"/assets/images/themes/leonids-card.webp","theme_screenshots":["/assets/images/themes/leonids-screenshot.webp","/assets/images/themes/leonids-screenshot-2.webp","/assets/images/themes/leonids-screenshot-3.webp"],"demo_url":"https://renyuanz.github.io/leonids/","github_url":"https://github.com/renyuanz/leonids","author":"GitHub Community","github_author_name":"renyuanz","github_author_url":"https://github.com/renyuanz","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate","jekyll-sitemap"],"updated_at":"2022-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"2.0.0","license":"MIT","stars":1400,"forks":500,"features":["Fixed two-column layout with sidebar","Author bio and avatar in sidebar","Social media links","Category and tag support","Paginated post listing","Syntax highlighting","Disqus comments","Google Analytics","RSS feed","GitHub Pages compatible"],"slug":"leonids","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/livvic","collection":"themes","next":{"path":"_themes/long-haul.md","relative_path":"_themes/long-haul.md","id":"/themes/long-haul","collection":"themes","url":"/themes/long-haul/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Long Haul Jekyll Theme","description":"A minimal, type-focused Jekyll theme designed for long-form writing. Understated design that keeps the reader's attention on the words.","key_features":["Long-Form Writing","Type Focused","Minimal Design","GitHub Pages"],"card_description":"Minimal, type-focused theme designed for long-form writing.","category":"Blog","card_image":"/assets/images/themes/long-haul-card.webp","theme_screenshots":["/assets/images/themes/long-haul-screenshot.webp","/assets/images/themes/long-haul-screenshot-2.webp","/assets/images/themes/long-haul-screenshot-3.webp"],"demo_url":"https://brianmaierjr.com/long-haul/","github_url":"https://github.com/brianmaierjr/long-haul","author":"GitHub Community","github_author_name":"brianmaierjr","github_author_url":"https://github.com/brianmaierjr","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2024-08-10","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":697,"forks":305,"features":["Typography-first design","Minimal navigation","Large readable font sizes","Clean post listing","Social links","RSS feed","Google Analytics","GitHub Pages compatible","No JavaScript dependencies","Lightweight and fast"],"slug":"long-haul","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Livvic keeps things focused: one strong homepage layout, clean typography, and a set of unique interactive effects that make the design feel alive without being distracting. For designers and agencies who want their portfolio site to reflect the same restraint and craft they apply to client work, that focus is exactly the point.\n\n### Design Philosophy\n\nThe flat, modern aesthetic means Livvic ages well — there are no trendy gradients or animation gimmicks that date the design after twelve months. What you get instead is clean grid structure, thoughtful whitespace, and the kind of pixel-perfect spacing that signals professional attention to detail to the clients visiting your portfolio.\n\n### Built to Customise\n\nThe Bootstrap 4 base and W3C-valid HTML5/CSS3 code mean any frontend developer can extend or restyle Livvic without fighting proprietary conventions. The well-commented codebase and extended documentation make onboarding quick whether you're the theme buyer or a developer handed the project.\n\n**Who is it for?** Freelance designers, creative agencies, consultants, and personal portfolio builders who want a distinctive, minimal presentation for their work — without the weight of a feature-heavy multipurpose theme.\n","url":"/themes/livvic/","draft":false,"categories":["Portfolio"],"layout":"theme","price_type":"premium","featured":true,"dark_mode":false,"responsive":true,"title":"Livvic Jekyll Theme","rating":4.6,"rating_count":24,"description":"A clean, creative, and unique Jekyll theme for agency and personal portfolio websites. Features a flat modern design, unique effects, Bootstrap 4, and Font Awesome — ready to customise and launch in hours.","card_description":"Clean creative portfolio theme for agencies and freelancers — minimal, unique, responsive.","price":49,"category":"Portfolio","card_image":"/assets/images/themes/livvic-card.webp","theme_screenshots":["/assets/images/themes/livvic-screenshot.webp","/assets/images/themes/livvic-screenshot-2.webp","/assets/images/themes/livvic-screenshot-3.webp"],"key_features":["Minimal Design","Portfolio Layouts","Agency Ready","Bootstrap 4"],"demo_url":"https://livvic-jekyll.tortoizthemes.com/","buy_url":"https://tortoizthemes.com/theme/livvic-jekyll-theme/","author":"Tortoiz Themes","author_url":"https://tortoizthemes.com/","github_author_name":"tortoizthemes","support":"6 months","github_pages_compatible":true,"min_jekyll_version":"3.9","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2025-01-01","added_at":"2026-06-27","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"Commercial","features":["Unique homepage version with eye-catching design","Flat, modern, and clean aesthetic throughout","Unique effects and interactive functionality","Built with Bootstrap 4 — fully responsive and cross-browser compatible","Pixel-perfect design on all screen sizes and devices","Font Awesome icon font included","Google Fonts integration","Valid W3C HTML5 and CSS3 markup","Easy to customise with well-structured, commented code","Extended documentation included","Suitable for personal portfolios, creative agencies, freelancers, and consultants"],"slug":"livvic","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/long-haul","collection":"themes","next":{"path":"_themes/massively.md","relative_path":"_themes/massively.md","excerpt":"<p>Massively is unlike anything else in the Jekyll ecosystem. Ported from HTML5 UP’s popular Massively template, it opens with a dramatic full-screen background image and bold typography that immediately signals a strong visual identity. The post listing uses large featured images that make even text-heavy content feel visual and inviting.</p>\n\n","previous":{"path":"_themes/long-haul.md","relative_path":"_themes/long-haul.md","id":"/themes/long-haul","collection":"themes","url":"/themes/long-haul/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Long Haul Jekyll Theme","description":"A minimal, type-focused Jekyll theme designed for long-form writing. Understated design that keeps the reader's attention on the words.","key_features":["Long-Form Writing","Type Focused","Minimal Design","GitHub Pages"],"card_description":"Minimal, type-focused theme designed for long-form writing.","category":"Blog","card_image":"/assets/images/themes/long-haul-card.webp","theme_screenshots":["/assets/images/themes/long-haul-screenshot.webp","/assets/images/themes/long-haul-screenshot-2.webp","/assets/images/themes/long-haul-screenshot-3.webp"],"demo_url":"https://brianmaierjr.com/long-haul/","github_url":"https://github.com/brianmaierjr/long-haul","author":"GitHub Community","github_author_name":"brianmaierjr","github_author_url":"https://github.com/brianmaierjr","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2024-08-10","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":697,"forks":305,"features":["Typography-first design","Minimal navigation","Large readable font sizes","Clean post listing","Social links","RSS feed","Google Analytics","GitHub Pages compatible","No JavaScript dependencies","Lightweight and fast"],"slug":"long-haul","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/massively","collection":"themes","next":{"path":"_themes/mediator.md","relative_path":"_themes/mediator.md","id":"/themes/mediator","collection":"themes","url":"/themes/mediator/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Mediator Jekyll Theme","description":"A medium-inspired Jekyll blog theme with large featured images, clean typography, and a focus on long-form reading.","key_features":["Medium-Inspired","Featured Images","Clean Typography","GitHub Pages"],"card_description":"Medium-inspired blog with large featured images and clean typography.","category":"Blog","card_image":"/assets/images/themes/mediator-card.webp","theme_screenshots":["/assets/images/themes/mediator-screenshot.webp","/assets/images/themes/mediator-screenshot-2.webp","/assets/images/themes/mediator-screenshot-3.webp"],"demo_url":"https://blog.base68.com/","github_url":"https://github.com/dirkfabisch/mediator","author":"GitHub Community","github_author_name":"dirkfabisch","github_author_url":"https://github.com/dirkfabisch","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate"],"updated_at":"2024-05-28","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.2.0","license":"MIT","stars":810,"forks":497,"features":["Medium-inspired layout","Full-width featured images","Clean reading typography","Author bio section","Disqus comments","Social share buttons","Google Analytics","Tag archive pages","RSS feed","Responsive design"],"slug":"mediator","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Massively is unlike anything else in the Jekyll ecosystem. Ported from HTML5 UP's popular Massively template, it opens with a dramatic full-screen background image and bold typography that immediately signals a strong visual identity. The post listing uses large featured images that make even text-heavy content feel visual and inviting.\n\nIf most Jekyll themes are quiet and minimal, Massively is loud — in the best possible way. It's the choice when you want your site to make an impression the moment someone arrives.\n\n**Who is it for?** Bloggers, photographers, journalists, and creatives who want a visually dramatic, image-led site that stands out from the typical minimal developer blog.\n","url":"/themes/massively/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Massively Jekyll Theme","description":"A bold, image-driven Jekyll blog theme ported from HTML5 UP. Full-screen background image on the homepage, large featured post images, and a striking visual identity unlike any other Jekyll theme.","key_features":["Full-Screen Images","Bold Design","GitHub Pages","HTML5 UP Port"],"card_description":"Bold, image-driven blog with full-screen homepage background.","category":"Blog","card_image":"/assets/images/themes/massively-card.webp","theme_screenshots":["/assets/images/themes/massively-screenshot.webp","/assets/images/themes/massively-screenshot-2.webp","/assets/images/themes/massively-screenshot-3.webp"],"demo_url":"https://jekyllup.github.io/jekyll-theme-massively/","github_url":"https://github.com/jekyllup/jekyll-theme-massively","author":"GitHub Community","github_author_name":"jekyllup","github_author_url":"https://github.com/jekyllup","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.5","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2022-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"CC BY 3.0","stars":300,"forks":350,"features":["Full-screen background image on homepage","Large featured images per post","Bold typographic headings","Smooth scroll effects","Article-oriented post grid layout","Social media links","Disqus comments","Google Analytics","Responsive design","GitHub Pages compatible"],"slug":"massively","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Long Haul is built for writers who take their craft seriously. Every design decision favours the text — generous line height, carefully chosen typefaces, and a layout that disappears behind the words.\n\nNavigation is minimal, distractions are absent, and pages load almost instantly with no JavaScript dependencies.\n\n**Who is it for?** Serious writers and essayists who want a distraction-free reading experience that puts content first.\n","url":"/themes/long-haul/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Long Haul Jekyll Theme","description":"A minimal, type-focused Jekyll theme designed for long-form writing. Understated design that keeps the reader's attention on the words.","key_features":["Long-Form Writing","Type Focused","Minimal Design","GitHub Pages"],"card_description":"Minimal, type-focused theme designed for long-form writing.","category":"Blog","card_image":"/assets/images/themes/long-haul-card.webp","theme_screenshots":["/assets/images/themes/long-haul-screenshot.webp","/assets/images/themes/long-haul-screenshot-2.webp","/assets/images/themes/long-haul-screenshot-3.webp"],"demo_url":"https://brianmaierjr.com/long-haul/","github_url":"https://github.com/brianmaierjr/long-haul","author":"GitHub Community","github_author_name":"brianmaierjr","github_author_url":"https://github.com/brianmaierjr","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2024-08-10","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":697,"forks":305,"features":["Typography-first design","Minimal navigation","Large readable font sizes","Clean post listing","Social links","RSS feed","Google Analytics","GitHub Pages compatible","No JavaScript dependencies","Lightweight and fast"],"slug":"long-haul","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/massively.md","relative_path":"_themes/massively.md","excerpt":"<p>Massively is unlike anything else in the Jekyll ecosystem. Ported from HTML5 UP’s popular Massively template, it opens with a dramatic full-screen background image and bold typography that immediately signals a strong visual identity. The post listing uses large featured images that make even text-heavy content feel visual and inviting.</p>\n\n","previous":{"path":"_themes/long-haul.md","relative_path":"_themes/long-haul.md","excerpt":"<p>Long Haul is built for writers who take their craft seriously. Every design decision favours the text — generous line height, carefully chosen typefaces, and a layout that disappears behind the words.</p>\n\n","previous":{"path":"_themes/livvic.md","relative_path":"_themes/livvic.md","id":"/themes/livvic","collection":"themes","url":"/themes/livvic/","draft":false,"categories":["Portfolio"],"layout":"theme","price_type":"premium","featured":true,"dark_mode":false,"responsive":true,"title":"Livvic Jekyll Theme","rating":4.6,"rating_count":24,"description":"A clean, creative, and unique Jekyll theme for agency and personal portfolio websites. Features a flat modern design, unique effects, Bootstrap 4, and Font Awesome — ready to customise and launch in hours.","card_description":"Clean creative portfolio theme for agencies and freelancers — minimal, unique, responsive.","price":49,"category":"Portfolio","card_image":"/assets/images/themes/livvic-card.webp","theme_screenshots":["/assets/images/themes/livvic-screenshot.webp","/assets/images/themes/livvic-screenshot-2.webp","/assets/images/themes/livvic-screenshot-3.webp"],"key_features":["Minimal Design","Portfolio Layouts","Agency Ready","Bootstrap 4"],"demo_url":"https://livvic-jekyll.tortoizthemes.com/","buy_url":"https://tortoizthemes.com/theme/livvic-jekyll-theme/","author":"Tortoiz Themes","author_url":"https://tortoizthemes.com/","github_author_name":"tortoizthemes","support":"6 months","github_pages_compatible":true,"min_jekyll_version":"3.9","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2025-01-01","added_at":"2026-06-27","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"Commercial","features":["Unique homepage version with eye-catching design","Flat, modern, and clean aesthetic throughout","Unique effects and interactive functionality","Built with Bootstrap 4 — fully responsive and cross-browser compatible","Pixel-perfect design on all screen sizes and devices","Font Awesome icon font included","Google Fonts integration","Valid W3C HTML5 and CSS3 markup","Easy to customise with well-structured, commented code","Extended documentation included","Suitable for personal portfolios, creative agencies, freelancers, and consultants"],"slug":"livvic","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/long-haul","collection":"themes","next":{"path":"_themes/massively.md","relative_path":"_themes/massively.md","id":"/themes/massively","collection":"themes","url":"/themes/massively/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Massively Jekyll Theme","description":"A bold, image-driven Jekyll blog theme ported from HTML5 UP. Full-screen background image on the homepage, large featured post images, and a striking visual identity unlike any other Jekyll theme.","key_features":["Full-Screen Images","Bold Design","GitHub Pages","HTML5 UP Port"],"card_description":"Bold, image-driven blog with full-screen homepage background.","category":"Blog","card_image":"/assets/images/themes/massively-card.webp","theme_screenshots":["/assets/images/themes/massively-screenshot.webp","/assets/images/themes/massively-screenshot-2.webp","/assets/images/themes/massively-screenshot-3.webp"],"demo_url":"https://jekyllup.github.io/jekyll-theme-massively/","github_url":"https://github.com/jekyllup/jekyll-theme-massively","author":"GitHub Community","github_author_name":"jekyllup","github_author_url":"https://github.com/jekyllup","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.5","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2022-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"CC BY 3.0","stars":300,"forks":350,"features":["Full-screen background image on homepage","Large featured images per post","Bold typographic headings","Smooth scroll effects","Article-oriented post grid layout","Social media links","Disqus comments","Google Analytics","Responsive design","GitHub Pages compatible"],"slug":"massively","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Long Haul is built for writers who take their craft seriously. Every design decision favours the text — generous line height, carefully chosen typefaces, and a layout that disappears behind the words.\n\nNavigation is minimal, distractions are absent, and pages load almost instantly with no JavaScript dependencies.\n\n**Who is it for?** Serious writers and essayists who want a distraction-free reading experience that puts content first.\n","url":"/themes/long-haul/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Long Haul Jekyll Theme","description":"A minimal, type-focused Jekyll theme designed for long-form writing. Understated design that keeps the reader's attention on the words.","key_features":["Long-Form Writing","Type Focused","Minimal Design","GitHub Pages"],"card_description":"Minimal, type-focused theme designed for long-form writing.","category":"Blog","card_image":"/assets/images/themes/long-haul-card.webp","theme_screenshots":["/assets/images/themes/long-haul-screenshot.webp","/assets/images/themes/long-haul-screenshot-2.webp","/assets/images/themes/long-haul-screenshot-3.webp"],"demo_url":"https://brianmaierjr.com/long-haul/","github_url":"https://github.com/brianmaierjr/long-haul","author":"GitHub Community","github_author_name":"brianmaierjr","github_author_url":"https://github.com/brianmaierjr","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2024-08-10","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":697,"forks":305,"features":["Typography-first design","Minimal navigation","Large readable font sizes","Clean post listing","Social links","RSS feed","Google Analytics","GitHub Pages compatible","No JavaScript dependencies","Lightweight and fast"],"slug":"long-haul","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/massively","collection":"themes","next":{"path":"_themes/mediator.md","relative_path":"_themes/mediator.md","excerpt":"<p>Mediator is a Jekyll theme inspired by Medium’s clean reading experience. Large full-width featured images set the tone for each post, while generous line spacing and careful typography keep readers comfortable through long articles.</p>\n\n","previous":{"path":"_themes/massively.md","relative_path":"_themes/massively.md","id":"/themes/massively","collection":"themes","url":"/themes/massively/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Massively Jekyll Theme","description":"A bold, image-driven Jekyll blog theme ported from HTML5 UP. Full-screen background image on the homepage, large featured post images, and a striking visual identity unlike any other Jekyll theme.","key_features":["Full-Screen Images","Bold Design","GitHub Pages","HTML5 UP Port"],"card_description":"Bold, image-driven blog with full-screen homepage background.","category":"Blog","card_image":"/assets/images/themes/massively-card.webp","theme_screenshots":["/assets/images/themes/massively-screenshot.webp","/assets/images/themes/massively-screenshot-2.webp","/assets/images/themes/massively-screenshot-3.webp"],"demo_url":"https://jekyllup.github.io/jekyll-theme-massively/","github_url":"https://github.com/jekyllup/jekyll-theme-massively","author":"GitHub Community","github_author_name":"jekyllup","github_author_url":"https://github.com/jekyllup","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.5","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2022-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"CC BY 3.0","stars":300,"forks":350,"features":["Full-screen background image on homepage","Large featured images per post","Bold typographic headings","Smooth scroll effects","Article-oriented post grid layout","Social media links","Disqus comments","Google Analytics","Responsive design","GitHub Pages compatible"],"slug":"massively","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/mediator","collection":"themes","next":{"path":"_themes/mediumish.md","relative_path":"_themes/mediumish.md","id":"/themes/mediumish","collection":"themes","url":"/themes/mediumish/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Mediumish Jekyll Theme","description":"A Medium-inspired blog theme with card-based post listings, author pages, and a clean reading layout. One of the most popular Jekyll blog starters.","key_features":["Card Layouts","Author Pages","GitHub Pages","Medium-Inspired"],"card_description":"Medium-inspired blog with card post listings and author pages.","category":"Blog","card_image":"/assets/images/themes/mediumish-card.webp","theme_screenshots":["/assets/images/themes/mediumish-screenshot.webp","/assets/images/themes/mediumish-screenshot-2.webp","/assets/images/themes/mediumish-screenshot-3.webp"],"demo_url":"https://wowthemesnet.github.io/mediumish-theme-jekyll/","github_url":"https://github.com/wowthemesnet/mediumish-theme-jekyll","author":"GitHub Community","github_author_name":"WowThemes","github_author_url":"https://github.com/wowthemesnet","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-feed","jekyll-seo-tag","jekyll-sitemap","jekyll-paginate"],"updated_at":"2023-08-01","added_at":"2026-03-10","popular":true,"trending":false,"bestseller":false,"version":"1.0.6","license":"MIT","stars":1900,"forks":1700,"features":["Card-based post grid","Featured post hero","Author profile pages","Disqus comments","MailChimp integration","Category/tag pages"],"slug":"mediumish","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Mediator is a Jekyll theme inspired by Medium's clean reading experience. Large full-width featured images set the tone for each post, while generous line spacing and careful typography keep readers comfortable through long articles.\n\nThe author bio section at the bottom of each post adds a personal touch — great for building a connection with your readership.\n\n**Who is it for?** Writers publishing long-form content who want a reading-first experience similar to Medium.\n","url":"/themes/mediator/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Mediator Jekyll Theme","description":"A medium-inspired Jekyll blog theme with large featured images, clean typography, and a focus on long-form reading.","key_features":["Medium-Inspired","Featured Images","Clean Typography","GitHub Pages"],"card_description":"Medium-inspired blog with large featured images and clean typography.","category":"Blog","card_image":"/assets/images/themes/mediator-card.webp","theme_screenshots":["/assets/images/themes/mediator-screenshot.webp","/assets/images/themes/mediator-screenshot-2.webp","/assets/images/themes/mediator-screenshot-3.webp"],"demo_url":"https://blog.base68.com/","github_url":"https://github.com/dirkfabisch/mediator","author":"GitHub Community","github_author_name":"dirkfabisch","github_author_url":"https://github.com/dirkfabisch","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate"],"updated_at":"2024-05-28","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.2.0","license":"MIT","stars":810,"forks":497,"features":["Medium-inspired layout","Full-width featured images","Clean reading typography","Author bio section","Disqus comments","Social share buttons","Google Analytics","Tag archive pages","RSS feed","Responsive design"],"slug":"mediator","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Massively is unlike anything else in the Jekyll ecosystem. Ported from HTML5 UP's popular Massively template, it opens with a dramatic full-screen background image and bold typography that immediately signals a strong visual identity. The post listing uses large featured images that make even text-heavy content feel visual and inviting.\n\nIf most Jekyll themes are quiet and minimal, Massively is loud — in the best possible way. It's the choice when you want your site to make an impression the moment someone arrives.\n\n**Who is it for?** Bloggers, photographers, journalists, and creatives who want a visually dramatic, image-led site that stands out from the typical minimal developer blog.\n","url":"/themes/massively/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Massively Jekyll Theme","description":"A bold, image-driven Jekyll blog theme ported from HTML5 UP. Full-screen background image on the homepage, large featured post images, and a striking visual identity unlike any other Jekyll theme.","key_features":["Full-Screen Images","Bold Design","GitHub Pages","HTML5 UP Port"],"card_description":"Bold, image-driven blog with full-screen homepage background.","category":"Blog","card_image":"/assets/images/themes/massively-card.webp","theme_screenshots":["/assets/images/themes/massively-screenshot.webp","/assets/images/themes/massively-screenshot-2.webp","/assets/images/themes/massively-screenshot-3.webp"],"demo_url":"https://jekyllup.github.io/jekyll-theme-massively/","github_url":"https://github.com/jekyllup/jekyll-theme-massively","author":"GitHub Community","github_author_name":"jekyllup","github_author_url":"https://github.com/jekyllup","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.5","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2022-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"CC BY 3.0","stars":300,"forks":350,"features":["Full-screen background image on homepage","Large featured images per post","Bold typographic headings","Smooth scroll effects","Article-oriented post grid layout","Social media links","Disqus comments","Google Analytics","Responsive design","GitHub Pages compatible"],"slug":"massively","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/mediator.md","relative_path":"_themes/mediator.md","excerpt":"<p>Mediator is a Jekyll theme inspired by Medium’s clean reading experience. Large full-width featured images set the tone for each post, while generous line spacing and careful typography keep readers comfortable through long articles.</p>\n\n","previous":{"path":"_themes/massively.md","relative_path":"_themes/massively.md","excerpt":"<p>Massively is unlike anything else in the Jekyll ecosystem. Ported from HTML5 UP’s popular Massively template, it opens with a dramatic full-screen background image and bold typography that immediately signals a strong visual identity. The post listing uses large featured images that make even text-heavy content feel visual and inviting.</p>\n\n","previous":{"path":"_themes/long-haul.md","relative_path":"_themes/long-haul.md","id":"/themes/long-haul","collection":"themes","url":"/themes/long-haul/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Long Haul Jekyll Theme","description":"A minimal, type-focused Jekyll theme designed for long-form writing. Understated design that keeps the reader's attention on the words.","key_features":["Long-Form Writing","Type Focused","Minimal Design","GitHub Pages"],"card_description":"Minimal, type-focused theme designed for long-form writing.","category":"Blog","card_image":"/assets/images/themes/long-haul-card.webp","theme_screenshots":["/assets/images/themes/long-haul-screenshot.webp","/assets/images/themes/long-haul-screenshot-2.webp","/assets/images/themes/long-haul-screenshot-3.webp"],"demo_url":"https://brianmaierjr.com/long-haul/","github_url":"https://github.com/brianmaierjr/long-haul","author":"GitHub Community","github_author_name":"brianmaierjr","github_author_url":"https://github.com/brianmaierjr","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2024-08-10","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":697,"forks":305,"features":["Typography-first design","Minimal navigation","Large readable font sizes","Clean post listing","Social links","RSS feed","Google Analytics","GitHub Pages compatible","No JavaScript dependencies","Lightweight and fast"],"slug":"long-haul","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/massively","collection":"themes","next":{"path":"_themes/mediator.md","relative_path":"_themes/mediator.md","id":"/themes/mediator","collection":"themes","url":"/themes/mediator/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Mediator Jekyll Theme","description":"A medium-inspired Jekyll blog theme with large featured images, clean typography, and a focus on long-form reading.","key_features":["Medium-Inspired","Featured Images","Clean Typography","GitHub Pages"],"card_description":"Medium-inspired blog with large featured images and clean typography.","category":"Blog","card_image":"/assets/images/themes/mediator-card.webp","theme_screenshots":["/assets/images/themes/mediator-screenshot.webp","/assets/images/themes/mediator-screenshot-2.webp","/assets/images/themes/mediator-screenshot-3.webp"],"demo_url":"https://blog.base68.com/","github_url":"https://github.com/dirkfabisch/mediator","author":"GitHub Community","github_author_name":"dirkfabisch","github_author_url":"https://github.com/dirkfabisch","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate"],"updated_at":"2024-05-28","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.2.0","license":"MIT","stars":810,"forks":497,"features":["Medium-inspired layout","Full-width featured images","Clean reading typography","Author bio section","Disqus comments","Social share buttons","Google Analytics","Tag archive pages","RSS feed","Responsive design"],"slug":"mediator","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Massively is unlike anything else in the Jekyll ecosystem. Ported from HTML5 UP's popular Massively template, it opens with a dramatic full-screen background image and bold typography that immediately signals a strong visual identity. The post listing uses large featured images that make even text-heavy content feel visual and inviting.\n\nIf most Jekyll themes are quiet and minimal, Massively is loud — in the best possible way. It's the choice when you want your site to make an impression the moment someone arrives.\n\n**Who is it for?** Bloggers, photographers, journalists, and creatives who want a visually dramatic, image-led site that stands out from the typical minimal developer blog.\n","url":"/themes/massively/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Massively Jekyll Theme","description":"A bold, image-driven Jekyll blog theme ported from HTML5 UP. Full-screen background image on the homepage, large featured post images, and a striking visual identity unlike any other Jekyll theme.","key_features":["Full-Screen Images","Bold Design","GitHub Pages","HTML5 UP Port"],"card_description":"Bold, image-driven blog with full-screen homepage background.","category":"Blog","card_image":"/assets/images/themes/massively-card.webp","theme_screenshots":["/assets/images/themes/massively-screenshot.webp","/assets/images/themes/massively-screenshot-2.webp","/assets/images/themes/massively-screenshot-3.webp"],"demo_url":"https://jekyllup.github.io/jekyll-theme-massively/","github_url":"https://github.com/jekyllup/jekyll-theme-massively","author":"GitHub Community","github_author_name":"jekyllup","github_author_url":"https://github.com/jekyllup","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.5","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2022-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"CC BY 3.0","stars":300,"forks":350,"features":["Full-screen background image on homepage","Large featured images per post","Bold typographic headings","Smooth scroll effects","Article-oriented post grid layout","Social media links","Disqus comments","Google Analytics","Responsive design","GitHub Pages compatible"],"slug":"massively","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/mediator","collection":"themes","next":{"path":"_themes/mediumish.md","relative_path":"_themes/mediumish.md","excerpt":"<p>Mediumish brings the clean, readable aesthetic of Medium to your self-hosted Jekyll blog. Card-based post listings, full author profile pages, and a spacious reading layout combine to create a blog that feels serious and editorial.</p>\n\n","previous":{"path":"_themes/mediator.md","relative_path":"_themes/mediator.md","id":"/themes/mediator","collection":"themes","url":"/themes/mediator/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Mediator Jekyll Theme","description":"A medium-inspired Jekyll blog theme with large featured images, clean typography, and a focus on long-form reading.","key_features":["Medium-Inspired","Featured Images","Clean Typography","GitHub Pages"],"card_description":"Medium-inspired blog with large featured images and clean typography.","category":"Blog","card_image":"/assets/images/themes/mediator-card.webp","theme_screenshots":["/assets/images/themes/mediator-screenshot.webp","/assets/images/themes/mediator-screenshot-2.webp","/assets/images/themes/mediator-screenshot-3.webp"],"demo_url":"https://blog.base68.com/","github_url":"https://github.com/dirkfabisch/mediator","author":"GitHub Community","github_author_name":"dirkfabisch","github_author_url":"https://github.com/dirkfabisch","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate"],"updated_at":"2024-05-28","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.2.0","license":"MIT","stars":810,"forks":497,"features":["Medium-inspired layout","Full-width featured images","Clean reading typography","Author bio section","Disqus comments","Social share buttons","Google Analytics","Tag archive pages","RSS feed","Responsive design"],"slug":"mediator","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/mediumish","collection":"themes","next":{"path":"_themes/merlot.md","relative_path":"_themes/merlot.md","id":"/themes/merlot","collection":"themes","url":"/themes/merlot/","draft":false,"categories":["Personal"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Merlot Jekyll Theme","description":"A warm, editorial GitHub Pages Jekyll theme with classic typographic styling. Official GitHub Pages theme for personal and project sites.","key_features":["GitHub Pages","Editorial Style","Warm Palette","Classic Typography"],"card_description":"Warm, editorial GitHub Pages theme with classic typographic styling.","category":"Personal","card_image":"/assets/images/themes/merlot-card.webp","theme_screenshots":["/assets/images/themes/merlot-screenshot.webp","/assets/images/themes/merlot-screenshot-2.webp","/assets/images/themes/merlot-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/merlot/","github_url":"https://github.com/pages-themes/merlot","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":400,"forks":350,"features":["Official GitHub Pages supported theme","Warm burgundy header accent","Clean white content area","Elegant, professional aesthetic","Single-line enable via _config.yml","Responsive layout","No local setup required"],"slug":"merlot","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Mediumish brings the clean, readable aesthetic of Medium to your self-hosted Jekyll blog. Card-based post listings, full author profile pages, and a spacious reading layout combine to create a blog that feels serious and editorial.\n\n**Who is it for?** Bloggers and content creators who want a Medium-quality reading experience on their own domain.\n","url":"/themes/mediumish/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Mediumish Jekyll Theme","description":"A Medium-inspired blog theme with card-based post listings, author pages, and a clean reading layout. One of the most popular Jekyll blog starters.","key_features":["Card Layouts","Author Pages","GitHub Pages","Medium-Inspired"],"card_description":"Medium-inspired blog with card post listings and author pages.","category":"Blog","card_image":"/assets/images/themes/mediumish-card.webp","theme_screenshots":["/assets/images/themes/mediumish-screenshot.webp","/assets/images/themes/mediumish-screenshot-2.webp","/assets/images/themes/mediumish-screenshot-3.webp"],"demo_url":"https://wowthemesnet.github.io/mediumish-theme-jekyll/","github_url":"https://github.com/wowthemesnet/mediumish-theme-jekyll","author":"GitHub Community","github_author_name":"WowThemes","github_author_url":"https://github.com/wowthemesnet","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-feed","jekyll-seo-tag","jekyll-sitemap","jekyll-paginate"],"updated_at":"2023-08-01","added_at":"2026-03-10","popular":true,"trending":false,"bestseller":false,"version":"1.0.6","license":"MIT","stars":1900,"forks":1700,"features":["Card-based post grid","Featured post hero","Author profile pages","Disqus comments","MailChimp integration","Category/tag pages"],"slug":"mediumish","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Mediator is a Jekyll theme inspired by Medium's clean reading experience. Large full-width featured images set the tone for each post, while generous line spacing and careful typography keep readers comfortable through long articles.\n\nThe author bio section at the bottom of each post adds a personal touch — great for building a connection with your readership.\n\n**Who is it for?** Writers publishing long-form content who want a reading-first experience similar to Medium.\n","url":"/themes/mediator/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Mediator Jekyll Theme","description":"A medium-inspired Jekyll blog theme with large featured images, clean typography, and a focus on long-form reading.","key_features":["Medium-Inspired","Featured Images","Clean Typography","GitHub Pages"],"card_description":"Medium-inspired blog with large featured images and clean typography.","category":"Blog","card_image":"/assets/images/themes/mediator-card.webp","theme_screenshots":["/assets/images/themes/mediator-screenshot.webp","/assets/images/themes/mediator-screenshot-2.webp","/assets/images/themes/mediator-screenshot-3.webp"],"demo_url":"https://blog.base68.com/","github_url":"https://github.com/dirkfabisch/mediator","author":"GitHub Community","github_author_name":"dirkfabisch","github_author_url":"https://github.com/dirkfabisch","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate"],"updated_at":"2024-05-28","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.2.0","license":"MIT","stars":810,"forks":497,"features":["Medium-inspired layout","Full-width featured images","Clean reading typography","Author bio section","Disqus comments","Social share buttons","Google Analytics","Tag archive pages","RSS feed","Responsive design"],"slug":"mediator","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/mediumish.md","relative_path":"_themes/mediumish.md","excerpt":"<p>Mediumish brings the clean, readable aesthetic of Medium to your self-hosted Jekyll blog. Card-based post listings, full author profile pages, and a spacious reading layout combine to create a blog that feels serious and editorial.</p>\n\n","previous":{"path":"_themes/mediator.md","relative_path":"_themes/mediator.md","excerpt":"<p>Mediator is a Jekyll theme inspired by Medium’s clean reading experience. Large full-width featured images set the tone for each post, while generous line spacing and careful typography keep readers comfortable through long articles.</p>\n\n","previous":{"path":"_themes/massively.md","relative_path":"_themes/massively.md","id":"/themes/massively","collection":"themes","url":"/themes/massively/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Massively Jekyll Theme","description":"A bold, image-driven Jekyll blog theme ported from HTML5 UP. Full-screen background image on the homepage, large featured post images, and a striking visual identity unlike any other Jekyll theme.","key_features":["Full-Screen Images","Bold Design","GitHub Pages","HTML5 UP Port"],"card_description":"Bold, image-driven blog with full-screen homepage background.","category":"Blog","card_image":"/assets/images/themes/massively-card.webp","theme_screenshots":["/assets/images/themes/massively-screenshot.webp","/assets/images/themes/massively-screenshot-2.webp","/assets/images/themes/massively-screenshot-3.webp"],"demo_url":"https://jekyllup.github.io/jekyll-theme-massively/","github_url":"https://github.com/jekyllup/jekyll-theme-massively","author":"GitHub Community","github_author_name":"jekyllup","github_author_url":"https://github.com/jekyllup","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.5","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2022-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"CC BY 3.0","stars":300,"forks":350,"features":["Full-screen background image on homepage","Large featured images per post","Bold typographic headings","Smooth scroll effects","Article-oriented post grid layout","Social media links","Disqus comments","Google Analytics","Responsive design","GitHub Pages compatible"],"slug":"massively","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/mediator","collection":"themes","next":{"path":"_themes/mediumish.md","relative_path":"_themes/mediumish.md","id":"/themes/mediumish","collection":"themes","url":"/themes/mediumish/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Mediumish Jekyll Theme","description":"A Medium-inspired blog theme with card-based post listings, author pages, and a clean reading layout. One of the most popular Jekyll blog starters.","key_features":["Card Layouts","Author Pages","GitHub Pages","Medium-Inspired"],"card_description":"Medium-inspired blog with card post listings and author pages.","category":"Blog","card_image":"/assets/images/themes/mediumish-card.webp","theme_screenshots":["/assets/images/themes/mediumish-screenshot.webp","/assets/images/themes/mediumish-screenshot-2.webp","/assets/images/themes/mediumish-screenshot-3.webp"],"demo_url":"https://wowthemesnet.github.io/mediumish-theme-jekyll/","github_url":"https://github.com/wowthemesnet/mediumish-theme-jekyll","author":"GitHub Community","github_author_name":"WowThemes","github_author_url":"https://github.com/wowthemesnet","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-feed","jekyll-seo-tag","jekyll-sitemap","jekyll-paginate"],"updated_at":"2023-08-01","added_at":"2026-03-10","popular":true,"trending":false,"bestseller":false,"version":"1.0.6","license":"MIT","stars":1900,"forks":1700,"features":["Card-based post grid","Featured post hero","Author profile pages","Disqus comments","MailChimp integration","Category/tag pages"],"slug":"mediumish","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Mediator is a Jekyll theme inspired by Medium's clean reading experience. Large full-width featured images set the tone for each post, while generous line spacing and careful typography keep readers comfortable through long articles.\n\nThe author bio section at the bottom of each post adds a personal touch — great for building a connection with your readership.\n\n**Who is it for?** Writers publishing long-form content who want a reading-first experience similar to Medium.\n","url":"/themes/mediator/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Mediator Jekyll Theme","description":"A medium-inspired Jekyll blog theme with large featured images, clean typography, and a focus on long-form reading.","key_features":["Medium-Inspired","Featured Images","Clean Typography","GitHub Pages"],"card_description":"Medium-inspired blog with large featured images and clean typography.","category":"Blog","card_image":"/assets/images/themes/mediator-card.webp","theme_screenshots":["/assets/images/themes/mediator-screenshot.webp","/assets/images/themes/mediator-screenshot-2.webp","/assets/images/themes/mediator-screenshot-3.webp"],"demo_url":"https://blog.base68.com/","github_url":"https://github.com/dirkfabisch/mediator","author":"GitHub Community","github_author_name":"dirkfabisch","github_author_url":"https://github.com/dirkfabisch","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate"],"updated_at":"2024-05-28","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.2.0","license":"MIT","stars":810,"forks":497,"features":["Medium-inspired layout","Full-width featured images","Clean reading typography","Author bio section","Disqus comments","Social share buttons","Google Analytics","Tag archive pages","RSS feed","Responsive design"],"slug":"mediator","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/mediumish","collection":"themes","next":{"path":"_themes/merlot.md","relative_path":"_themes/merlot.md","excerpt":"<p>Merlot is the warmest of GitHub’s official themes. Its deep burgundy header creates an immediately distinctive look that feels more personal and elegant than the typical developer site. The white content area keeps reading comfortable, and the overall impression is polished without being corporate.</p>\n\n","previous":{"path":"_themes/mediumish.md","relative_path":"_themes/mediumish.md","id":"/themes/mediumish","collection":"themes","url":"/themes/mediumish/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Mediumish Jekyll Theme","description":"A Medium-inspired blog theme with card-based post listings, author pages, and a clean reading layout. One of the most popular Jekyll blog starters.","key_features":["Card Layouts","Author Pages","GitHub Pages","Medium-Inspired"],"card_description":"Medium-inspired blog with card post listings and author pages.","category":"Blog","card_image":"/assets/images/themes/mediumish-card.webp","theme_screenshots":["/assets/images/themes/mediumish-screenshot.webp","/assets/images/themes/mediumish-screenshot-2.webp","/assets/images/themes/mediumish-screenshot-3.webp"],"demo_url":"https://wowthemesnet.github.io/mediumish-theme-jekyll/","github_url":"https://github.com/wowthemesnet/mediumish-theme-jekyll","author":"GitHub Community","github_author_name":"WowThemes","github_author_url":"https://github.com/wowthemesnet","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-feed","jekyll-seo-tag","jekyll-sitemap","jekyll-paginate"],"updated_at":"2023-08-01","added_at":"2026-03-10","popular":true,"trending":false,"bestseller":false,"version":"1.0.6","license":"MIT","stars":1900,"forks":1700,"features":["Card-based post grid","Featured post hero","Author profile pages","Disqus comments","MailChimp integration","Category/tag pages"],"slug":"mediumish","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/merlot","collection":"themes","next":{"path":"_themes/midnight.md","relative_path":"_themes/midnight.md","id":"/themes/midnight","collection":"themes","url":"/themes/midnight/","draft":false,"categories":["Personal"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Midnight Jekyll Theme","description":"A dark, sleek GitHub Pages Jekyll theme with light text on deep backgrounds. Official GitHub Pages theme ideal for personal projects and portfolios.","key_features":["Dark Theme","GitHub Pages","Sleek Design","Official GH Theme"],"card_description":"Dark, sleek GitHub Pages theme with light text on deep backgrounds.","category":"Personal","card_image":"/assets/images/themes/midnight-card.webp","theme_screenshots":["/assets/images/themes/midnight-screenshot.webp","/assets/images/themes/midnight-screenshot-2.webp","/assets/images/themes/midnight-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/midnight/","github_url":"https://github.com/pages-themes/midnight","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":600,"forks":500,"features":["Official GitHub Pages supported theme","Dark background design","High-contrast content area","Responsive mobile layout","Single-line enable via _config.yml","No local setup required","Clean typographic hierarchy"],"slug":"midnight","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Merlot is the warmest of GitHub's official themes. Its deep burgundy header creates an immediately distinctive look that feels more personal and elegant than the typical developer site. The white content area keeps reading comfortable, and the overall impression is polished without being corporate.\n\nAs an official GitHub Pages theme, enabling it is a single line — making it a popular choice for personal project pages that need to look good quickly.\n\n**Who is it for?** Anyone who wants a warmer, more personal aesthetic on GitHub Pages, with a distinctive look that stands out from the default blue-and-white developer site template.\n","url":"/themes/merlot/","draft":false,"categories":["Personal"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Merlot Jekyll Theme","description":"A warm, editorial GitHub Pages Jekyll theme with classic typographic styling. Official GitHub Pages theme for personal and project sites.","key_features":["GitHub Pages","Editorial Style","Warm Palette","Classic Typography"],"card_description":"Warm, editorial GitHub Pages theme with classic typographic styling.","category":"Personal","card_image":"/assets/images/themes/merlot-card.webp","theme_screenshots":["/assets/images/themes/merlot-screenshot.webp","/assets/images/themes/merlot-screenshot-2.webp","/assets/images/themes/merlot-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/merlot/","github_url":"https://github.com/pages-themes/merlot","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":400,"forks":350,"features":["Official GitHub Pages supported theme","Warm burgundy header accent","Clean white content area","Elegant, professional aesthetic","Single-line enable via _config.yml","Responsive layout","No local setup required"],"slug":"merlot","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Mediumish brings the clean, readable aesthetic of Medium to your self-hosted Jekyll blog. Card-based post listings, full author profile pages, and a spacious reading layout combine to create a blog that feels serious and editorial.\n\n**Who is it for?** Bloggers and content creators who want a Medium-quality reading experience on their own domain.\n","url":"/themes/mediumish/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Mediumish Jekyll Theme","description":"A Medium-inspired blog theme with card-based post listings, author pages, and a clean reading layout. One of the most popular Jekyll blog starters.","key_features":["Card Layouts","Author Pages","GitHub Pages","Medium-Inspired"],"card_description":"Medium-inspired blog with card post listings and author pages.","category":"Blog","card_image":"/assets/images/themes/mediumish-card.webp","theme_screenshots":["/assets/images/themes/mediumish-screenshot.webp","/assets/images/themes/mediumish-screenshot-2.webp","/assets/images/themes/mediumish-screenshot-3.webp"],"demo_url":"https://wowthemesnet.github.io/mediumish-theme-jekyll/","github_url":"https://github.com/wowthemesnet/mediumish-theme-jekyll","author":"GitHub Community","github_author_name":"WowThemes","github_author_url":"https://github.com/wowthemesnet","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-feed","jekyll-seo-tag","jekyll-sitemap","jekyll-paginate"],"updated_at":"2023-08-01","added_at":"2026-03-10","popular":true,"trending":false,"bestseller":false,"version":"1.0.6","license":"MIT","stars":1900,"forks":1700,"features":["Card-based post grid","Featured post hero","Author profile pages","Disqus comments","MailChimp integration","Category/tag pages"],"slug":"mediumish","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/merlot.md","relative_path":"_themes/merlot.md","excerpt":"<p>Merlot is the warmest of GitHub’s official themes. Its deep burgundy header creates an immediately distinctive look that feels more personal and elegant than the typical developer site. The white content area keeps reading comfortable, and the overall impression is polished without being corporate.</p>\n\n","previous":{"path":"_themes/mediumish.md","relative_path":"_themes/mediumish.md","excerpt":"<p>Mediumish brings the clean, readable aesthetic of Medium to your self-hosted Jekyll blog. Card-based post listings, full author profile pages, and a spacious reading layout combine to create a blog that feels serious and editorial.</p>\n\n","previous":{"path":"_themes/mediator.md","relative_path":"_themes/mediator.md","id":"/themes/mediator","collection":"themes","url":"/themes/mediator/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Mediator Jekyll Theme","description":"A medium-inspired Jekyll blog theme with large featured images, clean typography, and a focus on long-form reading.","key_features":["Medium-Inspired","Featured Images","Clean Typography","GitHub Pages"],"card_description":"Medium-inspired blog with large featured images and clean typography.","category":"Blog","card_image":"/assets/images/themes/mediator-card.webp","theme_screenshots":["/assets/images/themes/mediator-screenshot.webp","/assets/images/themes/mediator-screenshot-2.webp","/assets/images/themes/mediator-screenshot-3.webp"],"demo_url":"https://blog.base68.com/","github_url":"https://github.com/dirkfabisch/mediator","author":"GitHub Community","github_author_name":"dirkfabisch","github_author_url":"https://github.com/dirkfabisch","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate"],"updated_at":"2024-05-28","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.2.0","license":"MIT","stars":810,"forks":497,"features":["Medium-inspired layout","Full-width featured images","Clean reading typography","Author bio section","Disqus comments","Social share buttons","Google Analytics","Tag archive pages","RSS feed","Responsive design"],"slug":"mediator","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/mediumish","collection":"themes","next":{"path":"_themes/merlot.md","relative_path":"_themes/merlot.md","id":"/themes/merlot","collection":"themes","url":"/themes/merlot/","draft":false,"categories":["Personal"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Merlot Jekyll Theme","description":"A warm, editorial GitHub Pages Jekyll theme with classic typographic styling. Official GitHub Pages theme for personal and project sites.","key_features":["GitHub Pages","Editorial Style","Warm Palette","Classic Typography"],"card_description":"Warm, editorial GitHub Pages theme with classic typographic styling.","category":"Personal","card_image":"/assets/images/themes/merlot-card.webp","theme_screenshots":["/assets/images/themes/merlot-screenshot.webp","/assets/images/themes/merlot-screenshot-2.webp","/assets/images/themes/merlot-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/merlot/","github_url":"https://github.com/pages-themes/merlot","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":400,"forks":350,"features":["Official GitHub Pages supported theme","Warm burgundy header accent","Clean white content area","Elegant, professional aesthetic","Single-line enable via _config.yml","Responsive layout","No local setup required"],"slug":"merlot","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Mediumish brings the clean, readable aesthetic of Medium to your self-hosted Jekyll blog. Card-based post listings, full author profile pages, and a spacious reading layout combine to create a blog that feels serious and editorial.\n\n**Who is it for?** Bloggers and content creators who want a Medium-quality reading experience on their own domain.\n","url":"/themes/mediumish/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Mediumish Jekyll Theme","description":"A Medium-inspired blog theme with card-based post listings, author pages, and a clean reading layout. One of the most popular Jekyll blog starters.","key_features":["Card Layouts","Author Pages","GitHub Pages","Medium-Inspired"],"card_description":"Medium-inspired blog with card post listings and author pages.","category":"Blog","card_image":"/assets/images/themes/mediumish-card.webp","theme_screenshots":["/assets/images/themes/mediumish-screenshot.webp","/assets/images/themes/mediumish-screenshot-2.webp","/assets/images/themes/mediumish-screenshot-3.webp"],"demo_url":"https://wowthemesnet.github.io/mediumish-theme-jekyll/","github_url":"https://github.com/wowthemesnet/mediumish-theme-jekyll","author":"GitHub Community","github_author_name":"WowThemes","github_author_url":"https://github.com/wowthemesnet","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-feed","jekyll-seo-tag","jekyll-sitemap","jekyll-paginate"],"updated_at":"2023-08-01","added_at":"2026-03-10","popular":true,"trending":false,"bestseller":false,"version":"1.0.6","license":"MIT","stars":1900,"forks":1700,"features":["Card-based post grid","Featured post hero","Author profile pages","Disqus comments","MailChimp integration","Category/tag pages"],"slug":"mediumish","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/merlot","collection":"themes","next":{"path":"_themes/midnight.md","relative_path":"_themes/midnight.md","excerpt":"<p>Midnight is the dark-mode option among GitHub’s official supported themes. Its deep charcoal background and carefully chosen accent colours create a striking, high-contrast aesthetic that feels at home for developer portfolios, open-source project pages, and creative personal sites.</p>\n\n","previous":{"path":"_themes/merlot.md","relative_path":"_themes/merlot.md","id":"/themes/merlot","collection":"themes","url":"/themes/merlot/","draft":false,"categories":["Personal"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Merlot Jekyll Theme","description":"A warm, editorial GitHub Pages Jekyll theme with classic typographic styling. Official GitHub Pages theme for personal and project sites.","key_features":["GitHub Pages","Editorial Style","Warm Palette","Classic Typography"],"card_description":"Warm, editorial GitHub Pages theme with classic typographic styling.","category":"Personal","card_image":"/assets/images/themes/merlot-card.webp","theme_screenshots":["/assets/images/themes/merlot-screenshot.webp","/assets/images/themes/merlot-screenshot-2.webp","/assets/images/themes/merlot-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/merlot/","github_url":"https://github.com/pages-themes/merlot","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":400,"forks":350,"features":["Official GitHub Pages supported theme","Warm burgundy header accent","Clean white content area","Elegant, professional aesthetic","Single-line enable via _config.yml","Responsive layout","No local setup required"],"slug":"merlot","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/midnight","collection":"themes","next":{"path":"_themes/miles.md","relative_path":"_themes/miles.md","id":"/themes/miles","collection":"themes","url":"/themes/miles/","draft":false,"categories":["Portfolio"],"layout":"theme","price_type":"premium","featured":true,"dark_mode":true,"responsive":true,"title":"Miles Jekyll Theme","rating":4.7,"rating_count":31,"description":"A creative portfolio and agency Jekyll theme with 12+ homepage layouts, 6 portfolio styles, and 4 blog layouts. Designed for agencies, freelancers, and creative professionals who want a stunning site in hours not days.","card_description":"Creative agency and portfolio theme — 12+ homepages, 6 portfolio styles, dark design.","price":79,"category":"Portfolio","card_image":"/assets/images/themes/miles-card.webp","theme_screenshots":["/assets/images/themes/miles-screenshot.webp","/assets/images/themes/miles-screenshot-2.webp","/assets/images/themes/miles-screenshot-3.webp"],"key_features":["12+ Homepages","6 Portfolio Styles","Agency Ready","4 Blog Layouts"],"demo_url":"https://miles-jekyll.tortoizthemes.com/","buy_url":"https://tortoizthemes.com/demo/miles/","author":"Tortoiz Themes","author_url":"https://tortoizthemes.com/","github_author_name":"tortoizthemes","support":"6 months","github_pages_compatible":true,"min_jekyll_version":"3.9","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2025-03-01","added_at":"2026-06-27","popular":true,"trending":false,"bestseller":false,"version":"1.0.0","license":"Commercial","features":["12+ unique creative homepage layouts to choose from","6 portfolio layout styles — masonry, grid, list, carousel, and more","4 blog layout styles for different editorial presentations","3 about page layouts for personal or team introductions","3 service layout styles for agency service showcases","8 additional essential inner page layouts","Modern and clean design on a 1170px grid system","Built with Bootstrap 4, fully responsive and cross-browser compatible","Google Fonts and Font Awesome icon font included","Pixel-perfect design with smooth unique effects","Easy to customise with well-structured code","Extended documentation included","Ideal for agencies, freelancers, consultants, creatives, and startups"],"slug":"miles","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Midnight is the dark-mode option among GitHub's official supported themes. Its deep charcoal background and carefully chosen accent colours create a striking, high-contrast aesthetic that feels at home for developer portfolios, open-source project pages, and creative personal sites.\n\nLike all GitHub Pages official themes, it requires only a line in `_config.yml` to activate — making it the fastest way to get a good-looking dark site onto GitHub Pages.\n\n**Who is it for?** Developers and creatives who want a polished dark-themed site on GitHub Pages with zero configuration overhead.\n","url":"/themes/midnight/","draft":false,"categories":["Personal"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Midnight Jekyll Theme","description":"A dark, sleek GitHub Pages Jekyll theme with light text on deep backgrounds. Official GitHub Pages theme ideal for personal projects and portfolios.","key_features":["Dark Theme","GitHub Pages","Sleek Design","Official GH Theme"],"card_description":"Dark, sleek GitHub Pages theme with light text on deep backgrounds.","category":"Personal","card_image":"/assets/images/themes/midnight-card.webp","theme_screenshots":["/assets/images/themes/midnight-screenshot.webp","/assets/images/themes/midnight-screenshot-2.webp","/assets/images/themes/midnight-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/midnight/","github_url":"https://github.com/pages-themes/midnight","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":600,"forks":500,"features":["Official GitHub Pages supported theme","Dark background design","High-contrast content area","Responsive mobile layout","Single-line enable via _config.yml","No local setup required","Clean typographic hierarchy"],"slug":"midnight","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Merlot is the warmest of GitHub's official themes. Its deep burgundy header creates an immediately distinctive look that feels more personal and elegant than the typical developer site. The white content area keeps reading comfortable, and the overall impression is polished without being corporate.\n\nAs an official GitHub Pages theme, enabling it is a single line — making it a popular choice for personal project pages that need to look good quickly.\n\n**Who is it for?** Anyone who wants a warmer, more personal aesthetic on GitHub Pages, with a distinctive look that stands out from the default blue-and-white developer site template.\n","url":"/themes/merlot/","draft":false,"categories":["Personal"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Merlot Jekyll Theme","description":"A warm, editorial GitHub Pages Jekyll theme with classic typographic styling. Official GitHub Pages theme for personal and project sites.","key_features":["GitHub Pages","Editorial Style","Warm Palette","Classic Typography"],"card_description":"Warm, editorial GitHub Pages theme with classic typographic styling.","category":"Personal","card_image":"/assets/images/themes/merlot-card.webp","theme_screenshots":["/assets/images/themes/merlot-screenshot.webp","/assets/images/themes/merlot-screenshot-2.webp","/assets/images/themes/merlot-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/merlot/","github_url":"https://github.com/pages-themes/merlot","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":400,"forks":350,"features":["Official GitHub Pages supported theme","Warm burgundy header accent","Clean white content area","Elegant, professional aesthetic","Single-line enable via _config.yml","Responsive layout","No local setup required"],"slug":"merlot","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/midnight.md","relative_path":"_themes/midnight.md","excerpt":"<p>Midnight is the dark-mode option among GitHub’s official supported themes. Its deep charcoal background and carefully chosen accent colours create a striking, high-contrast aesthetic that feels at home for developer portfolios, open-source project pages, and creative personal sites.</p>\n\n","previous":{"path":"_themes/merlot.md","relative_path":"_themes/merlot.md","excerpt":"<p>Merlot is the warmest of GitHub’s official themes. Its deep burgundy header creates an immediately distinctive look that feels more personal and elegant than the typical developer site. The white content area keeps reading comfortable, and the overall impression is polished without being corporate.</p>\n\n","previous":{"path":"_themes/mediumish.md","relative_path":"_themes/mediumish.md","id":"/themes/mediumish","collection":"themes","url":"/themes/mediumish/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Mediumish Jekyll Theme","description":"A Medium-inspired blog theme with card-based post listings, author pages, and a clean reading layout. One of the most popular Jekyll blog starters.","key_features":["Card Layouts","Author Pages","GitHub Pages","Medium-Inspired"],"card_description":"Medium-inspired blog with card post listings and author pages.","category":"Blog","card_image":"/assets/images/themes/mediumish-card.webp","theme_screenshots":["/assets/images/themes/mediumish-screenshot.webp","/assets/images/themes/mediumish-screenshot-2.webp","/assets/images/themes/mediumish-screenshot-3.webp"],"demo_url":"https://wowthemesnet.github.io/mediumish-theme-jekyll/","github_url":"https://github.com/wowthemesnet/mediumish-theme-jekyll","author":"GitHub Community","github_author_name":"WowThemes","github_author_url":"https://github.com/wowthemesnet","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-feed","jekyll-seo-tag","jekyll-sitemap","jekyll-paginate"],"updated_at":"2023-08-01","added_at":"2026-03-10","popular":true,"trending":false,"bestseller":false,"version":"1.0.6","license":"MIT","stars":1900,"forks":1700,"features":["Card-based post grid","Featured post hero","Author profile pages","Disqus comments","MailChimp integration","Category/tag pages"],"slug":"mediumish","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/merlot","collection":"themes","next":{"path":"_themes/midnight.md","relative_path":"_themes/midnight.md","id":"/themes/midnight","collection":"themes","url":"/themes/midnight/","draft":false,"categories":["Personal"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Midnight Jekyll Theme","description":"A dark, sleek GitHub Pages Jekyll theme with light text on deep backgrounds. Official GitHub Pages theme ideal for personal projects and portfolios.","key_features":["Dark Theme","GitHub Pages","Sleek Design","Official GH Theme"],"card_description":"Dark, sleek GitHub Pages theme with light text on deep backgrounds.","category":"Personal","card_image":"/assets/images/themes/midnight-card.webp","theme_screenshots":["/assets/images/themes/midnight-screenshot.webp","/assets/images/themes/midnight-screenshot-2.webp","/assets/images/themes/midnight-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/midnight/","github_url":"https://github.com/pages-themes/midnight","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":600,"forks":500,"features":["Official GitHub Pages supported theme","Dark background design","High-contrast content area","Responsive mobile layout","Single-line enable via _config.yml","No local setup required","Clean typographic hierarchy"],"slug":"midnight","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Merlot is the warmest of GitHub's official themes. Its deep burgundy header creates an immediately distinctive look that feels more personal and elegant than the typical developer site. The white content area keeps reading comfortable, and the overall impression is polished without being corporate.\n\nAs an official GitHub Pages theme, enabling it is a single line — making it a popular choice for personal project pages that need to look good quickly.\n\n**Who is it for?** Anyone who wants a warmer, more personal aesthetic on GitHub Pages, with a distinctive look that stands out from the default blue-and-white developer site template.\n","url":"/themes/merlot/","draft":false,"categories":["Personal"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Merlot Jekyll Theme","description":"A warm, editorial GitHub Pages Jekyll theme with classic typographic styling. Official GitHub Pages theme for personal and project sites.","key_features":["GitHub Pages","Editorial Style","Warm Palette","Classic Typography"],"card_description":"Warm, editorial GitHub Pages theme with classic typographic styling.","category":"Personal","card_image":"/assets/images/themes/merlot-card.webp","theme_screenshots":["/assets/images/themes/merlot-screenshot.webp","/assets/images/themes/merlot-screenshot-2.webp","/assets/images/themes/merlot-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/merlot/","github_url":"https://github.com/pages-themes/merlot","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":400,"forks":350,"features":["Official GitHub Pages supported theme","Warm burgundy header accent","Clean white content area","Elegant, professional aesthetic","Single-line enable via _config.yml","Responsive layout","No local setup required"],"slug":"merlot","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/midnight","collection":"themes","next":{"path":"_themes/miles.md","relative_path":"_themes/miles.md","excerpt":"<p>Miles is built for creative professionals who need a portfolio or agency site that makes an immediate impression. The headline stat — 12+ homepage layouts — means you can pick the mood and structure that fits your work, from bold full-screen hero layouts to editorial multi-column arrangements, without touching layout code.</p>\n\n","previous":{"path":"_themes/midnight.md","relative_path":"_themes/midnight.md","id":"/themes/midnight","collection":"themes","url":"/themes/midnight/","draft":false,"categories":["Personal"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Midnight Jekyll Theme","description":"A dark, sleek GitHub Pages Jekyll theme with light text on deep backgrounds. Official GitHub Pages theme ideal for personal projects and portfolios.","key_features":["Dark Theme","GitHub Pages","Sleek Design","Official GH Theme"],"card_description":"Dark, sleek GitHub Pages theme with light text on deep backgrounds.","category":"Personal","card_image":"/assets/images/themes/midnight-card.webp","theme_screenshots":["/assets/images/themes/midnight-screenshot.webp","/assets/images/themes/midnight-screenshot-2.webp","/assets/images/themes/midnight-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/midnight/","github_url":"https://github.com/pages-themes/midnight","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":600,"forks":500,"features":["Official GitHub Pages supported theme","Dark background design","High-contrast content area","Responsive mobile layout","Single-line enable via _config.yml","No local setup required","Clean typographic hierarchy"],"slug":"midnight","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/miles","collection":"themes","next":{"path":"_themes/millennial.md","relative_path":"_themes/millennial.md","id":"/themes/millennial","collection":"themes","url":"/themes/millennial/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Millennial Jekyll Theme","description":"A minimalist, responsive Jekyll blog theme with a clean layout, tag support, pagination, and social share buttons.","key_features":["Tag Support","GitHub Pages","Social Sharing","Minimal Design"],"card_description":"Minimalist responsive blog with tag support and social share buttons.","category":"Blog","card_image":"/assets/images/themes/millennial-card.webp","theme_screenshots":["/assets/images/themes/millennial-screenshot.webp","/assets/images/themes/millennial-screenshot-2.webp","/assets/images/themes/millennial-screenshot-3.webp"],"demo_url":"https://lenpaul.github.io/Millennial/","github_url":"https://github.com/LeNPaul/Millennial","author":"GitHub Community","github_author_name":"LeNPaul","github_author_url":"https://github.com/LeNPaul","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate","jekyll-sitemap"],"updated_at":"2024-06-16","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":474,"forks":285,"features":["Clean minimal layout","Tag archive pages","Paginated post list","Social share buttons","Featured post images","Google Analytics","Disqus comments","RSS feed","GitHub Pages compatible","Mobile responsive"],"slug":"millennial","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Miles is built for creative professionals who need a portfolio or agency site that makes an immediate impression. The headline stat — 12+ homepage layouts — means you can pick the mood and structure that fits your work, from bold full-screen hero layouts to editorial multi-column arrangements, without touching layout code.\n\n### Layout Variety That Matters\n\nSix portfolio styles means your work can be presented the way it deserves: masonry grids for photography, clean single-column for case studies, filtered galleries for multi-discipline agencies. The four blog layouts and three service page styles give the same flexibility to supporting content, so every section of the site feels considered rather than templated.\n\n### Designed for Agencies and Freelancers\n\nThe 1170px grid, clean typography, smooth effects, and dark-capable design palette make Miles appropriate for the kinds of clients who judge a supplier by their own website. The theme is built on Bootstrap 4 with Font Awesome icons and Google Fonts — a stable, familiar stack that any developer can extend without learning proprietary conventions.\n\n**Who is it for?** Creative agencies, freelance designers and developers, consultants, and personal portfolio builders who want a professional result fast — and a theme that presents their work rather than competing with it.\n","url":"/themes/miles/","draft":false,"categories":["Portfolio"],"layout":"theme","price_type":"premium","featured":true,"dark_mode":true,"responsive":true,"title":"Miles Jekyll Theme","rating":4.7,"rating_count":31,"description":"A creative portfolio and agency Jekyll theme with 12+ homepage layouts, 6 portfolio styles, and 4 blog layouts. Designed for agencies, freelancers, and creative professionals who want a stunning site in hours not days.","card_description":"Creative agency and portfolio theme — 12+ homepages, 6 portfolio styles, dark design.","price":79,"category":"Portfolio","card_image":"/assets/images/themes/miles-card.webp","theme_screenshots":["/assets/images/themes/miles-screenshot.webp","/assets/images/themes/miles-screenshot-2.webp","/assets/images/themes/miles-screenshot-3.webp"],"key_features":["12+ Homepages","6 Portfolio Styles","Agency Ready","4 Blog Layouts"],"demo_url":"https://miles-jekyll.tortoizthemes.com/","buy_url":"https://tortoizthemes.com/demo/miles/","author":"Tortoiz Themes","author_url":"https://tortoizthemes.com/","github_author_name":"tortoizthemes","support":"6 months","github_pages_compatible":true,"min_jekyll_version":"3.9","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2025-03-01","added_at":"2026-06-27","popular":true,"trending":false,"bestseller":false,"version":"1.0.0","license":"Commercial","features":["12+ unique creative homepage layouts to choose from","6 portfolio layout styles — masonry, grid, list, carousel, and more","4 blog layout styles for different editorial presentations","3 about page layouts for personal or team introductions","3 service layout styles for agency service showcases","8 additional essential inner page layouts","Modern and clean design on a 1170px grid system","Built with Bootstrap 4, fully responsive and cross-browser compatible","Google Fonts and Font Awesome icon font included","Pixel-perfect design with smooth unique effects","Easy to customise with well-structured code","Extended documentation included","Ideal for agencies, freelancers, consultants, creatives, and startups"],"slug":"miles","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Midnight is the dark-mode option among GitHub's official supported themes. Its deep charcoal background and carefully chosen accent colours create a striking, high-contrast aesthetic that feels at home for developer portfolios, open-source project pages, and creative personal sites.\n\nLike all GitHub Pages official themes, it requires only a line in `_config.yml` to activate — making it the fastest way to get a good-looking dark site onto GitHub Pages.\n\n**Who is it for?** Developers and creatives who want a polished dark-themed site on GitHub Pages with zero configuration overhead.\n","url":"/themes/midnight/","draft":false,"categories":["Personal"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Midnight Jekyll Theme","description":"A dark, sleek GitHub Pages Jekyll theme with light text on deep backgrounds. Official GitHub Pages theme ideal for personal projects and portfolios.","key_features":["Dark Theme","GitHub Pages","Sleek Design","Official GH Theme"],"card_description":"Dark, sleek GitHub Pages theme with light text on deep backgrounds.","category":"Personal","card_image":"/assets/images/themes/midnight-card.webp","theme_screenshots":["/assets/images/themes/midnight-screenshot.webp","/assets/images/themes/midnight-screenshot-2.webp","/assets/images/themes/midnight-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/midnight/","github_url":"https://github.com/pages-themes/midnight","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":600,"forks":500,"features":["Official GitHub Pages supported theme","Dark background design","High-contrast content area","Responsive mobile layout","Single-line enable via _config.yml","No local setup required","Clean typographic hierarchy"],"slug":"midnight","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/miles.md","relative_path":"_themes/miles.md","excerpt":"<p>Miles is built for creative professionals who need a portfolio or agency site that makes an immediate impression. The headline stat — 12+ homepage layouts — means you can pick the mood and structure that fits your work, from bold full-screen hero layouts to editorial multi-column arrangements, without touching layout code.</p>\n\n","previous":{"path":"_themes/midnight.md","relative_path":"_themes/midnight.md","excerpt":"<p>Midnight is the dark-mode option among GitHub’s official supported themes. Its deep charcoal background and carefully chosen accent colours create a striking, high-contrast aesthetic that feels at home for developer portfolios, open-source project pages, and creative personal sites.</p>\n\n","previous":{"path":"_themes/merlot.md","relative_path":"_themes/merlot.md","id":"/themes/merlot","collection":"themes","url":"/themes/merlot/","draft":false,"categories":["Personal"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Merlot Jekyll Theme","description":"A warm, editorial GitHub Pages Jekyll theme with classic typographic styling. Official GitHub Pages theme for personal and project sites.","key_features":["GitHub Pages","Editorial Style","Warm Palette","Classic Typography"],"card_description":"Warm, editorial GitHub Pages theme with classic typographic styling.","category":"Personal","card_image":"/assets/images/themes/merlot-card.webp","theme_screenshots":["/assets/images/themes/merlot-screenshot.webp","/assets/images/themes/merlot-screenshot-2.webp","/assets/images/themes/merlot-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/merlot/","github_url":"https://github.com/pages-themes/merlot","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":400,"forks":350,"features":["Official GitHub Pages supported theme","Warm burgundy header accent","Clean white content area","Elegant, professional aesthetic","Single-line enable via _config.yml","Responsive layout","No local setup required"],"slug":"merlot","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/midnight","collection":"themes","next":{"path":"_themes/miles.md","relative_path":"_themes/miles.md","id":"/themes/miles","collection":"themes","url":"/themes/miles/","draft":false,"categories":["Portfolio"],"layout":"theme","price_type":"premium","featured":true,"dark_mode":true,"responsive":true,"title":"Miles Jekyll Theme","rating":4.7,"rating_count":31,"description":"A creative portfolio and agency Jekyll theme with 12+ homepage layouts, 6 portfolio styles, and 4 blog layouts. Designed for agencies, freelancers, and creative professionals who want a stunning site in hours not days.","card_description":"Creative agency and portfolio theme — 12+ homepages, 6 portfolio styles, dark design.","price":79,"category":"Portfolio","card_image":"/assets/images/themes/miles-card.webp","theme_screenshots":["/assets/images/themes/miles-screenshot.webp","/assets/images/themes/miles-screenshot-2.webp","/assets/images/themes/miles-screenshot-3.webp"],"key_features":["12+ Homepages","6 Portfolio Styles","Agency Ready","4 Blog Layouts"],"demo_url":"https://miles-jekyll.tortoizthemes.com/","buy_url":"https://tortoizthemes.com/demo/miles/","author":"Tortoiz Themes","author_url":"https://tortoizthemes.com/","github_author_name":"tortoizthemes","support":"6 months","github_pages_compatible":true,"min_jekyll_version":"3.9","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2025-03-01","added_at":"2026-06-27","popular":true,"trending":false,"bestseller":false,"version":"1.0.0","license":"Commercial","features":["12+ unique creative homepage layouts to choose from","6 portfolio layout styles — masonry, grid, list, carousel, and more","4 blog layout styles for different editorial presentations","3 about page layouts for personal or team introductions","3 service layout styles for agency service showcases","8 additional essential inner page layouts","Modern and clean design on a 1170px grid system","Built with Bootstrap 4, fully responsive and cross-browser compatible","Google Fonts and Font Awesome icon font included","Pixel-perfect design with smooth unique effects","Easy to customise with well-structured code","Extended documentation included","Ideal for agencies, freelancers, consultants, creatives, and startups"],"slug":"miles","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Midnight is the dark-mode option among GitHub's official supported themes. Its deep charcoal background and carefully chosen accent colours create a striking, high-contrast aesthetic that feels at home for developer portfolios, open-source project pages, and creative personal sites.\n\nLike all GitHub Pages official themes, it requires only a line in `_config.yml` to activate — making it the fastest way to get a good-looking dark site onto GitHub Pages.\n\n**Who is it for?** Developers and creatives who want a polished dark-themed site on GitHub Pages with zero configuration overhead.\n","url":"/themes/midnight/","draft":false,"categories":["Personal"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Midnight Jekyll Theme","description":"A dark, sleek GitHub Pages Jekyll theme with light text on deep backgrounds. Official GitHub Pages theme ideal for personal projects and portfolios.","key_features":["Dark Theme","GitHub Pages","Sleek Design","Official GH Theme"],"card_description":"Dark, sleek GitHub Pages theme with light text on deep backgrounds.","category":"Personal","card_image":"/assets/images/themes/midnight-card.webp","theme_screenshots":["/assets/images/themes/midnight-screenshot.webp","/assets/images/themes/midnight-screenshot-2.webp","/assets/images/themes/midnight-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/midnight/","github_url":"https://github.com/pages-themes/midnight","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":600,"forks":500,"features":["Official GitHub Pages supported theme","Dark background design","High-contrast content area","Responsive mobile layout","Single-line enable via _config.yml","No local setup required","Clean typographic hierarchy"],"slug":"midnight","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/miles","collection":"themes","next":{"path":"_themes/millennial.md","relative_path":"_themes/millennial.md","excerpt":"<p>Millennial is a clean, straightforward Jekyll blog theme designed for writers who want a no-nonsense publishing platform. The layout is minimal by design — no sidebars, no clutter, just posts.</p>\n\n","previous":{"path":"_themes/miles.md","relative_path":"_themes/miles.md","id":"/themes/miles","collection":"themes","url":"/themes/miles/","draft":false,"categories":["Portfolio"],"layout":"theme","price_type":"premium","featured":true,"dark_mode":true,"responsive":true,"title":"Miles Jekyll Theme","rating":4.7,"rating_count":31,"description":"A creative portfolio and agency Jekyll theme with 12+ homepage layouts, 6 portfolio styles, and 4 blog layouts. Designed for agencies, freelancers, and creative professionals who want a stunning site in hours not days.","card_description":"Creative agency and portfolio theme — 12+ homepages, 6 portfolio styles, dark design.","price":79,"category":"Portfolio","card_image":"/assets/images/themes/miles-card.webp","theme_screenshots":["/assets/images/themes/miles-screenshot.webp","/assets/images/themes/miles-screenshot-2.webp","/assets/images/themes/miles-screenshot-3.webp"],"key_features":["12+ Homepages","6 Portfolio Styles","Agency Ready","4 Blog Layouts"],"demo_url":"https://miles-jekyll.tortoizthemes.com/","buy_url":"https://tortoizthemes.com/demo/miles/","author":"Tortoiz Themes","author_url":"https://tortoizthemes.com/","github_author_name":"tortoizthemes","support":"6 months","github_pages_compatible":true,"min_jekyll_version":"3.9","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2025-03-01","added_at":"2026-06-27","popular":true,"trending":false,"bestseller":false,"version":"1.0.0","license":"Commercial","features":["12+ unique creative homepage layouts to choose from","6 portfolio layout styles — masonry, grid, list, carousel, and more","4 blog layout styles for different editorial presentations","3 about page layouts for personal or team introductions","3 service layout styles for agency service showcases","8 additional essential inner page layouts","Modern and clean design on a 1170px grid system","Built with Bootstrap 4, fully responsive and cross-browser compatible","Google Fonts and Font Awesome icon font included","Pixel-perfect design with smooth unique effects","Easy to customise with well-structured code","Extended documentation included","Ideal for agencies, freelancers, consultants, creatives, and startups"],"slug":"miles","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/millennial","collection":"themes","next":{"path":"_themes/minima.md","relative_path":"_themes/minima.md","id":"/themes/minima","collection":"themes","url":"/themes/minima/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Minima Jekyll Theme","description":"Jekyll's built-in default theme. Minimal, clean, and battle-tested. The foundation every Jekyll developer knows.","key_features":["Jekyll Default","GitHub Pages","Dark Mode","Lightweight"],"card_description":"Jekyll's default theme — minimal, clean, and battle-tested.","category":"Blog","card_image":"/assets/images/themes/minima-card.webp","theme_screenshots":["/assets/images/themes/minima-screenshot.webp","/assets/images/themes/minima-screenshot-2.webp","/assets/images/themes/minima-screenshot-3.webp"],"demo_url":"https://jekyll.github.io/minima/","github_url":"https://github.com/jekyll/minima","author":"GitHub Community","github_author_name":"Jekyll","github_author_url":"https://github.com/jekyll","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.5","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2024-03-01","added_at":"2026-01-01","popular":true,"trending":false,"bestseller":false,"version":"2.1.1","license":"MIT","stars":3100,"forks":2800,"features":["Ultra-minimal layout","Dark mode support","Social links","Post listing","Feed and SEO built-in"],"slug":"minima","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Millennial is a clean, straightforward Jekyll blog theme designed for writers who want a no-nonsense publishing platform. The layout is minimal by design — no sidebars, no clutter, just posts.\n\nTag archive pages organise content for readers, and pagination handles large archives gracefully.\n\n**Who is it for?** Bloggers who want a lean, focused reading experience without any distracting design elements.\n","url":"/themes/millennial/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Millennial Jekyll Theme","description":"A minimalist, responsive Jekyll blog theme with a clean layout, tag support, pagination, and social share buttons.","key_features":["Tag Support","GitHub Pages","Social Sharing","Minimal Design"],"card_description":"Minimalist responsive blog with tag support and social share buttons.","category":"Blog","card_image":"/assets/images/themes/millennial-card.webp","theme_screenshots":["/assets/images/themes/millennial-screenshot.webp","/assets/images/themes/millennial-screenshot-2.webp","/assets/images/themes/millennial-screenshot-3.webp"],"demo_url":"https://lenpaul.github.io/Millennial/","github_url":"https://github.com/LeNPaul/Millennial","author":"GitHub Community","github_author_name":"LeNPaul","github_author_url":"https://github.com/LeNPaul","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate","jekyll-sitemap"],"updated_at":"2024-06-16","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":474,"forks":285,"features":["Clean minimal layout","Tag archive pages","Paginated post list","Social share buttons","Featured post images","Google Analytics","Disqus comments","RSS feed","GitHub Pages compatible","Mobile responsive"],"slug":"millennial","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Miles is built for creative professionals who need a portfolio or agency site that makes an immediate impression. The headline stat — 12+ homepage layouts — means you can pick the mood and structure that fits your work, from bold full-screen hero layouts to editorial multi-column arrangements, without touching layout code.\n\n### Layout Variety That Matters\n\nSix portfolio styles means your work can be presented the way it deserves: masonry grids for photography, clean single-column for case studies, filtered galleries for multi-discipline agencies. The four blog layouts and three service page styles give the same flexibility to supporting content, so every section of the site feels considered rather than templated.\n\n### Designed for Agencies and Freelancers\n\nThe 1170px grid, clean typography, smooth effects, and dark-capable design palette make Miles appropriate for the kinds of clients who judge a supplier by their own website. The theme is built on Bootstrap 4 with Font Awesome icons and Google Fonts — a stable, familiar stack that any developer can extend without learning proprietary conventions.\n\n**Who is it for?** Creative agencies, freelance designers and developers, consultants, and personal portfolio builders who want a professional result fast — and a theme that presents their work rather than competing with it.\n","url":"/themes/miles/","draft":false,"categories":["Portfolio"],"layout":"theme","price_type":"premium","featured":true,"dark_mode":true,"responsive":true,"title":"Miles Jekyll Theme","rating":4.7,"rating_count":31,"description":"A creative portfolio and agency Jekyll theme with 12+ homepage layouts, 6 portfolio styles, and 4 blog layouts. Designed for agencies, freelancers, and creative professionals who want a stunning site in hours not days.","card_description":"Creative agency and portfolio theme — 12+ homepages, 6 portfolio styles, dark design.","price":79,"category":"Portfolio","card_image":"/assets/images/themes/miles-card.webp","theme_screenshots":["/assets/images/themes/miles-screenshot.webp","/assets/images/themes/miles-screenshot-2.webp","/assets/images/themes/miles-screenshot-3.webp"],"key_features":["12+ Homepages","6 Portfolio Styles","Agency Ready","4 Blog Layouts"],"demo_url":"https://miles-jekyll.tortoizthemes.com/","buy_url":"https://tortoizthemes.com/demo/miles/","author":"Tortoiz Themes","author_url":"https://tortoizthemes.com/","github_author_name":"tortoizthemes","support":"6 months","github_pages_compatible":true,"min_jekyll_version":"3.9","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2025-03-01","added_at":"2026-06-27","popular":true,"trending":false,"bestseller":false,"version":"1.0.0","license":"Commercial","features":["12+ unique creative homepage layouts to choose from","6 portfolio layout styles — masonry, grid, list, carousel, and more","4 blog layout styles for different editorial presentations","3 about page layouts for personal or team introductions","3 service layout styles for agency service showcases","8 additional essential inner page layouts","Modern and clean design on a 1170px grid system","Built with Bootstrap 4, fully responsive and cross-browser compatible","Google Fonts and Font Awesome icon font included","Pixel-perfect design with smooth unique effects","Easy to customise with well-structured code","Extended documentation included","Ideal for agencies, freelancers, consultants, creatives, and startups"],"slug":"miles","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/millennial.md","relative_path":"_themes/millennial.md","excerpt":"<p>Millennial is a clean, straightforward Jekyll blog theme designed for writers who want a no-nonsense publishing platform. The layout is minimal by design — no sidebars, no clutter, just posts.</p>\n\n","previous":{"path":"_themes/miles.md","relative_path":"_themes/miles.md","excerpt":"<p>Miles is built for creative professionals who need a portfolio or agency site that makes an immediate impression. The headline stat — 12+ homepage layouts — means you can pick the mood and structure that fits your work, from bold full-screen hero layouts to editorial multi-column arrangements, without touching layout code.</p>\n\n","previous":{"path":"_themes/midnight.md","relative_path":"_themes/midnight.md","id":"/themes/midnight","collection":"themes","url":"/themes/midnight/","draft":false,"categories":["Personal"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Midnight Jekyll Theme","description":"A dark, sleek GitHub Pages Jekyll theme with light text on deep backgrounds. Official GitHub Pages theme ideal for personal projects and portfolios.","key_features":["Dark Theme","GitHub Pages","Sleek Design","Official GH Theme"],"card_description":"Dark, sleek GitHub Pages theme with light text on deep backgrounds.","category":"Personal","card_image":"/assets/images/themes/midnight-card.webp","theme_screenshots":["/assets/images/themes/midnight-screenshot.webp","/assets/images/themes/midnight-screenshot-2.webp","/assets/images/themes/midnight-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/midnight/","github_url":"https://github.com/pages-themes/midnight","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":600,"forks":500,"features":["Official GitHub Pages supported theme","Dark background design","High-contrast content area","Responsive mobile layout","Single-line enable via _config.yml","No local setup required","Clean typographic hierarchy"],"slug":"midnight","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/miles","collection":"themes","next":{"path":"_themes/millennial.md","relative_path":"_themes/millennial.md","id":"/themes/millennial","collection":"themes","url":"/themes/millennial/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Millennial Jekyll Theme","description":"A minimalist, responsive Jekyll blog theme with a clean layout, tag support, pagination, and social share buttons.","key_features":["Tag Support","GitHub Pages","Social Sharing","Minimal Design"],"card_description":"Minimalist responsive blog with tag support and social share buttons.","category":"Blog","card_image":"/assets/images/themes/millennial-card.webp","theme_screenshots":["/assets/images/themes/millennial-screenshot.webp","/assets/images/themes/millennial-screenshot-2.webp","/assets/images/themes/millennial-screenshot-3.webp"],"demo_url":"https://lenpaul.github.io/Millennial/","github_url":"https://github.com/LeNPaul/Millennial","author":"GitHub Community","github_author_name":"LeNPaul","github_author_url":"https://github.com/LeNPaul","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate","jekyll-sitemap"],"updated_at":"2024-06-16","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":474,"forks":285,"features":["Clean minimal layout","Tag archive pages","Paginated post list","Social share buttons","Featured post images","Google Analytics","Disqus comments","RSS feed","GitHub Pages compatible","Mobile responsive"],"slug":"millennial","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Miles is built for creative professionals who need a portfolio or agency site that makes an immediate impression. The headline stat — 12+ homepage layouts — means you can pick the mood and structure that fits your work, from bold full-screen hero layouts to editorial multi-column arrangements, without touching layout code.\n\n### Layout Variety That Matters\n\nSix portfolio styles means your work can be presented the way it deserves: masonry grids for photography, clean single-column for case studies, filtered galleries for multi-discipline agencies. The four blog layouts and three service page styles give the same flexibility to supporting content, so every section of the site feels considered rather than templated.\n\n### Designed for Agencies and Freelancers\n\nThe 1170px grid, clean typography, smooth effects, and dark-capable design palette make Miles appropriate for the kinds of clients who judge a supplier by their own website. The theme is built on Bootstrap 4 with Font Awesome icons and Google Fonts — a stable, familiar stack that any developer can extend without learning proprietary conventions.\n\n**Who is it for?** Creative agencies, freelance designers and developers, consultants, and personal portfolio builders who want a professional result fast — and a theme that presents their work rather than competing with it.\n","url":"/themes/miles/","draft":false,"categories":["Portfolio"],"layout":"theme","price_type":"premium","featured":true,"dark_mode":true,"responsive":true,"title":"Miles Jekyll Theme","rating":4.7,"rating_count":31,"description":"A creative portfolio and agency Jekyll theme with 12+ homepage layouts, 6 portfolio styles, and 4 blog layouts. Designed for agencies, freelancers, and creative professionals who want a stunning site in hours not days.","card_description":"Creative agency and portfolio theme — 12+ homepages, 6 portfolio styles, dark design.","price":79,"category":"Portfolio","card_image":"/assets/images/themes/miles-card.webp","theme_screenshots":["/assets/images/themes/miles-screenshot.webp","/assets/images/themes/miles-screenshot-2.webp","/assets/images/themes/miles-screenshot-3.webp"],"key_features":["12+ Homepages","6 Portfolio Styles","Agency Ready","4 Blog Layouts"],"demo_url":"https://miles-jekyll.tortoizthemes.com/","buy_url":"https://tortoizthemes.com/demo/miles/","author":"Tortoiz Themes","author_url":"https://tortoizthemes.com/","github_author_name":"tortoizthemes","support":"6 months","github_pages_compatible":true,"min_jekyll_version":"3.9","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2025-03-01","added_at":"2026-06-27","popular":true,"trending":false,"bestseller":false,"version":"1.0.0","license":"Commercial","features":["12+ unique creative homepage layouts to choose from","6 portfolio layout styles — masonry, grid, list, carousel, and more","4 blog layout styles for different editorial presentations","3 about page layouts for personal or team introductions","3 service layout styles for agency service showcases","8 additional essential inner page layouts","Modern and clean design on a 1170px grid system","Built with Bootstrap 4, fully responsive and cross-browser compatible","Google Fonts and Font Awesome icon font included","Pixel-perfect design with smooth unique effects","Easy to customise with well-structured code","Extended documentation included","Ideal for agencies, freelancers, consultants, creatives, and startups"],"slug":"miles","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/millennial","collection":"themes","next":{"path":"_themes/minima.md","relative_path":"_themes/minima.md","excerpt":"<p>Minima is Jekyll’s official default theme — the one that ships with every new Jekyll install. It’s deliberately minimal: clean white background, sensible typography, and just enough structure to get a blog running without getting in the way.</p>\n\n","previous":{"path":"_themes/millennial.md","relative_path":"_themes/millennial.md","id":"/themes/millennial","collection":"themes","url":"/themes/millennial/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Millennial Jekyll Theme","description":"A minimalist, responsive Jekyll blog theme with a clean layout, tag support, pagination, and social share buttons.","key_features":["Tag Support","GitHub Pages","Social Sharing","Minimal Design"],"card_description":"Minimalist responsive blog with tag support and social share buttons.","category":"Blog","card_image":"/assets/images/themes/millennial-card.webp","theme_screenshots":["/assets/images/themes/millennial-screenshot.webp","/assets/images/themes/millennial-screenshot-2.webp","/assets/images/themes/millennial-screenshot-3.webp"],"demo_url":"https://lenpaul.github.io/Millennial/","github_url":"https://github.com/LeNPaul/Millennial","author":"GitHub Community","github_author_name":"LeNPaul","github_author_url":"https://github.com/LeNPaul","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate","jekyll-sitemap"],"updated_at":"2024-06-16","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":474,"forks":285,"features":["Clean minimal layout","Tag archive pages","Paginated post list","Social share buttons","Featured post images","Google Analytics","Disqus comments","RSS feed","GitHub Pages compatible","Mobile responsive"],"slug":"millennial","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/minima","collection":"themes","next":{"path":"_themes/minimal-mistakes.md","relative_path":"_themes/minimal-mistakes.md","id":"/themes/minimal-mistakes","collection":"themes","url":"/themes/minimal-mistakes/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":true,"dark_mode":false,"responsive":true,"title":"Minimal Mistakes Jekyll Theme","description":"The most popular Jekyll theme on GitHub. A flexible two-column theme perfect for personal sites, blogs, documentation, and portfolios — with 12 layout skins.","key_features":["12 Layout Skins","GitHub Pages","Two-Column Layout","Portfolio Ready"],"card_description":"Most popular Jekyll theme — flexible two-column with 12 layout skins.","category":"Blog","card_image":"/assets/images/themes/minimal-mistakes-card.webp","theme_screenshots":["/assets/images/themes/minimal-mistakes-screenshot.webp","/assets/images/themes/minimal-mistakes-screenshot-2.webp","/assets/images/themes/minimal-mistakes-screenshot-3.webp"],"demo_url":"https://mmistakes.github.io/minimal-mistakes/","github_url":"https://github.com/mmistakes/minimal-mistakes","author":"GitHub Community","github_author_name":"Michael Rose","github_author_url":"https://github.com/mmistakes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.7","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-include-cache","jekyll-paginate"],"updated_at":"2024-03-01","added_at":"2026-01-02","popular":true,"trending":false,"bestseller":false,"version":"4.28.0","license":"MIT","stars":13300,"forks":9300,"features":["12 built-in colour skins","Flexible two-column layout","Responsive design","SEO optimised with jekyll-seo-tag","Built-in Lunr.js full-text search","Support for comments (Disqus, giscus)","Social sharing buttons","Author sidebar with bio and avatar","Google Analytics integration","Breadcrumb navigation"],"slug":"minimal-mistakes","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Minima is Jekyll's official default theme — the one that ships with every new Jekyll install. It's deliberately minimal: clean white background, sensible typography, and just enough structure to get a blog running without getting in the way.\n\nVersion 3.x adds dark mode support and social link icons, making it a surprisingly capable foundation despite its simplicity.\n\n**Who is it for?** Anyone just starting with Jekyll who wants a reliable, clean foundation they can customise or grow from.\n","url":"/themes/minima/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Minima Jekyll Theme","description":"Jekyll's built-in default theme. Minimal, clean, and battle-tested. The foundation every Jekyll developer knows.","key_features":["Jekyll Default","GitHub Pages","Dark Mode","Lightweight"],"card_description":"Jekyll's default theme — minimal, clean, and battle-tested.","category":"Blog","card_image":"/assets/images/themes/minima-card.webp","theme_screenshots":["/assets/images/themes/minima-screenshot.webp","/assets/images/themes/minima-screenshot-2.webp","/assets/images/themes/minima-screenshot-3.webp"],"demo_url":"https://jekyll.github.io/minima/","github_url":"https://github.com/jekyll/minima","author":"GitHub Community","github_author_name":"Jekyll","github_author_url":"https://github.com/jekyll","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.5","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2024-03-01","added_at":"2026-01-01","popular":true,"trending":false,"bestseller":false,"version":"2.1.1","license":"MIT","stars":3100,"forks":2800,"features":["Ultra-minimal layout","Dark mode support","Social links","Post listing","Feed and SEO built-in"],"slug":"minima","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Millennial is a clean, straightforward Jekyll blog theme designed for writers who want a no-nonsense publishing platform. The layout is minimal by design — no sidebars, no clutter, just posts.\n\nTag archive pages organise content for readers, and pagination handles large archives gracefully.\n\n**Who is it for?** Bloggers who want a lean, focused reading experience without any distracting design elements.\n","url":"/themes/millennial/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Millennial Jekyll Theme","description":"A minimalist, responsive Jekyll blog theme with a clean layout, tag support, pagination, and social share buttons.","key_features":["Tag Support","GitHub Pages","Social Sharing","Minimal Design"],"card_description":"Minimalist responsive blog with tag support and social share buttons.","category":"Blog","card_image":"/assets/images/themes/millennial-card.webp","theme_screenshots":["/assets/images/themes/millennial-screenshot.webp","/assets/images/themes/millennial-screenshot-2.webp","/assets/images/themes/millennial-screenshot-3.webp"],"demo_url":"https://lenpaul.github.io/Millennial/","github_url":"https://github.com/LeNPaul/Millennial","author":"GitHub Community","github_author_name":"LeNPaul","github_author_url":"https://github.com/LeNPaul","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate","jekyll-sitemap"],"updated_at":"2024-06-16","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":474,"forks":285,"features":["Clean minimal layout","Tag archive pages","Paginated post list","Social share buttons","Featured post images","Google Analytics","Disqus comments","RSS feed","GitHub Pages compatible","Mobile responsive"],"slug":"millennial","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/minima.md","relative_path":"_themes/minima.md","excerpt":"<p>Minima is Jekyll’s official default theme — the one that ships with every new Jekyll install. It’s deliberately minimal: clean white background, sensible typography, and just enough structure to get a blog running without getting in the way.</p>\n\n","previous":{"path":"_themes/millennial.md","relative_path":"_themes/millennial.md","excerpt":"<p>Millennial is a clean, straightforward Jekyll blog theme designed for writers who want a no-nonsense publishing platform. The layout is minimal by design — no sidebars, no clutter, just posts.</p>\n\n","previous":{"path":"_themes/miles.md","relative_path":"_themes/miles.md","id":"/themes/miles","collection":"themes","url":"/themes/miles/","draft":false,"categories":["Portfolio"],"layout":"theme","price_type":"premium","featured":true,"dark_mode":true,"responsive":true,"title":"Miles Jekyll Theme","rating":4.7,"rating_count":31,"description":"A creative portfolio and agency Jekyll theme with 12+ homepage layouts, 6 portfolio styles, and 4 blog layouts. Designed for agencies, freelancers, and creative professionals who want a stunning site in hours not days.","card_description":"Creative agency and portfolio theme — 12+ homepages, 6 portfolio styles, dark design.","price":79,"category":"Portfolio","card_image":"/assets/images/themes/miles-card.webp","theme_screenshots":["/assets/images/themes/miles-screenshot.webp","/assets/images/themes/miles-screenshot-2.webp","/assets/images/themes/miles-screenshot-3.webp"],"key_features":["12+ Homepages","6 Portfolio Styles","Agency Ready","4 Blog Layouts"],"demo_url":"https://miles-jekyll.tortoizthemes.com/","buy_url":"https://tortoizthemes.com/demo/miles/","author":"Tortoiz Themes","author_url":"https://tortoizthemes.com/","github_author_name":"tortoizthemes","support":"6 months","github_pages_compatible":true,"min_jekyll_version":"3.9","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2025-03-01","added_at":"2026-06-27","popular":true,"trending":false,"bestseller":false,"version":"1.0.0","license":"Commercial","features":["12+ unique creative homepage layouts to choose from","6 portfolio layout styles — masonry, grid, list, carousel, and more","4 blog layout styles for different editorial presentations","3 about page layouts for personal or team introductions","3 service layout styles for agency service showcases","8 additional essential inner page layouts","Modern and clean design on a 1170px grid system","Built with Bootstrap 4, fully responsive and cross-browser compatible","Google Fonts and Font Awesome icon font included","Pixel-perfect design with smooth unique effects","Easy to customise with well-structured code","Extended documentation included","Ideal for agencies, freelancers, consultants, creatives, and startups"],"slug":"miles","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/millennial","collection":"themes","next":{"path":"_themes/minima.md","relative_path":"_themes/minima.md","id":"/themes/minima","collection":"themes","url":"/themes/minima/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Minima Jekyll Theme","description":"Jekyll's built-in default theme. Minimal, clean, and battle-tested. The foundation every Jekyll developer knows.","key_features":["Jekyll Default","GitHub Pages","Dark Mode","Lightweight"],"card_description":"Jekyll's default theme — minimal, clean, and battle-tested.","category":"Blog","card_image":"/assets/images/themes/minima-card.webp","theme_screenshots":["/assets/images/themes/minima-screenshot.webp","/assets/images/themes/minima-screenshot-2.webp","/assets/images/themes/minima-screenshot-3.webp"],"demo_url":"https://jekyll.github.io/minima/","github_url":"https://github.com/jekyll/minima","author":"GitHub Community","github_author_name":"Jekyll","github_author_url":"https://github.com/jekyll","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.5","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2024-03-01","added_at":"2026-01-01","popular":true,"trending":false,"bestseller":false,"version":"2.1.1","license":"MIT","stars":3100,"forks":2800,"features":["Ultra-minimal layout","Dark mode support","Social links","Post listing","Feed and SEO built-in"],"slug":"minima","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Millennial is a clean, straightforward Jekyll blog theme designed for writers who want a no-nonsense publishing platform. The layout is minimal by design — no sidebars, no clutter, just posts.\n\nTag archive pages organise content for readers, and pagination handles large archives gracefully.\n\n**Who is it for?** Bloggers who want a lean, focused reading experience without any distracting design elements.\n","url":"/themes/millennial/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Millennial Jekyll Theme","description":"A minimalist, responsive Jekyll blog theme with a clean layout, tag support, pagination, and social share buttons.","key_features":["Tag Support","GitHub Pages","Social Sharing","Minimal Design"],"card_description":"Minimalist responsive blog with tag support and social share buttons.","category":"Blog","card_image":"/assets/images/themes/millennial-card.webp","theme_screenshots":["/assets/images/themes/millennial-screenshot.webp","/assets/images/themes/millennial-screenshot-2.webp","/assets/images/themes/millennial-screenshot-3.webp"],"demo_url":"https://lenpaul.github.io/Millennial/","github_url":"https://github.com/LeNPaul/Millennial","author":"GitHub Community","github_author_name":"LeNPaul","github_author_url":"https://github.com/LeNPaul","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate","jekyll-sitemap"],"updated_at":"2024-06-16","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":474,"forks":285,"features":["Clean minimal layout","Tag archive pages","Paginated post list","Social share buttons","Featured post images","Google Analytics","Disqus comments","RSS feed","GitHub Pages compatible","Mobile responsive"],"slug":"millennial","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/minima","collection":"themes","next":{"path":"_themes/minimal-mistakes.md","relative_path":"_themes/minimal-mistakes.md","excerpt":"<p>Minimal Mistakes is the undisputed king of Jekyll themes — with over 13,000 GitHub stars it is the most-starred and most-used Jekyll theme ever created. Built by Michael Rose over more than a decade of active development, it strikes the perfect balance between simplicity and power.</p>\n\n","previous":{"path":"_themes/minima.md","relative_path":"_themes/minima.md","id":"/themes/minima","collection":"themes","url":"/themes/minima/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Minima Jekyll Theme","description":"Jekyll's built-in default theme. Minimal, clean, and battle-tested. The foundation every Jekyll developer knows.","key_features":["Jekyll Default","GitHub Pages","Dark Mode","Lightweight"],"card_description":"Jekyll's default theme — minimal, clean, and battle-tested.","category":"Blog","card_image":"/assets/images/themes/minima-card.webp","theme_screenshots":["/assets/images/themes/minima-screenshot.webp","/assets/images/themes/minima-screenshot-2.webp","/assets/images/themes/minima-screenshot-3.webp"],"demo_url":"https://jekyll.github.io/minima/","github_url":"https://github.com/jekyll/minima","author":"GitHub Community","github_author_name":"Jekyll","github_author_url":"https://github.com/jekyll","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.5","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2024-03-01","added_at":"2026-01-01","popular":true,"trending":false,"bestseller":false,"version":"2.1.1","license":"MIT","stars":3100,"forks":2800,"features":["Ultra-minimal layout","Dark mode support","Social links","Post listing","Feed and SEO built-in"],"slug":"minima","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/minimal-mistakes","collection":"themes","next":{"path":"_themes/minimal.md","relative_path":"_themes/minimal.md","id":"/themes/minimal","collection":"themes","url":"/themes/minimal/","draft":false,"categories":["Personal"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Minimal Jekyll Theme","description":"The official minimal GitHub Pages Jekyll theme. Clean and lightweight with great default typography for personal projects and documentation.","key_features":["GitHub Pages","Ultra Minimal","Clean Typography","Official GH Theme"],"card_description":"Official minimal GitHub Pages theme — clean and lightweight.","category":"Personal","card_image":"/assets/images/themes/minimal-card.webp","theme_screenshots":["/assets/images/themes/minimal-screenshot.webp","/assets/images/themes/minimal-screenshot-2.webp","/assets/images/themes/minimal-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/minimal/","github_url":"https://github.com/pages-themes/minimal","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":600,"forks":500,"features":["Official GitHub Pages supported theme","Clean white minimal layout","Subtle header with site title","Responsive design","Single-line enable via _config.yml","No local setup required","Fast page loads"],"slug":"minimal","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Minimal Mistakes is the undisputed king of Jekyll themes — with over 13,000 GitHub stars it is the most-starred and most-used Jekyll theme ever created. Built by Michael Rose over more than a decade of active development, it strikes the perfect balance between simplicity and power.\n\nTwelve built-in colour skins let you switch the visual tone of your site with a single config change. Its documentation covers every feature in detail.\n\n**Who is it for?** Developers, technical writers, and bloggers who want a battle-tested, feature-complete Jekyll theme they can deploy today and customise for years.\n","url":"/themes/minimal-mistakes/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":true,"dark_mode":false,"responsive":true,"title":"Minimal Mistakes Jekyll Theme","description":"The most popular Jekyll theme on GitHub. A flexible two-column theme perfect for personal sites, blogs, documentation, and portfolios — with 12 layout skins.","key_features":["12 Layout Skins","GitHub Pages","Two-Column Layout","Portfolio Ready"],"card_description":"Most popular Jekyll theme — flexible two-column with 12 layout skins.","category":"Blog","card_image":"/assets/images/themes/minimal-mistakes-card.webp","theme_screenshots":["/assets/images/themes/minimal-mistakes-screenshot.webp","/assets/images/themes/minimal-mistakes-screenshot-2.webp","/assets/images/themes/minimal-mistakes-screenshot-3.webp"],"demo_url":"https://mmistakes.github.io/minimal-mistakes/","github_url":"https://github.com/mmistakes/minimal-mistakes","author":"GitHub Community","github_author_name":"Michael Rose","github_author_url":"https://github.com/mmistakes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.7","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-include-cache","jekyll-paginate"],"updated_at":"2024-03-01","added_at":"2026-01-02","popular":true,"trending":false,"bestseller":false,"version":"4.28.0","license":"MIT","stars":13300,"forks":9300,"features":["12 built-in colour skins","Flexible two-column layout","Responsive design","SEO optimised with jekyll-seo-tag","Built-in Lunr.js full-text search","Support for comments (Disqus, giscus)","Social sharing buttons","Author sidebar with bio and avatar","Google Analytics integration","Breadcrumb navigation"],"slug":"minimal-mistakes","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Minima is Jekyll's official default theme — the one that ships with every new Jekyll install. It's deliberately minimal: clean white background, sensible typography, and just enough structure to get a blog running without getting in the way.\n\nVersion 3.x adds dark mode support and social link icons, making it a surprisingly capable foundation despite its simplicity.\n\n**Who is it for?** Anyone just starting with Jekyll who wants a reliable, clean foundation they can customise or grow from.\n","url":"/themes/minima/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Minima Jekyll Theme","description":"Jekyll's built-in default theme. Minimal, clean, and battle-tested. The foundation every Jekyll developer knows.","key_features":["Jekyll Default","GitHub Pages","Dark Mode","Lightweight"],"card_description":"Jekyll's default theme — minimal, clean, and battle-tested.","category":"Blog","card_image":"/assets/images/themes/minima-card.webp","theme_screenshots":["/assets/images/themes/minima-screenshot.webp","/assets/images/themes/minima-screenshot-2.webp","/assets/images/themes/minima-screenshot-3.webp"],"demo_url":"https://jekyll.github.io/minima/","github_url":"https://github.com/jekyll/minima","author":"GitHub Community","github_author_name":"Jekyll","github_author_url":"https://github.com/jekyll","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.5","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2024-03-01","added_at":"2026-01-01","popular":true,"trending":false,"bestseller":false,"version":"2.1.1","license":"MIT","stars":3100,"forks":2800,"features":["Ultra-minimal layout","Dark mode support","Social links","Post listing","Feed and SEO built-in"],"slug":"minima","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/minimal-mistakes.md","relative_path":"_themes/minimal-mistakes.md","excerpt":"<p>Minimal Mistakes is the undisputed king of Jekyll themes — with over 13,000 GitHub stars it is the most-starred and most-used Jekyll theme ever created. Built by Michael Rose over more than a decade of active development, it strikes the perfect balance between simplicity and power.</p>\n\n","previous":{"path":"_themes/minima.md","relative_path":"_themes/minima.md","excerpt":"<p>Minima is Jekyll’s official default theme — the one that ships with every new Jekyll install. It’s deliberately minimal: clean white background, sensible typography, and just enough structure to get a blog running without getting in the way.</p>\n\n","previous":{"path":"_themes/millennial.md","relative_path":"_themes/millennial.md","id":"/themes/millennial","collection":"themes","url":"/themes/millennial/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Millennial Jekyll Theme","description":"A minimalist, responsive Jekyll blog theme with a clean layout, tag support, pagination, and social share buttons.","key_features":["Tag Support","GitHub Pages","Social Sharing","Minimal Design"],"card_description":"Minimalist responsive blog with tag support and social share buttons.","category":"Blog","card_image":"/assets/images/themes/millennial-card.webp","theme_screenshots":["/assets/images/themes/millennial-screenshot.webp","/assets/images/themes/millennial-screenshot-2.webp","/assets/images/themes/millennial-screenshot-3.webp"],"demo_url":"https://lenpaul.github.io/Millennial/","github_url":"https://github.com/LeNPaul/Millennial","author":"GitHub Community","github_author_name":"LeNPaul","github_author_url":"https://github.com/LeNPaul","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate","jekyll-sitemap"],"updated_at":"2024-06-16","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":474,"forks":285,"features":["Clean minimal layout","Tag archive pages","Paginated post list","Social share buttons","Featured post images","Google Analytics","Disqus comments","RSS feed","GitHub Pages compatible","Mobile responsive"],"slug":"millennial","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/minima","collection":"themes","next":{"path":"_themes/minimal-mistakes.md","relative_path":"_themes/minimal-mistakes.md","id":"/themes/minimal-mistakes","collection":"themes","url":"/themes/minimal-mistakes/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":true,"dark_mode":false,"responsive":true,"title":"Minimal Mistakes Jekyll Theme","description":"The most popular Jekyll theme on GitHub. A flexible two-column theme perfect for personal sites, blogs, documentation, and portfolios — with 12 layout skins.","key_features":["12 Layout Skins","GitHub Pages","Two-Column Layout","Portfolio Ready"],"card_description":"Most popular Jekyll theme — flexible two-column with 12 layout skins.","category":"Blog","card_image":"/assets/images/themes/minimal-mistakes-card.webp","theme_screenshots":["/assets/images/themes/minimal-mistakes-screenshot.webp","/assets/images/themes/minimal-mistakes-screenshot-2.webp","/assets/images/themes/minimal-mistakes-screenshot-3.webp"],"demo_url":"https://mmistakes.github.io/minimal-mistakes/","github_url":"https://github.com/mmistakes/minimal-mistakes","author":"GitHub Community","github_author_name":"Michael Rose","github_author_url":"https://github.com/mmistakes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.7","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-include-cache","jekyll-paginate"],"updated_at":"2024-03-01","added_at":"2026-01-02","popular":true,"trending":false,"bestseller":false,"version":"4.28.0","license":"MIT","stars":13300,"forks":9300,"features":["12 built-in colour skins","Flexible two-column layout","Responsive design","SEO optimised with jekyll-seo-tag","Built-in Lunr.js full-text search","Support for comments (Disqus, giscus)","Social sharing buttons","Author sidebar with bio and avatar","Google Analytics integration","Breadcrumb navigation"],"slug":"minimal-mistakes","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Minima is Jekyll's official default theme — the one that ships with every new Jekyll install. It's deliberately minimal: clean white background, sensible typography, and just enough structure to get a blog running without getting in the way.\n\nVersion 3.x adds dark mode support and social link icons, making it a surprisingly capable foundation despite its simplicity.\n\n**Who is it for?** Anyone just starting with Jekyll who wants a reliable, clean foundation they can customise or grow from.\n","url":"/themes/minima/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Minima Jekyll Theme","description":"Jekyll's built-in default theme. Minimal, clean, and battle-tested. The foundation every Jekyll developer knows.","key_features":["Jekyll Default","GitHub Pages","Dark Mode","Lightweight"],"card_description":"Jekyll's default theme — minimal, clean, and battle-tested.","category":"Blog","card_image":"/assets/images/themes/minima-card.webp","theme_screenshots":["/assets/images/themes/minima-screenshot.webp","/assets/images/themes/minima-screenshot-2.webp","/assets/images/themes/minima-screenshot-3.webp"],"demo_url":"https://jekyll.github.io/minima/","github_url":"https://github.com/jekyll/minima","author":"GitHub Community","github_author_name":"Jekyll","github_author_url":"https://github.com/jekyll","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.5","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2024-03-01","added_at":"2026-01-01","popular":true,"trending":false,"bestseller":false,"version":"2.1.1","license":"MIT","stars":3100,"forks":2800,"features":["Ultra-minimal layout","Dark mode support","Social links","Post listing","Feed and SEO built-in"],"slug":"minima","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/minimal-mistakes","collection":"themes","next":{"path":"_themes/minimal.md","relative_path":"_themes/minimal.md","excerpt":"<p>Minimal is exactly what its name promises — GitHub’s most stripped-back official theme. A clean white page, a simple header, and nothing to get in the way of your content. It’s the choice when you want a professional online presence as quickly as possible.</p>\n\n","previous":{"path":"_themes/minimal-mistakes.md","relative_path":"_themes/minimal-mistakes.md","id":"/themes/minimal-mistakes","collection":"themes","url":"/themes/minimal-mistakes/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":true,"dark_mode":false,"responsive":true,"title":"Minimal Mistakes Jekyll Theme","description":"The most popular Jekyll theme on GitHub. A flexible two-column theme perfect for personal sites, blogs, documentation, and portfolios — with 12 layout skins.","key_features":["12 Layout Skins","GitHub Pages","Two-Column Layout","Portfolio Ready"],"card_description":"Most popular Jekyll theme — flexible two-column with 12 layout skins.","category":"Blog","card_image":"/assets/images/themes/minimal-mistakes-card.webp","theme_screenshots":["/assets/images/themes/minimal-mistakes-screenshot.webp","/assets/images/themes/minimal-mistakes-screenshot-2.webp","/assets/images/themes/minimal-mistakes-screenshot-3.webp"],"demo_url":"https://mmistakes.github.io/minimal-mistakes/","github_url":"https://github.com/mmistakes/minimal-mistakes","author":"GitHub Community","github_author_name":"Michael Rose","github_author_url":"https://github.com/mmistakes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.7","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-include-cache","jekyll-paginate"],"updated_at":"2024-03-01","added_at":"2026-01-02","popular":true,"trending":false,"bestseller":false,"version":"4.28.0","license":"MIT","stars":13300,"forks":9300,"features":["12 built-in colour skins","Flexible two-column layout","Responsive design","SEO optimised with jekyll-seo-tag","Built-in Lunr.js full-text search","Support for comments (Disqus, giscus)","Social sharing buttons","Author sidebar with bio and avatar","Google Analytics integration","Breadcrumb navigation"],"slug":"minimal-mistakes","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/minimal","collection":"themes","next":{"path":"_themes/modern-resume-theme.md","relative_path":"_themes/modern-resume-theme.md","id":"/themes/modern-resume-theme","collection":"themes","url":"/themes/modern-resume-theme/","draft":false,"categories":["Resume / CV"],"layout":"theme","price_type":"free","featured":true,"dark_mode":false,"responsive":true,"title":"Modern Resume Theme Jekyll Theme","description":"A sleek, single-page resume/CV theme for Jekyll. Dark header, clean timeline layout, and sections for experience, education, skills, and projects.","key_features":["Single-Page CV","Timeline Layout","GitHub Pages","Dark Header"],"card_description":"Sleek single-page resume/CV with timeline and skills sections.","category":"Resume / CV","card_image":"/assets/images/themes/modern-resume-theme-card.webp","theme_screenshots":["/assets/images/themes/modern-resume-theme-screenshot.webp","/assets/images/themes/modern-resume-theme-screenshot-2.webp","/assets/images/themes/modern-resume-theme-screenshot-3.webp"],"demo_url":"https://sproogen.github.io/modern-resume-theme/","github_url":"https://github.com/sproogen/modern-resume-theme","author":"GitHub Community","github_author_name":"James Grant","github_author_url":"https://github.com/sproogen","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-seo-tag"],"updated_at":"2024-01-01","added_at":"2026-02-28","popular":false,"trending":false,"bestseller":false,"version":"2.0.0","license":"MIT","stars":4400,"forks":4700,"features":["YAML-driven content","Timeline for experience and education","Skills section","Projects section","Dark profile header","Print-friendly"],"slug":"modern-resume-theme","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Minimal is exactly what its name promises — GitHub's most stripped-back official theme. A clean white page, a simple header, and nothing to get in the way of your content. It's the choice when you want a professional online presence as quickly as possible.\n\nAs an official GitHub Pages theme, it can be activated with a single `theme:` line in `_config.yml`, making it one of the fastest paths from a GitHub repository to a live website.\n\n**Who is it for?** Anyone who wants a simple, professional-looking GitHub Pages site with minimal fuss and maximum speed.\n","url":"/themes/minimal/","draft":false,"categories":["Personal"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Minimal Jekyll Theme","description":"The official minimal GitHub Pages Jekyll theme. Clean and lightweight with great default typography for personal projects and documentation.","key_features":["GitHub Pages","Ultra Minimal","Clean Typography","Official GH Theme"],"card_description":"Official minimal GitHub Pages theme — clean and lightweight.","category":"Personal","card_image":"/assets/images/themes/minimal-card.webp","theme_screenshots":["/assets/images/themes/minimal-screenshot.webp","/assets/images/themes/minimal-screenshot-2.webp","/assets/images/themes/minimal-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/minimal/","github_url":"https://github.com/pages-themes/minimal","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":600,"forks":500,"features":["Official GitHub Pages supported theme","Clean white minimal layout","Subtle header with site title","Responsive design","Single-line enable via _config.yml","No local setup required","Fast page loads"],"slug":"minimal","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Minimal Mistakes is the undisputed king of Jekyll themes — with over 13,000 GitHub stars it is the most-starred and most-used Jekyll theme ever created. Built by Michael Rose over more than a decade of active development, it strikes the perfect balance between simplicity and power.\n\nTwelve built-in colour skins let you switch the visual tone of your site with a single config change. Its documentation covers every feature in detail.\n\n**Who is it for?** Developers, technical writers, and bloggers who want a battle-tested, feature-complete Jekyll theme they can deploy today and customise for years.\n","url":"/themes/minimal-mistakes/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":true,"dark_mode":false,"responsive":true,"title":"Minimal Mistakes Jekyll Theme","description":"The most popular Jekyll theme on GitHub. A flexible two-column theme perfect for personal sites, blogs, documentation, and portfolios — with 12 layout skins.","key_features":["12 Layout Skins","GitHub Pages","Two-Column Layout","Portfolio Ready"],"card_description":"Most popular Jekyll theme — flexible two-column with 12 layout skins.","category":"Blog","card_image":"/assets/images/themes/minimal-mistakes-card.webp","theme_screenshots":["/assets/images/themes/minimal-mistakes-screenshot.webp","/assets/images/themes/minimal-mistakes-screenshot-2.webp","/assets/images/themes/minimal-mistakes-screenshot-3.webp"],"demo_url":"https://mmistakes.github.io/minimal-mistakes/","github_url":"https://github.com/mmistakes/minimal-mistakes","author":"GitHub Community","github_author_name":"Michael Rose","github_author_url":"https://github.com/mmistakes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.7","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-include-cache","jekyll-paginate"],"updated_at":"2024-03-01","added_at":"2026-01-02","popular":true,"trending":false,"bestseller":false,"version":"4.28.0","license":"MIT","stars":13300,"forks":9300,"features":["12 built-in colour skins","Flexible two-column layout","Responsive design","SEO optimised with jekyll-seo-tag","Built-in Lunr.js full-text search","Support for comments (Disqus, giscus)","Social sharing buttons","Author sidebar with bio and avatar","Google Analytics integration","Breadcrumb navigation"],"slug":"minimal-mistakes","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/minimal.md","relative_path":"_themes/minimal.md","excerpt":"<p>Minimal is exactly what its name promises — GitHub’s most stripped-back official theme. A clean white page, a simple header, and nothing to get in the way of your content. It’s the choice when you want a professional online presence as quickly as possible.</p>\n\n","previous":{"path":"_themes/minimal-mistakes.md","relative_path":"_themes/minimal-mistakes.md","excerpt":"<p>Minimal Mistakes is the undisputed king of Jekyll themes — with over 13,000 GitHub stars it is the most-starred and most-used Jekyll theme ever created. Built by Michael Rose over more than a decade of active development, it strikes the perfect balance between simplicity and power.</p>\n\n","previous":{"path":"_themes/minima.md","relative_path":"_themes/minima.md","id":"/themes/minima","collection":"themes","url":"/themes/minima/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Minima Jekyll Theme","description":"Jekyll's built-in default theme. Minimal, clean, and battle-tested. The foundation every Jekyll developer knows.","key_features":["Jekyll Default","GitHub Pages","Dark Mode","Lightweight"],"card_description":"Jekyll's default theme — minimal, clean, and battle-tested.","category":"Blog","card_image":"/assets/images/themes/minima-card.webp","theme_screenshots":["/assets/images/themes/minima-screenshot.webp","/assets/images/themes/minima-screenshot-2.webp","/assets/images/themes/minima-screenshot-3.webp"],"demo_url":"https://jekyll.github.io/minima/","github_url":"https://github.com/jekyll/minima","author":"GitHub Community","github_author_name":"Jekyll","github_author_url":"https://github.com/jekyll","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.5","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2024-03-01","added_at":"2026-01-01","popular":true,"trending":false,"bestseller":false,"version":"2.1.1","license":"MIT","stars":3100,"forks":2800,"features":["Ultra-minimal layout","Dark mode support","Social links","Post listing","Feed and SEO built-in"],"slug":"minima","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/minimal-mistakes","collection":"themes","next":{"path":"_themes/minimal.md","relative_path":"_themes/minimal.md","id":"/themes/minimal","collection":"themes","url":"/themes/minimal/","draft":false,"categories":["Personal"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Minimal Jekyll Theme","description":"The official minimal GitHub Pages Jekyll theme. Clean and lightweight with great default typography for personal projects and documentation.","key_features":["GitHub Pages","Ultra Minimal","Clean Typography","Official GH Theme"],"card_description":"Official minimal GitHub Pages theme — clean and lightweight.","category":"Personal","card_image":"/assets/images/themes/minimal-card.webp","theme_screenshots":["/assets/images/themes/minimal-screenshot.webp","/assets/images/themes/minimal-screenshot-2.webp","/assets/images/themes/minimal-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/minimal/","github_url":"https://github.com/pages-themes/minimal","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":600,"forks":500,"features":["Official GitHub Pages supported theme","Clean white minimal layout","Subtle header with site title","Responsive design","Single-line enable via _config.yml","No local setup required","Fast page loads"],"slug":"minimal","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Minimal Mistakes is the undisputed king of Jekyll themes — with over 13,000 GitHub stars it is the most-starred and most-used Jekyll theme ever created. Built by Michael Rose over more than a decade of active development, it strikes the perfect balance between simplicity and power.\n\nTwelve built-in colour skins let you switch the visual tone of your site with a single config change. Its documentation covers every feature in detail.\n\n**Who is it for?** Developers, technical writers, and bloggers who want a battle-tested, feature-complete Jekyll theme they can deploy today and customise for years.\n","url":"/themes/minimal-mistakes/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":true,"dark_mode":false,"responsive":true,"title":"Minimal Mistakes Jekyll Theme","description":"The most popular Jekyll theme on GitHub. A flexible two-column theme perfect for personal sites, blogs, documentation, and portfolios — with 12 layout skins.","key_features":["12 Layout Skins","GitHub Pages","Two-Column Layout","Portfolio Ready"],"card_description":"Most popular Jekyll theme — flexible two-column with 12 layout skins.","category":"Blog","card_image":"/assets/images/themes/minimal-mistakes-card.webp","theme_screenshots":["/assets/images/themes/minimal-mistakes-screenshot.webp","/assets/images/themes/minimal-mistakes-screenshot-2.webp","/assets/images/themes/minimal-mistakes-screenshot-3.webp"],"demo_url":"https://mmistakes.github.io/minimal-mistakes/","github_url":"https://github.com/mmistakes/minimal-mistakes","author":"GitHub Community","github_author_name":"Michael Rose","github_author_url":"https://github.com/mmistakes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.7","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-include-cache","jekyll-paginate"],"updated_at":"2024-03-01","added_at":"2026-01-02","popular":true,"trending":false,"bestseller":false,"version":"4.28.0","license":"MIT","stars":13300,"forks":9300,"features":["12 built-in colour skins","Flexible two-column layout","Responsive design","SEO optimised with jekyll-seo-tag","Built-in Lunr.js full-text search","Support for comments (Disqus, giscus)","Social sharing buttons","Author sidebar with bio and avatar","Google Analytics integration","Breadcrumb navigation"],"slug":"minimal-mistakes","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/minimal","collection":"themes","next":{"path":"_themes/modern-resume-theme.md","relative_path":"_themes/modern-resume-theme.md","excerpt":"<p>Modern Resume Theme turns a YAML configuration file into a polished, single-page CV. You fill in your experience, education, and skills in <code class=\"language-plaintext highlighter-rouge\">_config.yml</code> — the theme handles all the layout and styling.</p>\n\n","previous":{"path":"_themes/minimal.md","relative_path":"_themes/minimal.md","id":"/themes/minimal","collection":"themes","url":"/themes/minimal/","draft":false,"categories":["Personal"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Minimal Jekyll Theme","description":"The official minimal GitHub Pages Jekyll theme. Clean and lightweight with great default typography for personal projects and documentation.","key_features":["GitHub Pages","Ultra Minimal","Clean Typography","Official GH Theme"],"card_description":"Official minimal GitHub Pages theme — clean and lightweight.","category":"Personal","card_image":"/assets/images/themes/minimal-card.webp","theme_screenshots":["/assets/images/themes/minimal-screenshot.webp","/assets/images/themes/minimal-screenshot-2.webp","/assets/images/themes/minimal-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/minimal/","github_url":"https://github.com/pages-themes/minimal","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":600,"forks":500,"features":["Official GitHub Pages supported theme","Clean white minimal layout","Subtle header with site title","Responsive design","Single-line enable via _config.yml","No local setup required","Fast page loads"],"slug":"minimal","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/modern-resume-theme","collection":"themes","next":{"path":"_themes/moonwalk.md","relative_path":"_themes/moonwalk.md","id":"/themes/moonwalk","collection":"themes","url":"/themes/moonwalk/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Moonwalk Jekyll Theme","description":"A dark, minimal Jekyll blog theme with a focus on typography and whitespace. Elegant simplicity for serious writers.","key_features":["Dark Mode","Typography Focus","Minimal Design","GitHub Pages"],"card_description":"Dark, minimal blog focused on typography and generous whitespace.","category":"Blog","card_image":"/assets/images/themes/moonwalk-card.webp","theme_screenshots":["/assets/images/themes/moonwalk-screenshot.webp","/assets/images/themes/moonwalk-screenshot-2.webp","/assets/images/themes/moonwalk-screenshot-3.webp"],"demo_url":"https://abhinavs.github.io/moonwalk/","github_url":"https://github.com/abhinavs/moonwalk","author":"GitHub Community","github_author_name":"Abhinav Saxena","github_author_url":"https://github.com/abhinavs","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-feed","jekyll-seo-tag","jekyll-sitemap"],"updated_at":"2023-07-01","added_at":"2026-03-12","popular":false,"trending":true,"bestseller":false,"version":"0.5.0","license":"MIT","stars":1500,"forks":280,"features":["Dark minimal design","Typography-focused","Fast loading","soopr social sharing","Clean post layout"],"slug":"moonwalk","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Modern Resume Theme turns a YAML configuration file into a polished, single-page CV. You fill in your experience, education, and skills in `_config.yml` — the theme handles all the layout and styling.\n\nThe dark header with avatar creates a professional first impression, and the clean timeline makes career history easy to scan.\n\n**Who is it for?** Developers, designers, and professionals who want a clean, online CV hosted on GitHub Pages.\n","url":"/themes/modern-resume-theme/","draft":false,"categories":["Resume / CV"],"layout":"theme","price_type":"free","featured":true,"dark_mode":false,"responsive":true,"title":"Modern Resume Theme Jekyll Theme","description":"A sleek, single-page resume/CV theme for Jekyll. Dark header, clean timeline layout, and sections for experience, education, skills, and projects.","key_features":["Single-Page CV","Timeline Layout","GitHub Pages","Dark Header"],"card_description":"Sleek single-page resume/CV with timeline and skills sections.","category":"Resume / CV","card_image":"/assets/images/themes/modern-resume-theme-card.webp","theme_screenshots":["/assets/images/themes/modern-resume-theme-screenshot.webp","/assets/images/themes/modern-resume-theme-screenshot-2.webp","/assets/images/themes/modern-resume-theme-screenshot-3.webp"],"demo_url":"https://sproogen.github.io/modern-resume-theme/","github_url":"https://github.com/sproogen/modern-resume-theme","author":"GitHub Community","github_author_name":"James Grant","github_author_url":"https://github.com/sproogen","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-seo-tag"],"updated_at":"2024-01-01","added_at":"2026-02-28","popular":false,"trending":false,"bestseller":false,"version":"2.0.0","license":"MIT","stars":4400,"forks":4700,"features":["YAML-driven content","Timeline for experience and education","Skills section","Projects section","Dark profile header","Print-friendly"],"slug":"modern-resume-theme","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Minimal is exactly what its name promises — GitHub's most stripped-back official theme. A clean white page, a simple header, and nothing to get in the way of your content. It's the choice when you want a professional online presence as quickly as possible.\n\nAs an official GitHub Pages theme, it can be activated with a single `theme:` line in `_config.yml`, making it one of the fastest paths from a GitHub repository to a live website.\n\n**Who is it for?** Anyone who wants a simple, professional-looking GitHub Pages site with minimal fuss and maximum speed.\n","url":"/themes/minimal/","draft":false,"categories":["Personal"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Minimal Jekyll Theme","description":"The official minimal GitHub Pages Jekyll theme. Clean and lightweight with great default typography for personal projects and documentation.","key_features":["GitHub Pages","Ultra Minimal","Clean Typography","Official GH Theme"],"card_description":"Official minimal GitHub Pages theme — clean and lightweight.","category":"Personal","card_image":"/assets/images/themes/minimal-card.webp","theme_screenshots":["/assets/images/themes/minimal-screenshot.webp","/assets/images/themes/minimal-screenshot-2.webp","/assets/images/themes/minimal-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/minimal/","github_url":"https://github.com/pages-themes/minimal","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":600,"forks":500,"features":["Official GitHub Pages supported theme","Clean white minimal layout","Subtle header with site title","Responsive design","Single-line enable via _config.yml","No local setup required","Fast page loads"],"slug":"minimal","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/modern-resume-theme.md","relative_path":"_themes/modern-resume-theme.md","excerpt":"<p>Modern Resume Theme turns a YAML configuration file into a polished, single-page CV. You fill in your experience, education, and skills in <code class=\"language-plaintext highlighter-rouge\">_config.yml</code> — the theme handles all the layout and styling.</p>\n\n","previous":{"path":"_themes/minimal.md","relative_path":"_themes/minimal.md","excerpt":"<p>Minimal is exactly what its name promises — GitHub’s most stripped-back official theme. A clean white page, a simple header, and nothing to get in the way of your content. It’s the choice when you want a professional online presence as quickly as possible.</p>\n\n","previous":{"path":"_themes/minimal-mistakes.md","relative_path":"_themes/minimal-mistakes.md","id":"/themes/minimal-mistakes","collection":"themes","url":"/themes/minimal-mistakes/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":true,"dark_mode":false,"responsive":true,"title":"Minimal Mistakes Jekyll Theme","description":"The most popular Jekyll theme on GitHub. A flexible two-column theme perfect for personal sites, blogs, documentation, and portfolios — with 12 layout skins.","key_features":["12 Layout Skins","GitHub Pages","Two-Column Layout","Portfolio Ready"],"card_description":"Most popular Jekyll theme — flexible two-column with 12 layout skins.","category":"Blog","card_image":"/assets/images/themes/minimal-mistakes-card.webp","theme_screenshots":["/assets/images/themes/minimal-mistakes-screenshot.webp","/assets/images/themes/minimal-mistakes-screenshot-2.webp","/assets/images/themes/minimal-mistakes-screenshot-3.webp"],"demo_url":"https://mmistakes.github.io/minimal-mistakes/","github_url":"https://github.com/mmistakes/minimal-mistakes","author":"GitHub Community","github_author_name":"Michael Rose","github_author_url":"https://github.com/mmistakes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.7","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-include-cache","jekyll-paginate"],"updated_at":"2024-03-01","added_at":"2026-01-02","popular":true,"trending":false,"bestseller":false,"version":"4.28.0","license":"MIT","stars":13300,"forks":9300,"features":["12 built-in colour skins","Flexible two-column layout","Responsive design","SEO optimised with jekyll-seo-tag","Built-in Lunr.js full-text search","Support for comments (Disqus, giscus)","Social sharing buttons","Author sidebar with bio and avatar","Google Analytics integration","Breadcrumb navigation"],"slug":"minimal-mistakes","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/minimal","collection":"themes","next":{"path":"_themes/modern-resume-theme.md","relative_path":"_themes/modern-resume-theme.md","id":"/themes/modern-resume-theme","collection":"themes","url":"/themes/modern-resume-theme/","draft":false,"categories":["Resume / CV"],"layout":"theme","price_type":"free","featured":true,"dark_mode":false,"responsive":true,"title":"Modern Resume Theme Jekyll Theme","description":"A sleek, single-page resume/CV theme for Jekyll. Dark header, clean timeline layout, and sections for experience, education, skills, and projects.","key_features":["Single-Page CV","Timeline Layout","GitHub Pages","Dark Header"],"card_description":"Sleek single-page resume/CV with timeline and skills sections.","category":"Resume / CV","card_image":"/assets/images/themes/modern-resume-theme-card.webp","theme_screenshots":["/assets/images/themes/modern-resume-theme-screenshot.webp","/assets/images/themes/modern-resume-theme-screenshot-2.webp","/assets/images/themes/modern-resume-theme-screenshot-3.webp"],"demo_url":"https://sproogen.github.io/modern-resume-theme/","github_url":"https://github.com/sproogen/modern-resume-theme","author":"GitHub Community","github_author_name":"James Grant","github_author_url":"https://github.com/sproogen","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-seo-tag"],"updated_at":"2024-01-01","added_at":"2026-02-28","popular":false,"trending":false,"bestseller":false,"version":"2.0.0","license":"MIT","stars":4400,"forks":4700,"features":["YAML-driven content","Timeline for experience and education","Skills section","Projects section","Dark profile header","Print-friendly"],"slug":"modern-resume-theme","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Minimal is exactly what its name promises — GitHub's most stripped-back official theme. A clean white page, a simple header, and nothing to get in the way of your content. It's the choice when you want a professional online presence as quickly as possible.\n\nAs an official GitHub Pages theme, it can be activated with a single `theme:` line in `_config.yml`, making it one of the fastest paths from a GitHub repository to a live website.\n\n**Who is it for?** Anyone who wants a simple, professional-looking GitHub Pages site with minimal fuss and maximum speed.\n","url":"/themes/minimal/","draft":false,"categories":["Personal"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Minimal Jekyll Theme","description":"The official minimal GitHub Pages Jekyll theme. Clean and lightweight with great default typography for personal projects and documentation.","key_features":["GitHub Pages","Ultra Minimal","Clean Typography","Official GH Theme"],"card_description":"Official minimal GitHub Pages theme — clean and lightweight.","category":"Personal","card_image":"/assets/images/themes/minimal-card.webp","theme_screenshots":["/assets/images/themes/minimal-screenshot.webp","/assets/images/themes/minimal-screenshot-2.webp","/assets/images/themes/minimal-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/minimal/","github_url":"https://github.com/pages-themes/minimal","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":600,"forks":500,"features":["Official GitHub Pages supported theme","Clean white minimal layout","Subtle header with site title","Responsive design","Single-line enable via _config.yml","No local setup required","Fast page loads"],"slug":"minimal","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/modern-resume-theme","collection":"themes","next":{"path":"_themes/moonwalk.md","relative_path":"_themes/moonwalk.md","excerpt":"<p>Moonwalk is a dark, minimal Jekyll blog theme that puts your words first. No sidebars, no carousels, no social widgets cluttering the margins — just clean typography on a deep background that makes reading a pleasure at any hour.</p>\n\n","previous":{"path":"_themes/modern-resume-theme.md","relative_path":"_themes/modern-resume-theme.md","id":"/themes/modern-resume-theme","collection":"themes","url":"/themes/modern-resume-theme/","draft":false,"categories":["Resume / CV"],"layout":"theme","price_type":"free","featured":true,"dark_mode":false,"responsive":true,"title":"Modern Resume Theme Jekyll Theme","description":"A sleek, single-page resume/CV theme for Jekyll. Dark header, clean timeline layout, and sections for experience, education, skills, and projects.","key_features":["Single-Page CV","Timeline Layout","GitHub Pages","Dark Header"],"card_description":"Sleek single-page resume/CV with timeline and skills sections.","category":"Resume / CV","card_image":"/assets/images/themes/modern-resume-theme-card.webp","theme_screenshots":["/assets/images/themes/modern-resume-theme-screenshot.webp","/assets/images/themes/modern-resume-theme-screenshot-2.webp","/assets/images/themes/modern-resume-theme-screenshot-3.webp"],"demo_url":"https://sproogen.github.io/modern-resume-theme/","github_url":"https://github.com/sproogen/modern-resume-theme","author":"GitHub Community","github_author_name":"James Grant","github_author_url":"https://github.com/sproogen","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-seo-tag"],"updated_at":"2024-01-01","added_at":"2026-02-28","popular":false,"trending":false,"bestseller":false,"version":"2.0.0","license":"MIT","stars":4400,"forks":4700,"features":["YAML-driven content","Timeline for experience and education","Skills section","Projects section","Dark profile header","Print-friendly"],"slug":"modern-resume-theme","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/moonwalk","collection":"themes","next":{"path":"_themes/mundana.md","relative_path":"_themes/mundana.md","id":"/themes/mundana","collection":"themes","url":"/themes/mundana/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Mundana Jekyll Theme","description":"A modern Jekyll theme for bloggers built with Bootstrap 4. Features featured posts, category pages, newsletter signup, and clean card layouts.","key_features":["Newsletter Signup","Featured Posts","Category Pages","GitHub Pages"],"card_description":"Modern Bootstrap 4 blog with featured posts and newsletter signup.","category":"Blog","card_image":"/assets/images/themes/mundana-card.webp","theme_screenshots":["/assets/images/themes/mundana-screenshot.webp","/assets/images/themes/mundana-screenshot-2.webp","/assets/images/themes/mundana-screenshot-3.webp"],"demo_url":"https://mundana.amitmerchant.com/","github_url":"https://github.com/wowthemesnet/mundana-theme-jekyll","author":"GitHub Community","github_author_name":"wowthemesnet","github_author_url":"https://github.com/wowthemesnet","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate","jekyll-sitemap"],"updated_at":"2024-03-24","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":784,"forks":398,"features":["Bootstrap 4 powered","Featured hero post","Card-based post grid","Category archive pages","Newsletter signup section","Author profile pages","Related posts","Social sharing","Google Analytics","GitHub Pages compatible"],"slug":"mundana","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Moonwalk is a dark, minimal Jekyll blog theme that puts your words first. No sidebars, no carousels, no social widgets cluttering the margins — just clean typography on a deep background that makes reading a pleasure at any hour.\n\n**Who is it for?** Writers, thinkers, and bloggers who want a dark, distraction-free writing environment that readers will appreciate.\n","url":"/themes/moonwalk/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Moonwalk Jekyll Theme","description":"A dark, minimal Jekyll blog theme with a focus on typography and whitespace. Elegant simplicity for serious writers.","key_features":["Dark Mode","Typography Focus","Minimal Design","GitHub Pages"],"card_description":"Dark, minimal blog focused on typography and generous whitespace.","category":"Blog","card_image":"/assets/images/themes/moonwalk-card.webp","theme_screenshots":["/assets/images/themes/moonwalk-screenshot.webp","/assets/images/themes/moonwalk-screenshot-2.webp","/assets/images/themes/moonwalk-screenshot-3.webp"],"demo_url":"https://abhinavs.github.io/moonwalk/","github_url":"https://github.com/abhinavs/moonwalk","author":"GitHub Community","github_author_name":"Abhinav Saxena","github_author_url":"https://github.com/abhinavs","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-feed","jekyll-seo-tag","jekyll-sitemap"],"updated_at":"2023-07-01","added_at":"2026-03-12","popular":false,"trending":true,"bestseller":false,"version":"0.5.0","license":"MIT","stars":1500,"forks":280,"features":["Dark minimal design","Typography-focused","Fast loading","soopr social sharing","Clean post layout"],"slug":"moonwalk","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Modern Resume Theme turns a YAML configuration file into a polished, single-page CV. You fill in your experience, education, and skills in `_config.yml` — the theme handles all the layout and styling.\n\nThe dark header with avatar creates a professional first impression, and the clean timeline makes career history easy to scan.\n\n**Who is it for?** Developers, designers, and professionals who want a clean, online CV hosted on GitHub Pages.\n","url":"/themes/modern-resume-theme/","draft":false,"categories":["Resume / CV"],"layout":"theme","price_type":"free","featured":true,"dark_mode":false,"responsive":true,"title":"Modern Resume Theme Jekyll Theme","description":"A sleek, single-page resume/CV theme for Jekyll. Dark header, clean timeline layout, and sections for experience, education, skills, and projects.","key_features":["Single-Page CV","Timeline Layout","GitHub Pages","Dark Header"],"card_description":"Sleek single-page resume/CV with timeline and skills sections.","category":"Resume / CV","card_image":"/assets/images/themes/modern-resume-theme-card.webp","theme_screenshots":["/assets/images/themes/modern-resume-theme-screenshot.webp","/assets/images/themes/modern-resume-theme-screenshot-2.webp","/assets/images/themes/modern-resume-theme-screenshot-3.webp"],"demo_url":"https://sproogen.github.io/modern-resume-theme/","github_url":"https://github.com/sproogen/modern-resume-theme","author":"GitHub Community","github_author_name":"James Grant","github_author_url":"https://github.com/sproogen","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-seo-tag"],"updated_at":"2024-01-01","added_at":"2026-02-28","popular":false,"trending":false,"bestseller":false,"version":"2.0.0","license":"MIT","stars":4400,"forks":4700,"features":["YAML-driven content","Timeline for experience and education","Skills section","Projects section","Dark profile header","Print-friendly"],"slug":"modern-resume-theme","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/moonwalk.md","relative_path":"_themes/moonwalk.md","excerpt":"<p>Moonwalk is a dark, minimal Jekyll blog theme that puts your words first. No sidebars, no carousels, no social widgets cluttering the margins — just clean typography on a deep background that makes reading a pleasure at any hour.</p>\n\n","previous":{"path":"_themes/modern-resume-theme.md","relative_path":"_themes/modern-resume-theme.md","excerpt":"<p>Modern Resume Theme turns a YAML configuration file into a polished, single-page CV. You fill in your experience, education, and skills in <code class=\"language-plaintext highlighter-rouge\">_config.yml</code> — the theme handles all the layout and styling.</p>\n\n","previous":{"path":"_themes/minimal.md","relative_path":"_themes/minimal.md","id":"/themes/minimal","collection":"themes","url":"/themes/minimal/","draft":false,"categories":["Personal"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Minimal Jekyll Theme","description":"The official minimal GitHub Pages Jekyll theme. Clean and lightweight with great default typography for personal projects and documentation.","key_features":["GitHub Pages","Ultra Minimal","Clean Typography","Official GH Theme"],"card_description":"Official minimal GitHub Pages theme — clean and lightweight.","category":"Personal","card_image":"/assets/images/themes/minimal-card.webp","theme_screenshots":["/assets/images/themes/minimal-screenshot.webp","/assets/images/themes/minimal-screenshot-2.webp","/assets/images/themes/minimal-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/minimal/","github_url":"https://github.com/pages-themes/minimal","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":600,"forks":500,"features":["Official GitHub Pages supported theme","Clean white minimal layout","Subtle header with site title","Responsive design","Single-line enable via _config.yml","No local setup required","Fast page loads"],"slug":"minimal","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/modern-resume-theme","collection":"themes","next":{"path":"_themes/moonwalk.md","relative_path":"_themes/moonwalk.md","id":"/themes/moonwalk","collection":"themes","url":"/themes/moonwalk/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Moonwalk Jekyll Theme","description":"A dark, minimal Jekyll blog theme with a focus on typography and whitespace. Elegant simplicity for serious writers.","key_features":["Dark Mode","Typography Focus","Minimal Design","GitHub Pages"],"card_description":"Dark, minimal blog focused on typography and generous whitespace.","category":"Blog","card_image":"/assets/images/themes/moonwalk-card.webp","theme_screenshots":["/assets/images/themes/moonwalk-screenshot.webp","/assets/images/themes/moonwalk-screenshot-2.webp","/assets/images/themes/moonwalk-screenshot-3.webp"],"demo_url":"https://abhinavs.github.io/moonwalk/","github_url":"https://github.com/abhinavs/moonwalk","author":"GitHub Community","github_author_name":"Abhinav Saxena","github_author_url":"https://github.com/abhinavs","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-feed","jekyll-seo-tag","jekyll-sitemap"],"updated_at":"2023-07-01","added_at":"2026-03-12","popular":false,"trending":true,"bestseller":false,"version":"0.5.0","license":"MIT","stars":1500,"forks":280,"features":["Dark minimal design","Typography-focused","Fast loading","soopr social sharing","Clean post layout"],"slug":"moonwalk","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Modern Resume Theme turns a YAML configuration file into a polished, single-page CV. You fill in your experience, education, and skills in `_config.yml` — the theme handles all the layout and styling.\n\nThe dark header with avatar creates a professional first impression, and the clean timeline makes career history easy to scan.\n\n**Who is it for?** Developers, designers, and professionals who want a clean, online CV hosted on GitHub Pages.\n","url":"/themes/modern-resume-theme/","draft":false,"categories":["Resume / CV"],"layout":"theme","price_type":"free","featured":true,"dark_mode":false,"responsive":true,"title":"Modern Resume Theme Jekyll Theme","description":"A sleek, single-page resume/CV theme for Jekyll. Dark header, clean timeline layout, and sections for experience, education, skills, and projects.","key_features":["Single-Page CV","Timeline Layout","GitHub Pages","Dark Header"],"card_description":"Sleek single-page resume/CV with timeline and skills sections.","category":"Resume / CV","card_image":"/assets/images/themes/modern-resume-theme-card.webp","theme_screenshots":["/assets/images/themes/modern-resume-theme-screenshot.webp","/assets/images/themes/modern-resume-theme-screenshot-2.webp","/assets/images/themes/modern-resume-theme-screenshot-3.webp"],"demo_url":"https://sproogen.github.io/modern-resume-theme/","github_url":"https://github.com/sproogen/modern-resume-theme","author":"GitHub Community","github_author_name":"James Grant","github_author_url":"https://github.com/sproogen","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-seo-tag"],"updated_at":"2024-01-01","added_at":"2026-02-28","popular":false,"trending":false,"bestseller":false,"version":"2.0.0","license":"MIT","stars":4400,"forks":4700,"features":["YAML-driven content","Timeline for experience and education","Skills section","Projects section","Dark profile header","Print-friendly"],"slug":"modern-resume-theme","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/moonwalk","collection":"themes","next":{"path":"_themes/mundana.md","relative_path":"_themes/mundana.md","excerpt":"<p>Mundana is a modern, publication-style Jekyll theme from WowThemes.net. The homepage features a large hero post followed by a clean card grid — giving it the feel of a professional editorial site.</p>\n\n","previous":{"path":"_themes/moonwalk.md","relative_path":"_themes/moonwalk.md","id":"/themes/moonwalk","collection":"themes","url":"/themes/moonwalk/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Moonwalk Jekyll Theme","description":"A dark, minimal Jekyll blog theme with a focus on typography and whitespace. Elegant simplicity for serious writers.","key_features":["Dark Mode","Typography Focus","Minimal Design","GitHub Pages"],"card_description":"Dark, minimal blog focused on typography and generous whitespace.","category":"Blog","card_image":"/assets/images/themes/moonwalk-card.webp","theme_screenshots":["/assets/images/themes/moonwalk-screenshot.webp","/assets/images/themes/moonwalk-screenshot-2.webp","/assets/images/themes/moonwalk-screenshot-3.webp"],"demo_url":"https://abhinavs.github.io/moonwalk/","github_url":"https://github.com/abhinavs/moonwalk","author":"GitHub Community","github_author_name":"Abhinav Saxena","github_author_url":"https://github.com/abhinavs","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-feed","jekyll-seo-tag","jekyll-sitemap"],"updated_at":"2023-07-01","added_at":"2026-03-12","popular":false,"trending":true,"bestseller":false,"version":"0.5.0","license":"MIT","stars":1500,"forks":280,"features":["Dark minimal design","Typography-focused","Fast loading","soopr social sharing","Clean post layout"],"slug":"moonwalk","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/mundana","collection":"themes","next":{"path":"_themes/online-cv.md","relative_path":"_themes/online-cv.md","id":"/themes/online-cv","collection":"themes","url":"/themes/online-cv/","draft":false,"categories":["Resume / CV"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Online CV Jekyll Theme","description":"A one-page Jekyll CV and resume theme for creating a beautiful online portfolio. Minimal, readable design perfect for job seekers and freelancers.","key_features":["One-Page CV","GitHub Pages","Skills Section","Minimal Design"],"card_description":"One-page CV/resume theme for a beautiful online portfolio.","category":"Resume / CV","card_image":"/assets/images/themes/online-cv-card.webp","theme_screenshots":["/assets/images/themes/online-cv-screenshot.webp","/assets/images/themes/online-cv-screenshot-2.webp","/assets/images/themes/online-cv-screenshot-3.webp"],"demo_url":"https://sharu725.github.io/online-cv/","github_url":"https://github.com/sharu725/online-cv","author":"GitHub Community","github_author_name":"Sharath Kumar","github_author_url":"https://github.com/sharu725","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-05-01","added_at":"2026-03-15","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":2200,"forks":3800,"features":["Dark profile sidebar","Skills with progress bars","Experience timeline","Education section","Languages and interests","Print-friendly"],"slug":"online-cv","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Mundana is a modern, publication-style Jekyll theme from WowThemes.net. The homepage features a large hero post followed by a clean card grid — giving it the feel of a professional editorial site.\n\nCategory pages, author profiles, and newsletter signup sections are all built in, making it one of the most complete free blogging themes for Jekyll.\n\n**Who is it for?** Bloggers and content creators who want a professional editorial look without the complexity of a premium theme.\n","url":"/themes/mundana/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Mundana Jekyll Theme","description":"A modern Jekyll theme for bloggers built with Bootstrap 4. Features featured posts, category pages, newsletter signup, and clean card layouts.","key_features":["Newsletter Signup","Featured Posts","Category Pages","GitHub Pages"],"card_description":"Modern Bootstrap 4 blog with featured posts and newsletter signup.","category":"Blog","card_image":"/assets/images/themes/mundana-card.webp","theme_screenshots":["/assets/images/themes/mundana-screenshot.webp","/assets/images/themes/mundana-screenshot-2.webp","/assets/images/themes/mundana-screenshot-3.webp"],"demo_url":"https://mundana.amitmerchant.com/","github_url":"https://github.com/wowthemesnet/mundana-theme-jekyll","author":"GitHub Community","github_author_name":"wowthemesnet","github_author_url":"https://github.com/wowthemesnet","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate","jekyll-sitemap"],"updated_at":"2024-03-24","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":784,"forks":398,"features":["Bootstrap 4 powered","Featured hero post","Card-based post grid","Category archive pages","Newsletter signup section","Author profile pages","Related posts","Social sharing","Google Analytics","GitHub Pages compatible"],"slug":"mundana","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Moonwalk is a dark, minimal Jekyll blog theme that puts your words first. No sidebars, no carousels, no social widgets cluttering the margins — just clean typography on a deep background that makes reading a pleasure at any hour.\n\n**Who is it for?** Writers, thinkers, and bloggers who want a dark, distraction-free writing environment that readers will appreciate.\n","url":"/themes/moonwalk/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Moonwalk Jekyll Theme","description":"A dark, minimal Jekyll blog theme with a focus on typography and whitespace. Elegant simplicity for serious writers.","key_features":["Dark Mode","Typography Focus","Minimal Design","GitHub Pages"],"card_description":"Dark, minimal blog focused on typography and generous whitespace.","category":"Blog","card_image":"/assets/images/themes/moonwalk-card.webp","theme_screenshots":["/assets/images/themes/moonwalk-screenshot.webp","/assets/images/themes/moonwalk-screenshot-2.webp","/assets/images/themes/moonwalk-screenshot-3.webp"],"demo_url":"https://abhinavs.github.io/moonwalk/","github_url":"https://github.com/abhinavs/moonwalk","author":"GitHub Community","github_author_name":"Abhinav Saxena","github_author_url":"https://github.com/abhinavs","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-feed","jekyll-seo-tag","jekyll-sitemap"],"updated_at":"2023-07-01","added_at":"2026-03-12","popular":false,"trending":true,"bestseller":false,"version":"0.5.0","license":"MIT","stars":1500,"forks":280,"features":["Dark minimal design","Typography-focused","Fast loading","soopr social sharing","Clean post layout"],"slug":"moonwalk","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/mundana.md","relative_path":"_themes/mundana.md","excerpt":"<p>Mundana is a modern, publication-style Jekyll theme from WowThemes.net. The homepage features a large hero post followed by a clean card grid — giving it the feel of a professional editorial site.</p>\n\n","previous":{"path":"_themes/moonwalk.md","relative_path":"_themes/moonwalk.md","excerpt":"<p>Moonwalk is a dark, minimal Jekyll blog theme that puts your words first. No sidebars, no carousels, no social widgets cluttering the margins — just clean typography on a deep background that makes reading a pleasure at any hour.</p>\n\n","previous":{"path":"_themes/modern-resume-theme.md","relative_path":"_themes/modern-resume-theme.md","id":"/themes/modern-resume-theme","collection":"themes","url":"/themes/modern-resume-theme/","draft":false,"categories":["Resume / CV"],"layout":"theme","price_type":"free","featured":true,"dark_mode":false,"responsive":true,"title":"Modern Resume Theme Jekyll Theme","description":"A sleek, single-page resume/CV theme for Jekyll. Dark header, clean timeline layout, and sections for experience, education, skills, and projects.","key_features":["Single-Page CV","Timeline Layout","GitHub Pages","Dark Header"],"card_description":"Sleek single-page resume/CV with timeline and skills sections.","category":"Resume / CV","card_image":"/assets/images/themes/modern-resume-theme-card.webp","theme_screenshots":["/assets/images/themes/modern-resume-theme-screenshot.webp","/assets/images/themes/modern-resume-theme-screenshot-2.webp","/assets/images/themes/modern-resume-theme-screenshot-3.webp"],"demo_url":"https://sproogen.github.io/modern-resume-theme/","github_url":"https://github.com/sproogen/modern-resume-theme","author":"GitHub Community","github_author_name":"James Grant","github_author_url":"https://github.com/sproogen","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-seo-tag"],"updated_at":"2024-01-01","added_at":"2026-02-28","popular":false,"trending":false,"bestseller":false,"version":"2.0.0","license":"MIT","stars":4400,"forks":4700,"features":["YAML-driven content","Timeline for experience and education","Skills section","Projects section","Dark profile header","Print-friendly"],"slug":"modern-resume-theme","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/moonwalk","collection":"themes","next":{"path":"_themes/mundana.md","relative_path":"_themes/mundana.md","id":"/themes/mundana","collection":"themes","url":"/themes/mundana/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Mundana Jekyll Theme","description":"A modern Jekyll theme for bloggers built with Bootstrap 4. Features featured posts, category pages, newsletter signup, and clean card layouts.","key_features":["Newsletter Signup","Featured Posts","Category Pages","GitHub Pages"],"card_description":"Modern Bootstrap 4 blog with featured posts and newsletter signup.","category":"Blog","card_image":"/assets/images/themes/mundana-card.webp","theme_screenshots":["/assets/images/themes/mundana-screenshot.webp","/assets/images/themes/mundana-screenshot-2.webp","/assets/images/themes/mundana-screenshot-3.webp"],"demo_url":"https://mundana.amitmerchant.com/","github_url":"https://github.com/wowthemesnet/mundana-theme-jekyll","author":"GitHub Community","github_author_name":"wowthemesnet","github_author_url":"https://github.com/wowthemesnet","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate","jekyll-sitemap"],"updated_at":"2024-03-24","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":784,"forks":398,"features":["Bootstrap 4 powered","Featured hero post","Card-based post grid","Category archive pages","Newsletter signup section","Author profile pages","Related posts","Social sharing","Google Analytics","GitHub Pages compatible"],"slug":"mundana","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Moonwalk is a dark, minimal Jekyll blog theme that puts your words first. No sidebars, no carousels, no social widgets cluttering the margins — just clean typography on a deep background that makes reading a pleasure at any hour.\n\n**Who is it for?** Writers, thinkers, and bloggers who want a dark, distraction-free writing environment that readers will appreciate.\n","url":"/themes/moonwalk/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Moonwalk Jekyll Theme","description":"A dark, minimal Jekyll blog theme with a focus on typography and whitespace. Elegant simplicity for serious writers.","key_features":["Dark Mode","Typography Focus","Minimal Design","GitHub Pages"],"card_description":"Dark, minimal blog focused on typography and generous whitespace.","category":"Blog","card_image":"/assets/images/themes/moonwalk-card.webp","theme_screenshots":["/assets/images/themes/moonwalk-screenshot.webp","/assets/images/themes/moonwalk-screenshot-2.webp","/assets/images/themes/moonwalk-screenshot-3.webp"],"demo_url":"https://abhinavs.github.io/moonwalk/","github_url":"https://github.com/abhinavs/moonwalk","author":"GitHub Community","github_author_name":"Abhinav Saxena","github_author_url":"https://github.com/abhinavs","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-feed","jekyll-seo-tag","jekyll-sitemap"],"updated_at":"2023-07-01","added_at":"2026-03-12","popular":false,"trending":true,"bestseller":false,"version":"0.5.0","license":"MIT","stars":1500,"forks":280,"features":["Dark minimal design","Typography-focused","Fast loading","soopr social sharing","Clean post layout"],"slug":"moonwalk","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/mundana","collection":"themes","next":{"path":"_themes/online-cv.md","relative_path":"_themes/online-cv.md","excerpt":"<p>Online CV is a clean two-column resume theme with a dark sidebar for your profile photo and contact details, and a light content area for your experience, education, and skills.</p>\n\n","previous":{"path":"_themes/mundana.md","relative_path":"_themes/mundana.md","id":"/themes/mundana","collection":"themes","url":"/themes/mundana/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Mundana Jekyll Theme","description":"A modern Jekyll theme for bloggers built with Bootstrap 4. Features featured posts, category pages, newsletter signup, and clean card layouts.","key_features":["Newsletter Signup","Featured Posts","Category Pages","GitHub Pages"],"card_description":"Modern Bootstrap 4 blog with featured posts and newsletter signup.","category":"Blog","card_image":"/assets/images/themes/mundana-card.webp","theme_screenshots":["/assets/images/themes/mundana-screenshot.webp","/assets/images/themes/mundana-screenshot-2.webp","/assets/images/themes/mundana-screenshot-3.webp"],"demo_url":"https://mundana.amitmerchant.com/","github_url":"https://github.com/wowthemesnet/mundana-theme-jekyll","author":"GitHub Community","github_author_name":"wowthemesnet","github_author_url":"https://github.com/wowthemesnet","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate","jekyll-sitemap"],"updated_at":"2024-03-24","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":784,"forks":398,"features":["Bootstrap 4 powered","Featured hero post","Card-based post grid","Category archive pages","Newsletter signup section","Author profile pages","Related posts","Social sharing","Google Analytics","GitHub Pages compatible"],"slug":"mundana","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/online-cv","collection":"themes","next":{"path":"_themes/origin.md","relative_path":"_themes/origin.md","id":"/themes/origin","collection":"themes","url":"/themes/origin/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"premium","featured":true,"dark_mode":true,"responsive":true,"title":"Origin Jekyll Theme","rating":4.8,"rating_count":42,"description":"A fully featured and highly configurable modern blog theme for Jekyll. Includes categories, authors, comments, pagination, dark mode, and a perfect 100/100 Google Lighthouse score.","card_description":"Modern blog theme with dark mode, authors, categories, and 100/100 Lighthouse.","price":49,"category":"Blog","card_image":"/assets/images/themes/origin-card.webp","theme_screenshots":["/assets/images/themes/origin-screenshot.webp","/assets/images/themes/origin-screenshot-2.webp","/assets/images/themes/origin-screenshot-3.webp"],"key_features":["Dark Mode","100 Lighthouse","Categories","Authors"],"demo_url":"https://jekyll-origin.netlify.app/","buy_url":"https://www.zerostatic.io/theme/jekyll-origin/","author":"Zerostatic","author_url":"https://www.zerostatic.io/","github_author_name":"Zerostatic","support":"6 months","github_pages_compatible":true,"min_jekyll_version":"4.2","plugins":["jekyll-feed","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2025-04-01","added_at":"2026-06-27","popular":true,"trending":false,"bestseller":false,"version":"1.0.0","license":"Commercial","features":["Jekyll 4.2+ support","100% responsive design with crisp imagery and beautiful typography","Fully featured Blog with categories, authors, comments, and pagination","Dark mode with automatic and manual switching","100/100 Google Lighthouse speed and SEO scores","All content editable via markdown, front-matter, or YAML — nothing hardcoded","Configure logo, colours, fonts, menus, header, and footer in _config.yml","SCSS + Bootstrap 5.2, no jQuery, minimal vanilla JS","Auto-generated SEO meta tags with per-page overrides","Open Graph / Twitter card meta data included","Google Analytics support and social media links","Nested dropdown menus and responsive mobile hamburger menu","Contact page with Netlify Forms and Formspree support","Disqus comments integration","Mailchimp newsletter subscribe form","Google Fonts and Font Awesome 6 icons","Works with GitHub Pages and Netlify (includes netlify.toml)","All photos, illustrations, and icons included are royalty free","Full documentation with setup and customisation guide"],"slug":"origin","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Online CV is a clean two-column resume theme with a dark sidebar for your profile photo and contact details, and a light content area for your experience, education, and skills.\n\nAll content is configured through `data/data.yml` — no HTML editing required.\n\n**Who is it for?** Job seekers and professionals who want a clean, printable online resume hosted on GitHub Pages.\n","url":"/themes/online-cv/","draft":false,"categories":["Resume / CV"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Online CV Jekyll Theme","description":"A one-page Jekyll CV and resume theme for creating a beautiful online portfolio. Minimal, readable design perfect for job seekers and freelancers.","key_features":["One-Page CV","GitHub Pages","Skills Section","Minimal Design"],"card_description":"One-page CV/resume theme for a beautiful online portfolio.","category":"Resume / CV","card_image":"/assets/images/themes/online-cv-card.webp","theme_screenshots":["/assets/images/themes/online-cv-screenshot.webp","/assets/images/themes/online-cv-screenshot-2.webp","/assets/images/themes/online-cv-screenshot-3.webp"],"demo_url":"https://sharu725.github.io/online-cv/","github_url":"https://github.com/sharu725/online-cv","author":"GitHub Community","github_author_name":"Sharath Kumar","github_author_url":"https://github.com/sharu725","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-05-01","added_at":"2026-03-15","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":2200,"forks":3800,"features":["Dark profile sidebar","Skills with progress bars","Experience timeline","Education section","Languages and interests","Print-friendly"],"slug":"online-cv","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Mundana is a modern, publication-style Jekyll theme from WowThemes.net. The homepage features a large hero post followed by a clean card grid — giving it the feel of a professional editorial site.\n\nCategory pages, author profiles, and newsletter signup sections are all built in, making it one of the most complete free blogging themes for Jekyll.\n\n**Who is it for?** Bloggers and content creators who want a professional editorial look without the complexity of a premium theme.\n","url":"/themes/mundana/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Mundana Jekyll Theme","description":"A modern Jekyll theme for bloggers built with Bootstrap 4. Features featured posts, category pages, newsletter signup, and clean card layouts.","key_features":["Newsletter Signup","Featured Posts","Category Pages","GitHub Pages"],"card_description":"Modern Bootstrap 4 blog with featured posts and newsletter signup.","category":"Blog","card_image":"/assets/images/themes/mundana-card.webp","theme_screenshots":["/assets/images/themes/mundana-screenshot.webp","/assets/images/themes/mundana-screenshot-2.webp","/assets/images/themes/mundana-screenshot-3.webp"],"demo_url":"https://mundana.amitmerchant.com/","github_url":"https://github.com/wowthemesnet/mundana-theme-jekyll","author":"GitHub Community","github_author_name":"wowthemesnet","github_author_url":"https://github.com/wowthemesnet","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate","jekyll-sitemap"],"updated_at":"2024-03-24","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":784,"forks":398,"features":["Bootstrap 4 powered","Featured hero post","Card-based post grid","Category archive pages","Newsletter signup section","Author profile pages","Related posts","Social sharing","Google Analytics","GitHub Pages compatible"],"slug":"mundana","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/online-cv.md","relative_path":"_themes/online-cv.md","excerpt":"<p>Online CV is a clean two-column resume theme with a dark sidebar for your profile photo and contact details, and a light content area for your experience, education, and skills.</p>\n\n","previous":{"path":"_themes/mundana.md","relative_path":"_themes/mundana.md","excerpt":"<p>Mundana is a modern, publication-style Jekyll theme from WowThemes.net. The homepage features a large hero post followed by a clean card grid — giving it the feel of a professional editorial site.</p>\n\n","previous":{"path":"_themes/moonwalk.md","relative_path":"_themes/moonwalk.md","id":"/themes/moonwalk","collection":"themes","url":"/themes/moonwalk/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"Moonwalk Jekyll Theme","description":"A dark, minimal Jekyll blog theme with a focus on typography and whitespace. Elegant simplicity for serious writers.","key_features":["Dark Mode","Typography Focus","Minimal Design","GitHub Pages"],"card_description":"Dark, minimal blog focused on typography and generous whitespace.","category":"Blog","card_image":"/assets/images/themes/moonwalk-card.webp","theme_screenshots":["/assets/images/themes/moonwalk-screenshot.webp","/assets/images/themes/moonwalk-screenshot-2.webp","/assets/images/themes/moonwalk-screenshot-3.webp"],"demo_url":"https://abhinavs.github.io/moonwalk/","github_url":"https://github.com/abhinavs/moonwalk","author":"GitHub Community","github_author_name":"Abhinav Saxena","github_author_url":"https://github.com/abhinavs","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-feed","jekyll-seo-tag","jekyll-sitemap"],"updated_at":"2023-07-01","added_at":"2026-03-12","popular":false,"trending":true,"bestseller":false,"version":"0.5.0","license":"MIT","stars":1500,"forks":280,"features":["Dark minimal design","Typography-focused","Fast loading","soopr social sharing","Clean post layout"],"slug":"moonwalk","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/mundana","collection":"themes","next":{"path":"_themes/online-cv.md","relative_path":"_themes/online-cv.md","id":"/themes/online-cv","collection":"themes","url":"/themes/online-cv/","draft":false,"categories":["Resume / CV"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Online CV Jekyll Theme","description":"A one-page Jekyll CV and resume theme for creating a beautiful online portfolio. Minimal, readable design perfect for job seekers and freelancers.","key_features":["One-Page CV","GitHub Pages","Skills Section","Minimal Design"],"card_description":"One-page CV/resume theme for a beautiful online portfolio.","category":"Resume / CV","card_image":"/assets/images/themes/online-cv-card.webp","theme_screenshots":["/assets/images/themes/online-cv-screenshot.webp","/assets/images/themes/online-cv-screenshot-2.webp","/assets/images/themes/online-cv-screenshot-3.webp"],"demo_url":"https://sharu725.github.io/online-cv/","github_url":"https://github.com/sharu725/online-cv","author":"GitHub Community","github_author_name":"Sharath Kumar","github_author_url":"https://github.com/sharu725","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-05-01","added_at":"2026-03-15","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":2200,"forks":3800,"features":["Dark profile sidebar","Skills with progress bars","Experience timeline","Education section","Languages and interests","Print-friendly"],"slug":"online-cv","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Mundana is a modern, publication-style Jekyll theme from WowThemes.net. The homepage features a large hero post followed by a clean card grid — giving it the feel of a professional editorial site.\n\nCategory pages, author profiles, and newsletter signup sections are all built in, making it one of the most complete free blogging themes for Jekyll.\n\n**Who is it for?** Bloggers and content creators who want a professional editorial look without the complexity of a premium theme.\n","url":"/themes/mundana/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Mundana Jekyll Theme","description":"A modern Jekyll theme for bloggers built with Bootstrap 4. Features featured posts, category pages, newsletter signup, and clean card layouts.","key_features":["Newsletter Signup","Featured Posts","Category Pages","GitHub Pages"],"card_description":"Modern Bootstrap 4 blog with featured posts and newsletter signup.","category":"Blog","card_image":"/assets/images/themes/mundana-card.webp","theme_screenshots":["/assets/images/themes/mundana-screenshot.webp","/assets/images/themes/mundana-screenshot-2.webp","/assets/images/themes/mundana-screenshot-3.webp"],"demo_url":"https://mundana.amitmerchant.com/","github_url":"https://github.com/wowthemesnet/mundana-theme-jekyll","author":"GitHub Community","github_author_name":"wowthemesnet","github_author_url":"https://github.com/wowthemesnet","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate","jekyll-sitemap"],"updated_at":"2024-03-24","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":784,"forks":398,"features":["Bootstrap 4 powered","Featured hero post","Card-based post grid","Category archive pages","Newsletter signup section","Author profile pages","Related posts","Social sharing","Google Analytics","GitHub Pages compatible"],"slug":"mundana","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/online-cv","collection":"themes","next":{"path":"_themes/origin.md","relative_path":"_themes/origin.md","excerpt":"<p>Origin is a modern, fully featured Jekyll blog theme built for writers, developers, and content creators who want a polished, high-performance site without trade-offs.</p>\n\n","previous":{"path":"_themes/online-cv.md","relative_path":"_themes/online-cv.md","id":"/themes/online-cv","collection":"themes","url":"/themes/online-cv/","draft":false,"categories":["Resume / CV"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Online CV Jekyll Theme","description":"A one-page Jekyll CV and resume theme for creating a beautiful online portfolio. Minimal, readable design perfect for job seekers and freelancers.","key_features":["One-Page CV","GitHub Pages","Skills Section","Minimal Design"],"card_description":"One-page CV/resume theme for a beautiful online portfolio.","category":"Resume / CV","card_image":"/assets/images/themes/online-cv-card.webp","theme_screenshots":["/assets/images/themes/online-cv-screenshot.webp","/assets/images/themes/online-cv-screenshot-2.webp","/assets/images/themes/online-cv-screenshot-3.webp"],"demo_url":"https://sharu725.github.io/online-cv/","github_url":"https://github.com/sharu725/online-cv","author":"GitHub Community","github_author_name":"Sharath Kumar","github_author_url":"https://github.com/sharu725","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-05-01","added_at":"2026-03-15","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":2200,"forks":3800,"features":["Dark profile sidebar","Skills with progress bars","Experience timeline","Education section","Languages and interests","Print-friendly"],"slug":"online-cv","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/origin","collection":"themes","next":{"path":"_themes/phantom.md","relative_path":"_themes/phantom.md","id":"/themes/phantom","collection":"themes","url":"/themes/phantom/","draft":false,"categories":["Portfolio"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Phantom Jekyll Theme","description":"A minimalist, responsive portfolio Jekyll theme with a project grid, modal image viewer, and subtle hover animations.","key_features":["Project Grid","Modal Viewer","Hover Animations","GitHub Pages"],"card_description":"Minimalist portfolio with project grid and modal image viewer.","category":"Portfolio","card_image":"/assets/images/themes/phantom-card.webp","theme_screenshots":["/assets/images/themes/phantom-screenshot.webp","/assets/images/themes/phantom-screenshot-2.webp","/assets/images/themes/phantom-screenshot-3.webp"],"demo_url":"https://jamigibbs.github.io/phantom/","github_url":"https://github.com/jamigibbs/phantom","author":"GitHub Community","github_author_name":"jamigibbs","github_author_url":"https://github.com/jamigibbs","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2024-07-23","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":353,"forks":196,"features":["Project portfolio grid","Modal image lightbox","Hover animations","About page layout","Skills section","Contact form ready","Clean minimal design","GitHub Pages compatible","Mobile responsive","Custom colour scheme"],"slug":"phantom","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Origin is a modern, fully featured Jekyll blog theme built for writers, developers, and content creators who want a polished, high-performance site without trade-offs.\n\n### Why Origin Stands Out\n\nThe headline achievement is a perfect 100/100 Google Lighthouse score for both speed and SEO — achieved through minimal JavaScript (no jQuery), tiny CSS/JS bundles, and semantic HTML with auto-generated meta tags. Visitors get fast page loads; you get better search rankings by default.\n\n### Content Management\n\nAll content is managed through markdown files and YAML configuration — no hardcoded HTML to hunt down. Configure your logo, colour scheme, fonts, navigation menus, header, and footer entirely from `_config.yml`. The fully featured blog supports categories, named authors, Disqus comments, and paginated archive pages, giving your site professional editorial structure from day one.\n\n### Design & Customisation\n\nOrigin ships with SCSS + Bootstrap 5.2 for a responsive, mobile-first layout that looks polished on every screen size. Dark mode is built in with both automatic (system preference) and manual toggle options. The navigation supports nested dropdown menus and a responsive mobile overlay with an animated hamburger icon — no third-party libraries required.\n\n### Integrations\n\nOut of the box: Google Analytics, Mailchimp newsletter signup, Formspree and Netlify Forms for contact, Disqus comments, Google Fonts, Font Awesome 6, and Open Graph / Twitter card metadata. Ready to deploy to GitHub Pages or Netlify with a `netlify.toml` already included.\n\n**Who is it for?** Writers and developers who want a beautiful, fast, SEO-ready blog — without spending time on configuration or performance tuning.\n","url":"/themes/origin/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"premium","featured":true,"dark_mode":true,"responsive":true,"title":"Origin Jekyll Theme","rating":4.8,"rating_count":42,"description":"A fully featured and highly configurable modern blog theme for Jekyll. Includes categories, authors, comments, pagination, dark mode, and a perfect 100/100 Google Lighthouse score.","card_description":"Modern blog theme with dark mode, authors, categories, and 100/100 Lighthouse.","price":49,"category":"Blog","card_image":"/assets/images/themes/origin-card.webp","theme_screenshots":["/assets/images/themes/origin-screenshot.webp","/assets/images/themes/origin-screenshot-2.webp","/assets/images/themes/origin-screenshot-3.webp"],"key_features":["Dark Mode","100 Lighthouse","Categories","Authors"],"demo_url":"https://jekyll-origin.netlify.app/","buy_url":"https://www.zerostatic.io/theme/jekyll-origin/","author":"Zerostatic","author_url":"https://www.zerostatic.io/","github_author_name":"Zerostatic","support":"6 months","github_pages_compatible":true,"min_jekyll_version":"4.2","plugins":["jekyll-feed","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2025-04-01","added_at":"2026-06-27","popular":true,"trending":false,"bestseller":false,"version":"1.0.0","license":"Commercial","features":["Jekyll 4.2+ support","100% responsive design with crisp imagery and beautiful typography","Fully featured Blog with categories, authors, comments, and pagination","Dark mode with automatic and manual switching","100/100 Google Lighthouse speed and SEO scores","All content editable via markdown, front-matter, or YAML — nothing hardcoded","Configure logo, colours, fonts, menus, header, and footer in _config.yml","SCSS + Bootstrap 5.2, no jQuery, minimal vanilla JS","Auto-generated SEO meta tags with per-page overrides","Open Graph / Twitter card meta data included","Google Analytics support and social media links","Nested dropdown menus and responsive mobile hamburger menu","Contact page with Netlify Forms and Formspree support","Disqus comments integration","Mailchimp newsletter subscribe form","Google Fonts and Font Awesome 6 icons","Works with GitHub Pages and Netlify (includes netlify.toml)","All photos, illustrations, and icons included are royalty free","Full documentation with setup and customisation guide"],"slug":"origin","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Online CV is a clean two-column resume theme with a dark sidebar for your profile photo and contact details, and a light content area for your experience, education, and skills.\n\nAll content is configured through `data/data.yml` — no HTML editing required.\n\n**Who is it for?** Job seekers and professionals who want a clean, printable online resume hosted on GitHub Pages.\n","url":"/themes/online-cv/","draft":false,"categories":["Resume / CV"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Online CV Jekyll Theme","description":"A one-page Jekyll CV and resume theme for creating a beautiful online portfolio. Minimal, readable design perfect for job seekers and freelancers.","key_features":["One-Page CV","GitHub Pages","Skills Section","Minimal Design"],"card_description":"One-page CV/resume theme for a beautiful online portfolio.","category":"Resume / CV","card_image":"/assets/images/themes/online-cv-card.webp","theme_screenshots":["/assets/images/themes/online-cv-screenshot.webp","/assets/images/themes/online-cv-screenshot-2.webp","/assets/images/themes/online-cv-screenshot-3.webp"],"demo_url":"https://sharu725.github.io/online-cv/","github_url":"https://github.com/sharu725/online-cv","author":"GitHub Community","github_author_name":"Sharath Kumar","github_author_url":"https://github.com/sharu725","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-05-01","added_at":"2026-03-15","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":2200,"forks":3800,"features":["Dark profile sidebar","Skills with progress bars","Experience timeline","Education section","Languages and interests","Print-friendly"],"slug":"online-cv","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/origin.md","relative_path":"_themes/origin.md","excerpt":"<p>Origin is a modern, fully featured Jekyll blog theme built for writers, developers, and content creators who want a polished, high-performance site without trade-offs.</p>\n\n","previous":{"path":"_themes/online-cv.md","relative_path":"_themes/online-cv.md","excerpt":"<p>Online CV is a clean two-column resume theme with a dark sidebar for your profile photo and contact details, and a light content area for your experience, education, and skills.</p>\n\n","previous":{"path":"_themes/mundana.md","relative_path":"_themes/mundana.md","id":"/themes/mundana","collection":"themes","url":"/themes/mundana/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Mundana Jekyll Theme","description":"A modern Jekyll theme for bloggers built with Bootstrap 4. Features featured posts, category pages, newsletter signup, and clean card layouts.","key_features":["Newsletter Signup","Featured Posts","Category Pages","GitHub Pages"],"card_description":"Modern Bootstrap 4 blog with featured posts and newsletter signup.","category":"Blog","card_image":"/assets/images/themes/mundana-card.webp","theme_screenshots":["/assets/images/themes/mundana-screenshot.webp","/assets/images/themes/mundana-screenshot-2.webp","/assets/images/themes/mundana-screenshot-3.webp"],"demo_url":"https://mundana.amitmerchant.com/","github_url":"https://github.com/wowthemesnet/mundana-theme-jekyll","author":"GitHub Community","github_author_name":"wowthemesnet","github_author_url":"https://github.com/wowthemesnet","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate","jekyll-sitemap"],"updated_at":"2024-03-24","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":784,"forks":398,"features":["Bootstrap 4 powered","Featured hero post","Card-based post grid","Category archive pages","Newsletter signup section","Author profile pages","Related posts","Social sharing","Google Analytics","GitHub Pages compatible"],"slug":"mundana","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/online-cv","collection":"themes","next":{"path":"_themes/origin.md","relative_path":"_themes/origin.md","id":"/themes/origin","collection":"themes","url":"/themes/origin/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"premium","featured":true,"dark_mode":true,"responsive":true,"title":"Origin Jekyll Theme","rating":4.8,"rating_count":42,"description":"A fully featured and highly configurable modern blog theme for Jekyll. Includes categories, authors, comments, pagination, dark mode, and a perfect 100/100 Google Lighthouse score.","card_description":"Modern blog theme with dark mode, authors, categories, and 100/100 Lighthouse.","price":49,"category":"Blog","card_image":"/assets/images/themes/origin-card.webp","theme_screenshots":["/assets/images/themes/origin-screenshot.webp","/assets/images/themes/origin-screenshot-2.webp","/assets/images/themes/origin-screenshot-3.webp"],"key_features":["Dark Mode","100 Lighthouse","Categories","Authors"],"demo_url":"https://jekyll-origin.netlify.app/","buy_url":"https://www.zerostatic.io/theme/jekyll-origin/","author":"Zerostatic","author_url":"https://www.zerostatic.io/","github_author_name":"Zerostatic","support":"6 months","github_pages_compatible":true,"min_jekyll_version":"4.2","plugins":["jekyll-feed","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2025-04-01","added_at":"2026-06-27","popular":true,"trending":false,"bestseller":false,"version":"1.0.0","license":"Commercial","features":["Jekyll 4.2+ support","100% responsive design with crisp imagery and beautiful typography","Fully featured Blog with categories, authors, comments, and pagination","Dark mode with automatic and manual switching","100/100 Google Lighthouse speed and SEO scores","All content editable via markdown, front-matter, or YAML — nothing hardcoded","Configure logo, colours, fonts, menus, header, and footer in _config.yml","SCSS + Bootstrap 5.2, no jQuery, minimal vanilla JS","Auto-generated SEO meta tags with per-page overrides","Open Graph / Twitter card meta data included","Google Analytics support and social media links","Nested dropdown menus and responsive mobile hamburger menu","Contact page with Netlify Forms and Formspree support","Disqus comments integration","Mailchimp newsletter subscribe form","Google Fonts and Font Awesome 6 icons","Works with GitHub Pages and Netlify (includes netlify.toml)","All photos, illustrations, and icons included are royalty free","Full documentation with setup and customisation guide"],"slug":"origin","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Online CV is a clean two-column resume theme with a dark sidebar for your profile photo and contact details, and a light content area for your experience, education, and skills.\n\nAll content is configured through `data/data.yml` — no HTML editing required.\n\n**Who is it for?** Job seekers and professionals who want a clean, printable online resume hosted on GitHub Pages.\n","url":"/themes/online-cv/","draft":false,"categories":["Resume / CV"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Online CV Jekyll Theme","description":"A one-page Jekyll CV and resume theme for creating a beautiful online portfolio. Minimal, readable design perfect for job seekers and freelancers.","key_features":["One-Page CV","GitHub Pages","Skills Section","Minimal Design"],"card_description":"One-page CV/resume theme for a beautiful online portfolio.","category":"Resume / CV","card_image":"/assets/images/themes/online-cv-card.webp","theme_screenshots":["/assets/images/themes/online-cv-screenshot.webp","/assets/images/themes/online-cv-screenshot-2.webp","/assets/images/themes/online-cv-screenshot-3.webp"],"demo_url":"https://sharu725.github.io/online-cv/","github_url":"https://github.com/sharu725/online-cv","author":"GitHub Community","github_author_name":"Sharath Kumar","github_author_url":"https://github.com/sharu725","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-05-01","added_at":"2026-03-15","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":2200,"forks":3800,"features":["Dark profile sidebar","Skills with progress bars","Experience timeline","Education section","Languages and interests","Print-friendly"],"slug":"online-cv","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/origin","collection":"themes","next":{"path":"_themes/phantom.md","relative_path":"_themes/phantom.md","excerpt":"<p>Phantom is a clean, minimal portfolio theme built for designers and developers who want to present their work with style. Projects are displayed in a responsive grid, with each item opening in a full modal lightbox on click.</p>\n\n","previous":{"path":"_themes/origin.md","relative_path":"_themes/origin.md","id":"/themes/origin","collection":"themes","url":"/themes/origin/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"premium","featured":true,"dark_mode":true,"responsive":true,"title":"Origin Jekyll Theme","rating":4.8,"rating_count":42,"description":"A fully featured and highly configurable modern blog theme for Jekyll. Includes categories, authors, comments, pagination, dark mode, and a perfect 100/100 Google Lighthouse score.","card_description":"Modern blog theme with dark mode, authors, categories, and 100/100 Lighthouse.","price":49,"category":"Blog","card_image":"/assets/images/themes/origin-card.webp","theme_screenshots":["/assets/images/themes/origin-screenshot.webp","/assets/images/themes/origin-screenshot-2.webp","/assets/images/themes/origin-screenshot-3.webp"],"key_features":["Dark Mode","100 Lighthouse","Categories","Authors"],"demo_url":"https://jekyll-origin.netlify.app/","buy_url":"https://www.zerostatic.io/theme/jekyll-origin/","author":"Zerostatic","author_url":"https://www.zerostatic.io/","github_author_name":"Zerostatic","support":"6 months","github_pages_compatible":true,"min_jekyll_version":"4.2","plugins":["jekyll-feed","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2025-04-01","added_at":"2026-06-27","popular":true,"trending":false,"bestseller":false,"version":"1.0.0","license":"Commercial","features":["Jekyll 4.2+ support","100% responsive design with crisp imagery and beautiful typography","Fully featured Blog with categories, authors, comments, and pagination","Dark mode with automatic and manual switching","100/100 Google Lighthouse speed and SEO scores","All content editable via markdown, front-matter, or YAML — nothing hardcoded","Configure logo, colours, fonts, menus, header, and footer in _config.yml","SCSS + Bootstrap 5.2, no jQuery, minimal vanilla JS","Auto-generated SEO meta tags with per-page overrides","Open Graph / Twitter card meta data included","Google Analytics support and social media links","Nested dropdown menus and responsive mobile hamburger menu","Contact page with Netlify Forms and Formspree support","Disqus comments integration","Mailchimp newsletter subscribe form","Google Fonts and Font Awesome 6 icons","Works with GitHub Pages and Netlify (includes netlify.toml)","All photos, illustrations, and icons included are royalty free","Full documentation with setup and customisation guide"],"slug":"origin","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/phantom","collection":"themes","next":{"path":"_themes/pixyll.md","relative_path":"_themes/pixyll.md","id":"/themes/pixyll","collection":"themes","url":"/themes/pixyll/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Pixyll Jekyll Theme","description":"A simple, beautiful Jekyll theme that puts your content first. Mobile-first, fluidly responsive, and delightfully lightweight — built around great typography and generous whitespace.","key_features":["Mobile First","Clean Typography","GitHub Pages","Lightweight"],"card_description":"Simple, beautiful theme that puts content first with generous whitespace.","category":"Blog","card_image":"/assets/images/themes/pixyll-card.webp","theme_screenshots":["/assets/images/themes/pixyll-screenshot.webp","/assets/images/themes/pixyll-screenshot-2.webp","/assets/images/themes/pixyll-screenshot-3.webp"],"demo_url":"https://pixyll.com/","github_url":"https://github.com/johno/pixyll","author":"GitHub Community","github_author_name":"johno","github_author_url":"https://github.com/johno","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate"],"updated_at":"2022-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"3.0.0","license":"MIT","stars":2000,"forks":700,"features":["Mobile-first responsive design","Beautiful typographic scale","Generous whitespace layout","Disqus comments","Google Analytics","Syntax highlighting","Paginated post listing","Social sharing links","RSS feed","GitHub Pages compatible"],"slug":"pixyll","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Phantom is a clean, minimal portfolio theme built for designers and developers who want to present their work with style. Projects are displayed in a responsive grid, with each item opening in a full modal lightbox on click.\n\nSubtle hover animations add polish without distracting from the work itself.\n\n**Who is it for?** Designers, illustrators, and developers who want a minimal portfolio with a lightbox-style project viewer.\n","url":"/themes/phantom/","draft":false,"categories":["Portfolio"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Phantom Jekyll Theme","description":"A minimalist, responsive portfolio Jekyll theme with a project grid, modal image viewer, and subtle hover animations.","key_features":["Project Grid","Modal Viewer","Hover Animations","GitHub Pages"],"card_description":"Minimalist portfolio with project grid and modal image viewer.","category":"Portfolio","card_image":"/assets/images/themes/phantom-card.webp","theme_screenshots":["/assets/images/themes/phantom-screenshot.webp","/assets/images/themes/phantom-screenshot-2.webp","/assets/images/themes/phantom-screenshot-3.webp"],"demo_url":"https://jamigibbs.github.io/phantom/","github_url":"https://github.com/jamigibbs/phantom","author":"GitHub Community","github_author_name":"jamigibbs","github_author_url":"https://github.com/jamigibbs","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2024-07-23","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":353,"forks":196,"features":["Project portfolio grid","Modal image lightbox","Hover animations","About page layout","Skills section","Contact form ready","Clean minimal design","GitHub Pages compatible","Mobile responsive","Custom colour scheme"],"slug":"phantom","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Origin is a modern, fully featured Jekyll blog theme built for writers, developers, and content creators who want a polished, high-performance site without trade-offs.\n\n### Why Origin Stands Out\n\nThe headline achievement is a perfect 100/100 Google Lighthouse score for both speed and SEO — achieved through minimal JavaScript (no jQuery), tiny CSS/JS bundles, and semantic HTML with auto-generated meta tags. Visitors get fast page loads; you get better search rankings by default.\n\n### Content Management\n\nAll content is managed through markdown files and YAML configuration — no hardcoded HTML to hunt down. Configure your logo, colour scheme, fonts, navigation menus, header, and footer entirely from `_config.yml`. The fully featured blog supports categories, named authors, Disqus comments, and paginated archive pages, giving your site professional editorial structure from day one.\n\n### Design & Customisation\n\nOrigin ships with SCSS + Bootstrap 5.2 for a responsive, mobile-first layout that looks polished on every screen size. Dark mode is built in with both automatic (system preference) and manual toggle options. The navigation supports nested dropdown menus and a responsive mobile overlay with an animated hamburger icon — no third-party libraries required.\n\n### Integrations\n\nOut of the box: Google Analytics, Mailchimp newsletter signup, Formspree and Netlify Forms for contact, Disqus comments, Google Fonts, Font Awesome 6, and Open Graph / Twitter card metadata. Ready to deploy to GitHub Pages or Netlify with a `netlify.toml` already included.\n\n**Who is it for?** Writers and developers who want a beautiful, fast, SEO-ready blog — without spending time on configuration or performance tuning.\n","url":"/themes/origin/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"premium","featured":true,"dark_mode":true,"responsive":true,"title":"Origin Jekyll Theme","rating":4.8,"rating_count":42,"description":"A fully featured and highly configurable modern blog theme for Jekyll. Includes categories, authors, comments, pagination, dark mode, and a perfect 100/100 Google Lighthouse score.","card_description":"Modern blog theme with dark mode, authors, categories, and 100/100 Lighthouse.","price":49,"category":"Blog","card_image":"/assets/images/themes/origin-card.webp","theme_screenshots":["/assets/images/themes/origin-screenshot.webp","/assets/images/themes/origin-screenshot-2.webp","/assets/images/themes/origin-screenshot-3.webp"],"key_features":["Dark Mode","100 Lighthouse","Categories","Authors"],"demo_url":"https://jekyll-origin.netlify.app/","buy_url":"https://www.zerostatic.io/theme/jekyll-origin/","author":"Zerostatic","author_url":"https://www.zerostatic.io/","github_author_name":"Zerostatic","support":"6 months","github_pages_compatible":true,"min_jekyll_version":"4.2","plugins":["jekyll-feed","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2025-04-01","added_at":"2026-06-27","popular":true,"trending":false,"bestseller":false,"version":"1.0.0","license":"Commercial","features":["Jekyll 4.2+ support","100% responsive design with crisp imagery and beautiful typography","Fully featured Blog with categories, authors, comments, and pagination","Dark mode with automatic and manual switching","100/100 Google Lighthouse speed and SEO scores","All content editable via markdown, front-matter, or YAML — nothing hardcoded","Configure logo, colours, fonts, menus, header, and footer in _config.yml","SCSS + Bootstrap 5.2, no jQuery, minimal vanilla JS","Auto-generated SEO meta tags with per-page overrides","Open Graph / Twitter card meta data included","Google Analytics support and social media links","Nested dropdown menus and responsive mobile hamburger menu","Contact page with Netlify Forms and Formspree support","Disqus comments integration","Mailchimp newsletter subscribe form","Google Fonts and Font Awesome 6 icons","Works with GitHub Pages and Netlify (includes netlify.toml)","All photos, illustrations, and icons included are royalty free","Full documentation with setup and customisation guide"],"slug":"origin","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/phantom.md","relative_path":"_themes/phantom.md","excerpt":"<p>Phantom is a clean, minimal portfolio theme built for designers and developers who want to present their work with style. Projects are displayed in a responsive grid, with each item opening in a full modal lightbox on click.</p>\n\n","previous":{"path":"_themes/origin.md","relative_path":"_themes/origin.md","excerpt":"<p>Origin is a modern, fully featured Jekyll blog theme built for writers, developers, and content creators who want a polished, high-performance site without trade-offs.</p>\n\n","previous":{"path":"_themes/online-cv.md","relative_path":"_themes/online-cv.md","id":"/themes/online-cv","collection":"themes","url":"/themes/online-cv/","draft":false,"categories":["Resume / CV"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Online CV Jekyll Theme","description":"A one-page Jekyll CV and resume theme for creating a beautiful online portfolio. Minimal, readable design perfect for job seekers and freelancers.","key_features":["One-Page CV","GitHub Pages","Skills Section","Minimal Design"],"card_description":"One-page CV/resume theme for a beautiful online portfolio.","category":"Resume / CV","card_image":"/assets/images/themes/online-cv-card.webp","theme_screenshots":["/assets/images/themes/online-cv-screenshot.webp","/assets/images/themes/online-cv-screenshot-2.webp","/assets/images/themes/online-cv-screenshot-3.webp"],"demo_url":"https://sharu725.github.io/online-cv/","github_url":"https://github.com/sharu725/online-cv","author":"GitHub Community","github_author_name":"Sharath Kumar","github_author_url":"https://github.com/sharu725","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-05-01","added_at":"2026-03-15","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":2200,"forks":3800,"features":["Dark profile sidebar","Skills with progress bars","Experience timeline","Education section","Languages and interests","Print-friendly"],"slug":"online-cv","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/origin","collection":"themes","next":{"path":"_themes/phantom.md","relative_path":"_themes/phantom.md","id":"/themes/phantom","collection":"themes","url":"/themes/phantom/","draft":false,"categories":["Portfolio"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Phantom Jekyll Theme","description":"A minimalist, responsive portfolio Jekyll theme with a project grid, modal image viewer, and subtle hover animations.","key_features":["Project Grid","Modal Viewer","Hover Animations","GitHub Pages"],"card_description":"Minimalist portfolio with project grid and modal image viewer.","category":"Portfolio","card_image":"/assets/images/themes/phantom-card.webp","theme_screenshots":["/assets/images/themes/phantom-screenshot.webp","/assets/images/themes/phantom-screenshot-2.webp","/assets/images/themes/phantom-screenshot-3.webp"],"demo_url":"https://jamigibbs.github.io/phantom/","github_url":"https://github.com/jamigibbs/phantom","author":"GitHub Community","github_author_name":"jamigibbs","github_author_url":"https://github.com/jamigibbs","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2024-07-23","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":353,"forks":196,"features":["Project portfolio grid","Modal image lightbox","Hover animations","About page layout","Skills section","Contact form ready","Clean minimal design","GitHub Pages compatible","Mobile responsive","Custom colour scheme"],"slug":"phantom","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Origin is a modern, fully featured Jekyll blog theme built for writers, developers, and content creators who want a polished, high-performance site without trade-offs.\n\n### Why Origin Stands Out\n\nThe headline achievement is a perfect 100/100 Google Lighthouse score for both speed and SEO — achieved through minimal JavaScript (no jQuery), tiny CSS/JS bundles, and semantic HTML with auto-generated meta tags. Visitors get fast page loads; you get better search rankings by default.\n\n### Content Management\n\nAll content is managed through markdown files and YAML configuration — no hardcoded HTML to hunt down. Configure your logo, colour scheme, fonts, navigation menus, header, and footer entirely from `_config.yml`. The fully featured blog supports categories, named authors, Disqus comments, and paginated archive pages, giving your site professional editorial structure from day one.\n\n### Design & Customisation\n\nOrigin ships with SCSS + Bootstrap 5.2 for a responsive, mobile-first layout that looks polished on every screen size. Dark mode is built in with both automatic (system preference) and manual toggle options. The navigation supports nested dropdown menus and a responsive mobile overlay with an animated hamburger icon — no third-party libraries required.\n\n### Integrations\n\nOut of the box: Google Analytics, Mailchimp newsletter signup, Formspree and Netlify Forms for contact, Disqus comments, Google Fonts, Font Awesome 6, and Open Graph / Twitter card metadata. Ready to deploy to GitHub Pages or Netlify with a `netlify.toml` already included.\n\n**Who is it for?** Writers and developers who want a beautiful, fast, SEO-ready blog — without spending time on configuration or performance tuning.\n","url":"/themes/origin/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"premium","featured":true,"dark_mode":true,"responsive":true,"title":"Origin Jekyll Theme","rating":4.8,"rating_count":42,"description":"A fully featured and highly configurable modern blog theme for Jekyll. Includes categories, authors, comments, pagination, dark mode, and a perfect 100/100 Google Lighthouse score.","card_description":"Modern blog theme with dark mode, authors, categories, and 100/100 Lighthouse.","price":49,"category":"Blog","card_image":"/assets/images/themes/origin-card.webp","theme_screenshots":["/assets/images/themes/origin-screenshot.webp","/assets/images/themes/origin-screenshot-2.webp","/assets/images/themes/origin-screenshot-3.webp"],"key_features":["Dark Mode","100 Lighthouse","Categories","Authors"],"demo_url":"https://jekyll-origin.netlify.app/","buy_url":"https://www.zerostatic.io/theme/jekyll-origin/","author":"Zerostatic","author_url":"https://www.zerostatic.io/","github_author_name":"Zerostatic","support":"6 months","github_pages_compatible":true,"min_jekyll_version":"4.2","plugins":["jekyll-feed","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2025-04-01","added_at":"2026-06-27","popular":true,"trending":false,"bestseller":false,"version":"1.0.0","license":"Commercial","features":["Jekyll 4.2+ support","100% responsive design with crisp imagery and beautiful typography","Fully featured Blog with categories, authors, comments, and pagination","Dark mode with automatic and manual switching","100/100 Google Lighthouse speed and SEO scores","All content editable via markdown, front-matter, or YAML — nothing hardcoded","Configure logo, colours, fonts, menus, header, and footer in _config.yml","SCSS + Bootstrap 5.2, no jQuery, minimal vanilla JS","Auto-generated SEO meta tags with per-page overrides","Open Graph / Twitter card meta data included","Google Analytics support and social media links","Nested dropdown menus and responsive mobile hamburger menu","Contact page with Netlify Forms and Formspree support","Disqus comments integration","Mailchimp newsletter subscribe form","Google Fonts and Font Awesome 6 icons","Works with GitHub Pages and Netlify (includes netlify.toml)","All photos, illustrations, and icons included are royalty free","Full documentation with setup and customisation guide"],"slug":"origin","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/phantom","collection":"themes","next":{"path":"_themes/pixyll.md","relative_path":"_themes/pixyll.md","excerpt":"<p>Pixyll is the minimalist’s Jekyll theme. Created by John Otander, it strips away every non-essential element and focuses entirely on making text beautiful. The result is a theme that feels effortless to read — wide margins, comfortable line height, and a typographic hierarchy that works at every screen size.</p>\n\n","previous":{"path":"_themes/phantom.md","relative_path":"_themes/phantom.md","id":"/themes/phantom","collection":"themes","url":"/themes/phantom/","draft":false,"categories":["Portfolio"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Phantom Jekyll Theme","description":"A minimalist, responsive portfolio Jekyll theme with a project grid, modal image viewer, and subtle hover animations.","key_features":["Project Grid","Modal Viewer","Hover Animations","GitHub Pages"],"card_description":"Minimalist portfolio with project grid and modal image viewer.","category":"Portfolio","card_image":"/assets/images/themes/phantom-card.webp","theme_screenshots":["/assets/images/themes/phantom-screenshot.webp","/assets/images/themes/phantom-screenshot-2.webp","/assets/images/themes/phantom-screenshot-3.webp"],"demo_url":"https://jamigibbs.github.io/phantom/","github_url":"https://github.com/jamigibbs/phantom","author":"GitHub Community","github_author_name":"jamigibbs","github_author_url":"https://github.com/jamigibbs","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2024-07-23","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":353,"forks":196,"features":["Project portfolio grid","Modal image lightbox","Hover animations","About page layout","Skills section","Contact form ready","Clean minimal design","GitHub Pages compatible","Mobile responsive","Custom colour scheme"],"slug":"phantom","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/pixyll","collection":"themes","next":{"path":"_themes/primer.md","relative_path":"_themes/primer.md","id":"/themes/primer","collection":"themes","url":"/themes/primer/","draft":false,"categories":["Documentation"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Primer Jekyll Theme","description":"The official GitHub Pages primer Jekyll theme. Clean, GitHub-style design with great readability — perfect for documentation and project pages.","key_features":["GitHub Style","GitHub Pages","Clean Readability","Project Docs"],"card_description":"Official GitHub Pages primer theme — clean GitHub-style for docs.","category":"Documentation","card_image":"/assets/images/themes/primer-card.webp","theme_screenshots":["/assets/images/themes/primer-screenshot.webp","/assets/images/themes/primer-screenshot-2.webp","/assets/images/themes/primer-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/primer/","github_url":"https://github.com/pages-themes/primer","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":600,"forks":500,"features":["Official GitHub Pages supported theme","Built on GitHub Primer CSS design system","Clean neutral layout","Instantly readable typography","Single-line enable via _config.yml","Responsive layout","No local Jekyll install needed","Familiar GitHub aesthetic"],"slug":"primer","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Pixyll is the minimalist's Jekyll theme. Created by John Otander, it strips away every non-essential element and focuses entirely on making text beautiful. The result is a theme that feels effortless to read — wide margins, comfortable line height, and a typographic hierarchy that works at every screen size.\n\nThe mobile-first approach means it looks just as good on a phone as a widescreen monitor. And because it carries so little visual weight, pages load instantly.\n\n**Who is it for?** Writers, essayists, and developers who believe design should get out of the way and let the words do the work.\n","url":"/themes/pixyll/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Pixyll Jekyll Theme","description":"A simple, beautiful Jekyll theme that puts your content first. Mobile-first, fluidly responsive, and delightfully lightweight — built around great typography and generous whitespace.","key_features":["Mobile First","Clean Typography","GitHub Pages","Lightweight"],"card_description":"Simple, beautiful theme that puts content first with generous whitespace.","category":"Blog","card_image":"/assets/images/themes/pixyll-card.webp","theme_screenshots":["/assets/images/themes/pixyll-screenshot.webp","/assets/images/themes/pixyll-screenshot-2.webp","/assets/images/themes/pixyll-screenshot-3.webp"],"demo_url":"https://pixyll.com/","github_url":"https://github.com/johno/pixyll","author":"GitHub Community","github_author_name":"johno","github_author_url":"https://github.com/johno","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate"],"updated_at":"2022-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"3.0.0","license":"MIT","stars":2000,"forks":700,"features":["Mobile-first responsive design","Beautiful typographic scale","Generous whitespace layout","Disqus comments","Google Analytics","Syntax highlighting","Paginated post listing","Social sharing links","RSS feed","GitHub Pages compatible"],"slug":"pixyll","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Phantom is a clean, minimal portfolio theme built for designers and developers who want to present their work with style. Projects are displayed in a responsive grid, with each item opening in a full modal lightbox on click.\n\nSubtle hover animations add polish without distracting from the work itself.\n\n**Who is it for?** Designers, illustrators, and developers who want a minimal portfolio with a lightbox-style project viewer.\n","url":"/themes/phantom/","draft":false,"categories":["Portfolio"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Phantom Jekyll Theme","description":"A minimalist, responsive portfolio Jekyll theme with a project grid, modal image viewer, and subtle hover animations.","key_features":["Project Grid","Modal Viewer","Hover Animations","GitHub Pages"],"card_description":"Minimalist portfolio with project grid and modal image viewer.","category":"Portfolio","card_image":"/assets/images/themes/phantom-card.webp","theme_screenshots":["/assets/images/themes/phantom-screenshot.webp","/assets/images/themes/phantom-screenshot-2.webp","/assets/images/themes/phantom-screenshot-3.webp"],"demo_url":"https://jamigibbs.github.io/phantom/","github_url":"https://github.com/jamigibbs/phantom","author":"GitHub Community","github_author_name":"jamigibbs","github_author_url":"https://github.com/jamigibbs","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2024-07-23","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":353,"forks":196,"features":["Project portfolio grid","Modal image lightbox","Hover animations","About page layout","Skills section","Contact form ready","Clean minimal design","GitHub Pages compatible","Mobile responsive","Custom colour scheme"],"slug":"phantom","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/pixyll.md","relative_path":"_themes/pixyll.md","excerpt":"<p>Pixyll is the minimalist’s Jekyll theme. Created by John Otander, it strips away every non-essential element and focuses entirely on making text beautiful. The result is a theme that feels effortless to read — wide margins, comfortable line height, and a typographic hierarchy that works at every screen size.</p>\n\n","previous":{"path":"_themes/phantom.md","relative_path":"_themes/phantom.md","excerpt":"<p>Phantom is a clean, minimal portfolio theme built for designers and developers who want to present their work with style. Projects are displayed in a responsive grid, with each item opening in a full modal lightbox on click.</p>\n\n","previous":{"path":"_themes/origin.md","relative_path":"_themes/origin.md","id":"/themes/origin","collection":"themes","url":"/themes/origin/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"premium","featured":true,"dark_mode":true,"responsive":true,"title":"Origin Jekyll Theme","rating":4.8,"rating_count":42,"description":"A fully featured and highly configurable modern blog theme for Jekyll. Includes categories, authors, comments, pagination, dark mode, and a perfect 100/100 Google Lighthouse score.","card_description":"Modern blog theme with dark mode, authors, categories, and 100/100 Lighthouse.","price":49,"category":"Blog","card_image":"/assets/images/themes/origin-card.webp","theme_screenshots":["/assets/images/themes/origin-screenshot.webp","/assets/images/themes/origin-screenshot-2.webp","/assets/images/themes/origin-screenshot-3.webp"],"key_features":["Dark Mode","100 Lighthouse","Categories","Authors"],"demo_url":"https://jekyll-origin.netlify.app/","buy_url":"https://www.zerostatic.io/theme/jekyll-origin/","author":"Zerostatic","author_url":"https://www.zerostatic.io/","github_author_name":"Zerostatic","support":"6 months","github_pages_compatible":true,"min_jekyll_version":"4.2","plugins":["jekyll-feed","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2025-04-01","added_at":"2026-06-27","popular":true,"trending":false,"bestseller":false,"version":"1.0.0","license":"Commercial","features":["Jekyll 4.2+ support","100% responsive design with crisp imagery and beautiful typography","Fully featured Blog with categories, authors, comments, and pagination","Dark mode with automatic and manual switching","100/100 Google Lighthouse speed and SEO scores","All content editable via markdown, front-matter, or YAML — nothing hardcoded","Configure logo, colours, fonts, menus, header, and footer in _config.yml","SCSS + Bootstrap 5.2, no jQuery, minimal vanilla JS","Auto-generated SEO meta tags with per-page overrides","Open Graph / Twitter card meta data included","Google Analytics support and social media links","Nested dropdown menus and responsive mobile hamburger menu","Contact page with Netlify Forms and Formspree support","Disqus comments integration","Mailchimp newsletter subscribe form","Google Fonts and Font Awesome 6 icons","Works with GitHub Pages and Netlify (includes netlify.toml)","All photos, illustrations, and icons included are royalty free","Full documentation with setup and customisation guide"],"slug":"origin","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/phantom","collection":"themes","next":{"path":"_themes/pixyll.md","relative_path":"_themes/pixyll.md","id":"/themes/pixyll","collection":"themes","url":"/themes/pixyll/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Pixyll Jekyll Theme","description":"A simple, beautiful Jekyll theme that puts your content first. Mobile-first, fluidly responsive, and delightfully lightweight — built around great typography and generous whitespace.","key_features":["Mobile First","Clean Typography","GitHub Pages","Lightweight"],"card_description":"Simple, beautiful theme that puts content first with generous whitespace.","category":"Blog","card_image":"/assets/images/themes/pixyll-card.webp","theme_screenshots":["/assets/images/themes/pixyll-screenshot.webp","/assets/images/themes/pixyll-screenshot-2.webp","/assets/images/themes/pixyll-screenshot-3.webp"],"demo_url":"https://pixyll.com/","github_url":"https://github.com/johno/pixyll","author":"GitHub Community","github_author_name":"johno","github_author_url":"https://github.com/johno","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate"],"updated_at":"2022-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"3.0.0","license":"MIT","stars":2000,"forks":700,"features":["Mobile-first responsive design","Beautiful typographic scale","Generous whitespace layout","Disqus comments","Google Analytics","Syntax highlighting","Paginated post listing","Social sharing links","RSS feed","GitHub Pages compatible"],"slug":"pixyll","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Phantom is a clean, minimal portfolio theme built for designers and developers who want to present their work with style. Projects are displayed in a responsive grid, with each item opening in a full modal lightbox on click.\n\nSubtle hover animations add polish without distracting from the work itself.\n\n**Who is it for?** Designers, illustrators, and developers who want a minimal portfolio with a lightbox-style project viewer.\n","url":"/themes/phantom/","draft":false,"categories":["Portfolio"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Phantom Jekyll Theme","description":"A minimalist, responsive portfolio Jekyll theme with a project grid, modal image viewer, and subtle hover animations.","key_features":["Project Grid","Modal Viewer","Hover Animations","GitHub Pages"],"card_description":"Minimalist portfolio with project grid and modal image viewer.","category":"Portfolio","card_image":"/assets/images/themes/phantom-card.webp","theme_screenshots":["/assets/images/themes/phantom-screenshot.webp","/assets/images/themes/phantom-screenshot-2.webp","/assets/images/themes/phantom-screenshot-3.webp"],"demo_url":"https://jamigibbs.github.io/phantom/","github_url":"https://github.com/jamigibbs/phantom","author":"GitHub Community","github_author_name":"jamigibbs","github_author_url":"https://github.com/jamigibbs","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2024-07-23","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":353,"forks":196,"features":["Project portfolio grid","Modal image lightbox","Hover animations","About page layout","Skills section","Contact form ready","Clean minimal design","GitHub Pages compatible","Mobile responsive","Custom colour scheme"],"slug":"phantom","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/pixyll","collection":"themes","next":{"path":"_themes/primer.md","relative_path":"_themes/primer.md","excerpt":"<p>Primer is the official GitHub Pages theme built on GitHub’s own design system — the same CSS framework that powers GitHub.com. The result is a site that feels immediately familiar and credible to developers: clean, neutral, readable, and professional without being flashy.</p>\n\n","previous":{"path":"_themes/pixyll.md","relative_path":"_themes/pixyll.md","id":"/themes/pixyll","collection":"themes","url":"/themes/pixyll/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Pixyll Jekyll Theme","description":"A simple, beautiful Jekyll theme that puts your content first. Mobile-first, fluidly responsive, and delightfully lightweight — built around great typography and generous whitespace.","key_features":["Mobile First","Clean Typography","GitHub Pages","Lightweight"],"card_description":"Simple, beautiful theme that puts content first with generous whitespace.","category":"Blog","card_image":"/assets/images/themes/pixyll-card.webp","theme_screenshots":["/assets/images/themes/pixyll-screenshot.webp","/assets/images/themes/pixyll-screenshot-2.webp","/assets/images/themes/pixyll-screenshot-3.webp"],"demo_url":"https://pixyll.com/","github_url":"https://github.com/johno/pixyll","author":"GitHub Community","github_author_name":"johno","github_author_url":"https://github.com/johno","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate"],"updated_at":"2022-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"3.0.0","license":"MIT","stars":2000,"forks":700,"features":["Mobile-first responsive design","Beautiful typographic scale","Generous whitespace layout","Disqus comments","Google Analytics","Syntax highlighting","Paginated post listing","Social sharing links","RSS feed","GitHub Pages compatible"],"slug":"pixyll","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/primer","collection":"themes","next":{"path":"_themes/researcher.md","relative_path":"_themes/researcher.md","id":"/themes/researcher","collection":"themes","url":"/themes/researcher/","draft":false,"categories":["Resume / CV"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Researcher Jekyll Theme","description":"A minimal, clean Jekyll theme for a single-page academic CV. Presents your education, experience, publications, and skills in a clear, professional layout that loads instantly.","key_features":["Single-Page CV","Academic Layout","GitHub Pages","Fast Loading"],"card_description":"Minimal single-page academic CV with a clean, professional layout.","category":"Resume / CV","card_image":"/assets/images/themes/researcher-card.webp","theme_screenshots":["/assets/images/themes/researcher-screenshot.webp","/assets/images/themes/researcher-screenshot-2.webp","/assets/images/themes/researcher-screenshot-3.webp"],"demo_url":"https://ankitsultana.com/researcher/","github_url":"https://github.com/ankitsultana/researcher","author":"GitHub Community","github_author_name":"ankitsultana","github_author_url":"https://github.com/ankitsultana","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":500,"forks":400,"features":["Single-page CV layout","Education and experience sections","Publications listing","Skills and interests display","Clean monospace typography","Social and contact links","Minimal CSS footprint","Fast page load","GitHub Pages compatible","Easy YAML configuration"],"slug":"researcher","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Primer is the official GitHub Pages theme built on GitHub's own design system — the same CSS framework that powers GitHub.com. The result is a site that feels immediately familiar and credible to developers: clean, neutral, readable, and professional without being flashy.\n\nFor open-source projects that want their documentation site to feel like a natural extension of GitHub itself, Primer is the natural choice. Its single-line setup makes it one of the easiest ways to put a well-designed page on GitHub Pages.\n\n**Who is it for?** Open-source maintainers and developers who want documentation that looks authoritative and professional, with the familiar GitHub design language users already trust.\n","url":"/themes/primer/","draft":false,"categories":["Documentation"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Primer Jekyll Theme","description":"The official GitHub Pages primer Jekyll theme. Clean, GitHub-style design with great readability — perfect for documentation and project pages.","key_features":["GitHub Style","GitHub Pages","Clean Readability","Project Docs"],"card_description":"Official GitHub Pages primer theme — clean GitHub-style for docs.","category":"Documentation","card_image":"/assets/images/themes/primer-card.webp","theme_screenshots":["/assets/images/themes/primer-screenshot.webp","/assets/images/themes/primer-screenshot-2.webp","/assets/images/themes/primer-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/primer/","github_url":"https://github.com/pages-themes/primer","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":600,"forks":500,"features":["Official GitHub Pages supported theme","Built on GitHub Primer CSS design system","Clean neutral layout","Instantly readable typography","Single-line enable via _config.yml","Responsive layout","No local Jekyll install needed","Familiar GitHub aesthetic"],"slug":"primer","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Pixyll is the minimalist's Jekyll theme. Created by John Otander, it strips away every non-essential element and focuses entirely on making text beautiful. The result is a theme that feels effortless to read — wide margins, comfortable line height, and a typographic hierarchy that works at every screen size.\n\nThe mobile-first approach means it looks just as good on a phone as a widescreen monitor. And because it carries so little visual weight, pages load instantly.\n\n**Who is it for?** Writers, essayists, and developers who believe design should get out of the way and let the words do the work.\n","url":"/themes/pixyll/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Pixyll Jekyll Theme","description":"A simple, beautiful Jekyll theme that puts your content first. Mobile-first, fluidly responsive, and delightfully lightweight — built around great typography and generous whitespace.","key_features":["Mobile First","Clean Typography","GitHub Pages","Lightweight"],"card_description":"Simple, beautiful theme that puts content first with generous whitespace.","category":"Blog","card_image":"/assets/images/themes/pixyll-card.webp","theme_screenshots":["/assets/images/themes/pixyll-screenshot.webp","/assets/images/themes/pixyll-screenshot-2.webp","/assets/images/themes/pixyll-screenshot-3.webp"],"demo_url":"https://pixyll.com/","github_url":"https://github.com/johno/pixyll","author":"GitHub Community","github_author_name":"johno","github_author_url":"https://github.com/johno","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate"],"updated_at":"2022-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"3.0.0","license":"MIT","stars":2000,"forks":700,"features":["Mobile-first responsive design","Beautiful typographic scale","Generous whitespace layout","Disqus comments","Google Analytics","Syntax highlighting","Paginated post listing","Social sharing links","RSS feed","GitHub Pages compatible"],"slug":"pixyll","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/primer.md","relative_path":"_themes/primer.md","excerpt":"<p>Primer is the official GitHub Pages theme built on GitHub’s own design system — the same CSS framework that powers GitHub.com. The result is a site that feels immediately familiar and credible to developers: clean, neutral, readable, and professional without being flashy.</p>\n\n","previous":{"path":"_themes/pixyll.md","relative_path":"_themes/pixyll.md","excerpt":"<p>Pixyll is the minimalist’s Jekyll theme. Created by John Otander, it strips away every non-essential element and focuses entirely on making text beautiful. The result is a theme that feels effortless to read — wide margins, comfortable line height, and a typographic hierarchy that works at every screen size.</p>\n\n","previous":{"path":"_themes/phantom.md","relative_path":"_themes/phantom.md","id":"/themes/phantom","collection":"themes","url":"/themes/phantom/","draft":false,"categories":["Portfolio"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Phantom Jekyll Theme","description":"A minimalist, responsive portfolio Jekyll theme with a project grid, modal image viewer, and subtle hover animations.","key_features":["Project Grid","Modal Viewer","Hover Animations","GitHub Pages"],"card_description":"Minimalist portfolio with project grid and modal image viewer.","category":"Portfolio","card_image":"/assets/images/themes/phantom-card.webp","theme_screenshots":["/assets/images/themes/phantom-screenshot.webp","/assets/images/themes/phantom-screenshot-2.webp","/assets/images/themes/phantom-screenshot-3.webp"],"demo_url":"https://jamigibbs.github.io/phantom/","github_url":"https://github.com/jamigibbs/phantom","author":"GitHub Community","github_author_name":"jamigibbs","github_author_url":"https://github.com/jamigibbs","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed"],"updated_at":"2024-07-23","added_at":"2026-04-01","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":353,"forks":196,"features":["Project portfolio grid","Modal image lightbox","Hover animations","About page layout","Skills section","Contact form ready","Clean minimal design","GitHub Pages compatible","Mobile responsive","Custom colour scheme"],"slug":"phantom","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/pixyll","collection":"themes","next":{"path":"_themes/primer.md","relative_path":"_themes/primer.md","id":"/themes/primer","collection":"themes","url":"/themes/primer/","draft":false,"categories":["Documentation"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Primer Jekyll Theme","description":"The official GitHub Pages primer Jekyll theme. Clean, GitHub-style design with great readability — perfect for documentation and project pages.","key_features":["GitHub Style","GitHub Pages","Clean Readability","Project Docs"],"card_description":"Official GitHub Pages primer theme — clean GitHub-style for docs.","category":"Documentation","card_image":"/assets/images/themes/primer-card.webp","theme_screenshots":["/assets/images/themes/primer-screenshot.webp","/assets/images/themes/primer-screenshot-2.webp","/assets/images/themes/primer-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/primer/","github_url":"https://github.com/pages-themes/primer","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":600,"forks":500,"features":["Official GitHub Pages supported theme","Built on GitHub Primer CSS design system","Clean neutral layout","Instantly readable typography","Single-line enable via _config.yml","Responsive layout","No local Jekyll install needed","Familiar GitHub aesthetic"],"slug":"primer","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Pixyll is the minimalist's Jekyll theme. Created by John Otander, it strips away every non-essential element and focuses entirely on making text beautiful. The result is a theme that feels effortless to read — wide margins, comfortable line height, and a typographic hierarchy that works at every screen size.\n\nThe mobile-first approach means it looks just as good on a phone as a widescreen monitor. And because it carries so little visual weight, pages load instantly.\n\n**Who is it for?** Writers, essayists, and developers who believe design should get out of the way and let the words do the work.\n","url":"/themes/pixyll/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Pixyll Jekyll Theme","description":"A simple, beautiful Jekyll theme that puts your content first. Mobile-first, fluidly responsive, and delightfully lightweight — built around great typography and generous whitespace.","key_features":["Mobile First","Clean Typography","GitHub Pages","Lightweight"],"card_description":"Simple, beautiful theme that puts content first with generous whitespace.","category":"Blog","card_image":"/assets/images/themes/pixyll-card.webp","theme_screenshots":["/assets/images/themes/pixyll-screenshot.webp","/assets/images/themes/pixyll-screenshot-2.webp","/assets/images/themes/pixyll-screenshot-3.webp"],"demo_url":"https://pixyll.com/","github_url":"https://github.com/johno/pixyll","author":"GitHub Community","github_author_name":"johno","github_author_url":"https://github.com/johno","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate"],"updated_at":"2022-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"3.0.0","license":"MIT","stars":2000,"forks":700,"features":["Mobile-first responsive design","Beautiful typographic scale","Generous whitespace layout","Disqus comments","Google Analytics","Syntax highlighting","Paginated post listing","Social sharing links","RSS feed","GitHub Pages compatible"],"slug":"pixyll","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/primer","collection":"themes","next":{"path":"_themes/researcher.md","relative_path":"_themes/researcher.md","excerpt":"<p>Researcher is the no-nonsense option for academics who want a clean, single-page CV on the web. Where Academic Pages gives you an entire multi-page website, Researcher keeps everything on one page — education, experience, publications, skills, and contact — in a clean, minimal layout that loads instantly and looks professional everywhere.</p>\n\n","previous":{"path":"_themes/primer.md","relative_path":"_themes/primer.md","id":"/themes/primer","collection":"themes","url":"/themes/primer/","draft":false,"categories":["Documentation"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Primer Jekyll Theme","description":"The official GitHub Pages primer Jekyll theme. Clean, GitHub-style design with great readability — perfect for documentation and project pages.","key_features":["GitHub Style","GitHub Pages","Clean Readability","Project Docs"],"card_description":"Official GitHub Pages primer theme — clean GitHub-style for docs.","category":"Documentation","card_image":"/assets/images/themes/primer-card.webp","theme_screenshots":["/assets/images/themes/primer-screenshot.webp","/assets/images/themes/primer-screenshot-2.webp","/assets/images/themes/primer-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/primer/","github_url":"https://github.com/pages-themes/primer","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":600,"forks":500,"features":["Official GitHub Pages supported theme","Built on GitHub Primer CSS design system","Clean neutral layout","Instantly readable typography","Single-line enable via _config.yml","Responsive layout","No local Jekyll install needed","Familiar GitHub aesthetic"],"slug":"primer","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/researcher","collection":"themes","next":{"path":"_themes/reverie.md","relative_path":"_themes/reverie.md","id":"/themes/reverie","collection":"themes","url":"/themes/reverie/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Reverie Jekyll Theme","description":"A ridiculously elegant, fully responsive Jekyll blog theme based on Poole. Supports categories, tags, Disqus comments, and Google Analytics.","key_features":["Category Pages","Tag Support","GitHub Pages","Disqus Comments"],"card_description":"Elegantly responsive blog based on Poole with categories and tags.","category":"Blog","card_image":"/assets/images/themes/reverie-card.webp","theme_screenshots":["/assets/images/themes/reverie-screenshot.webp","/assets/images/themes/reverie-screenshot-2.webp","/assets/images/themes/reverie-screenshot-3.webp"],"demo_url":"https://reverie.amitmerchant.com/","github_url":"https://github.com/amitmerchant1990/reverie","author":"GitHub Community","github_author_name":"amitmerchant1990","github_author_url":"https://github.com/amitmerchant1990","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-paginate"],"updated_at":"2025-03-23","added_at":"2026-04-01","popular":true,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":842,"forks":418,"features":["Elegant minimal layout","Category and tag pages","Disqus comments","Google Analytics","GitHub Pages compatible","Paginated archive","Social sharing buttons","SEO optimised","RSS feed","Mobile friendly"],"slug":"reverie","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Researcher is the no-nonsense option for academics who want a clean, single-page CV on the web. Where Academic Pages gives you an entire multi-page website, Researcher keeps everything on one page — education, experience, publications, skills, and contact — in a clean, minimal layout that loads instantly and looks professional everywhere.\n\nThe monospace typography gives it a subtle technical identity without being gimmicky, and the straightforward YAML configuration means you can have it set up and deployed in under an hour.\n\n**Who is it for?** Academics, researchers, and PhD students who want a simple, fast, single-page CV site without the complexity of a full academic website.\n","url":"/themes/researcher/","draft":false,"categories":["Resume / CV"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Researcher Jekyll Theme","description":"A minimal, clean Jekyll theme for a single-page academic CV. Presents your education, experience, publications, and skills in a clear, professional layout that loads instantly.","key_features":["Single-Page CV","Academic Layout","GitHub Pages","Fast Loading"],"card_description":"Minimal single-page academic CV with a clean, professional layout.","category":"Resume / CV","card_image":"/assets/images/themes/researcher-card.webp","theme_screenshots":["/assets/images/themes/researcher-screenshot.webp","/assets/images/themes/researcher-screenshot-2.webp","/assets/images/themes/researcher-screenshot-3.webp"],"demo_url":"https://ankitsultana.com/researcher/","github_url":"https://github.com/ankitsultana/researcher","author":"GitHub Community","github_author_name":"ankitsultana","github_author_url":"https://github.com/ankitsultana","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":500,"forks":400,"features":["Single-page CV layout","Education and experience sections","Publications listing","Skills and interests display","Clean monospace typography","Social and contact links","Minimal CSS footprint","Fast page load","GitHub Pages compatible","Easy YAML configuration"],"slug":"researcher","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Primer is the official GitHub Pages theme built on GitHub's own design system — the same CSS framework that powers GitHub.com. The result is a site that feels immediately familiar and credible to developers: clean, neutral, readable, and professional without being flashy.\n\nFor open-source projects that want their documentation site to feel like a natural extension of GitHub itself, Primer is the natural choice. Its single-line setup makes it one of the easiest ways to put a well-designed page on GitHub Pages.\n\n**Who is it for?** Open-source maintainers and developers who want documentation that looks authoritative and professional, with the familiar GitHub design language users already trust.\n","url":"/themes/primer/","draft":false,"categories":["Documentation"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Primer Jekyll Theme","description":"The official GitHub Pages primer Jekyll theme. Clean, GitHub-style design with great readability — perfect for documentation and project pages.","key_features":["GitHub Style","GitHub Pages","Clean Readability","Project Docs"],"card_description":"Official GitHub Pages primer theme — clean GitHub-style for docs.","category":"Documentation","card_image":"/assets/images/themes/primer-card.webp","theme_screenshots":["/assets/images/themes/primer-screenshot.webp","/assets/images/themes/primer-screenshot-2.webp","/assets/images/themes/primer-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/primer/","github_url":"https://github.com/pages-themes/primer","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":600,"forks":500,"features":["Official GitHub Pages supported theme","Built on GitHub Primer CSS design system","Clean neutral layout","Instantly readable typography","Single-line enable via _config.yml","Responsive layout","No local Jekyll install needed","Familiar GitHub aesthetic"],"slug":"primer","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/researcher.md","relative_path":"_themes/researcher.md","excerpt":"<p>Researcher is the no-nonsense option for academics who want a clean, single-page CV on the web. Where Academic Pages gives you an entire multi-page website, Researcher keeps everything on one page — education, experience, publications, skills, and contact — in a clean, minimal layout that loads instantly and looks professional everywhere.</p>\n\n","previous":{"path":"_themes/primer.md","relative_path":"_themes/primer.md","excerpt":"<p>Primer is the official GitHub Pages theme built on GitHub’s own design system — the same CSS framework that powers GitHub.com. The result is a site that feels immediately familiar and credible to developers: clean, neutral, readable, and professional without being flashy.</p>\n\n","previous":{"path":"_themes/pixyll.md","relative_path":"_themes/pixyll.md","id":"/themes/pixyll","collection":"themes","url":"/themes/pixyll/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Pixyll Jekyll Theme","description":"A simple, beautiful Jekyll theme that puts your content first. Mobile-first, fluidly responsive, and delightfully lightweight — built around great typography and generous whitespace.","key_features":["Mobile First","Clean Typography","GitHub Pages","Lightweight"],"card_description":"Simple, beautiful theme that puts content first with generous whitespace.","category":"Blog","card_image":"/assets/images/themes/pixyll-card.webp","theme_screenshots":["/assets/images/themes/pixyll-screenshot.webp","/assets/images/themes/pixyll-screenshot-2.webp","/assets/images/themes/pixyll-screenshot-3.webp"],"demo_url":"https://pixyll.com/","github_url":"https://github.com/johno/pixyll","author":"GitHub Community","github_author_name":"johno","github_author_url":"https://github.com/johno","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate"],"updated_at":"2022-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"3.0.0","license":"MIT","stars":2000,"forks":700,"features":["Mobile-first responsive design","Beautiful typographic scale","Generous whitespace layout","Disqus comments","Google Analytics","Syntax highlighting","Paginated post listing","Social sharing links","RSS feed","GitHub Pages compatible"],"slug":"pixyll","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/primer","collection":"themes","next":{"path":"_themes/researcher.md","relative_path":"_themes/researcher.md","id":"/themes/researcher","collection":"themes","url":"/themes/researcher/","draft":false,"categories":["Resume / CV"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Researcher Jekyll Theme","description":"A minimal, clean Jekyll theme for a single-page academic CV. Presents your education, experience, publications, and skills in a clear, professional layout that loads instantly.","key_features":["Single-Page CV","Academic Layout","GitHub Pages","Fast Loading"],"card_description":"Minimal single-page academic CV with a clean, professional layout.","category":"Resume / CV","card_image":"/assets/images/themes/researcher-card.webp","theme_screenshots":["/assets/images/themes/researcher-screenshot.webp","/assets/images/themes/researcher-screenshot-2.webp","/assets/images/themes/researcher-screenshot-3.webp"],"demo_url":"https://ankitsultana.com/researcher/","github_url":"https://github.com/ankitsultana/researcher","author":"GitHub Community","github_author_name":"ankitsultana","github_author_url":"https://github.com/ankitsultana","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":500,"forks":400,"features":["Single-page CV layout","Education and experience sections","Publications listing","Skills and interests display","Clean monospace typography","Social and contact links","Minimal CSS footprint","Fast page load","GitHub Pages compatible","Easy YAML configuration"],"slug":"researcher","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Primer is the official GitHub Pages theme built on GitHub's own design system — the same CSS framework that powers GitHub.com. The result is a site that feels immediately familiar and credible to developers: clean, neutral, readable, and professional without being flashy.\n\nFor open-source projects that want their documentation site to feel like a natural extension of GitHub itself, Primer is the natural choice. Its single-line setup makes it one of the easiest ways to put a well-designed page on GitHub Pages.\n\n**Who is it for?** Open-source maintainers and developers who want documentation that looks authoritative and professional, with the familiar GitHub design language users already trust.\n","url":"/themes/primer/","draft":false,"categories":["Documentation"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Primer Jekyll Theme","description":"The official GitHub Pages primer Jekyll theme. Clean, GitHub-style design with great readability — perfect for documentation and project pages.","key_features":["GitHub Style","GitHub Pages","Clean Readability","Project Docs"],"card_description":"Official GitHub Pages primer theme — clean GitHub-style for docs.","category":"Documentation","card_image":"/assets/images/themes/primer-card.webp","theme_screenshots":["/assets/images/themes/primer-screenshot.webp","/assets/images/themes/primer-screenshot-2.webp","/assets/images/themes/primer-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/primer/","github_url":"https://github.com/pages-themes/primer","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":600,"forks":500,"features":["Official GitHub Pages supported theme","Built on GitHub Primer CSS design system","Clean neutral layout","Instantly readable typography","Single-line enable via _config.yml","Responsive layout","No local Jekyll install needed","Familiar GitHub aesthetic"],"slug":"primer","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/researcher","collection":"themes","next":{"path":"_themes/reverie.md","relative_path":"_themes/reverie.md","excerpt":"<p>Reverie is a fork of the classic Poole theme, polished into an elegant blogging experience by Amit Merchant. It retains Poole’s clean, spacious feel while adding practical features like category/tag pages, Disqus integration, and pagination.</p>\n\n","previous":{"path":"_themes/researcher.md","relative_path":"_themes/researcher.md","id":"/themes/researcher","collection":"themes","url":"/themes/researcher/","draft":false,"categories":["Resume / CV"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Researcher Jekyll Theme","description":"A minimal, clean Jekyll theme for a single-page academic CV. Presents your education, experience, publications, and skills in a clear, professional layout that loads instantly.","key_features":["Single-Page CV","Academic Layout","GitHub Pages","Fast Loading"],"card_description":"Minimal single-page academic CV with a clean, professional layout.","category":"Resume / CV","card_image":"/assets/images/themes/researcher-card.webp","theme_screenshots":["/assets/images/themes/researcher-screenshot.webp","/assets/images/themes/researcher-screenshot-2.webp","/assets/images/themes/researcher-screenshot-3.webp"],"demo_url":"https://ankitsultana.com/researcher/","github_url":"https://github.com/ankitsultana/researcher","author":"GitHub Community","github_author_name":"ankitsultana","github_author_url":"https://github.com/ankitsultana","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":500,"forks":400,"features":["Single-page CV layout","Education and experience sections","Publications listing","Skills and interests display","Clean monospace typography","Social and contact links","Minimal CSS footprint","Fast page load","GitHub Pages compatible","Easy YAML configuration"],"slug":"researcher","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/reverie","collection":"themes","next":{"path":"_themes/sandbox.md","relative_path":"_themes/sandbox.md","id":"/themes/sandbox","collection":"themes","url":"/themes/sandbox/","draft":false,"categories":["Business"],"layout":"theme","price_type":"premium","featured":true,"dark_mode":true,"responsive":true,"title":"Sandbox Jekyll Theme","rating":4.8,"rating_count":56,"description":"A massive multipurpose Jekyll theme with 27 home pages, 130+ ready-to-use blocks, and 250+ UI elements. Built with Bootstrap 5 and zero jQuery — perfect for startups, SaaS, agencies, portfolios, and eCommerce sites.","card_description":"Multipurpose theme — 27 homepages, 130+ blocks, 250+ UI elements, Bootstrap 5.","price":99,"category":"Business","card_image":"/assets/images/themes/sandbox-card.webp","theme_screenshots":["/assets/images/themes/sandbox-screenshot.webp","/assets/images/themes/sandbox-screenshot-2.webp","/assets/images/themes/sandbox-screenshot-3.webp"],"key_features":["27 Home Pages","130+ Blocks","No jQuery","Video Backgrounds"],"demo_url":"https://sandbox.tortoizthemes.com/demo28/","buy_url":"https://tortoizthemes.com/theme/sandbox/","author":"Tortoiz Themes","author_url":"https://tortoizthemes.com/","github_author_name":"tortoizthemes","support":"6 months","github_pages_compatible":true,"min_jekyll_version":"4.0","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2025-06-01","added_at":"2026-06-27","popular":true,"trending":true,"bestseller":true,"version":"2.0.0","license":"Commercial","features":["27 unique home pages and landing pages for every use case","130+ pre-made ready-to-use blocks — mix and match freely","250+ beautiful UI elements included","100+ neatly coded pages","Gulp, Bootstrap 5, and SASS — zero jQuery dependency","Valid HTML5 and CSS3 with thorough documentation","Fully responsive and retina-ready","Modern and eye-catching portfolio layouts with Isotope.js filtering","One-page layout option with smooth scroll","Various header and menu options including mega menu (light and dark)","Offcanvas mobile menu and info panel","Sticky header and footer","Notification bar and modal popup","Scroll animations with scrollCue.js","Swiper.js sliders with animated captions","Image and video background options (HTML5, YouTube, Vimeo via Plyr)","Lightbox for images and videos","Contact form without page refresh","Mailchimp newsletter integration","Duotone and font icon options with high-quality retina icon sets","Color and font options for brand customisation"],"slug":"sandbox","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Reverie is a fork of the classic Poole theme, polished into an elegant blogging experience by Amit Merchant. It retains Poole's clean, spacious feel while adding practical features like category/tag pages, Disqus integration, and pagination.\n\nThe setup is deliberately simple — fork the repo, update `_config.yml`, and you're live on GitHub Pages in minutes.\n\n**Who is it for?** Writers who want an elegant, low-maintenance blog that deploys straight to GitHub Pages.\n","url":"/themes/reverie/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Reverie Jekyll Theme","description":"A ridiculously elegant, fully responsive Jekyll blog theme based on Poole. Supports categories, tags, Disqus comments, and Google Analytics.","key_features":["Category Pages","Tag Support","GitHub Pages","Disqus Comments"],"card_description":"Elegantly responsive blog based on Poole with categories and tags.","category":"Blog","card_image":"/assets/images/themes/reverie-card.webp","theme_screenshots":["/assets/images/themes/reverie-screenshot.webp","/assets/images/themes/reverie-screenshot-2.webp","/assets/images/themes/reverie-screenshot-3.webp"],"demo_url":"https://reverie.amitmerchant.com/","github_url":"https://github.com/amitmerchant1990/reverie","author":"GitHub Community","github_author_name":"amitmerchant1990","github_author_url":"https://github.com/amitmerchant1990","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-paginate"],"updated_at":"2025-03-23","added_at":"2026-04-01","popular":true,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":842,"forks":418,"features":["Elegant minimal layout","Category and tag pages","Disqus comments","Google Analytics","GitHub Pages compatible","Paginated archive","Social sharing buttons","SEO optimised","RSS feed","Mobile friendly"],"slug":"reverie","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Researcher is the no-nonsense option for academics who want a clean, single-page CV on the web. Where Academic Pages gives you an entire multi-page website, Researcher keeps everything on one page — education, experience, publications, skills, and contact — in a clean, minimal layout that loads instantly and looks professional everywhere.\n\nThe monospace typography gives it a subtle technical identity without being gimmicky, and the straightforward YAML configuration means you can have it set up and deployed in under an hour.\n\n**Who is it for?** Academics, researchers, and PhD students who want a simple, fast, single-page CV site without the complexity of a full academic website.\n","url":"/themes/researcher/","draft":false,"categories":["Resume / CV"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Researcher Jekyll Theme","description":"A minimal, clean Jekyll theme for a single-page academic CV. Presents your education, experience, publications, and skills in a clear, professional layout that loads instantly.","key_features":["Single-Page CV","Academic Layout","GitHub Pages","Fast Loading"],"card_description":"Minimal single-page academic CV with a clean, professional layout.","category":"Resume / CV","card_image":"/assets/images/themes/researcher-card.webp","theme_screenshots":["/assets/images/themes/researcher-screenshot.webp","/assets/images/themes/researcher-screenshot-2.webp","/assets/images/themes/researcher-screenshot-3.webp"],"demo_url":"https://ankitsultana.com/researcher/","github_url":"https://github.com/ankitsultana/researcher","author":"GitHub Community","github_author_name":"ankitsultana","github_author_url":"https://github.com/ankitsultana","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":500,"forks":400,"features":["Single-page CV layout","Education and experience sections","Publications listing","Skills and interests display","Clean monospace typography","Social and contact links","Minimal CSS footprint","Fast page load","GitHub Pages compatible","Easy YAML configuration"],"slug":"researcher","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/reverie.md","relative_path":"_themes/reverie.md","excerpt":"<p>Reverie is a fork of the classic Poole theme, polished into an elegant blogging experience by Amit Merchant. It retains Poole’s clean, spacious feel while adding practical features like category/tag pages, Disqus integration, and pagination.</p>\n\n","previous":{"path":"_themes/researcher.md","relative_path":"_themes/researcher.md","excerpt":"<p>Researcher is the no-nonsense option for academics who want a clean, single-page CV on the web. Where Academic Pages gives you an entire multi-page website, Researcher keeps everything on one page — education, experience, publications, skills, and contact — in a clean, minimal layout that loads instantly and looks professional everywhere.</p>\n\n","previous":{"path":"_themes/primer.md","relative_path":"_themes/primer.md","id":"/themes/primer","collection":"themes","url":"/themes/primer/","draft":false,"categories":["Documentation"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Primer Jekyll Theme","description":"The official GitHub Pages primer Jekyll theme. Clean, GitHub-style design with great readability — perfect for documentation and project pages.","key_features":["GitHub Style","GitHub Pages","Clean Readability","Project Docs"],"card_description":"Official GitHub Pages primer theme — clean GitHub-style for docs.","category":"Documentation","card_image":"/assets/images/themes/primer-card.webp","theme_screenshots":["/assets/images/themes/primer-screenshot.webp","/assets/images/themes/primer-screenshot-2.webp","/assets/images/themes/primer-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/primer/","github_url":"https://github.com/pages-themes/primer","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":600,"forks":500,"features":["Official GitHub Pages supported theme","Built on GitHub Primer CSS design system","Clean neutral layout","Instantly readable typography","Single-line enable via _config.yml","Responsive layout","No local Jekyll install needed","Familiar GitHub aesthetic"],"slug":"primer","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/researcher","collection":"themes","next":{"path":"_themes/reverie.md","relative_path":"_themes/reverie.md","id":"/themes/reverie","collection":"themes","url":"/themes/reverie/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Reverie Jekyll Theme","description":"A ridiculously elegant, fully responsive Jekyll blog theme based on Poole. Supports categories, tags, Disqus comments, and Google Analytics.","key_features":["Category Pages","Tag Support","GitHub Pages","Disqus Comments"],"card_description":"Elegantly responsive blog based on Poole with categories and tags.","category":"Blog","card_image":"/assets/images/themes/reverie-card.webp","theme_screenshots":["/assets/images/themes/reverie-screenshot.webp","/assets/images/themes/reverie-screenshot-2.webp","/assets/images/themes/reverie-screenshot-3.webp"],"demo_url":"https://reverie.amitmerchant.com/","github_url":"https://github.com/amitmerchant1990/reverie","author":"GitHub Community","github_author_name":"amitmerchant1990","github_author_url":"https://github.com/amitmerchant1990","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-paginate"],"updated_at":"2025-03-23","added_at":"2026-04-01","popular":true,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":842,"forks":418,"features":["Elegant minimal layout","Category and tag pages","Disqus comments","Google Analytics","GitHub Pages compatible","Paginated archive","Social sharing buttons","SEO optimised","RSS feed","Mobile friendly"],"slug":"reverie","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Researcher is the no-nonsense option for academics who want a clean, single-page CV on the web. Where Academic Pages gives you an entire multi-page website, Researcher keeps everything on one page — education, experience, publications, skills, and contact — in a clean, minimal layout that loads instantly and looks professional everywhere.\n\nThe monospace typography gives it a subtle technical identity without being gimmicky, and the straightforward YAML configuration means you can have it set up and deployed in under an hour.\n\n**Who is it for?** Academics, researchers, and PhD students who want a simple, fast, single-page CV site without the complexity of a full academic website.\n","url":"/themes/researcher/","draft":false,"categories":["Resume / CV"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Researcher Jekyll Theme","description":"A minimal, clean Jekyll theme for a single-page academic CV. Presents your education, experience, publications, and skills in a clear, professional layout that loads instantly.","key_features":["Single-Page CV","Academic Layout","GitHub Pages","Fast Loading"],"card_description":"Minimal single-page academic CV with a clean, professional layout.","category":"Resume / CV","card_image":"/assets/images/themes/researcher-card.webp","theme_screenshots":["/assets/images/themes/researcher-screenshot.webp","/assets/images/themes/researcher-screenshot-2.webp","/assets/images/themes/researcher-screenshot-3.webp"],"demo_url":"https://ankitsultana.com/researcher/","github_url":"https://github.com/ankitsultana/researcher","author":"GitHub Community","github_author_name":"ankitsultana","github_author_url":"https://github.com/ankitsultana","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":500,"forks":400,"features":["Single-page CV layout","Education and experience sections","Publications listing","Skills and interests display","Clean monospace typography","Social and contact links","Minimal CSS footprint","Fast page load","GitHub Pages compatible","Easy YAML configuration"],"slug":"researcher","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/reverie","collection":"themes","next":{"path":"_themes/sandbox.md","relative_path":"_themes/sandbox.md","excerpt":"<p>Sandbox is the most comprehensive Jekyll theme in this collection. With 27 home pages, 130+ UI blocks, and 250+ individual elements, it is less a theme and more a complete design system — one that can produce any type of website from the same codebase.</p>\n\n","previous":{"path":"_themes/reverie.md","relative_path":"_themes/reverie.md","id":"/themes/reverie","collection":"themes","url":"/themes/reverie/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Reverie Jekyll Theme","description":"A ridiculously elegant, fully responsive Jekyll blog theme based on Poole. Supports categories, tags, Disqus comments, and Google Analytics.","key_features":["Category Pages","Tag Support","GitHub Pages","Disqus Comments"],"card_description":"Elegantly responsive blog based on Poole with categories and tags.","category":"Blog","card_image":"/assets/images/themes/reverie-card.webp","theme_screenshots":["/assets/images/themes/reverie-screenshot.webp","/assets/images/themes/reverie-screenshot-2.webp","/assets/images/themes/reverie-screenshot-3.webp"],"demo_url":"https://reverie.amitmerchant.com/","github_url":"https://github.com/amitmerchant1990/reverie","author":"GitHub Community","github_author_name":"amitmerchant1990","github_author_url":"https://github.com/amitmerchant1990","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-paginate"],"updated_at":"2025-03-23","added_at":"2026-04-01","popular":true,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":842,"forks":418,"features":["Elegant minimal layout","Category and tag pages","Disqus comments","Google Analytics","GitHub Pages compatible","Paginated archive","Social sharing buttons","SEO optimised","RSS feed","Mobile friendly"],"slug":"reverie","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/sandbox","collection":"themes","next":{"path":"_themes/scriptor.md","relative_path":"_themes/scriptor.md","id":"/themes/scriptor","collection":"themes","url":"/themes/scriptor/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Scriptor Jekyll Theme","description":"A minimal, clean, and modern Jekyll theme for writers and bloggers. Elegant typography, featured images, and a distraction-free reading layout built for long-form content.","key_features":["Writer Focused","Featured Images","Minimal Design","GitHub Pages"],"card_description":"Minimal, modern theme for writers with elegant typography.","category":"Blog","card_image":"/assets/images/themes/scriptor-card.webp","theme_screenshots":["/assets/images/themes/scriptor-screenshot.webp","/assets/images/themes/scriptor-screenshot-2.webp","/assets/images/themes/scriptor-screenshot-3.webp"],"demo_url":"https://scriptor-jekyll.netlify.app/","github_url":"https://github.com/JustGoodThemes/Scriptor-Jekyll-Theme","author":"GitHub Community","github_author_name":"JustGoodThemes","github_author_url":"https://github.com/JustGoodThemes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":183,"forks":120,"features":["Clean minimal blog layout","Featured images per post","Elegant typographic scale","Paginated post listing","Category and tag support","Disqus comments","Google Analytics","Social sharing links","RSS feed","GitHub Pages compatible"],"slug":"scriptor","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Sandbox is the most comprehensive Jekyll theme in this collection. With 27 home pages, 130+ UI blocks, and 250+ individual elements, it is less a theme and more a complete design system — one that can produce any type of website from the same codebase.\n\n### Built for Every Use Case\n\nThe 27 pre-built home pages cover the full spectrum of modern website types: SaaS platforms, startup landing pages, creative agency sites, personal portfolios, photography showcases, eCommerce storefronts, blog/journal sites, wedding pages, and travel sites. Each is production-ready and fully customisable through SCSS variables and config files.\n\n### Block-Based Building\n\nThe 130+ block library is where Sandbox earns its \"Sandbox\" name. Every block — hero, features, pricing, testimonials, portfolio grid, CTA, contact — is a standalone, droppable section. Combine them to create custom page layouts without writing HTML. The 250+ UI elements include buttons, cards, badges, tabs, accordions, progress bars, and more.\n\n### Modern Technical Foundation\n\nBuilt on Bootstrap 5 with Gulp and SASS, and containing zero jQuery, Sandbox loads fast and scores well on Core Web Vitals. Interactive features come from purpose-built libraries: Swiper.js for sliders, Isotope.js for filterable galleries, scrollCue.js for scroll animations, and Plyr for video backgrounds and embedded media (YouTube and Vimeo supported).\n\n**Who is it for?** Agencies or developers who need one theme that can build anything — and who want to stop buying a new theme for every new client project.\n","url":"/themes/sandbox/","draft":false,"categories":["Business"],"layout":"theme","price_type":"premium","featured":true,"dark_mode":true,"responsive":true,"title":"Sandbox Jekyll Theme","rating":4.8,"rating_count":56,"description":"A massive multipurpose Jekyll theme with 27 home pages, 130+ ready-to-use blocks, and 250+ UI elements. Built with Bootstrap 5 and zero jQuery — perfect for startups, SaaS, agencies, portfolios, and eCommerce sites.","card_description":"Multipurpose theme — 27 homepages, 130+ blocks, 250+ UI elements, Bootstrap 5.","price":99,"category":"Business","card_image":"/assets/images/themes/sandbox-card.webp","theme_screenshots":["/assets/images/themes/sandbox-screenshot.webp","/assets/images/themes/sandbox-screenshot-2.webp","/assets/images/themes/sandbox-screenshot-3.webp"],"key_features":["27 Home Pages","130+ Blocks","No jQuery","Video Backgrounds"],"demo_url":"https://sandbox.tortoizthemes.com/demo28/","buy_url":"https://tortoizthemes.com/theme/sandbox/","author":"Tortoiz Themes","author_url":"https://tortoizthemes.com/","github_author_name":"tortoizthemes","support":"6 months","github_pages_compatible":true,"min_jekyll_version":"4.0","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2025-06-01","added_at":"2026-06-27","popular":true,"trending":true,"bestseller":true,"version":"2.0.0","license":"Commercial","features":["27 unique home pages and landing pages for every use case","130+ pre-made ready-to-use blocks — mix and match freely","250+ beautiful UI elements included","100+ neatly coded pages","Gulp, Bootstrap 5, and SASS — zero jQuery dependency","Valid HTML5 and CSS3 with thorough documentation","Fully responsive and retina-ready","Modern and eye-catching portfolio layouts with Isotope.js filtering","One-page layout option with smooth scroll","Various header and menu options including mega menu (light and dark)","Offcanvas mobile menu and info panel","Sticky header and footer","Notification bar and modal popup","Scroll animations with scrollCue.js","Swiper.js sliders with animated captions","Image and video background options (HTML5, YouTube, Vimeo via Plyr)","Lightbox for images and videos","Contact form without page refresh","Mailchimp newsletter integration","Duotone and font icon options with high-quality retina icon sets","Color and font options for brand customisation"],"slug":"sandbox","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Reverie is a fork of the classic Poole theme, polished into an elegant blogging experience by Amit Merchant. It retains Poole's clean, spacious feel while adding practical features like category/tag pages, Disqus integration, and pagination.\n\nThe setup is deliberately simple — fork the repo, update `_config.yml`, and you're live on GitHub Pages in minutes.\n\n**Who is it for?** Writers who want an elegant, low-maintenance blog that deploys straight to GitHub Pages.\n","url":"/themes/reverie/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Reverie Jekyll Theme","description":"A ridiculously elegant, fully responsive Jekyll blog theme based on Poole. Supports categories, tags, Disqus comments, and Google Analytics.","key_features":["Category Pages","Tag Support","GitHub Pages","Disqus Comments"],"card_description":"Elegantly responsive blog based on Poole with categories and tags.","category":"Blog","card_image":"/assets/images/themes/reverie-card.webp","theme_screenshots":["/assets/images/themes/reverie-screenshot.webp","/assets/images/themes/reverie-screenshot-2.webp","/assets/images/themes/reverie-screenshot-3.webp"],"demo_url":"https://reverie.amitmerchant.com/","github_url":"https://github.com/amitmerchant1990/reverie","author":"GitHub Community","github_author_name":"amitmerchant1990","github_author_url":"https://github.com/amitmerchant1990","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-paginate"],"updated_at":"2025-03-23","added_at":"2026-04-01","popular":true,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":842,"forks":418,"features":["Elegant minimal layout","Category and tag pages","Disqus comments","Google Analytics","GitHub Pages compatible","Paginated archive","Social sharing buttons","SEO optimised","RSS feed","Mobile friendly"],"slug":"reverie","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/sandbox.md","relative_path":"_themes/sandbox.md","excerpt":"<p>Sandbox is the most comprehensive Jekyll theme in this collection. With 27 home pages, 130+ UI blocks, and 250+ individual elements, it is less a theme and more a complete design system — one that can produce any type of website from the same codebase.</p>\n\n","previous":{"path":"_themes/reverie.md","relative_path":"_themes/reverie.md","excerpt":"<p>Reverie is a fork of the classic Poole theme, polished into an elegant blogging experience by Amit Merchant. It retains Poole’s clean, spacious feel while adding practical features like category/tag pages, Disqus integration, and pagination.</p>\n\n","previous":{"path":"_themes/researcher.md","relative_path":"_themes/researcher.md","id":"/themes/researcher","collection":"themes","url":"/themes/researcher/","draft":false,"categories":["Resume / CV"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Researcher Jekyll Theme","description":"A minimal, clean Jekyll theme for a single-page academic CV. Presents your education, experience, publications, and skills in a clear, professional layout that loads instantly.","key_features":["Single-Page CV","Academic Layout","GitHub Pages","Fast Loading"],"card_description":"Minimal single-page academic CV with a clean, professional layout.","category":"Resume / CV","card_image":"/assets/images/themes/researcher-card.webp","theme_screenshots":["/assets/images/themes/researcher-screenshot.webp","/assets/images/themes/researcher-screenshot-2.webp","/assets/images/themes/researcher-screenshot-3.webp"],"demo_url":"https://ankitsultana.com/researcher/","github_url":"https://github.com/ankitsultana/researcher","author":"GitHub Community","github_author_name":"ankitsultana","github_author_url":"https://github.com/ankitsultana","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":500,"forks":400,"features":["Single-page CV layout","Education and experience sections","Publications listing","Skills and interests display","Clean monospace typography","Social and contact links","Minimal CSS footprint","Fast page load","GitHub Pages compatible","Easy YAML configuration"],"slug":"researcher","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/reverie","collection":"themes","next":{"path":"_themes/sandbox.md","relative_path":"_themes/sandbox.md","id":"/themes/sandbox","collection":"themes","url":"/themes/sandbox/","draft":false,"categories":["Business"],"layout":"theme","price_type":"premium","featured":true,"dark_mode":true,"responsive":true,"title":"Sandbox Jekyll Theme","rating":4.8,"rating_count":56,"description":"A massive multipurpose Jekyll theme with 27 home pages, 130+ ready-to-use blocks, and 250+ UI elements. Built with Bootstrap 5 and zero jQuery — perfect for startups, SaaS, agencies, portfolios, and eCommerce sites.","card_description":"Multipurpose theme — 27 homepages, 130+ blocks, 250+ UI elements, Bootstrap 5.","price":99,"category":"Business","card_image":"/assets/images/themes/sandbox-card.webp","theme_screenshots":["/assets/images/themes/sandbox-screenshot.webp","/assets/images/themes/sandbox-screenshot-2.webp","/assets/images/themes/sandbox-screenshot-3.webp"],"key_features":["27 Home Pages","130+ Blocks","No jQuery","Video Backgrounds"],"demo_url":"https://sandbox.tortoizthemes.com/demo28/","buy_url":"https://tortoizthemes.com/theme/sandbox/","author":"Tortoiz Themes","author_url":"https://tortoizthemes.com/","github_author_name":"tortoizthemes","support":"6 months","github_pages_compatible":true,"min_jekyll_version":"4.0","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2025-06-01","added_at":"2026-06-27","popular":true,"trending":true,"bestseller":true,"version":"2.0.0","license":"Commercial","features":["27 unique home pages and landing pages for every use case","130+ pre-made ready-to-use blocks — mix and match freely","250+ beautiful UI elements included","100+ neatly coded pages","Gulp, Bootstrap 5, and SASS — zero jQuery dependency","Valid HTML5 and CSS3 with thorough documentation","Fully responsive and retina-ready","Modern and eye-catching portfolio layouts with Isotope.js filtering","One-page layout option with smooth scroll","Various header and menu options including mega menu (light and dark)","Offcanvas mobile menu and info panel","Sticky header and footer","Notification bar and modal popup","Scroll animations with scrollCue.js","Swiper.js sliders with animated captions","Image and video background options (HTML5, YouTube, Vimeo via Plyr)","Lightbox for images and videos","Contact form without page refresh","Mailchimp newsletter integration","Duotone and font icon options with high-quality retina icon sets","Color and font options for brand customisation"],"slug":"sandbox","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Reverie is a fork of the classic Poole theme, polished into an elegant blogging experience by Amit Merchant. It retains Poole's clean, spacious feel while adding practical features like category/tag pages, Disqus integration, and pagination.\n\nThe setup is deliberately simple — fork the repo, update `_config.yml`, and you're live on GitHub Pages in minutes.\n\n**Who is it for?** Writers who want an elegant, low-maintenance blog that deploys straight to GitHub Pages.\n","url":"/themes/reverie/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Reverie Jekyll Theme","description":"A ridiculously elegant, fully responsive Jekyll blog theme based on Poole. Supports categories, tags, Disqus comments, and Google Analytics.","key_features":["Category Pages","Tag Support","GitHub Pages","Disqus Comments"],"card_description":"Elegantly responsive blog based on Poole with categories and tags.","category":"Blog","card_image":"/assets/images/themes/reverie-card.webp","theme_screenshots":["/assets/images/themes/reverie-screenshot.webp","/assets/images/themes/reverie-screenshot-2.webp","/assets/images/themes/reverie-screenshot-3.webp"],"demo_url":"https://reverie.amitmerchant.com/","github_url":"https://github.com/amitmerchant1990/reverie","author":"GitHub Community","github_author_name":"amitmerchant1990","github_author_url":"https://github.com/amitmerchant1990","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-paginate"],"updated_at":"2025-03-23","added_at":"2026-04-01","popular":true,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":842,"forks":418,"features":["Elegant minimal layout","Category and tag pages","Disqus comments","Google Analytics","GitHub Pages compatible","Paginated archive","Social sharing buttons","SEO optimised","RSS feed","Mobile friendly"],"slug":"reverie","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/sandbox","collection":"themes","next":{"path":"_themes/scriptor.md","relative_path":"_themes/scriptor.md","excerpt":"<p>Scriptor is a minimal Jekyll theme from JustGoodThemes built around clean typography and distraction-free reading. Its simple single-column layout keeps the focus entirely on the writing, while featured images give each post a visual anchor without overwhelming the content.</p>\n\n","previous":{"path":"_themes/sandbox.md","relative_path":"_themes/sandbox.md","id":"/themes/sandbox","collection":"themes","url":"/themes/sandbox/","draft":false,"categories":["Business"],"layout":"theme","price_type":"premium","featured":true,"dark_mode":true,"responsive":true,"title":"Sandbox Jekyll Theme","rating":4.8,"rating_count":56,"description":"A massive multipurpose Jekyll theme with 27 home pages, 130+ ready-to-use blocks, and 250+ UI elements. Built with Bootstrap 5 and zero jQuery — perfect for startups, SaaS, agencies, portfolios, and eCommerce sites.","card_description":"Multipurpose theme — 27 homepages, 130+ blocks, 250+ UI elements, Bootstrap 5.","price":99,"category":"Business","card_image":"/assets/images/themes/sandbox-card.webp","theme_screenshots":["/assets/images/themes/sandbox-screenshot.webp","/assets/images/themes/sandbox-screenshot-2.webp","/assets/images/themes/sandbox-screenshot-3.webp"],"key_features":["27 Home Pages","130+ Blocks","No jQuery","Video Backgrounds"],"demo_url":"https://sandbox.tortoizthemes.com/demo28/","buy_url":"https://tortoizthemes.com/theme/sandbox/","author":"Tortoiz Themes","author_url":"https://tortoizthemes.com/","github_author_name":"tortoizthemes","support":"6 months","github_pages_compatible":true,"min_jekyll_version":"4.0","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2025-06-01","added_at":"2026-06-27","popular":true,"trending":true,"bestseller":true,"version":"2.0.0","license":"Commercial","features":["27 unique home pages and landing pages for every use case","130+ pre-made ready-to-use blocks — mix and match freely","250+ beautiful UI elements included","100+ neatly coded pages","Gulp, Bootstrap 5, and SASS — zero jQuery dependency","Valid HTML5 and CSS3 with thorough documentation","Fully responsive and retina-ready","Modern and eye-catching portfolio layouts with Isotope.js filtering","One-page layout option with smooth scroll","Various header and menu options including mega menu (light and dark)","Offcanvas mobile menu and info panel","Sticky header and footer","Notification bar and modal popup","Scroll animations with scrollCue.js","Swiper.js sliders with animated captions","Image and video background options (HTML5, YouTube, Vimeo via Plyr)","Lightbox for images and videos","Contact form without page refresh","Mailchimp newsletter integration","Duotone and font icon options with high-quality retina icon sets","Color and font options for brand customisation"],"slug":"sandbox","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/scriptor","collection":"themes","next":{"path":"_themes/serif.md","relative_path":"_themes/serif.md","id":"/themes/serif","collection":"themes","url":"/themes/serif/","draft":false,"categories":["Business"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Serif Jekyll Theme","description":"A beautiful small business Jekyll theme by CloudCannon. Elegant serif typography, warm tones, and sections for services, team members, and contact.","key_features":["Services Section","Team Pages","Contact Form","GitHub Pages"],"card_description":"Beautiful small business theme with serif typography and service sections.","category":"Business","card_image":"/assets/images/themes/serif-card.webp","theme_screenshots":["/assets/images/themes/serif-screenshot.webp","/assets/images/themes/serif-screenshot-2.webp","/assets/images/themes/serif-screenshot-3.webp"],"demo_url":"https://serif.cloudcannon.com/","github_url":"https://github.com/CloudCannon/serif-theme","author":"GitHub Community","github_author_name":"CloudCannon","github_author_url":"https://github.com/CloudCannon","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-feed","jekyll-seo-tag","jekyll-sitemap"],"updated_at":"2024-01-01","added_at":"2026-02-08","popular":false,"trending":false,"bestseller":false,"version":"2.0.0","license":"MIT","stars":520,"forks":360,"features":["Services section","Team member pages","Contact page with form","Warm serif typography","Blog included","CloudCannon CMS compatible"],"slug":"serif","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Scriptor is a minimal Jekyll theme from JustGoodThemes built around clean typography and distraction-free reading. Its simple single-column layout keeps the focus entirely on the writing, while featured images give each post a visual anchor without overwhelming the content.\n\nThe theme is lightweight, fast, and easy to customise — a solid starting point for writers who want something polished without the complexity of heavier themes.\n\n**Who is it for?** Writers, bloggers, and journalists who want a clean, typographically focused blog that's easy to set up and fast to load.\n","url":"/themes/scriptor/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Scriptor Jekyll Theme","description":"A minimal, clean, and modern Jekyll theme for writers and bloggers. Elegant typography, featured images, and a distraction-free reading layout built for long-form content.","key_features":["Writer Focused","Featured Images","Minimal Design","GitHub Pages"],"card_description":"Minimal, modern theme for writers with elegant typography.","category":"Blog","card_image":"/assets/images/themes/scriptor-card.webp","theme_screenshots":["/assets/images/themes/scriptor-screenshot.webp","/assets/images/themes/scriptor-screenshot-2.webp","/assets/images/themes/scriptor-screenshot-3.webp"],"demo_url":"https://scriptor-jekyll.netlify.app/","github_url":"https://github.com/JustGoodThemes/Scriptor-Jekyll-Theme","author":"GitHub Community","github_author_name":"JustGoodThemes","github_author_url":"https://github.com/JustGoodThemes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":183,"forks":120,"features":["Clean minimal blog layout","Featured images per post","Elegant typographic scale","Paginated post listing","Category and tag support","Disqus comments","Google Analytics","Social sharing links","RSS feed","GitHub Pages compatible"],"slug":"scriptor","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Sandbox is the most comprehensive Jekyll theme in this collection. With 27 home pages, 130+ UI blocks, and 250+ individual elements, it is less a theme and more a complete design system — one that can produce any type of website from the same codebase.\n\n### Built for Every Use Case\n\nThe 27 pre-built home pages cover the full spectrum of modern website types: SaaS platforms, startup landing pages, creative agency sites, personal portfolios, photography showcases, eCommerce storefronts, blog/journal sites, wedding pages, and travel sites. Each is production-ready and fully customisable through SCSS variables and config files.\n\n### Block-Based Building\n\nThe 130+ block library is where Sandbox earns its \"Sandbox\" name. Every block — hero, features, pricing, testimonials, portfolio grid, CTA, contact — is a standalone, droppable section. Combine them to create custom page layouts without writing HTML. The 250+ UI elements include buttons, cards, badges, tabs, accordions, progress bars, and more.\n\n### Modern Technical Foundation\n\nBuilt on Bootstrap 5 with Gulp and SASS, and containing zero jQuery, Sandbox loads fast and scores well on Core Web Vitals. Interactive features come from purpose-built libraries: Swiper.js for sliders, Isotope.js for filterable galleries, scrollCue.js for scroll animations, and Plyr for video backgrounds and embedded media (YouTube and Vimeo supported).\n\n**Who is it for?** Agencies or developers who need one theme that can build anything — and who want to stop buying a new theme for every new client project.\n","url":"/themes/sandbox/","draft":false,"categories":["Business"],"layout":"theme","price_type":"premium","featured":true,"dark_mode":true,"responsive":true,"title":"Sandbox Jekyll Theme","rating":4.8,"rating_count":56,"description":"A massive multipurpose Jekyll theme with 27 home pages, 130+ ready-to-use blocks, and 250+ UI elements. Built with Bootstrap 5 and zero jQuery — perfect for startups, SaaS, agencies, portfolios, and eCommerce sites.","card_description":"Multipurpose theme — 27 homepages, 130+ blocks, 250+ UI elements, Bootstrap 5.","price":99,"category":"Business","card_image":"/assets/images/themes/sandbox-card.webp","theme_screenshots":["/assets/images/themes/sandbox-screenshot.webp","/assets/images/themes/sandbox-screenshot-2.webp","/assets/images/themes/sandbox-screenshot-3.webp"],"key_features":["27 Home Pages","130+ Blocks","No jQuery","Video Backgrounds"],"demo_url":"https://sandbox.tortoizthemes.com/demo28/","buy_url":"https://tortoizthemes.com/theme/sandbox/","author":"Tortoiz Themes","author_url":"https://tortoizthemes.com/","github_author_name":"tortoizthemes","support":"6 months","github_pages_compatible":true,"min_jekyll_version":"4.0","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2025-06-01","added_at":"2026-06-27","popular":true,"trending":true,"bestseller":true,"version":"2.0.0","license":"Commercial","features":["27 unique home pages and landing pages for every use case","130+ pre-made ready-to-use blocks — mix and match freely","250+ beautiful UI elements included","100+ neatly coded pages","Gulp, Bootstrap 5, and SASS — zero jQuery dependency","Valid HTML5 and CSS3 with thorough documentation","Fully responsive and retina-ready","Modern and eye-catching portfolio layouts with Isotope.js filtering","One-page layout option with smooth scroll","Various header and menu options including mega menu (light and dark)","Offcanvas mobile menu and info panel","Sticky header and footer","Notification bar and modal popup","Scroll animations with scrollCue.js","Swiper.js sliders with animated captions","Image and video background options (HTML5, YouTube, Vimeo via Plyr)","Lightbox for images and videos","Contact form without page refresh","Mailchimp newsletter integration","Duotone and font icon options with high-quality retina icon sets","Color and font options for brand customisation"],"slug":"sandbox","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/scriptor.md","relative_path":"_themes/scriptor.md","excerpt":"<p>Scriptor is a minimal Jekyll theme from JustGoodThemes built around clean typography and distraction-free reading. Its simple single-column layout keeps the focus entirely on the writing, while featured images give each post a visual anchor without overwhelming the content.</p>\n\n","previous":{"path":"_themes/sandbox.md","relative_path":"_themes/sandbox.md","excerpt":"<p>Sandbox is the most comprehensive Jekyll theme in this collection. With 27 home pages, 130+ UI blocks, and 250+ individual elements, it is less a theme and more a complete design system — one that can produce any type of website from the same codebase.</p>\n\n","previous":{"path":"_themes/reverie.md","relative_path":"_themes/reverie.md","id":"/themes/reverie","collection":"themes","url":"/themes/reverie/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Reverie Jekyll Theme","description":"A ridiculously elegant, fully responsive Jekyll blog theme based on Poole. Supports categories, tags, Disqus comments, and Google Analytics.","key_features":["Category Pages","Tag Support","GitHub Pages","Disqus Comments"],"card_description":"Elegantly responsive blog based on Poole with categories and tags.","category":"Blog","card_image":"/assets/images/themes/reverie-card.webp","theme_screenshots":["/assets/images/themes/reverie-screenshot.webp","/assets/images/themes/reverie-screenshot-2.webp","/assets/images/themes/reverie-screenshot-3.webp"],"demo_url":"https://reverie.amitmerchant.com/","github_url":"https://github.com/amitmerchant1990/reverie","author":"GitHub Community","github_author_name":"amitmerchant1990","github_author_url":"https://github.com/amitmerchant1990","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-paginate"],"updated_at":"2025-03-23","added_at":"2026-04-01","popular":true,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":842,"forks":418,"features":["Elegant minimal layout","Category and tag pages","Disqus comments","Google Analytics","GitHub Pages compatible","Paginated archive","Social sharing buttons","SEO optimised","RSS feed","Mobile friendly"],"slug":"reverie","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/sandbox","collection":"themes","next":{"path":"_themes/scriptor.md","relative_path":"_themes/scriptor.md","id":"/themes/scriptor","collection":"themes","url":"/themes/scriptor/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Scriptor Jekyll Theme","description":"A minimal, clean, and modern Jekyll theme for writers and bloggers. Elegant typography, featured images, and a distraction-free reading layout built for long-form content.","key_features":["Writer Focused","Featured Images","Minimal Design","GitHub Pages"],"card_description":"Minimal, modern theme for writers with elegant typography.","category":"Blog","card_image":"/assets/images/themes/scriptor-card.webp","theme_screenshots":["/assets/images/themes/scriptor-screenshot.webp","/assets/images/themes/scriptor-screenshot-2.webp","/assets/images/themes/scriptor-screenshot-3.webp"],"demo_url":"https://scriptor-jekyll.netlify.app/","github_url":"https://github.com/JustGoodThemes/Scriptor-Jekyll-Theme","author":"GitHub Community","github_author_name":"JustGoodThemes","github_author_url":"https://github.com/JustGoodThemes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":183,"forks":120,"features":["Clean minimal blog layout","Featured images per post","Elegant typographic scale","Paginated post listing","Category and tag support","Disqus comments","Google Analytics","Social sharing links","RSS feed","GitHub Pages compatible"],"slug":"scriptor","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Sandbox is the most comprehensive Jekyll theme in this collection. With 27 home pages, 130+ UI blocks, and 250+ individual elements, it is less a theme and more a complete design system — one that can produce any type of website from the same codebase.\n\n### Built for Every Use Case\n\nThe 27 pre-built home pages cover the full spectrum of modern website types: SaaS platforms, startup landing pages, creative agency sites, personal portfolios, photography showcases, eCommerce storefronts, blog/journal sites, wedding pages, and travel sites. Each is production-ready and fully customisable through SCSS variables and config files.\n\n### Block-Based Building\n\nThe 130+ block library is where Sandbox earns its \"Sandbox\" name. Every block — hero, features, pricing, testimonials, portfolio grid, CTA, contact — is a standalone, droppable section. Combine them to create custom page layouts without writing HTML. The 250+ UI elements include buttons, cards, badges, tabs, accordions, progress bars, and more.\n\n### Modern Technical Foundation\n\nBuilt on Bootstrap 5 with Gulp and SASS, and containing zero jQuery, Sandbox loads fast and scores well on Core Web Vitals. Interactive features come from purpose-built libraries: Swiper.js for sliders, Isotope.js for filterable galleries, scrollCue.js for scroll animations, and Plyr for video backgrounds and embedded media (YouTube and Vimeo supported).\n\n**Who is it for?** Agencies or developers who need one theme that can build anything — and who want to stop buying a new theme for every new client project.\n","url":"/themes/sandbox/","draft":false,"categories":["Business"],"layout":"theme","price_type":"premium","featured":true,"dark_mode":true,"responsive":true,"title":"Sandbox Jekyll Theme","rating":4.8,"rating_count":56,"description":"A massive multipurpose Jekyll theme with 27 home pages, 130+ ready-to-use blocks, and 250+ UI elements. Built with Bootstrap 5 and zero jQuery — perfect for startups, SaaS, agencies, portfolios, and eCommerce sites.","card_description":"Multipurpose theme — 27 homepages, 130+ blocks, 250+ UI elements, Bootstrap 5.","price":99,"category":"Business","card_image":"/assets/images/themes/sandbox-card.webp","theme_screenshots":["/assets/images/themes/sandbox-screenshot.webp","/assets/images/themes/sandbox-screenshot-2.webp","/assets/images/themes/sandbox-screenshot-3.webp"],"key_features":["27 Home Pages","130+ Blocks","No jQuery","Video Backgrounds"],"demo_url":"https://sandbox.tortoizthemes.com/demo28/","buy_url":"https://tortoizthemes.com/theme/sandbox/","author":"Tortoiz Themes","author_url":"https://tortoizthemes.com/","github_author_name":"tortoizthemes","support":"6 months","github_pages_compatible":true,"min_jekyll_version":"4.0","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2025-06-01","added_at":"2026-06-27","popular":true,"trending":true,"bestseller":true,"version":"2.0.0","license":"Commercial","features":["27 unique home pages and landing pages for every use case","130+ pre-made ready-to-use blocks — mix and match freely","250+ beautiful UI elements included","100+ neatly coded pages","Gulp, Bootstrap 5, and SASS — zero jQuery dependency","Valid HTML5 and CSS3 with thorough documentation","Fully responsive and retina-ready","Modern and eye-catching portfolio layouts with Isotope.js filtering","One-page layout option with smooth scroll","Various header and menu options including mega menu (light and dark)","Offcanvas mobile menu and info panel","Sticky header and footer","Notification bar and modal popup","Scroll animations with scrollCue.js","Swiper.js sliders with animated captions","Image and video background options (HTML5, YouTube, Vimeo via Plyr)","Lightbox for images and videos","Contact form without page refresh","Mailchimp newsletter integration","Duotone and font icon options with high-quality retina icon sets","Color and font options for brand customisation"],"slug":"sandbox","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/scriptor","collection":"themes","next":{"path":"_themes/serif.md","relative_path":"_themes/serif.md","excerpt":"<p>Serif is a polished small business theme from CloudCannon that pairs warm tones with elegant serif typography to create a trustworthy, professional presence. It ships with everything a small business site needs — services pages, team bios, a blog, and a contact form.</p>\n\n","previous":{"path":"_themes/scriptor.md","relative_path":"_themes/scriptor.md","id":"/themes/scriptor","collection":"themes","url":"/themes/scriptor/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Scriptor Jekyll Theme","description":"A minimal, clean, and modern Jekyll theme for writers and bloggers. Elegant typography, featured images, and a distraction-free reading layout built for long-form content.","key_features":["Writer Focused","Featured Images","Minimal Design","GitHub Pages"],"card_description":"Minimal, modern theme for writers with elegant typography.","category":"Blog","card_image":"/assets/images/themes/scriptor-card.webp","theme_screenshots":["/assets/images/themes/scriptor-screenshot.webp","/assets/images/themes/scriptor-screenshot-2.webp","/assets/images/themes/scriptor-screenshot-3.webp"],"demo_url":"https://scriptor-jekyll.netlify.app/","github_url":"https://github.com/JustGoodThemes/Scriptor-Jekyll-Theme","author":"GitHub Community","github_author_name":"JustGoodThemes","github_author_url":"https://github.com/JustGoodThemes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":183,"forks":120,"features":["Clean minimal blog layout","Featured images per post","Elegant typographic scale","Paginated post listing","Category and tag support","Disqus comments","Google Analytics","Social sharing links","RSS feed","GitHub Pages compatible"],"slug":"scriptor","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/serif","collection":"themes","next":{"path":"_themes/slate.md","relative_path":"_themes/slate.md","id":"/themes/slate","collection":"themes","url":"/themes/slate/","draft":false,"categories":["Documentation"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Slate Jekyll Theme","description":"A bold, dark GitHub Pages Jekyll theme with prominent sidebar navigation and strong code styling. Official GitHub Pages theme for developer docs.","key_features":["GitHub Pages","Dark Sidebar","Code Styling","Developer Docs"],"card_description":"Bold, dark GitHub Pages theme for developer docs with sidebar nav.","category":"Documentation","card_image":"/assets/images/themes/slate-card.webp","theme_screenshots":["/assets/images/themes/slate-screenshot.webp","/assets/images/themes/slate-screenshot-2.webp","/assets/images/themes/slate-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/slate/","github_url":"https://github.com/pages-themes/slate","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":700,"forks":700,"features":["Official GitHub Pages supported theme","Dark sidebar navigation","Code-optimised typography","Responsive layout","Single-click enable via _config.yml","No local Jekyll install required","Google Analytics ready","Clean, professional aesthetic"],"slug":"slate","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Serif is a polished small business theme from CloudCannon that pairs warm tones with elegant serif typography to create a trustworthy, professional presence. It ships with everything a small business site needs — services pages, team bios, a blog, and a contact form.\n\nThe CloudCannon compatibility means non-technical users can edit content through a visual CMS without touching any code.\n\n**Who is it for?** Small businesses, consultants, agencies, and professional services firms who want a warm, professional web presence.\n","url":"/themes/serif/","draft":false,"categories":["Business"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Serif Jekyll Theme","description":"A beautiful small business Jekyll theme by CloudCannon. Elegant serif typography, warm tones, and sections for services, team members, and contact.","key_features":["Services Section","Team Pages","Contact Form","GitHub Pages"],"card_description":"Beautiful small business theme with serif typography and service sections.","category":"Business","card_image":"/assets/images/themes/serif-card.webp","theme_screenshots":["/assets/images/themes/serif-screenshot.webp","/assets/images/themes/serif-screenshot-2.webp","/assets/images/themes/serif-screenshot-3.webp"],"demo_url":"https://serif.cloudcannon.com/","github_url":"https://github.com/CloudCannon/serif-theme","author":"GitHub Community","github_author_name":"CloudCannon","github_author_url":"https://github.com/CloudCannon","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-feed","jekyll-seo-tag","jekyll-sitemap"],"updated_at":"2024-01-01","added_at":"2026-02-08","popular":false,"trending":false,"bestseller":false,"version":"2.0.0","license":"MIT","stars":520,"forks":360,"features":["Services section","Team member pages","Contact page with form","Warm serif typography","Blog included","CloudCannon CMS compatible"],"slug":"serif","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Scriptor is a minimal Jekyll theme from JustGoodThemes built around clean typography and distraction-free reading. Its simple single-column layout keeps the focus entirely on the writing, while featured images give each post a visual anchor without overwhelming the content.\n\nThe theme is lightweight, fast, and easy to customise — a solid starting point for writers who want something polished without the complexity of heavier themes.\n\n**Who is it for?** Writers, bloggers, and journalists who want a clean, typographically focused blog that's easy to set up and fast to load.\n","url":"/themes/scriptor/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Scriptor Jekyll Theme","description":"A minimal, clean, and modern Jekyll theme for writers and bloggers. Elegant typography, featured images, and a distraction-free reading layout built for long-form content.","key_features":["Writer Focused","Featured Images","Minimal Design","GitHub Pages"],"card_description":"Minimal, modern theme for writers with elegant typography.","category":"Blog","card_image":"/assets/images/themes/scriptor-card.webp","theme_screenshots":["/assets/images/themes/scriptor-screenshot.webp","/assets/images/themes/scriptor-screenshot-2.webp","/assets/images/themes/scriptor-screenshot-3.webp"],"demo_url":"https://scriptor-jekyll.netlify.app/","github_url":"https://github.com/JustGoodThemes/Scriptor-Jekyll-Theme","author":"GitHub Community","github_author_name":"JustGoodThemes","github_author_url":"https://github.com/JustGoodThemes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":183,"forks":120,"features":["Clean minimal blog layout","Featured images per post","Elegant typographic scale","Paginated post listing","Category and tag support","Disqus comments","Google Analytics","Social sharing links","RSS feed","GitHub Pages compatible"],"slug":"scriptor","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/serif.md","relative_path":"_themes/serif.md","excerpt":"<p>Serif is a polished small business theme from CloudCannon that pairs warm tones with elegant serif typography to create a trustworthy, professional presence. It ships with everything a small business site needs — services pages, team bios, a blog, and a contact form.</p>\n\n","previous":{"path":"_themes/scriptor.md","relative_path":"_themes/scriptor.md","excerpt":"<p>Scriptor is a minimal Jekyll theme from JustGoodThemes built around clean typography and distraction-free reading. Its simple single-column layout keeps the focus entirely on the writing, while featured images give each post a visual anchor without overwhelming the content.</p>\n\n","previous":{"path":"_themes/sandbox.md","relative_path":"_themes/sandbox.md","id":"/themes/sandbox","collection":"themes","url":"/themes/sandbox/","draft":false,"categories":["Business"],"layout":"theme","price_type":"premium","featured":true,"dark_mode":true,"responsive":true,"title":"Sandbox Jekyll Theme","rating":4.8,"rating_count":56,"description":"A massive multipurpose Jekyll theme with 27 home pages, 130+ ready-to-use blocks, and 250+ UI elements. Built with Bootstrap 5 and zero jQuery — perfect for startups, SaaS, agencies, portfolios, and eCommerce sites.","card_description":"Multipurpose theme — 27 homepages, 130+ blocks, 250+ UI elements, Bootstrap 5.","price":99,"category":"Business","card_image":"/assets/images/themes/sandbox-card.webp","theme_screenshots":["/assets/images/themes/sandbox-screenshot.webp","/assets/images/themes/sandbox-screenshot-2.webp","/assets/images/themes/sandbox-screenshot-3.webp"],"key_features":["27 Home Pages","130+ Blocks","No jQuery","Video Backgrounds"],"demo_url":"https://sandbox.tortoizthemes.com/demo28/","buy_url":"https://tortoizthemes.com/theme/sandbox/","author":"Tortoiz Themes","author_url":"https://tortoizthemes.com/","github_author_name":"tortoizthemes","support":"6 months","github_pages_compatible":true,"min_jekyll_version":"4.0","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2025-06-01","added_at":"2026-06-27","popular":true,"trending":true,"bestseller":true,"version":"2.0.0","license":"Commercial","features":["27 unique home pages and landing pages for every use case","130+ pre-made ready-to-use blocks — mix and match freely","250+ beautiful UI elements included","100+ neatly coded pages","Gulp, Bootstrap 5, and SASS — zero jQuery dependency","Valid HTML5 and CSS3 with thorough documentation","Fully responsive and retina-ready","Modern and eye-catching portfolio layouts with Isotope.js filtering","One-page layout option with smooth scroll","Various header and menu options including mega menu (light and dark)","Offcanvas mobile menu and info panel","Sticky header and footer","Notification bar and modal popup","Scroll animations with scrollCue.js","Swiper.js sliders with animated captions","Image and video background options (HTML5, YouTube, Vimeo via Plyr)","Lightbox for images and videos","Contact form without page refresh","Mailchimp newsletter integration","Duotone and font icon options with high-quality retina icon sets","Color and font options for brand customisation"],"slug":"sandbox","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/scriptor","collection":"themes","next":{"path":"_themes/serif.md","relative_path":"_themes/serif.md","id":"/themes/serif","collection":"themes","url":"/themes/serif/","draft":false,"categories":["Business"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Serif Jekyll Theme","description":"A beautiful small business Jekyll theme by CloudCannon. Elegant serif typography, warm tones, and sections for services, team members, and contact.","key_features":["Services Section","Team Pages","Contact Form","GitHub Pages"],"card_description":"Beautiful small business theme with serif typography and service sections.","category":"Business","card_image":"/assets/images/themes/serif-card.webp","theme_screenshots":["/assets/images/themes/serif-screenshot.webp","/assets/images/themes/serif-screenshot-2.webp","/assets/images/themes/serif-screenshot-3.webp"],"demo_url":"https://serif.cloudcannon.com/","github_url":"https://github.com/CloudCannon/serif-theme","author":"GitHub Community","github_author_name":"CloudCannon","github_author_url":"https://github.com/CloudCannon","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-feed","jekyll-seo-tag","jekyll-sitemap"],"updated_at":"2024-01-01","added_at":"2026-02-08","popular":false,"trending":false,"bestseller":false,"version":"2.0.0","license":"MIT","stars":520,"forks":360,"features":["Services section","Team member pages","Contact page with form","Warm serif typography","Blog included","CloudCannon CMS compatible"],"slug":"serif","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Scriptor is a minimal Jekyll theme from JustGoodThemes built around clean typography and distraction-free reading. Its simple single-column layout keeps the focus entirely on the writing, while featured images give each post a visual anchor without overwhelming the content.\n\nThe theme is lightweight, fast, and easy to customise — a solid starting point for writers who want something polished without the complexity of heavier themes.\n\n**Who is it for?** Writers, bloggers, and journalists who want a clean, typographically focused blog that's easy to set up and fast to load.\n","url":"/themes/scriptor/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Scriptor Jekyll Theme","description":"A minimal, clean, and modern Jekyll theme for writers and bloggers. Elegant typography, featured images, and a distraction-free reading layout built for long-form content.","key_features":["Writer Focused","Featured Images","Minimal Design","GitHub Pages"],"card_description":"Minimal, modern theme for writers with elegant typography.","category":"Blog","card_image":"/assets/images/themes/scriptor-card.webp","theme_screenshots":["/assets/images/themes/scriptor-screenshot.webp","/assets/images/themes/scriptor-screenshot-2.webp","/assets/images/themes/scriptor-screenshot-3.webp"],"demo_url":"https://scriptor-jekyll.netlify.app/","github_url":"https://github.com/JustGoodThemes/Scriptor-Jekyll-Theme","author":"GitHub Community","github_author_name":"JustGoodThemes","github_author_url":"https://github.com/JustGoodThemes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":183,"forks":120,"features":["Clean minimal blog layout","Featured images per post","Elegant typographic scale","Paginated post listing","Category and tag support","Disqus comments","Google Analytics","Social sharing links","RSS feed","GitHub Pages compatible"],"slug":"scriptor","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/serif","collection":"themes","next":{"path":"_themes/slate.md","relative_path":"_themes/slate.md","excerpt":"<p>Slate is one of the twelve official themes supported natively by GitHub Pages, meaning you can enable it with a single line in your <code class=\"language-plaintext highlighter-rouge\">_config.yml</code> — no gem installs, no local setup. Its dark slate sidebar paired with a white content area creates an immediately recognisable, professional look suited to open-source project documentation.</p>\n\n","previous":{"path":"_themes/serif.md","relative_path":"_themes/serif.md","id":"/themes/serif","collection":"themes","url":"/themes/serif/","draft":false,"categories":["Business"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Serif Jekyll Theme","description":"A beautiful small business Jekyll theme by CloudCannon. Elegant serif typography, warm tones, and sections for services, team members, and contact.","key_features":["Services Section","Team Pages","Contact Form","GitHub Pages"],"card_description":"Beautiful small business theme with serif typography and service sections.","category":"Business","card_image":"/assets/images/themes/serif-card.webp","theme_screenshots":["/assets/images/themes/serif-screenshot.webp","/assets/images/themes/serif-screenshot-2.webp","/assets/images/themes/serif-screenshot-3.webp"],"demo_url":"https://serif.cloudcannon.com/","github_url":"https://github.com/CloudCannon/serif-theme","author":"GitHub Community","github_author_name":"CloudCannon","github_author_url":"https://github.com/CloudCannon","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-feed","jekyll-seo-tag","jekyll-sitemap"],"updated_at":"2024-01-01","added_at":"2026-02-08","popular":false,"trending":false,"bestseller":false,"version":"2.0.0","license":"MIT","stars":520,"forks":360,"features":["Services section","Team member pages","Contact page with form","Warm serif typography","Blog included","CloudCannon CMS compatible"],"slug":"serif","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/slate","collection":"themes","next":{"path":"_themes/snowlake.md","relative_path":"_themes/snowlake.md","id":"/themes/snowlake","collection":"themes","url":"/themes/snowlake/","draft":false,"categories":["Business"],"layout":"theme","price_type":"premium","featured":true,"dark_mode":true,"responsive":true,"title":"Snowlake Jekyll Theme","rating":4.8,"rating_count":47,"description":"A versatile multipurpose Jekyll theme with 27 unique demos, 17 color schemes, 5 font options, Slider Revolution, and 4 icon sets with 2300+ icons. Built on Jekyll 4.3+ and Bootstrap 5 — ideal for businesses, agencies, SaaS, and creatives.","card_description":"Multipurpose theme — 27 demos, 17 color schemes, Slider Revolution, Bootstrap 5.","price":79,"category":"Business","card_image":"/assets/images/themes/snowlake-card.webp","theme_screenshots":["/assets/images/themes/snowlake-screenshot.webp","/assets/images/themes/snowlake-screenshot-2.webp","/assets/images/themes/snowlake-screenshot-3.webp"],"key_features":["27 Demos","17 Color Schemes","Slider Revolution","2300+ Icons"],"demo_url":"https://snowlake.tortoizthemes.com/","buy_url":"https://tortoizthemes.com/theme/snowlake-jekyll-theme/","author":"Tortoiz Themes","author_url":"https://tortoizthemes.com/","github_author_name":"tortoizthemes","support":"6 months","github_pages_compatible":true,"min_jekyll_version":"4.3","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2025-05-01","added_at":"2026-06-27","popular":true,"trending":true,"bestseller":false,"version":"2.0.0","license":"Commercial","features":["27 unique demo layouts for business, agency, SaaS, portfolio, blog, and more","17 color schemes — choose your brand palette or create your own","5 font options chosen to match the template's design style","Slider Revolution included free (normally $16) — animated banners and sliders","4 icon sets with 2300+ high-quality retina-ready icons","Jekyll 4.3+ and Bootstrap 5 — modern, fast, standards-compliant","Parallax sections with image and video background support","Multiple and single-page layout options with smooth scroll","Various header, menu, and slider configurations","Well-written, SEO-optimised HTML5 with commented code","Responsive design compatible with all devices and screen sizes","Various blog and portfolio layout options to mix and match","Clean and professional design suitable for any industry","Retina-ready graphics — crisp on all high-density displays","Free updates and top-notch support within 24 hours on weekdays"],"slug":"snowlake","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Slate is one of the twelve official themes supported natively by GitHub Pages, meaning you can enable it with a single line in your `_config.yml` — no gem installs, no local setup. Its dark slate sidebar paired with a white content area creates an immediately recognisable, professional look suited to open-source project documentation.\n\nThe code-friendly typography and syntax highlighting make it a natural fit for developer tools and API documentation pages.\n\n**Who is it for?** Developers who want a fast, reliable documentation theme they can enable on any GitHub Pages project in seconds.\n","url":"/themes/slate/","draft":false,"categories":["Documentation"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Slate Jekyll Theme","description":"A bold, dark GitHub Pages Jekyll theme with prominent sidebar navigation and strong code styling. Official GitHub Pages theme for developer docs.","key_features":["GitHub Pages","Dark Sidebar","Code Styling","Developer Docs"],"card_description":"Bold, dark GitHub Pages theme for developer docs with sidebar nav.","category":"Documentation","card_image":"/assets/images/themes/slate-card.webp","theme_screenshots":["/assets/images/themes/slate-screenshot.webp","/assets/images/themes/slate-screenshot-2.webp","/assets/images/themes/slate-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/slate/","github_url":"https://github.com/pages-themes/slate","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":700,"forks":700,"features":["Official GitHub Pages supported theme","Dark sidebar navigation","Code-optimised typography","Responsive layout","Single-click enable via _config.yml","No local Jekyll install required","Google Analytics ready","Clean, professional aesthetic"],"slug":"slate","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Serif is a polished small business theme from CloudCannon that pairs warm tones with elegant serif typography to create a trustworthy, professional presence. It ships with everything a small business site needs — services pages, team bios, a blog, and a contact form.\n\nThe CloudCannon compatibility means non-technical users can edit content through a visual CMS without touching any code.\n\n**Who is it for?** Small businesses, consultants, agencies, and professional services firms who want a warm, professional web presence.\n","url":"/themes/serif/","draft":false,"categories":["Business"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Serif Jekyll Theme","description":"A beautiful small business Jekyll theme by CloudCannon. Elegant serif typography, warm tones, and sections for services, team members, and contact.","key_features":["Services Section","Team Pages","Contact Form","GitHub Pages"],"card_description":"Beautiful small business theme with serif typography and service sections.","category":"Business","card_image":"/assets/images/themes/serif-card.webp","theme_screenshots":["/assets/images/themes/serif-screenshot.webp","/assets/images/themes/serif-screenshot-2.webp","/assets/images/themes/serif-screenshot-3.webp"],"demo_url":"https://serif.cloudcannon.com/","github_url":"https://github.com/CloudCannon/serif-theme","author":"GitHub Community","github_author_name":"CloudCannon","github_author_url":"https://github.com/CloudCannon","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-feed","jekyll-seo-tag","jekyll-sitemap"],"updated_at":"2024-01-01","added_at":"2026-02-08","popular":false,"trending":false,"bestseller":false,"version":"2.0.0","license":"MIT","stars":520,"forks":360,"features":["Services section","Team member pages","Contact page with form","Warm serif typography","Blog included","CloudCannon CMS compatible"],"slug":"serif","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/slate.md","relative_path":"_themes/slate.md","excerpt":"<p>Slate is one of the twelve official themes supported natively by GitHub Pages, meaning you can enable it with a single line in your <code class=\"language-plaintext highlighter-rouge\">_config.yml</code> — no gem installs, no local setup. Its dark slate sidebar paired with a white content area creates an immediately recognisable, professional look suited to open-source project documentation.</p>\n\n","previous":{"path":"_themes/serif.md","relative_path":"_themes/serif.md","excerpt":"<p>Serif is a polished small business theme from CloudCannon that pairs warm tones with elegant serif typography to create a trustworthy, professional presence. It ships with everything a small business site needs — services pages, team bios, a blog, and a contact form.</p>\n\n","previous":{"path":"_themes/scriptor.md","relative_path":"_themes/scriptor.md","id":"/themes/scriptor","collection":"themes","url":"/themes/scriptor/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Scriptor Jekyll Theme","description":"A minimal, clean, and modern Jekyll theme for writers and bloggers. Elegant typography, featured images, and a distraction-free reading layout built for long-form content.","key_features":["Writer Focused","Featured Images","Minimal Design","GitHub Pages"],"card_description":"Minimal, modern theme for writers with elegant typography.","category":"Blog","card_image":"/assets/images/themes/scriptor-card.webp","theme_screenshots":["/assets/images/themes/scriptor-screenshot.webp","/assets/images/themes/scriptor-screenshot-2.webp","/assets/images/themes/scriptor-screenshot-3.webp"],"demo_url":"https://scriptor-jekyll.netlify.app/","github_url":"https://github.com/JustGoodThemes/Scriptor-Jekyll-Theme","author":"GitHub Community","github_author_name":"JustGoodThemes","github_author_url":"https://github.com/JustGoodThemes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":183,"forks":120,"features":["Clean minimal blog layout","Featured images per post","Elegant typographic scale","Paginated post listing","Category and tag support","Disqus comments","Google Analytics","Social sharing links","RSS feed","GitHub Pages compatible"],"slug":"scriptor","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/serif","collection":"themes","next":{"path":"_themes/slate.md","relative_path":"_themes/slate.md","id":"/themes/slate","collection":"themes","url":"/themes/slate/","draft":false,"categories":["Documentation"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Slate Jekyll Theme","description":"A bold, dark GitHub Pages Jekyll theme with prominent sidebar navigation and strong code styling. Official GitHub Pages theme for developer docs.","key_features":["GitHub Pages","Dark Sidebar","Code Styling","Developer Docs"],"card_description":"Bold, dark GitHub Pages theme for developer docs with sidebar nav.","category":"Documentation","card_image":"/assets/images/themes/slate-card.webp","theme_screenshots":["/assets/images/themes/slate-screenshot.webp","/assets/images/themes/slate-screenshot-2.webp","/assets/images/themes/slate-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/slate/","github_url":"https://github.com/pages-themes/slate","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":700,"forks":700,"features":["Official GitHub Pages supported theme","Dark sidebar navigation","Code-optimised typography","Responsive layout","Single-click enable via _config.yml","No local Jekyll install required","Google Analytics ready","Clean, professional aesthetic"],"slug":"slate","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Serif is a polished small business theme from CloudCannon that pairs warm tones with elegant serif typography to create a trustworthy, professional presence. It ships with everything a small business site needs — services pages, team bios, a blog, and a contact form.\n\nThe CloudCannon compatibility means non-technical users can edit content through a visual CMS without touching any code.\n\n**Who is it for?** Small businesses, consultants, agencies, and professional services firms who want a warm, professional web presence.\n","url":"/themes/serif/","draft":false,"categories":["Business"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Serif Jekyll Theme","description":"A beautiful small business Jekyll theme by CloudCannon. Elegant serif typography, warm tones, and sections for services, team members, and contact.","key_features":["Services Section","Team Pages","Contact Form","GitHub Pages"],"card_description":"Beautiful small business theme with serif typography and service sections.","category":"Business","card_image":"/assets/images/themes/serif-card.webp","theme_screenshots":["/assets/images/themes/serif-screenshot.webp","/assets/images/themes/serif-screenshot-2.webp","/assets/images/themes/serif-screenshot-3.webp"],"demo_url":"https://serif.cloudcannon.com/","github_url":"https://github.com/CloudCannon/serif-theme","author":"GitHub Community","github_author_name":"CloudCannon","github_author_url":"https://github.com/CloudCannon","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-feed","jekyll-seo-tag","jekyll-sitemap"],"updated_at":"2024-01-01","added_at":"2026-02-08","popular":false,"trending":false,"bestseller":false,"version":"2.0.0","license":"MIT","stars":520,"forks":360,"features":["Services section","Team member pages","Contact page with form","Warm serif typography","Blog included","CloudCannon CMS compatible"],"slug":"serif","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/slate","collection":"themes","next":{"path":"_themes/snowlake.md","relative_path":"_themes/snowlake.md","excerpt":"<p>Snowlake is a fully-featured Jekyll multipurpose theme that covers the full range of modern website types in a single purchase. The headline numbers — 27 demos, 17 color schemes, 4 icon sets — give you the raw material to build a polished, differentiated site for almost any brief.</p>\n\n","previous":{"path":"_themes/slate.md","relative_path":"_themes/slate.md","id":"/themes/slate","collection":"themes","url":"/themes/slate/","draft":false,"categories":["Documentation"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Slate Jekyll Theme","description":"A bold, dark GitHub Pages Jekyll theme with prominent sidebar navigation and strong code styling. Official GitHub Pages theme for developer docs.","key_features":["GitHub Pages","Dark Sidebar","Code Styling","Developer Docs"],"card_description":"Bold, dark GitHub Pages theme for developer docs with sidebar nav.","category":"Documentation","card_image":"/assets/images/themes/slate-card.webp","theme_screenshots":["/assets/images/themes/slate-screenshot.webp","/assets/images/themes/slate-screenshot-2.webp","/assets/images/themes/slate-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/slate/","github_url":"https://github.com/pages-themes/slate","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":700,"forks":700,"features":["Official GitHub Pages supported theme","Dark sidebar navigation","Code-optimised typography","Responsive layout","Single-click enable via _config.yml","No local Jekyll install required","Google Analytics ready","Clean, professional aesthetic"],"slug":"slate","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/snowlake","collection":"themes","next":{"path":"_themes/so-simple.md","relative_path":"_themes/so-simple.md","id":"/themes/so-simple","collection":"themes","url":"/themes/so-simple/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"So Simple Jekyll Theme","description":"A simple Jekyll theme for words and pictures. Clean reading layout with support for author profiles, social links, and Google Analytics.","key_features":["Author Profiles","Social Links","GitHub Pages","Clean Reading"],"card_description":"Simple theme for words and pictures with author profile support.","category":"Blog","card_image":"/assets/images/themes/so-simple-card.webp","theme_screenshots":["/assets/images/themes/so-simple-screenshot.webp","/assets/images/themes/so-simple-screenshot-2.webp","/assets/images/themes/so-simple-screenshot-3.webp"],"demo_url":"https://mmistakes.github.io/so-simple-theme/","github_url":"https://github.com/mmistakes/so-simple-theme","author":"GitHub Community","github_author_name":"Michael Rose","github_author_url":"https://github.com/mmistakes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.7","plugins":["jekyll-feed","jekyll-sitemap","jekyll-paginate"],"updated_at":"2024-08-13","added_at":"2026-04-01","popular":true,"trending":false,"bestseller":false,"version":"3.2.0","license":"MIT","stars":2109,"forks":612,"features":["Clean minimal layout","Author profile with avatar","Social media links","Post categories and tags","Google Analytics support","Disqus comments","GitHub Pages compatible","Responsive images","Related posts section","Customisable colour palette"],"slug":"so-simple","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Snowlake is a fully-featured Jekyll multipurpose theme that covers the full range of modern website types in a single purchase. The headline numbers — 27 demos, 17 color schemes, 4 icon sets — give you the raw material to build a polished, differentiated site for almost any brief.\n\n### The Slider Revolution Advantage\n\nOne of Snowlake's standout inclusions is Slider Revolution, a premium animated slider plugin that normally costs $16 separately. With it you get animated hero banners, parallax scrolling effects, and full video background support (HTML5, image, and video backgrounds) without any extra purchase or setup. Combined with the parallax sections and smooth-scroll single-page option, the theme handles the kind of rich visual storytelling that premium agency and SaaS landing pages need.\n\n### Branding Flexibility at Scale\n\nSeventeen color schemes means you are not locked into the theme's out-of-the-box appearance. Swap the palette to match your brand in minutes via CSS variables, then choose one of five font options to tune the typography. The result is a site that looks custom-designed rather than theme-purchased. Each of the 27 demos is fully production-ready, covering business, startup, agency, portfolio, photographer, SaaS, digital studio, and creative industry use cases.\n\n### Technical Foundation\n\nBuilt on Jekyll 4.3+ with Bootstrap 5, the codebase is modern and maintainable. The four icon sets totalling 2300+ icons cover every UI need without reaching for external libraries. Retina-ready throughout, with responsive layouts that adapt across mobile, tablet, and desktop.\n\n**Who is it for?** Business owners, creative agencies, digital studios, SaaS founders, and freelancers who need a complete, high-quality website with visual flexibility — and who want it running quickly rather than designed from scratch.\n","url":"/themes/snowlake/","draft":false,"categories":["Business"],"layout":"theme","price_type":"premium","featured":true,"dark_mode":true,"responsive":true,"title":"Snowlake Jekyll Theme","rating":4.8,"rating_count":47,"description":"A versatile multipurpose Jekyll theme with 27 unique demos, 17 color schemes, 5 font options, Slider Revolution, and 4 icon sets with 2300+ icons. Built on Jekyll 4.3+ and Bootstrap 5 — ideal for businesses, agencies, SaaS, and creatives.","card_description":"Multipurpose theme — 27 demos, 17 color schemes, Slider Revolution, Bootstrap 5.","price":79,"category":"Business","card_image":"/assets/images/themes/snowlake-card.webp","theme_screenshots":["/assets/images/themes/snowlake-screenshot.webp","/assets/images/themes/snowlake-screenshot-2.webp","/assets/images/themes/snowlake-screenshot-3.webp"],"key_features":["27 Demos","17 Color Schemes","Slider Revolution","2300+ Icons"],"demo_url":"https://snowlake.tortoizthemes.com/","buy_url":"https://tortoizthemes.com/theme/snowlake-jekyll-theme/","author":"Tortoiz Themes","author_url":"https://tortoizthemes.com/","github_author_name":"tortoizthemes","support":"6 months","github_pages_compatible":true,"min_jekyll_version":"4.3","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2025-05-01","added_at":"2026-06-27","popular":true,"trending":true,"bestseller":false,"version":"2.0.0","license":"Commercial","features":["27 unique demo layouts for business, agency, SaaS, portfolio, blog, and more","17 color schemes — choose your brand palette or create your own","5 font options chosen to match the template's design style","Slider Revolution included free (normally $16) — animated banners and sliders","4 icon sets with 2300+ high-quality retina-ready icons","Jekyll 4.3+ and Bootstrap 5 — modern, fast, standards-compliant","Parallax sections with image and video background support","Multiple and single-page layout options with smooth scroll","Various header, menu, and slider configurations","Well-written, SEO-optimised HTML5 with commented code","Responsive design compatible with all devices and screen sizes","Various blog and portfolio layout options to mix and match","Clean and professional design suitable for any industry","Retina-ready graphics — crisp on all high-density displays","Free updates and top-notch support within 24 hours on weekdays"],"slug":"snowlake","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Slate is one of the twelve official themes supported natively by GitHub Pages, meaning you can enable it with a single line in your `_config.yml` — no gem installs, no local setup. Its dark slate sidebar paired with a white content area creates an immediately recognisable, professional look suited to open-source project documentation.\n\nThe code-friendly typography and syntax highlighting make it a natural fit for developer tools and API documentation pages.\n\n**Who is it for?** Developers who want a fast, reliable documentation theme they can enable on any GitHub Pages project in seconds.\n","url":"/themes/slate/","draft":false,"categories":["Documentation"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Slate Jekyll Theme","description":"A bold, dark GitHub Pages Jekyll theme with prominent sidebar navigation and strong code styling. Official GitHub Pages theme for developer docs.","key_features":["GitHub Pages","Dark Sidebar","Code Styling","Developer Docs"],"card_description":"Bold, dark GitHub Pages theme for developer docs with sidebar nav.","category":"Documentation","card_image":"/assets/images/themes/slate-card.webp","theme_screenshots":["/assets/images/themes/slate-screenshot.webp","/assets/images/themes/slate-screenshot-2.webp","/assets/images/themes/slate-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/slate/","github_url":"https://github.com/pages-themes/slate","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":700,"forks":700,"features":["Official GitHub Pages supported theme","Dark sidebar navigation","Code-optimised typography","Responsive layout","Single-click enable via _config.yml","No local Jekyll install required","Google Analytics ready","Clean, professional aesthetic"],"slug":"slate","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/snowlake.md","relative_path":"_themes/snowlake.md","excerpt":"<p>Snowlake is a fully-featured Jekyll multipurpose theme that covers the full range of modern website types in a single purchase. The headline numbers — 27 demos, 17 color schemes, 4 icon sets — give you the raw material to build a polished, differentiated site for almost any brief.</p>\n\n","previous":{"path":"_themes/slate.md","relative_path":"_themes/slate.md","excerpt":"<p>Slate is one of the twelve official themes supported natively by GitHub Pages, meaning you can enable it with a single line in your <code class=\"language-plaintext highlighter-rouge\">_config.yml</code> — no gem installs, no local setup. Its dark slate sidebar paired with a white content area creates an immediately recognisable, professional look suited to open-source project documentation.</p>\n\n","previous":{"path":"_themes/serif.md","relative_path":"_themes/serif.md","id":"/themes/serif","collection":"themes","url":"/themes/serif/","draft":false,"categories":["Business"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Serif Jekyll Theme","description":"A beautiful small business Jekyll theme by CloudCannon. Elegant serif typography, warm tones, and sections for services, team members, and contact.","key_features":["Services Section","Team Pages","Contact Form","GitHub Pages"],"card_description":"Beautiful small business theme with serif typography and service sections.","category":"Business","card_image":"/assets/images/themes/serif-card.webp","theme_screenshots":["/assets/images/themes/serif-screenshot.webp","/assets/images/themes/serif-screenshot-2.webp","/assets/images/themes/serif-screenshot-3.webp"],"demo_url":"https://serif.cloudcannon.com/","github_url":"https://github.com/CloudCannon/serif-theme","author":"GitHub Community","github_author_name":"CloudCannon","github_author_url":"https://github.com/CloudCannon","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.6","plugins":["jekyll-feed","jekyll-seo-tag","jekyll-sitemap"],"updated_at":"2024-01-01","added_at":"2026-02-08","popular":false,"trending":false,"bestseller":false,"version":"2.0.0","license":"MIT","stars":520,"forks":360,"features":["Services section","Team member pages","Contact page with form","Warm serif typography","Blog included","CloudCannon CMS compatible"],"slug":"serif","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/slate","collection":"themes","next":{"path":"_themes/snowlake.md","relative_path":"_themes/snowlake.md","id":"/themes/snowlake","collection":"themes","url":"/themes/snowlake/","draft":false,"categories":["Business"],"layout":"theme","price_type":"premium","featured":true,"dark_mode":true,"responsive":true,"title":"Snowlake Jekyll Theme","rating":4.8,"rating_count":47,"description":"A versatile multipurpose Jekyll theme with 27 unique demos, 17 color schemes, 5 font options, Slider Revolution, and 4 icon sets with 2300+ icons. Built on Jekyll 4.3+ and Bootstrap 5 — ideal for businesses, agencies, SaaS, and creatives.","card_description":"Multipurpose theme — 27 demos, 17 color schemes, Slider Revolution, Bootstrap 5.","price":79,"category":"Business","card_image":"/assets/images/themes/snowlake-card.webp","theme_screenshots":["/assets/images/themes/snowlake-screenshot.webp","/assets/images/themes/snowlake-screenshot-2.webp","/assets/images/themes/snowlake-screenshot-3.webp"],"key_features":["27 Demos","17 Color Schemes","Slider Revolution","2300+ Icons"],"demo_url":"https://snowlake.tortoizthemes.com/","buy_url":"https://tortoizthemes.com/theme/snowlake-jekyll-theme/","author":"Tortoiz Themes","author_url":"https://tortoizthemes.com/","github_author_name":"tortoizthemes","support":"6 months","github_pages_compatible":true,"min_jekyll_version":"4.3","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2025-05-01","added_at":"2026-06-27","popular":true,"trending":true,"bestseller":false,"version":"2.0.0","license":"Commercial","features":["27 unique demo layouts for business, agency, SaaS, portfolio, blog, and more","17 color schemes — choose your brand palette or create your own","5 font options chosen to match the template's design style","Slider Revolution included free (normally $16) — animated banners and sliders","4 icon sets with 2300+ high-quality retina-ready icons","Jekyll 4.3+ and Bootstrap 5 — modern, fast, standards-compliant","Parallax sections with image and video background support","Multiple and single-page layout options with smooth scroll","Various header, menu, and slider configurations","Well-written, SEO-optimised HTML5 with commented code","Responsive design compatible with all devices and screen sizes","Various blog and portfolio layout options to mix and match","Clean and professional design suitable for any industry","Retina-ready graphics — crisp on all high-density displays","Free updates and top-notch support within 24 hours on weekdays"],"slug":"snowlake","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Slate is one of the twelve official themes supported natively by GitHub Pages, meaning you can enable it with a single line in your `_config.yml` — no gem installs, no local setup. Its dark slate sidebar paired with a white content area creates an immediately recognisable, professional look suited to open-source project documentation.\n\nThe code-friendly typography and syntax highlighting make it a natural fit for developer tools and API documentation pages.\n\n**Who is it for?** Developers who want a fast, reliable documentation theme they can enable on any GitHub Pages project in seconds.\n","url":"/themes/slate/","draft":false,"categories":["Documentation"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Slate Jekyll Theme","description":"A bold, dark GitHub Pages Jekyll theme with prominent sidebar navigation and strong code styling. Official GitHub Pages theme for developer docs.","key_features":["GitHub Pages","Dark Sidebar","Code Styling","Developer Docs"],"card_description":"Bold, dark GitHub Pages theme for developer docs with sidebar nav.","category":"Documentation","card_image":"/assets/images/themes/slate-card.webp","theme_screenshots":["/assets/images/themes/slate-screenshot.webp","/assets/images/themes/slate-screenshot-2.webp","/assets/images/themes/slate-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/slate/","github_url":"https://github.com/pages-themes/slate","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":700,"forks":700,"features":["Official GitHub Pages supported theme","Dark sidebar navigation","Code-optimised typography","Responsive layout","Single-click enable via _config.yml","No local Jekyll install required","Google Analytics ready","Clean, professional aesthetic"],"slug":"slate","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/snowlake","collection":"themes","next":{"path":"_themes/so-simple.md","relative_path":"_themes/so-simple.md","excerpt":"<p>So Simple is a clean, minimal Jekyll theme from Michael Rose — the same creator behind Minimal Mistakes. True to its name, it strips away everything non-essential and focuses on typography and readability.</p>\n\n","previous":{"path":"_themes/snowlake.md","relative_path":"_themes/snowlake.md","id":"/themes/snowlake","collection":"themes","url":"/themes/snowlake/","draft":false,"categories":["Business"],"layout":"theme","price_type":"premium","featured":true,"dark_mode":true,"responsive":true,"title":"Snowlake Jekyll Theme","rating":4.8,"rating_count":47,"description":"A versatile multipurpose Jekyll theme with 27 unique demos, 17 color schemes, 5 font options, Slider Revolution, and 4 icon sets with 2300+ icons. Built on Jekyll 4.3+ and Bootstrap 5 — ideal for businesses, agencies, SaaS, and creatives.","card_description":"Multipurpose theme — 27 demos, 17 color schemes, Slider Revolution, Bootstrap 5.","price":79,"category":"Business","card_image":"/assets/images/themes/snowlake-card.webp","theme_screenshots":["/assets/images/themes/snowlake-screenshot.webp","/assets/images/themes/snowlake-screenshot-2.webp","/assets/images/themes/snowlake-screenshot-3.webp"],"key_features":["27 Demos","17 Color Schemes","Slider Revolution","2300+ Icons"],"demo_url":"https://snowlake.tortoizthemes.com/","buy_url":"https://tortoizthemes.com/theme/snowlake-jekyll-theme/","author":"Tortoiz Themes","author_url":"https://tortoizthemes.com/","github_author_name":"tortoizthemes","support":"6 months","github_pages_compatible":true,"min_jekyll_version":"4.3","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2025-05-01","added_at":"2026-06-27","popular":true,"trending":true,"bestseller":false,"version":"2.0.0","license":"Commercial","features":["27 unique demo layouts for business, agency, SaaS, portfolio, blog, and more","17 color schemes — choose your brand palette or create your own","5 font options chosen to match the template's design style","Slider Revolution included free (normally $16) — animated banners and sliders","4 icon sets with 2300+ high-quality retina-ready icons","Jekyll 4.3+ and Bootstrap 5 — modern, fast, standards-compliant","Parallax sections with image and video background support","Multiple and single-page layout options with smooth scroll","Various header, menu, and slider configurations","Well-written, SEO-optimised HTML5 with commented code","Responsive design compatible with all devices and screen sizes","Various blog and portfolio layout options to mix and match","Clean and professional design suitable for any industry","Retina-ready graphics — crisp on all high-density displays","Free updates and top-notch support within 24 hours on weekdays"],"slug":"snowlake","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/so-simple","collection":"themes","next":{"path":"_themes/swiss.md","relative_path":"_themes/swiss.md","id":"/themes/swiss","collection":"themes","url":"/themes/swiss/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Swiss Jekyll Theme","description":"A bold, typographic Jekyll theme inspired by International Swiss Style design. Strong grid, oversized headings, and a clean black-and-white palette that puts typography first.","key_features":["Swiss Design","Bold Typography","Grid Layout","GitHub Pages"],"card_description":"Bold, typographic theme inspired by Swiss International Style design.","category":"Blog","card_image":"/assets/images/themes/swiss-card.webp","theme_screenshots":["/assets/images/themes/swiss-screenshot.webp","/assets/images/themes/swiss-screenshot-2.webp","/assets/images/themes/swiss-screenshot-3.webp"],"demo_url":"https://broccolini.net/swiss/","github_url":"https://github.com/broccolini/swiss","author":"GitHub Community","github_author_name":"broccolini","github_author_url":"https://github.com/broccolini","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag","jekyll-feed"],"updated_at":"2022-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":400,"forks":200,"features":["Swiss International Style design aesthetic","Bold typographic headings","Clean grid layout","Black and white colour palette","Responsive design","GitHub Pages compatible","Fast and lightweight","Focus on editorial typography"],"slug":"swiss","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"So Simple is a clean, minimal Jekyll theme from Michael Rose — the same creator behind Minimal Mistakes. True to its name, it strips away everything non-essential and focuses on typography and readability.\n\nThe theme supports author profiles with avatars and social links, making it ideal for personal blogs where the writer's identity is front and centre.\n\n**Who is it for?** Writers and bloggers who want a clean, no-fuss reading experience without sacrificing flexibility.\n","url":"/themes/so-simple/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"So Simple Jekyll Theme","description":"A simple Jekyll theme for words and pictures. Clean reading layout with support for author profiles, social links, and Google Analytics.","key_features":["Author Profiles","Social Links","GitHub Pages","Clean Reading"],"card_description":"Simple theme for words and pictures with author profile support.","category":"Blog","card_image":"/assets/images/themes/so-simple-card.webp","theme_screenshots":["/assets/images/themes/so-simple-screenshot.webp","/assets/images/themes/so-simple-screenshot-2.webp","/assets/images/themes/so-simple-screenshot-3.webp"],"demo_url":"https://mmistakes.github.io/so-simple-theme/","github_url":"https://github.com/mmistakes/so-simple-theme","author":"GitHub Community","github_author_name":"Michael Rose","github_author_url":"https://github.com/mmistakes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.7","plugins":["jekyll-feed","jekyll-sitemap","jekyll-paginate"],"updated_at":"2024-08-13","added_at":"2026-04-01","popular":true,"trending":false,"bestseller":false,"version":"3.2.0","license":"MIT","stars":2109,"forks":612,"features":["Clean minimal layout","Author profile with avatar","Social media links","Post categories and tags","Google Analytics support","Disqus comments","GitHub Pages compatible","Responsive images","Related posts section","Customisable colour palette"],"slug":"so-simple","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Snowlake is a fully-featured Jekyll multipurpose theme that covers the full range of modern website types in a single purchase. The headline numbers — 27 demos, 17 color schemes, 4 icon sets — give you the raw material to build a polished, differentiated site for almost any brief.\n\n### The Slider Revolution Advantage\n\nOne of Snowlake's standout inclusions is Slider Revolution, a premium animated slider plugin that normally costs $16 separately. With it you get animated hero banners, parallax scrolling effects, and full video background support (HTML5, image, and video backgrounds) without any extra purchase or setup. Combined with the parallax sections and smooth-scroll single-page option, the theme handles the kind of rich visual storytelling that premium agency and SaaS landing pages need.\n\n### Branding Flexibility at Scale\n\nSeventeen color schemes means you are not locked into the theme's out-of-the-box appearance. Swap the palette to match your brand in minutes via CSS variables, then choose one of five font options to tune the typography. The result is a site that looks custom-designed rather than theme-purchased. Each of the 27 demos is fully production-ready, covering business, startup, agency, portfolio, photographer, SaaS, digital studio, and creative industry use cases.\n\n### Technical Foundation\n\nBuilt on Jekyll 4.3+ with Bootstrap 5, the codebase is modern and maintainable. The four icon sets totalling 2300+ icons cover every UI need without reaching for external libraries. Retina-ready throughout, with responsive layouts that adapt across mobile, tablet, and desktop.\n\n**Who is it for?** Business owners, creative agencies, digital studios, SaaS founders, and freelancers who need a complete, high-quality website with visual flexibility — and who want it running quickly rather than designed from scratch.\n","url":"/themes/snowlake/","draft":false,"categories":["Business"],"layout":"theme","price_type":"premium","featured":true,"dark_mode":true,"responsive":true,"title":"Snowlake Jekyll Theme","rating":4.8,"rating_count":47,"description":"A versatile multipurpose Jekyll theme with 27 unique demos, 17 color schemes, 5 font options, Slider Revolution, and 4 icon sets with 2300+ icons. Built on Jekyll 4.3+ and Bootstrap 5 — ideal for businesses, agencies, SaaS, and creatives.","card_description":"Multipurpose theme — 27 demos, 17 color schemes, Slider Revolution, Bootstrap 5.","price":79,"category":"Business","card_image":"/assets/images/themes/snowlake-card.webp","theme_screenshots":["/assets/images/themes/snowlake-screenshot.webp","/assets/images/themes/snowlake-screenshot-2.webp","/assets/images/themes/snowlake-screenshot-3.webp"],"key_features":["27 Demos","17 Color Schemes","Slider Revolution","2300+ Icons"],"demo_url":"https://snowlake.tortoizthemes.com/","buy_url":"https://tortoizthemes.com/theme/snowlake-jekyll-theme/","author":"Tortoiz Themes","author_url":"https://tortoizthemes.com/","github_author_name":"tortoizthemes","support":"6 months","github_pages_compatible":true,"min_jekyll_version":"4.3","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2025-05-01","added_at":"2026-06-27","popular":true,"trending":true,"bestseller":false,"version":"2.0.0","license":"Commercial","features":["27 unique demo layouts for business, agency, SaaS, portfolio, blog, and more","17 color schemes — choose your brand palette or create your own","5 font options chosen to match the template's design style","Slider Revolution included free (normally $16) — animated banners and sliders","4 icon sets with 2300+ high-quality retina-ready icons","Jekyll 4.3+ and Bootstrap 5 — modern, fast, standards-compliant","Parallax sections with image and video background support","Multiple and single-page layout options with smooth scroll","Various header, menu, and slider configurations","Well-written, SEO-optimised HTML5 with commented code","Responsive design compatible with all devices and screen sizes","Various blog and portfolio layout options to mix and match","Clean and professional design suitable for any industry","Retina-ready graphics — crisp on all high-density displays","Free updates and top-notch support within 24 hours on weekdays"],"slug":"snowlake","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/so-simple.md","relative_path":"_themes/so-simple.md","excerpt":"<p>So Simple is a clean, minimal Jekyll theme from Michael Rose — the same creator behind Minimal Mistakes. True to its name, it strips away everything non-essential and focuses on typography and readability.</p>\n\n","previous":{"path":"_themes/snowlake.md","relative_path":"_themes/snowlake.md","excerpt":"<p>Snowlake is a fully-featured Jekyll multipurpose theme that covers the full range of modern website types in a single purchase. The headline numbers — 27 demos, 17 color schemes, 4 icon sets — give you the raw material to build a polished, differentiated site for almost any brief.</p>\n\n","previous":{"path":"_themes/slate.md","relative_path":"_themes/slate.md","id":"/themes/slate","collection":"themes","url":"/themes/slate/","draft":false,"categories":["Documentation"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Slate Jekyll Theme","description":"A bold, dark GitHub Pages Jekyll theme with prominent sidebar navigation and strong code styling. Official GitHub Pages theme for developer docs.","key_features":["GitHub Pages","Dark Sidebar","Code Styling","Developer Docs"],"card_description":"Bold, dark GitHub Pages theme for developer docs with sidebar nav.","category":"Documentation","card_image":"/assets/images/themes/slate-card.webp","theme_screenshots":["/assets/images/themes/slate-screenshot.webp","/assets/images/themes/slate-screenshot-2.webp","/assets/images/themes/slate-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/slate/","github_url":"https://github.com/pages-themes/slate","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":700,"forks":700,"features":["Official GitHub Pages supported theme","Dark sidebar navigation","Code-optimised typography","Responsive layout","Single-click enable via _config.yml","No local Jekyll install required","Google Analytics ready","Clean, professional aesthetic"],"slug":"slate","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/snowlake","collection":"themes","next":{"path":"_themes/so-simple.md","relative_path":"_themes/so-simple.md","id":"/themes/so-simple","collection":"themes","url":"/themes/so-simple/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"So Simple Jekyll Theme","description":"A simple Jekyll theme for words and pictures. Clean reading layout with support for author profiles, social links, and Google Analytics.","key_features":["Author Profiles","Social Links","GitHub Pages","Clean Reading"],"card_description":"Simple theme for words and pictures with author profile support.","category":"Blog","card_image":"/assets/images/themes/so-simple-card.webp","theme_screenshots":["/assets/images/themes/so-simple-screenshot.webp","/assets/images/themes/so-simple-screenshot-2.webp","/assets/images/themes/so-simple-screenshot-3.webp"],"demo_url":"https://mmistakes.github.io/so-simple-theme/","github_url":"https://github.com/mmistakes/so-simple-theme","author":"GitHub Community","github_author_name":"Michael Rose","github_author_url":"https://github.com/mmistakes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.7","plugins":["jekyll-feed","jekyll-sitemap","jekyll-paginate"],"updated_at":"2024-08-13","added_at":"2026-04-01","popular":true,"trending":false,"bestseller":false,"version":"3.2.0","license":"MIT","stars":2109,"forks":612,"features":["Clean minimal layout","Author profile with avatar","Social media links","Post categories and tags","Google Analytics support","Disqus comments","GitHub Pages compatible","Responsive images","Related posts section","Customisable colour palette"],"slug":"so-simple","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Snowlake is a fully-featured Jekyll multipurpose theme that covers the full range of modern website types in a single purchase. The headline numbers — 27 demos, 17 color schemes, 4 icon sets — give you the raw material to build a polished, differentiated site for almost any brief.\n\n### The Slider Revolution Advantage\n\nOne of Snowlake's standout inclusions is Slider Revolution, a premium animated slider plugin that normally costs $16 separately. With it you get animated hero banners, parallax scrolling effects, and full video background support (HTML5, image, and video backgrounds) without any extra purchase or setup. Combined with the parallax sections and smooth-scroll single-page option, the theme handles the kind of rich visual storytelling that premium agency and SaaS landing pages need.\n\n### Branding Flexibility at Scale\n\nSeventeen color schemes means you are not locked into the theme's out-of-the-box appearance. Swap the palette to match your brand in minutes via CSS variables, then choose one of five font options to tune the typography. The result is a site that looks custom-designed rather than theme-purchased. Each of the 27 demos is fully production-ready, covering business, startup, agency, portfolio, photographer, SaaS, digital studio, and creative industry use cases.\n\n### Technical Foundation\n\nBuilt on Jekyll 4.3+ with Bootstrap 5, the codebase is modern and maintainable. The four icon sets totalling 2300+ icons cover every UI need without reaching for external libraries. Retina-ready throughout, with responsive layouts that adapt across mobile, tablet, and desktop.\n\n**Who is it for?** Business owners, creative agencies, digital studios, SaaS founders, and freelancers who need a complete, high-quality website with visual flexibility — and who want it running quickly rather than designed from scratch.\n","url":"/themes/snowlake/","draft":false,"categories":["Business"],"layout":"theme","price_type":"premium","featured":true,"dark_mode":true,"responsive":true,"title":"Snowlake Jekyll Theme","rating":4.8,"rating_count":47,"description":"A versatile multipurpose Jekyll theme with 27 unique demos, 17 color schemes, 5 font options, Slider Revolution, and 4 icon sets with 2300+ icons. Built on Jekyll 4.3+ and Bootstrap 5 — ideal for businesses, agencies, SaaS, and creatives.","card_description":"Multipurpose theme — 27 demos, 17 color schemes, Slider Revolution, Bootstrap 5.","price":79,"category":"Business","card_image":"/assets/images/themes/snowlake-card.webp","theme_screenshots":["/assets/images/themes/snowlake-screenshot.webp","/assets/images/themes/snowlake-screenshot-2.webp","/assets/images/themes/snowlake-screenshot-3.webp"],"key_features":["27 Demos","17 Color Schemes","Slider Revolution","2300+ Icons"],"demo_url":"https://snowlake.tortoizthemes.com/","buy_url":"https://tortoizthemes.com/theme/snowlake-jekyll-theme/","author":"Tortoiz Themes","author_url":"https://tortoizthemes.com/","github_author_name":"tortoizthemes","support":"6 months","github_pages_compatible":true,"min_jekyll_version":"4.3","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2025-05-01","added_at":"2026-06-27","popular":true,"trending":true,"bestseller":false,"version":"2.0.0","license":"Commercial","features":["27 unique demo layouts for business, agency, SaaS, portfolio, blog, and more","17 color schemes — choose your brand palette or create your own","5 font options chosen to match the template's design style","Slider Revolution included free (normally $16) — animated banners and sliders","4 icon sets with 2300+ high-quality retina-ready icons","Jekyll 4.3+ and Bootstrap 5 — modern, fast, standards-compliant","Parallax sections with image and video background support","Multiple and single-page layout options with smooth scroll","Various header, menu, and slider configurations","Well-written, SEO-optimised HTML5 with commented code","Responsive design compatible with all devices and screen sizes","Various blog and portfolio layout options to mix and match","Clean and professional design suitable for any industry","Retina-ready graphics — crisp on all high-density displays","Free updates and top-notch support within 24 hours on weekdays"],"slug":"snowlake","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/so-simple","collection":"themes","next":{"path":"_themes/swiss.md","relative_path":"_themes/swiss.md","excerpt":"<p>Swiss is a love letter to the International Typographic Style — the design movement behind some of the most influential graphic design of the 20th century. Diana Mounter (GitHub’s Head of Design at the time) brought that aesthetic to Jekyll: strong grid, oversized Helvetica-inspired headings, and a restrained black-and-white palette that lets typography do all the work.</p>\n\n","previous":{"path":"_themes/so-simple.md","relative_path":"_themes/so-simple.md","id":"/themes/so-simple","collection":"themes","url":"/themes/so-simple/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"So Simple Jekyll Theme","description":"A simple Jekyll theme for words and pictures. Clean reading layout with support for author profiles, social links, and Google Analytics.","key_features":["Author Profiles","Social Links","GitHub Pages","Clean Reading"],"card_description":"Simple theme for words and pictures with author profile support.","category":"Blog","card_image":"/assets/images/themes/so-simple-card.webp","theme_screenshots":["/assets/images/themes/so-simple-screenshot.webp","/assets/images/themes/so-simple-screenshot-2.webp","/assets/images/themes/so-simple-screenshot-3.webp"],"demo_url":"https://mmistakes.github.io/so-simple-theme/","github_url":"https://github.com/mmistakes/so-simple-theme","author":"GitHub Community","github_author_name":"Michael Rose","github_author_url":"https://github.com/mmistakes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.7","plugins":["jekyll-feed","jekyll-sitemap","jekyll-paginate"],"updated_at":"2024-08-13","added_at":"2026-04-01","popular":true,"trending":false,"bestseller":false,"version":"3.2.0","license":"MIT","stars":2109,"forks":612,"features":["Clean minimal layout","Author profile with avatar","Social media links","Post categories and tags","Google Analytics support","Disqus comments","GitHub Pages compatible","Responsive images","Related posts section","Customisable colour palette"],"slug":"so-simple","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/swiss","collection":"themes","next":{"path":"_themes/tactile.md","relative_path":"_themes/tactile.md","id":"/themes/tactile","collection":"themes","url":"/themes/tactile/","draft":false,"categories":["Personal"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Tactile Jekyll Theme","description":"A textured, warm GitHub Pages Jekyll theme with a hand-crafted sidebar style. Official GitHub Pages theme with classic personality and charm.","key_features":["GitHub Pages","Hand-Crafted Style","Warm Palette","Official GH Theme"],"card_description":"Textured, warm GitHub Pages theme with hand-crafted sidebar style.","category":"Personal","card_image":"/assets/images/themes/tactile-card.webp","theme_screenshots":["/assets/images/themes/tactile-screenshot.webp","/assets/images/themes/tactile-screenshot-2.webp","/assets/images/themes/tactile-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/tactile/","github_url":"https://github.com/pages-themes/tactile","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":500,"forks":450,"features":["Official GitHub Pages supported theme","Textured sidebar with handcrafted aesthetic","Green accent colour scheme","Responsive sidebar layout","Single-line enable via _config.yml","No local setup required","Distinctive, warm personality"],"slug":"tactile","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Swiss is a love letter to the International Typographic Style — the design movement behind some of the most influential graphic design of the 20th century. Diana Mounter (GitHub's Head of Design at the time) brought that aesthetic to Jekyll: strong grid, oversized Helvetica-inspired headings, and a restrained black-and-white palette that lets typography do all the work.\n\nThe result is a theme that feels confidently editorial. Nothing is decorative; everything is intentional.\n\n**Who is it for?** Designers, writers, and developers who appreciate typographic rigour and want a site that looks like it was designed, not just assembled.\n","url":"/themes/swiss/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Swiss Jekyll Theme","description":"A bold, typographic Jekyll theme inspired by International Swiss Style design. Strong grid, oversized headings, and a clean black-and-white palette that puts typography first.","key_features":["Swiss Design","Bold Typography","Grid Layout","GitHub Pages"],"card_description":"Bold, typographic theme inspired by Swiss International Style design.","category":"Blog","card_image":"/assets/images/themes/swiss-card.webp","theme_screenshots":["/assets/images/themes/swiss-screenshot.webp","/assets/images/themes/swiss-screenshot-2.webp","/assets/images/themes/swiss-screenshot-3.webp"],"demo_url":"https://broccolini.net/swiss/","github_url":"https://github.com/broccolini/swiss","author":"GitHub Community","github_author_name":"broccolini","github_author_url":"https://github.com/broccolini","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag","jekyll-feed"],"updated_at":"2022-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":400,"forks":200,"features":["Swiss International Style design aesthetic","Bold typographic headings","Clean grid layout","Black and white colour palette","Responsive design","GitHub Pages compatible","Fast and lightweight","Focus on editorial typography"],"slug":"swiss","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"So Simple is a clean, minimal Jekyll theme from Michael Rose — the same creator behind Minimal Mistakes. True to its name, it strips away everything non-essential and focuses on typography and readability.\n\nThe theme supports author profiles with avatars and social links, making it ideal for personal blogs where the writer's identity is front and centre.\n\n**Who is it for?** Writers and bloggers who want a clean, no-fuss reading experience without sacrificing flexibility.\n","url":"/themes/so-simple/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"So Simple Jekyll Theme","description":"A simple Jekyll theme for words and pictures. Clean reading layout with support for author profiles, social links, and Google Analytics.","key_features":["Author Profiles","Social Links","GitHub Pages","Clean Reading"],"card_description":"Simple theme for words and pictures with author profile support.","category":"Blog","card_image":"/assets/images/themes/so-simple-card.webp","theme_screenshots":["/assets/images/themes/so-simple-screenshot.webp","/assets/images/themes/so-simple-screenshot-2.webp","/assets/images/themes/so-simple-screenshot-3.webp"],"demo_url":"https://mmistakes.github.io/so-simple-theme/","github_url":"https://github.com/mmistakes/so-simple-theme","author":"GitHub Community","github_author_name":"Michael Rose","github_author_url":"https://github.com/mmistakes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.7","plugins":["jekyll-feed","jekyll-sitemap","jekyll-paginate"],"updated_at":"2024-08-13","added_at":"2026-04-01","popular":true,"trending":false,"bestseller":false,"version":"3.2.0","license":"MIT","stars":2109,"forks":612,"features":["Clean minimal layout","Author profile with avatar","Social media links","Post categories and tags","Google Analytics support","Disqus comments","GitHub Pages compatible","Responsive images","Related posts section","Customisable colour palette"],"slug":"so-simple","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/swiss.md","relative_path":"_themes/swiss.md","excerpt":"<p>Swiss is a love letter to the International Typographic Style — the design movement behind some of the most influential graphic design of the 20th century. Diana Mounter (GitHub’s Head of Design at the time) brought that aesthetic to Jekyll: strong grid, oversized Helvetica-inspired headings, and a restrained black-and-white palette that lets typography do all the work.</p>\n\n","previous":{"path":"_themes/so-simple.md","relative_path":"_themes/so-simple.md","excerpt":"<p>So Simple is a clean, minimal Jekyll theme from Michael Rose — the same creator behind Minimal Mistakes. True to its name, it strips away everything non-essential and focuses on typography and readability.</p>\n\n","previous":{"path":"_themes/snowlake.md","relative_path":"_themes/snowlake.md","id":"/themes/snowlake","collection":"themes","url":"/themes/snowlake/","draft":false,"categories":["Business"],"layout":"theme","price_type":"premium","featured":true,"dark_mode":true,"responsive":true,"title":"Snowlake Jekyll Theme","rating":4.8,"rating_count":47,"description":"A versatile multipurpose Jekyll theme with 27 unique demos, 17 color schemes, 5 font options, Slider Revolution, and 4 icon sets with 2300+ icons. Built on Jekyll 4.3+ and Bootstrap 5 — ideal for businesses, agencies, SaaS, and creatives.","card_description":"Multipurpose theme — 27 demos, 17 color schemes, Slider Revolution, Bootstrap 5.","price":79,"category":"Business","card_image":"/assets/images/themes/snowlake-card.webp","theme_screenshots":["/assets/images/themes/snowlake-screenshot.webp","/assets/images/themes/snowlake-screenshot-2.webp","/assets/images/themes/snowlake-screenshot-3.webp"],"key_features":["27 Demos","17 Color Schemes","Slider Revolution","2300+ Icons"],"demo_url":"https://snowlake.tortoizthemes.com/","buy_url":"https://tortoizthemes.com/theme/snowlake-jekyll-theme/","author":"Tortoiz Themes","author_url":"https://tortoizthemes.com/","github_author_name":"tortoizthemes","support":"6 months","github_pages_compatible":true,"min_jekyll_version":"4.3","plugins":["jekyll-feed","jekyll-seo-tag"],"updated_at":"2025-05-01","added_at":"2026-06-27","popular":true,"trending":true,"bestseller":false,"version":"2.0.0","license":"Commercial","features":["27 unique demo layouts for business, agency, SaaS, portfolio, blog, and more","17 color schemes — choose your brand palette or create your own","5 font options chosen to match the template's design style","Slider Revolution included free (normally $16) — animated banners and sliders","4 icon sets with 2300+ high-quality retina-ready icons","Jekyll 4.3+ and Bootstrap 5 — modern, fast, standards-compliant","Parallax sections with image and video background support","Multiple and single-page layout options with smooth scroll","Various header, menu, and slider configurations","Well-written, SEO-optimised HTML5 with commented code","Responsive design compatible with all devices and screen sizes","Various blog and portfolio layout options to mix and match","Clean and professional design suitable for any industry","Retina-ready graphics — crisp on all high-density displays","Free updates and top-notch support within 24 hours on weekdays"],"slug":"snowlake","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/so-simple","collection":"themes","next":{"path":"_themes/swiss.md","relative_path":"_themes/swiss.md","id":"/themes/swiss","collection":"themes","url":"/themes/swiss/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Swiss Jekyll Theme","description":"A bold, typographic Jekyll theme inspired by International Swiss Style design. Strong grid, oversized headings, and a clean black-and-white palette that puts typography first.","key_features":["Swiss Design","Bold Typography","Grid Layout","GitHub Pages"],"card_description":"Bold, typographic theme inspired by Swiss International Style design.","category":"Blog","card_image":"/assets/images/themes/swiss-card.webp","theme_screenshots":["/assets/images/themes/swiss-screenshot.webp","/assets/images/themes/swiss-screenshot-2.webp","/assets/images/themes/swiss-screenshot-3.webp"],"demo_url":"https://broccolini.net/swiss/","github_url":"https://github.com/broccolini/swiss","author":"GitHub Community","github_author_name":"broccolini","github_author_url":"https://github.com/broccolini","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag","jekyll-feed"],"updated_at":"2022-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":400,"forks":200,"features":["Swiss International Style design aesthetic","Bold typographic headings","Clean grid layout","Black and white colour palette","Responsive design","GitHub Pages compatible","Fast and lightweight","Focus on editorial typography"],"slug":"swiss","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"So Simple is a clean, minimal Jekyll theme from Michael Rose — the same creator behind Minimal Mistakes. True to its name, it strips away everything non-essential and focuses on typography and readability.\n\nThe theme supports author profiles with avatars and social links, making it ideal for personal blogs where the writer's identity is front and centre.\n\n**Who is it for?** Writers and bloggers who want a clean, no-fuss reading experience without sacrificing flexibility.\n","url":"/themes/so-simple/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"So Simple Jekyll Theme","description":"A simple Jekyll theme for words and pictures. Clean reading layout with support for author profiles, social links, and Google Analytics.","key_features":["Author Profiles","Social Links","GitHub Pages","Clean Reading"],"card_description":"Simple theme for words and pictures with author profile support.","category":"Blog","card_image":"/assets/images/themes/so-simple-card.webp","theme_screenshots":["/assets/images/themes/so-simple-screenshot.webp","/assets/images/themes/so-simple-screenshot-2.webp","/assets/images/themes/so-simple-screenshot-3.webp"],"demo_url":"https://mmistakes.github.io/so-simple-theme/","github_url":"https://github.com/mmistakes/so-simple-theme","author":"GitHub Community","github_author_name":"Michael Rose","github_author_url":"https://github.com/mmistakes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.7","plugins":["jekyll-feed","jekyll-sitemap","jekyll-paginate"],"updated_at":"2024-08-13","added_at":"2026-04-01","popular":true,"trending":false,"bestseller":false,"version":"3.2.0","license":"MIT","stars":2109,"forks":612,"features":["Clean minimal layout","Author profile with avatar","Social media links","Post categories and tags","Google Analytics support","Disqus comments","GitHub Pages compatible","Responsive images","Related posts section","Customisable colour palette"],"slug":"so-simple","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/swiss","collection":"themes","next":{"path":"_themes/tactile.md","relative_path":"_themes/tactile.md","excerpt":"<p>Tactile is the most characterful of GitHub’s official themes. Its wood-grain-textured sidebar and green accent colour palette give it a warm, handcrafted feel that’s quite unlike the clean minimalism of the other official themes. The result is a site that feels personal and approachable — like something built with care.</p>\n\n","previous":{"path":"_themes/swiss.md","relative_path":"_themes/swiss.md","id":"/themes/swiss","collection":"themes","url":"/themes/swiss/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Swiss Jekyll Theme","description":"A bold, typographic Jekyll theme inspired by International Swiss Style design. Strong grid, oversized headings, and a clean black-and-white palette that puts typography first.","key_features":["Swiss Design","Bold Typography","Grid Layout","GitHub Pages"],"card_description":"Bold, typographic theme inspired by Swiss International Style design.","category":"Blog","card_image":"/assets/images/themes/swiss-card.webp","theme_screenshots":["/assets/images/themes/swiss-screenshot.webp","/assets/images/themes/swiss-screenshot-2.webp","/assets/images/themes/swiss-screenshot-3.webp"],"demo_url":"https://broccolini.net/swiss/","github_url":"https://github.com/broccolini/swiss","author":"GitHub Community","github_author_name":"broccolini","github_author_url":"https://github.com/broccolini","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag","jekyll-feed"],"updated_at":"2022-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":400,"forks":200,"features":["Swiss International Style design aesthetic","Bold typographic headings","Clean grid layout","Black and white colour palette","Responsive design","GitHub Pages compatible","Fast and lightweight","Focus on editorial typography"],"slug":"swiss","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/tactile","collection":"themes","next":{"path":"_themes/tale.md","relative_path":"_themes/tale.md","id":"/themes/tale","collection":"themes","url":"/themes/tale/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Tale Jekyll Theme","description":"An minimal Jekyll theme focused on content. Elegant single-column layout with beautiful typography, clean post listings, and zero visual noise — perfect for long-form writing.","key_features":["Single Column","Clean Typography","Minimal Design","GitHub Pages"],"card_description":"Minimal, elegant single-column blog for long-form writing.","category":"Blog","card_image":"/assets/images/themes/tale-card.webp","theme_screenshots":["/assets/images/themes/tale-screenshot.webp","/assets/images/themes/tale-screenshot-2.webp","/assets/images/themes/tale-screenshot-3.webp"],"demo_url":"https://chesterhow.github.io/tale/","github_url":"https://github.com/chesterhow/tale","author":"GitHub Community","github_author_name":"chesterhow","github_author_url":"https://github.com/chesterhow","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.1","plugins":["jekyll-feed","jekyll-paginate","jekyll-sitemap","jekyll-seo-tag"],"updated_at":"2022-06-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":1400,"forks":500,"features":["Minimal single-column layout","Paginated post listing","Tag-based post organisation","Post estimated reading time","Syntax highlighting","Disqus comments support","Google Analytics","RSS feed","Responsive design","GitHub Pages compatible"],"slug":"tale","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Tactile is the most characterful of GitHub's official themes. Its wood-grain-textured sidebar and green accent colour palette give it a warm, handcrafted feel that's quite unlike the clean minimalism of the other official themes. The result is a site that feels personal and approachable — like something built with care.\n\nIt's particularly effective for open-source projects that want to stand out, personal portfolios with a creative bent, or any project that wants its page to have a real identity.\n\n**Who is it for?** Developers and creators who want a GitHub Pages site with distinct visual personality and warmth, as an alternative to the more minimal official themes.\n","url":"/themes/tactile/","draft":false,"categories":["Personal"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Tactile Jekyll Theme","description":"A textured, warm GitHub Pages Jekyll theme with a hand-crafted sidebar style. Official GitHub Pages theme with classic personality and charm.","key_features":["GitHub Pages","Hand-Crafted Style","Warm Palette","Official GH Theme"],"card_description":"Textured, warm GitHub Pages theme with hand-crafted sidebar style.","category":"Personal","card_image":"/assets/images/themes/tactile-card.webp","theme_screenshots":["/assets/images/themes/tactile-screenshot.webp","/assets/images/themes/tactile-screenshot-2.webp","/assets/images/themes/tactile-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/tactile/","github_url":"https://github.com/pages-themes/tactile","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":500,"forks":450,"features":["Official GitHub Pages supported theme","Textured sidebar with handcrafted aesthetic","Green accent colour scheme","Responsive sidebar layout","Single-line enable via _config.yml","No local setup required","Distinctive, warm personality"],"slug":"tactile","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Swiss is a love letter to the International Typographic Style — the design movement behind some of the most influential graphic design of the 20th century. Diana Mounter (GitHub's Head of Design at the time) brought that aesthetic to Jekyll: strong grid, oversized Helvetica-inspired headings, and a restrained black-and-white palette that lets typography do all the work.\n\nThe result is a theme that feels confidently editorial. Nothing is decorative; everything is intentional.\n\n**Who is it for?** Designers, writers, and developers who appreciate typographic rigour and want a site that looks like it was designed, not just assembled.\n","url":"/themes/swiss/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Swiss Jekyll Theme","description":"A bold, typographic Jekyll theme inspired by International Swiss Style design. Strong grid, oversized headings, and a clean black-and-white palette that puts typography first.","key_features":["Swiss Design","Bold Typography","Grid Layout","GitHub Pages"],"card_description":"Bold, typographic theme inspired by Swiss International Style design.","category":"Blog","card_image":"/assets/images/themes/swiss-card.webp","theme_screenshots":["/assets/images/themes/swiss-screenshot.webp","/assets/images/themes/swiss-screenshot-2.webp","/assets/images/themes/swiss-screenshot-3.webp"],"demo_url":"https://broccolini.net/swiss/","github_url":"https://github.com/broccolini/swiss","author":"GitHub Community","github_author_name":"broccolini","github_author_url":"https://github.com/broccolini","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag","jekyll-feed"],"updated_at":"2022-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":400,"forks":200,"features":["Swiss International Style design aesthetic","Bold typographic headings","Clean grid layout","Black and white colour palette","Responsive design","GitHub Pages compatible","Fast and lightweight","Focus on editorial typography"],"slug":"swiss","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/tactile.md","relative_path":"_themes/tactile.md","excerpt":"<p>Tactile is the most characterful of GitHub’s official themes. Its wood-grain-textured sidebar and green accent colour palette give it a warm, handcrafted feel that’s quite unlike the clean minimalism of the other official themes. The result is a site that feels personal and approachable — like something built with care.</p>\n\n","previous":{"path":"_themes/swiss.md","relative_path":"_themes/swiss.md","excerpt":"<p>Swiss is a love letter to the International Typographic Style — the design movement behind some of the most influential graphic design of the 20th century. Diana Mounter (GitHub’s Head of Design at the time) brought that aesthetic to Jekyll: strong grid, oversized Helvetica-inspired headings, and a restrained black-and-white palette that lets typography do all the work.</p>\n\n","previous":{"path":"_themes/so-simple.md","relative_path":"_themes/so-simple.md","id":"/themes/so-simple","collection":"themes","url":"/themes/so-simple/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"So Simple Jekyll Theme","description":"A simple Jekyll theme for words and pictures. Clean reading layout with support for author profiles, social links, and Google Analytics.","key_features":["Author Profiles","Social Links","GitHub Pages","Clean Reading"],"card_description":"Simple theme for words and pictures with author profile support.","category":"Blog","card_image":"/assets/images/themes/so-simple-card.webp","theme_screenshots":["/assets/images/themes/so-simple-screenshot.webp","/assets/images/themes/so-simple-screenshot-2.webp","/assets/images/themes/so-simple-screenshot-3.webp"],"demo_url":"https://mmistakes.github.io/so-simple-theme/","github_url":"https://github.com/mmistakes/so-simple-theme","author":"GitHub Community","github_author_name":"Michael Rose","github_author_url":"https://github.com/mmistakes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.7","plugins":["jekyll-feed","jekyll-sitemap","jekyll-paginate"],"updated_at":"2024-08-13","added_at":"2026-04-01","popular":true,"trending":false,"bestseller":false,"version":"3.2.0","license":"MIT","stars":2109,"forks":612,"features":["Clean minimal layout","Author profile with avatar","Social media links","Post categories and tags","Google Analytics support","Disqus comments","GitHub Pages compatible","Responsive images","Related posts section","Customisable colour palette"],"slug":"so-simple","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/swiss","collection":"themes","next":{"path":"_themes/tactile.md","relative_path":"_themes/tactile.md","id":"/themes/tactile","collection":"themes","url":"/themes/tactile/","draft":false,"categories":["Personal"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Tactile Jekyll Theme","description":"A textured, warm GitHub Pages Jekyll theme with a hand-crafted sidebar style. Official GitHub Pages theme with classic personality and charm.","key_features":["GitHub Pages","Hand-Crafted Style","Warm Palette","Official GH Theme"],"card_description":"Textured, warm GitHub Pages theme with hand-crafted sidebar style.","category":"Personal","card_image":"/assets/images/themes/tactile-card.webp","theme_screenshots":["/assets/images/themes/tactile-screenshot.webp","/assets/images/themes/tactile-screenshot-2.webp","/assets/images/themes/tactile-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/tactile/","github_url":"https://github.com/pages-themes/tactile","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":500,"forks":450,"features":["Official GitHub Pages supported theme","Textured sidebar with handcrafted aesthetic","Green accent colour scheme","Responsive sidebar layout","Single-line enable via _config.yml","No local setup required","Distinctive, warm personality"],"slug":"tactile","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Swiss is a love letter to the International Typographic Style — the design movement behind some of the most influential graphic design of the 20th century. Diana Mounter (GitHub's Head of Design at the time) brought that aesthetic to Jekyll: strong grid, oversized Helvetica-inspired headings, and a restrained black-and-white palette that lets typography do all the work.\n\nThe result is a theme that feels confidently editorial. Nothing is decorative; everything is intentional.\n\n**Who is it for?** Designers, writers, and developers who appreciate typographic rigour and want a site that looks like it was designed, not just assembled.\n","url":"/themes/swiss/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Swiss Jekyll Theme","description":"A bold, typographic Jekyll theme inspired by International Swiss Style design. Strong grid, oversized headings, and a clean black-and-white palette that puts typography first.","key_features":["Swiss Design","Bold Typography","Grid Layout","GitHub Pages"],"card_description":"Bold, typographic theme inspired by Swiss International Style design.","category":"Blog","card_image":"/assets/images/themes/swiss-card.webp","theme_screenshots":["/assets/images/themes/swiss-screenshot.webp","/assets/images/themes/swiss-screenshot-2.webp","/assets/images/themes/swiss-screenshot-3.webp"],"demo_url":"https://broccolini.net/swiss/","github_url":"https://github.com/broccolini/swiss","author":"GitHub Community","github_author_name":"broccolini","github_author_url":"https://github.com/broccolini","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag","jekyll-feed"],"updated_at":"2022-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":400,"forks":200,"features":["Swiss International Style design aesthetic","Bold typographic headings","Clean grid layout","Black and white colour palette","Responsive design","GitHub Pages compatible","Fast and lightweight","Focus on editorial typography"],"slug":"swiss","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/tactile","collection":"themes","next":{"path":"_themes/tale.md","relative_path":"_themes/tale.md","excerpt":"<p>Tale is a minimal Jekyll theme built around the idea that nothing should compete with your writing. Its single-column layout, careful typographic choices, and complete absence of visual clutter create a reading experience that feels calm and focused.</p>\n\n","previous":{"path":"_themes/tactile.md","relative_path":"_themes/tactile.md","id":"/themes/tactile","collection":"themes","url":"/themes/tactile/","draft":false,"categories":["Personal"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Tactile Jekyll Theme","description":"A textured, warm GitHub Pages Jekyll theme with a hand-crafted sidebar style. Official GitHub Pages theme with classic personality and charm.","key_features":["GitHub Pages","Hand-Crafted Style","Warm Palette","Official GH Theme"],"card_description":"Textured, warm GitHub Pages theme with hand-crafted sidebar style.","category":"Personal","card_image":"/assets/images/themes/tactile-card.webp","theme_screenshots":["/assets/images/themes/tactile-screenshot.webp","/assets/images/themes/tactile-screenshot-2.webp","/assets/images/themes/tactile-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/tactile/","github_url":"https://github.com/pages-themes/tactile","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":500,"forks":450,"features":["Official GitHub Pages supported theme","Textured sidebar with handcrafted aesthetic","Green accent colour scheme","Responsive sidebar layout","Single-line enable via _config.yml","No local setup required","Distinctive, warm personality"],"slug":"tactile","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/tale","collection":"themes","next":{"path":"_themes/type-theme.md","relative_path":"_themes/type-theme.md","id":"/themes/type-theme","collection":"themes","url":"/themes/type-theme/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Type Theme Jekyll Theme","description":"A free, open-source theme for Jekyll focused purely on typography and reading. Minimal design, fast load times, and a beautifully simple blog layout for writers who mean business.","key_features":["Typography Focus","Minimal Design","GitHub Pages","Fast Loading"],"card_description":"Typography-focused minimal theme for writers who value clean reading.","category":"Blog","card_image":"/assets/images/themes/type-theme-card.webp","theme_screenshots":["/assets/images/themes/type-theme-screenshot.webp","/assets/images/themes/type-theme-screenshot-2.webp","/assets/images/themes/type-theme-screenshot-3.webp"],"demo_url":"https://rohanchandra.github.io/type-theme/","github_url":"https://github.com/rohanchandra/type-theme","author":"GitHub Community","github_author_name":"rohanchandra","github_author_url":"https://github.com/rohanchandra","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate","jekyll-sitemap","jekyll-seo-tag"],"updated_at":"2021-06-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":1000,"forks":600,"features":["Typography-first design","Google Fonts integration","Paginated post listing","Category and tag pages","Syntax highlighting","Disqus comments","Google Analytics","RSS feed","Social links in header","GitHub Pages compatible"],"slug":"type-theme","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Tale is a minimal Jekyll theme built around the idea that nothing should compete with your writing. Its single-column layout, careful typographic choices, and complete absence of visual clutter create a reading experience that feels calm and focused.\n\nThe theme handles the basics well — pagination, tags, syntax highlighting, comments — without adding anything unnecessary. If you've ever felt that most blog themes have too much going on, Tale is the answer.\n\n**Who is it for?** Writers, journalists, and developers who want their words to be the centrepiece of every page with no distracting chrome around them.\n","url":"/themes/tale/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Tale Jekyll Theme","description":"An minimal Jekyll theme focused on content. Elegant single-column layout with beautiful typography, clean post listings, and zero visual noise — perfect for long-form writing.","key_features":["Single Column","Clean Typography","Minimal Design","GitHub Pages"],"card_description":"Minimal, elegant single-column blog for long-form writing.","category":"Blog","card_image":"/assets/images/themes/tale-card.webp","theme_screenshots":["/assets/images/themes/tale-screenshot.webp","/assets/images/themes/tale-screenshot-2.webp","/assets/images/themes/tale-screenshot-3.webp"],"demo_url":"https://chesterhow.github.io/tale/","github_url":"https://github.com/chesterhow/tale","author":"GitHub Community","github_author_name":"chesterhow","github_author_url":"https://github.com/chesterhow","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.1","plugins":["jekyll-feed","jekyll-paginate","jekyll-sitemap","jekyll-seo-tag"],"updated_at":"2022-06-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":1400,"forks":500,"features":["Minimal single-column layout","Paginated post listing","Tag-based post organisation","Post estimated reading time","Syntax highlighting","Disqus comments support","Google Analytics","RSS feed","Responsive design","GitHub Pages compatible"],"slug":"tale","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Tactile is the most characterful of GitHub's official themes. Its wood-grain-textured sidebar and green accent colour palette give it a warm, handcrafted feel that's quite unlike the clean minimalism of the other official themes. The result is a site that feels personal and approachable — like something built with care.\n\nIt's particularly effective for open-source projects that want to stand out, personal portfolios with a creative bent, or any project that wants its page to have a real identity.\n\n**Who is it for?** Developers and creators who want a GitHub Pages site with distinct visual personality and warmth, as an alternative to the more minimal official themes.\n","url":"/themes/tactile/","draft":false,"categories":["Personal"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Tactile Jekyll Theme","description":"A textured, warm GitHub Pages Jekyll theme with a hand-crafted sidebar style. Official GitHub Pages theme with classic personality and charm.","key_features":["GitHub Pages","Hand-Crafted Style","Warm Palette","Official GH Theme"],"card_description":"Textured, warm GitHub Pages theme with hand-crafted sidebar style.","category":"Personal","card_image":"/assets/images/themes/tactile-card.webp","theme_screenshots":["/assets/images/themes/tactile-screenshot.webp","/assets/images/themes/tactile-screenshot-2.webp","/assets/images/themes/tactile-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/tactile/","github_url":"https://github.com/pages-themes/tactile","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":500,"forks":450,"features":["Official GitHub Pages supported theme","Textured sidebar with handcrafted aesthetic","Green accent colour scheme","Responsive sidebar layout","Single-line enable via _config.yml","No local setup required","Distinctive, warm personality"],"slug":"tactile","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/tale.md","relative_path":"_themes/tale.md","excerpt":"<p>Tale is a minimal Jekyll theme built around the idea that nothing should compete with your writing. Its single-column layout, careful typographic choices, and complete absence of visual clutter create a reading experience that feels calm and focused.</p>\n\n","previous":{"path":"_themes/tactile.md","relative_path":"_themes/tactile.md","excerpt":"<p>Tactile is the most characterful of GitHub’s official themes. Its wood-grain-textured sidebar and green accent colour palette give it a warm, handcrafted feel that’s quite unlike the clean minimalism of the other official themes. The result is a site that feels personal and approachable — like something built with care.</p>\n\n","previous":{"path":"_themes/swiss.md","relative_path":"_themes/swiss.md","id":"/themes/swiss","collection":"themes","url":"/themes/swiss/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Swiss Jekyll Theme","description":"A bold, typographic Jekyll theme inspired by International Swiss Style design. Strong grid, oversized headings, and a clean black-and-white palette that puts typography first.","key_features":["Swiss Design","Bold Typography","Grid Layout","GitHub Pages"],"card_description":"Bold, typographic theme inspired by Swiss International Style design.","category":"Blog","card_image":"/assets/images/themes/swiss-card.webp","theme_screenshots":["/assets/images/themes/swiss-screenshot.webp","/assets/images/themes/swiss-screenshot-2.webp","/assets/images/themes/swiss-screenshot-3.webp"],"demo_url":"https://broccolini.net/swiss/","github_url":"https://github.com/broccolini/swiss","author":"GitHub Community","github_author_name":"broccolini","github_author_url":"https://github.com/broccolini","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag","jekyll-feed"],"updated_at":"2022-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":400,"forks":200,"features":["Swiss International Style design aesthetic","Bold typographic headings","Clean grid layout","Black and white colour palette","Responsive design","GitHub Pages compatible","Fast and lightweight","Focus on editorial typography"],"slug":"swiss","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/tactile","collection":"themes","next":{"path":"_themes/tale.md","relative_path":"_themes/tale.md","id":"/themes/tale","collection":"themes","url":"/themes/tale/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Tale Jekyll Theme","description":"An minimal Jekyll theme focused on content. Elegant single-column layout with beautiful typography, clean post listings, and zero visual noise — perfect for long-form writing.","key_features":["Single Column","Clean Typography","Minimal Design","GitHub Pages"],"card_description":"Minimal, elegant single-column blog for long-form writing.","category":"Blog","card_image":"/assets/images/themes/tale-card.webp","theme_screenshots":["/assets/images/themes/tale-screenshot.webp","/assets/images/themes/tale-screenshot-2.webp","/assets/images/themes/tale-screenshot-3.webp"],"demo_url":"https://chesterhow.github.io/tale/","github_url":"https://github.com/chesterhow/tale","author":"GitHub Community","github_author_name":"chesterhow","github_author_url":"https://github.com/chesterhow","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.1","plugins":["jekyll-feed","jekyll-paginate","jekyll-sitemap","jekyll-seo-tag"],"updated_at":"2022-06-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":1400,"forks":500,"features":["Minimal single-column layout","Paginated post listing","Tag-based post organisation","Post estimated reading time","Syntax highlighting","Disqus comments support","Google Analytics","RSS feed","Responsive design","GitHub Pages compatible"],"slug":"tale","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Tactile is the most characterful of GitHub's official themes. Its wood-grain-textured sidebar and green accent colour palette give it a warm, handcrafted feel that's quite unlike the clean minimalism of the other official themes. The result is a site that feels personal and approachable — like something built with care.\n\nIt's particularly effective for open-source projects that want to stand out, personal portfolios with a creative bent, or any project that wants its page to have a real identity.\n\n**Who is it for?** Developers and creators who want a GitHub Pages site with distinct visual personality and warmth, as an alternative to the more minimal official themes.\n","url":"/themes/tactile/","draft":false,"categories":["Personal"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Tactile Jekyll Theme","description":"A textured, warm GitHub Pages Jekyll theme with a hand-crafted sidebar style. Official GitHub Pages theme with classic personality and charm.","key_features":["GitHub Pages","Hand-Crafted Style","Warm Palette","Official GH Theme"],"card_description":"Textured, warm GitHub Pages theme with hand-crafted sidebar style.","category":"Personal","card_image":"/assets/images/themes/tactile-card.webp","theme_screenshots":["/assets/images/themes/tactile-screenshot.webp","/assets/images/themes/tactile-screenshot-2.webp","/assets/images/themes/tactile-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/tactile/","github_url":"https://github.com/pages-themes/tactile","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":500,"forks":450,"features":["Official GitHub Pages supported theme","Textured sidebar with handcrafted aesthetic","Green accent colour scheme","Responsive sidebar layout","Single-line enable via _config.yml","No local setup required","Distinctive, warm personality"],"slug":"tactile","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/tale","collection":"themes","next":{"path":"_themes/type-theme.md","relative_path":"_themes/type-theme.md","excerpt":"<p>Type Theme is built on a single conviction: typography is everything. Rohan Chandra stripped away everything that wasn’t essential to reading and writing, leaving a theme that loads fast, renders beautifully, and gets out of the author’s way.</p>\n\n","previous":{"path":"_themes/tale.md","relative_path":"_themes/tale.md","id":"/themes/tale","collection":"themes","url":"/themes/tale/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Tale Jekyll Theme","description":"An minimal Jekyll theme focused on content. Elegant single-column layout with beautiful typography, clean post listings, and zero visual noise — perfect for long-form writing.","key_features":["Single Column","Clean Typography","Minimal Design","GitHub Pages"],"card_description":"Minimal, elegant single-column blog for long-form writing.","category":"Blog","card_image":"/assets/images/themes/tale-card.webp","theme_screenshots":["/assets/images/themes/tale-screenshot.webp","/assets/images/themes/tale-screenshot-2.webp","/assets/images/themes/tale-screenshot-3.webp"],"demo_url":"https://chesterhow.github.io/tale/","github_url":"https://github.com/chesterhow/tale","author":"GitHub Community","github_author_name":"chesterhow","github_author_url":"https://github.com/chesterhow","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.1","plugins":["jekyll-feed","jekyll-paginate","jekyll-sitemap","jekyll-seo-tag"],"updated_at":"2022-06-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":1400,"forks":500,"features":["Minimal single-column layout","Paginated post listing","Tag-based post organisation","Post estimated reading time","Syntax highlighting","Disqus comments support","Google Analytics","RSS feed","Responsive design","GitHub Pages compatible"],"slug":"tale","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/type-theme","collection":"themes","next":{"path":"_themes/yat.md","relative_path":"_themes/yat.md","id":"/themes/yat","collection":"themes","url":"/themes/yat/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"YAT Jekyll Theme","description":"Yet Another Theme — a modern, flat-design Jekyll blog theme with night mode, multi-language support, and beautiful typography. Clean, fast, and elegant for writers and developers alike.","key_features":["Night Mode","Multi-Language","Flat Design","GitHub Pages"],"card_description":"Modern flat-design blog with night mode and multi-language support.","category":"Blog","card_image":"/assets/images/themes/yat-card.webp","theme_screenshots":["/assets/images/themes/yat-screenshot.webp","/assets/images/themes/yat-screenshot-2.webp","/assets/images/themes/yat-screenshot-3.webp"],"demo_url":"https://jeffreytse.github.io/jekyll-theme-yat/","github_url":"https://github.com/jeffreytse/jekyll-theme-yat","author":"GitHub Community","github_author_name":"jeffreytse","github_author_url":"https://github.com/jeffreytse","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.9","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2024-03-01","added_at":"2026-06-07","popular":false,"trending":true,"bestseller":false,"version":"1.9.0","license":"MIT","stars":1200,"forks":300,"features":["Night mode with smooth toggle","Multi-language (i18n) support","Post categories and tags","Full-width banner images per post","Disqus and Utterances comments","Google Analytics integration","Beautiful code syntax highlighting","Responsive image support","Reading time estimate","GitHub Pages compatible"],"slug":"yat","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Type Theme is built on a single conviction: typography is everything. Rohan Chandra stripped away everything that wasn't essential to reading and writing, leaving a theme that loads fast, renders beautifully, and gets out of the author's way.\n\nThe Google Fonts integration gives it more typographic flexibility than most minimal themes, and the clean header with social links strikes a good balance between personality and restraint. It's also the base for the popular Type on Strap fork, which extends it with additional features.\n\n**Who is it for?** Writers and bloggers who want a typography-focused, distraction-free reading experience and a theme that's fast, simple, and easy to customise.\n","url":"/themes/type-theme/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Type Theme Jekyll Theme","description":"A free, open-source theme for Jekyll focused purely on typography and reading. Minimal design, fast load times, and a beautifully simple blog layout for writers who mean business.","key_features":["Typography Focus","Minimal Design","GitHub Pages","Fast Loading"],"card_description":"Typography-focused minimal theme for writers who value clean reading.","category":"Blog","card_image":"/assets/images/themes/type-theme-card.webp","theme_screenshots":["/assets/images/themes/type-theme-screenshot.webp","/assets/images/themes/type-theme-screenshot-2.webp","/assets/images/themes/type-theme-screenshot-3.webp"],"demo_url":"https://rohanchandra.github.io/type-theme/","github_url":"https://github.com/rohanchandra/type-theme","author":"GitHub Community","github_author_name":"rohanchandra","github_author_url":"https://github.com/rohanchandra","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate","jekyll-sitemap","jekyll-seo-tag"],"updated_at":"2021-06-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":1000,"forks":600,"features":["Typography-first design","Google Fonts integration","Paginated post listing","Category and tag pages","Syntax highlighting","Disqus comments","Google Analytics","RSS feed","Social links in header","GitHub Pages compatible"],"slug":"type-theme","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Tale is a minimal Jekyll theme built around the idea that nothing should compete with your writing. Its single-column layout, careful typographic choices, and complete absence of visual clutter create a reading experience that feels calm and focused.\n\nThe theme handles the basics well — pagination, tags, syntax highlighting, comments — without adding anything unnecessary. If you've ever felt that most blog themes have too much going on, Tale is the answer.\n\n**Who is it for?** Writers, journalists, and developers who want their words to be the centrepiece of every page with no distracting chrome around them.\n","url":"/themes/tale/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Tale Jekyll Theme","description":"An minimal Jekyll theme focused on content. Elegant single-column layout with beautiful typography, clean post listings, and zero visual noise — perfect for long-form writing.","key_features":["Single Column","Clean Typography","Minimal Design","GitHub Pages"],"card_description":"Minimal, elegant single-column blog for long-form writing.","category":"Blog","card_image":"/assets/images/themes/tale-card.webp","theme_screenshots":["/assets/images/themes/tale-screenshot.webp","/assets/images/themes/tale-screenshot-2.webp","/assets/images/themes/tale-screenshot-3.webp"],"demo_url":"https://chesterhow.github.io/tale/","github_url":"https://github.com/chesterhow/tale","author":"GitHub Community","github_author_name":"chesterhow","github_author_url":"https://github.com/chesterhow","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.1","plugins":["jekyll-feed","jekyll-paginate","jekyll-sitemap","jekyll-seo-tag"],"updated_at":"2022-06-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":1400,"forks":500,"features":["Minimal single-column layout","Paginated post listing","Tag-based post organisation","Post estimated reading time","Syntax highlighting","Disqus comments support","Google Analytics","RSS feed","Responsive design","GitHub Pages compatible"],"slug":"tale","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/type-theme.md","relative_path":"_themes/type-theme.md","excerpt":"<p>Type Theme is built on a single conviction: typography is everything. Rohan Chandra stripped away everything that wasn’t essential to reading and writing, leaving a theme that loads fast, renders beautifully, and gets out of the author’s way.</p>\n\n","previous":{"path":"_themes/tale.md","relative_path":"_themes/tale.md","excerpt":"<p>Tale is a minimal Jekyll theme built around the idea that nothing should compete with your writing. Its single-column layout, careful typographic choices, and complete absence of visual clutter create a reading experience that feels calm and focused.</p>\n\n","previous":{"path":"_themes/tactile.md","relative_path":"_themes/tactile.md","id":"/themes/tactile","collection":"themes","url":"/themes/tactile/","draft":false,"categories":["Personal"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Tactile Jekyll Theme","description":"A textured, warm GitHub Pages Jekyll theme with a hand-crafted sidebar style. Official GitHub Pages theme with classic personality and charm.","key_features":["GitHub Pages","Hand-Crafted Style","Warm Palette","Official GH Theme"],"card_description":"Textured, warm GitHub Pages theme with hand-crafted sidebar style.","category":"Personal","card_image":"/assets/images/themes/tactile-card.webp","theme_screenshots":["/assets/images/themes/tactile-screenshot.webp","/assets/images/themes/tactile-screenshot-2.webp","/assets/images/themes/tactile-screenshot-3.webp"],"demo_url":"https://pages-themes.github.io/tactile/","github_url":"https://github.com/pages-themes/tactile","author":"GitHub Community","github_author_name":"GitHub","github_author_url":"https://github.com/pages-themes","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-seo-tag"],"updated_at":"2023-01-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"0.2.0","license":"CC0-1.0","stars":500,"forks":450,"features":["Official GitHub Pages supported theme","Textured sidebar with handcrafted aesthetic","Green accent colour scheme","Responsive sidebar layout","Single-line enable via _config.yml","No local setup required","Distinctive, warm personality"],"slug":"tactile","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/tale","collection":"themes","next":{"path":"_themes/type-theme.md","relative_path":"_themes/type-theme.md","id":"/themes/type-theme","collection":"themes","url":"/themes/type-theme/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Type Theme Jekyll Theme","description":"A free, open-source theme for Jekyll focused purely on typography and reading. Minimal design, fast load times, and a beautifully simple blog layout for writers who mean business.","key_features":["Typography Focus","Minimal Design","GitHub Pages","Fast Loading"],"card_description":"Typography-focused minimal theme for writers who value clean reading.","category":"Blog","card_image":"/assets/images/themes/type-theme-card.webp","theme_screenshots":["/assets/images/themes/type-theme-screenshot.webp","/assets/images/themes/type-theme-screenshot-2.webp","/assets/images/themes/type-theme-screenshot-3.webp"],"demo_url":"https://rohanchandra.github.io/type-theme/","github_url":"https://github.com/rohanchandra/type-theme","author":"GitHub Community","github_author_name":"rohanchandra","github_author_url":"https://github.com/rohanchandra","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate","jekyll-sitemap","jekyll-seo-tag"],"updated_at":"2021-06-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":1000,"forks":600,"features":["Typography-first design","Google Fonts integration","Paginated post listing","Category and tag pages","Syntax highlighting","Disqus comments","Google Analytics","RSS feed","Social links in header","GitHub Pages compatible"],"slug":"type-theme","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Tale is a minimal Jekyll theme built around the idea that nothing should compete with your writing. Its single-column layout, careful typographic choices, and complete absence of visual clutter create a reading experience that feels calm and focused.\n\nThe theme handles the basics well — pagination, tags, syntax highlighting, comments — without adding anything unnecessary. If you've ever felt that most blog themes have too much going on, Tale is the answer.\n\n**Who is it for?** Writers, journalists, and developers who want their words to be the centrepiece of every page with no distracting chrome around them.\n","url":"/themes/tale/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Tale Jekyll Theme","description":"An minimal Jekyll theme focused on content. Elegant single-column layout with beautiful typography, clean post listings, and zero visual noise — perfect for long-form writing.","key_features":["Single Column","Clean Typography","Minimal Design","GitHub Pages"],"card_description":"Minimal, elegant single-column blog for long-form writing.","category":"Blog","card_image":"/assets/images/themes/tale-card.webp","theme_screenshots":["/assets/images/themes/tale-screenshot.webp","/assets/images/themes/tale-screenshot-2.webp","/assets/images/themes/tale-screenshot-3.webp"],"demo_url":"https://chesterhow.github.io/tale/","github_url":"https://github.com/chesterhow/tale","author":"GitHub Community","github_author_name":"chesterhow","github_author_url":"https://github.com/chesterhow","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.1","plugins":["jekyll-feed","jekyll-paginate","jekyll-sitemap","jekyll-seo-tag"],"updated_at":"2022-06-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":1400,"forks":500,"features":["Minimal single-column layout","Paginated post listing","Tag-based post organisation","Post estimated reading time","Syntax highlighting","Disqus comments support","Google Analytics","RSS feed","Responsive design","GitHub Pages compatible"],"slug":"tale","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/type-theme","collection":"themes","next":{"path":"_themes/yat.md","relative_path":"_themes/yat.md","excerpt":"<p>YAT (Yet Another Theme) lives up to its understated name by quietly being one of the best-looking modern Jekyll blog themes available. Its flat design aesthetic feels fresh without being trendy, and the night mode implementation — with a smooth toggle that remembers your preference — is genuinely pleasant to use.</p>\n\n","previous":{"path":"_themes/type-theme.md","relative_path":"_themes/type-theme.md","id":"/themes/type-theme","collection":"themes","url":"/themes/type-theme/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Type Theme Jekyll Theme","description":"A free, open-source theme for Jekyll focused purely on typography and reading. Minimal design, fast load times, and a beautifully simple blog layout for writers who mean business.","key_features":["Typography Focus","Minimal Design","GitHub Pages","Fast Loading"],"card_description":"Typography-focused minimal theme for writers who value clean reading.","category":"Blog","card_image":"/assets/images/themes/type-theme-card.webp","theme_screenshots":["/assets/images/themes/type-theme-screenshot.webp","/assets/images/themes/type-theme-screenshot-2.webp","/assets/images/themes/type-theme-screenshot-3.webp"],"demo_url":"https://rohanchandra.github.io/type-theme/","github_url":"https://github.com/rohanchandra/type-theme","author":"GitHub Community","github_author_name":"rohanchandra","github_author_url":"https://github.com/rohanchandra","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate","jekyll-sitemap","jekyll-seo-tag"],"updated_at":"2021-06-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":1000,"forks":600,"features":["Typography-first design","Google Fonts integration","Paginated post listing","Category and tag pages","Syntax highlighting","Disqus comments","Google Analytics","RSS feed","Social links in header","GitHub Pages compatible"],"slug":"type-theme","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/yat","collection":"themes","next":null,"output":null,"content":"YAT (Yet Another Theme) lives up to its understated name by quietly being one of the best-looking modern Jekyll blog themes available. Its flat design aesthetic feels fresh without being trendy, and the night mode implementation — with a smooth toggle that remembers your preference — is genuinely pleasant to use.\n\nWhat sets YAT apart is the attention to detail: per-post full-width banner images, careful typographic spacing, and a colour palette that works equally well in light and dark modes. The multi-language support makes it a strong choice for bloggers writing in more than one language.\n\n**Who is it for?** Writers and developers who want a modern-feeling blog with dark mode and polished visual design, without the complexity of heavier themes.\n","url":"/themes/yat/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"YAT Jekyll Theme","description":"Yet Another Theme — a modern, flat-design Jekyll blog theme with night mode, multi-language support, and beautiful typography. Clean, fast, and elegant for writers and developers alike.","key_features":["Night Mode","Multi-Language","Flat Design","GitHub Pages"],"card_description":"Modern flat-design blog with night mode and multi-language support.","category":"Blog","card_image":"/assets/images/themes/yat-card.webp","theme_screenshots":["/assets/images/themes/yat-screenshot.webp","/assets/images/themes/yat-screenshot-2.webp","/assets/images/themes/yat-screenshot-3.webp"],"demo_url":"https://jeffreytse.github.io/jekyll-theme-yat/","github_url":"https://github.com/jeffreytse/jekyll-theme-yat","author":"GitHub Community","github_author_name":"jeffreytse","github_author_url":"https://github.com/jeffreytse","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.9","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2024-03-01","added_at":"2026-06-07","popular":false,"trending":true,"bestseller":false,"version":"1.9.0","license":"MIT","stars":1200,"forks":300,"features":["Night mode with smooth toggle","Multi-language (i18n) support","Post categories and tags","Full-width banner images per post","Disqus and Utterances comments","Google Analytics integration","Beautiful code syntax highlighting","Responsive image support","Reading time estimate","GitHub Pages compatible"],"slug":"yat","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Type Theme is built on a single conviction: typography is everything. Rohan Chandra stripped away everything that wasn't essential to reading and writing, leaving a theme that loads fast, renders beautifully, and gets out of the author's way.\n\nThe Google Fonts integration gives it more typographic flexibility than most minimal themes, and the clean header with social links strikes a good balance between personality and restraint. It's also the base for the popular Type on Strap fork, which extends it with additional features.\n\n**Who is it for?** Writers and bloggers who want a typography-focused, distraction-free reading experience and a theme that's fast, simple, and easy to customise.\n","url":"/themes/type-theme/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Type Theme Jekyll Theme","description":"A free, open-source theme for Jekyll focused purely on typography and reading. Minimal design, fast load times, and a beautifully simple blog layout for writers who mean business.","key_features":["Typography Focus","Minimal Design","GitHub Pages","Fast Loading"],"card_description":"Typography-focused minimal theme for writers who value clean reading.","category":"Blog","card_image":"/assets/images/themes/type-theme-card.webp","theme_screenshots":["/assets/images/themes/type-theme-screenshot.webp","/assets/images/themes/type-theme-screenshot-2.webp","/assets/images/themes/type-theme-screenshot-3.webp"],"demo_url":"https://rohanchandra.github.io/type-theme/","github_url":"https://github.com/rohanchandra/type-theme","author":"GitHub Community","github_author_name":"rohanchandra","github_author_url":"https://github.com/rohanchandra","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate","jekyll-sitemap","jekyll-seo-tag"],"updated_at":"2021-06-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":1000,"forks":600,"features":["Typography-first design","Google Fonts integration","Paginated post listing","Category and tag pages","Syntax highlighting","Disqus comments","Google Analytics","RSS feed","Social links in header","GitHub Pages compatible"],"slug":"type-theme","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},{"path":"_themes/yat.md","relative_path":"_themes/yat.md","excerpt":"<p>YAT (Yet Another Theme) lives up to its understated name by quietly being one of the best-looking modern Jekyll blog themes available. Its flat design aesthetic feels fresh without being trendy, and the night mode implementation — with a smooth toggle that remembers your preference — is genuinely pleasant to use.</p>\n\n","previous":{"path":"_themes/type-theme.md","relative_path":"_themes/type-theme.md","excerpt":"<p>Type Theme is built on a single conviction: typography is everything. Rohan Chandra stripped away everything that wasn’t essential to reading and writing, leaving a theme that loads fast, renders beautifully, and gets out of the author’s way.</p>\n\n","previous":{"path":"_themes/tale.md","relative_path":"_themes/tale.md","id":"/themes/tale","collection":"themes","url":"/themes/tale/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Tale Jekyll Theme","description":"An minimal Jekyll theme focused on content. Elegant single-column layout with beautiful typography, clean post listings, and zero visual noise — perfect for long-form writing.","key_features":["Single Column","Clean Typography","Minimal Design","GitHub Pages"],"card_description":"Minimal, elegant single-column blog for long-form writing.","category":"Blog","card_image":"/assets/images/themes/tale-card.webp","theme_screenshots":["/assets/images/themes/tale-screenshot.webp","/assets/images/themes/tale-screenshot-2.webp","/assets/images/themes/tale-screenshot-3.webp"],"demo_url":"https://chesterhow.github.io/tale/","github_url":"https://github.com/chesterhow/tale","author":"GitHub Community","github_author_name":"chesterhow","github_author_url":"https://github.com/chesterhow","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.1","plugins":["jekyll-feed","jekyll-paginate","jekyll-sitemap","jekyll-seo-tag"],"updated_at":"2022-06-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":1400,"forks":500,"features":["Minimal single-column layout","Paginated post listing","Tag-based post organisation","Post estimated reading time","Syntax highlighting","Disqus comments support","Google Analytics","RSS feed","Responsive design","GitHub Pages compatible"],"slug":"tale","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/type-theme","collection":"themes","next":{"path":"_themes/yat.md","relative_path":"_themes/yat.md","id":"/themes/yat","collection":"themes","url":"/themes/yat/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"YAT Jekyll Theme","description":"Yet Another Theme — a modern, flat-design Jekyll blog theme with night mode, multi-language support, and beautiful typography. Clean, fast, and elegant for writers and developers alike.","key_features":["Night Mode","Multi-Language","Flat Design","GitHub Pages"],"card_description":"Modern flat-design blog with night mode and multi-language support.","category":"Blog","card_image":"/assets/images/themes/yat-card.webp","theme_screenshots":["/assets/images/themes/yat-screenshot.webp","/assets/images/themes/yat-screenshot-2.webp","/assets/images/themes/yat-screenshot-3.webp"],"demo_url":"https://jeffreytse.github.io/jekyll-theme-yat/","github_url":"https://github.com/jeffreytse/jekyll-theme-yat","author":"GitHub Community","github_author_name":"jeffreytse","github_author_url":"https://github.com/jeffreytse","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.9","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2024-03-01","added_at":"2026-06-07","popular":false,"trending":true,"bestseller":false,"version":"1.9.0","license":"MIT","stars":1200,"forks":300,"features":["Night mode with smooth toggle","Multi-language (i18n) support","Post categories and tags","Full-width banner images per post","Disqus and Utterances comments","Google Analytics integration","Beautiful code syntax highlighting","Responsive image support","Reading time estimate","GitHub Pages compatible"],"slug":"yat","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"output":null,"content":"Type Theme is built on a single conviction: typography is everything. Rohan Chandra stripped away everything that wasn't essential to reading and writing, leaving a theme that loads fast, renders beautifully, and gets out of the author's way.\n\nThe Google Fonts integration gives it more typographic flexibility than most minimal themes, and the clean header with social links strikes a good balance between personality and restraint. It's also the base for the popular Type on Strap fork, which extends it with additional features.\n\n**Who is it for?** Writers and bloggers who want a typography-focused, distraction-free reading experience and a theme that's fast, simple, and easy to customise.\n","url":"/themes/type-theme/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":false,"responsive":true,"title":"Type Theme Jekyll Theme","description":"A free, open-source theme for Jekyll focused purely on typography and reading. Minimal design, fast load times, and a beautifully simple blog layout for writers who mean business.","key_features":["Typography Focus","Minimal Design","GitHub Pages","Fast Loading"],"card_description":"Typography-focused minimal theme for writers who value clean reading.","category":"Blog","card_image":"/assets/images/themes/type-theme-card.webp","theme_screenshots":["/assets/images/themes/type-theme-screenshot.webp","/assets/images/themes/type-theme-screenshot-2.webp","/assets/images/themes/type-theme-screenshot-3.webp"],"demo_url":"https://rohanchandra.github.io/type-theme/","github_url":"https://github.com/rohanchandra/type-theme","author":"GitHub Community","github_author_name":"rohanchandra","github_author_url":"https://github.com/rohanchandra","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.0","plugins":["jekyll-feed","jekyll-paginate","jekyll-sitemap","jekyll-seo-tag"],"updated_at":"2021-06-01","added_at":"2026-06-07","popular":false,"trending":false,"bestseller":false,"version":"1.0.0","license":"MIT","stars":1000,"forks":600,"features":["Typography-first design","Google Fonts integration","Paginated post listing","Category and tag pages","Syntax highlighting","Disqus comments","Google Analytics","RSS feed","Social links in header","GitHub Pages compatible"],"slug":"type-theme","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"},"id":"/themes/yat","collection":"themes","next":null,"output":null,"content":"YAT (Yet Another Theme) lives up to its understated name by quietly being one of the best-looking modern Jekyll blog themes available. Its flat design aesthetic feels fresh without being trendy, and the night mode implementation — with a smooth toggle that remembers your preference — is genuinely pleasant to use.\n\nWhat sets YAT apart is the attention to detail: per-post full-width banner images, careful typographic spacing, and a colour palette that works equally well in light and dark modes. The multi-language support makes it a strong choice for bloggers writing in more than one language.\n\n**Who is it for?** Writers and developers who want a modern-feeling blog with dark mode and polished visual design, without the complexity of heavier themes.\n","url":"/themes/yat/","draft":false,"categories":["Blog"],"layout":"theme","price_type":"free","featured":false,"dark_mode":true,"responsive":true,"title":"YAT Jekyll Theme","description":"Yet Another Theme — a modern, flat-design Jekyll blog theme with night mode, multi-language support, and beautiful typography. Clean, fast, and elegant for writers and developers alike.","key_features":["Night Mode","Multi-Language","Flat Design","GitHub Pages"],"card_description":"Modern flat-design blog with night mode and multi-language support.","category":"Blog","card_image":"/assets/images/themes/yat-card.webp","theme_screenshots":["/assets/images/themes/yat-screenshot.webp","/assets/images/themes/yat-screenshot-2.webp","/assets/images/themes/yat-screenshot-3.webp"],"demo_url":"https://jeffreytse.github.io/jekyll-theme-yat/","github_url":"https://github.com/jeffreytse/jekyll-theme-yat","author":"GitHub Community","github_author_name":"jeffreytse","github_author_url":"https://github.com/jeffreytse","author_url":"https://jekyllhub.com/authors/github-community/","github_pages_compatible":true,"min_jekyll_version":"3.9","plugins":["jekyll-feed","jekyll-sitemap","jekyll-seo-tag","jekyll-paginate"],"updated_at":"2024-03-01","added_at":"2026-06-07","popular":false,"trending":true,"bestseller":false,"version":"1.9.0","license":"MIT","stars":1200,"forks":300,"features":["Night mode with smooth toggle","Multi-language (i18n) support","Post categories and tags","Full-width banner images per post","Disqus and Utterances comments","Google Analytics integration","Beautiful code syntax highlighting","Responsive image support","Reading time estimate","GitHub Pages compatible"],"slug":"yat","ext":".md","tags":[],"date":"2026-07-04 00:10:24 +0000"}];
</script>
Number filters
plus, minus, times, divided_by, modulo
15 <!-- 15 -->
7 <!-- 7 -->
12 <!-- 12 -->
3 <!-- 3 (integer division) -->
1 <!-- 1 -->
ceil, floor, round, abs
5 <!-- 5 -->
4 <!-- 4 -->
4.57 <!-- 4.57 -->
5 <!-- 5 -->
Array filters
size
Works on strings and arrays.
74
6 <!-- 6 -->
first and last
Academic Pages is the most widely used academic personal website template on GitHub, with over 12,000 stars and hundreds of thousands of researchers using it worldwide. It's a fork of Minimal Mistakes, extended specifically for academic use cases: publications with BibTeX citations, conference talks with slides and video links, course teaching pages, a project portfolio, and a CV that generates itself from structured YAML files.
The fork-to-publish model is particularly popular in academia — researchers can have a live personal website on GitHub Pages within minutes, with no server, no CMS, and no ongoing cost.
**Who is it for?** Researchers, academics, PhD students, and scientists who want a professional web presence that highlights publications, talks, and research without complex web development.
YAT (Yet Another Theme) lives up to its understated name by quietly being one of the best-looking modern Jekyll blog themes available. Its flat design aesthetic feels fresh without being trendy, and the night mode implementation — with a smooth toggle that remembers your preference — is genuinely pleasant to use.
What sets YAT apart is the attention to detail: per-post full-width banner images, careful typographic spacing, and a colour palette that works equally well in light and dark modes. The multi-language support makes it a strong choice for bloggers writing in more than one language.
**Who is it for?** Writers and developers who want a modern-feeling blog with dark mode and polished visual design, without the complexity of heavier themes.
push and pop, shift and unshift
Add or remove items from an array.
{% assign updated = site.themes | push: new_theme %}
concat
Merges two arrays.
{% assign all_posts = site.posts | concat: site.pages %}
map
Extracts a single property from an array of objects.
{% assign titles = site.themes | map: "title" %}
{{ titles | join: ", " }}
where and where_exp
Filter an array by a property value.
{% assign premium = site.themes | where: "price_type", "premium" %}
{% assign recent = site.posts | where_exp: "post", "post.date > '2026-01-01'" %}
sort and sort_natural
{% assign sorted = site.themes | sort: "title" %}
{% assign sorted = site.themes | sort_natural: "title" %}
reverse
{% assign reversed = site.posts | reverse %}
uniq
Removes duplicate values from an array.
{% assign unique_cats = site.themes | map: "category" | uniq %}
group_by and group_by_exp
Groups an array of objects by a property.
{% assign by_category = site.themes | group_by: "category" %}
{% for group in by_category %}
<h2>{{ group.name }}</h2>
{% for theme in group.items %}
<p>{{ theme.title }}</p>
{% endfor %}
{% endfor %}
find and find_exp
Returns the first item matching a condition (Jekyll 4+).
{% assign featured = site.themes | find: "featured", true %}
sum
Adds up a numeric property across an array.
120008201120026003375000800620040721004441300980028004465454504001194945782110014881200700381110054009700900045058784003300780030057001400697300810190040060047431001330060044001500784220035320006005008421835207002109400500140010001200
compact
Removes nil values from an array.
{% assign clean = array | compact %}
flatten
Flattens a nested array.
{% assign flat = nested_array | flatten %}
Date filters
date
Formats a date using strftime syntax.
May 21, 2026
<!-- output: July 3, 2026 -->
2026-05-21
<!-- output: 2026-07-03 -->
21 May 2026
<!-- output: 03 Jul 2026 -->
Common format codes:
%Y— four-digit year%m— zero-padded month (01–12)%-m— month without padding (1–12)%B— full month name%b— abbreviated month name%d— zero-padded day%-d— day without padding%A— full weekday name%H:%M— 24-hour time
date_to_long_string and date_to_string
Jekyll shortcuts for common date formats.
21 May 2026
<!-- output: 03 July 2026 -->
21 May 2026
<!-- output: 03 Jul 2026 -->
date_to_xmlschema and date_to_rfc822
Used in feeds and structured data.
2026-05-21T00:00:00+00:00
<!-- output: 2026-07-03T00:00:00+00:00 -->
URL and path filters
relative_url and absolute_url
Essential — always use these instead of hardcoded paths.
<a href="/themes/">Browse themes</a>
<meta property="og:url" content="https://jekyllhub.com/tutorial/2026/05/21/jekyll-liquid-filters-cheatsheet/">
slugify
Converts a string to a URL-safe slug.
hello-world-how-are-you
<!-- output: hello-world-how-are-you -->
uri_escape
Percent-encodes a URI.
search%20query
<!-- output: search%20query -->
cgi_escape
CGI-escapes a string (spaces become +).
hello+world
<!-- output: hello+world -->
Miscellaneous
default
Returns a default value when the variable is nil, false, or empty.
Marcus Webb
/assets/images/blog/jekyll-liquid-filters-cheatsheet.webp
inspect
Outputs a Ruby representation of the object — invaluable for debugging.
{
"path": "_posts/2026-05-21-jekyll-liquid-filters-cheatsheet.md",
"relative_path": "_posts/2026-05-21-jekyll-liquid-filters-cheatsheet.md",
"excerpt": "<p>Liquid filters transform output in Jekyll templates. They are chained with the pipe character <code class=\"language-plaintext highlighter-rouge\">|</code> and applied to variables, strings, numbers, arrays, and dates. This cheatsheet covers every filter you will actually use, with real examples.</p>\n\n",
"previous": {
"path": "_posts/2026-05-20-jekyll-minimal-themes.md",
"relative_path": "_posts/2026-05-20-jekyll-minimal-themes.md",
"excerpt": "<p>Minimal themes are the most popular category in the Jekyll ecosystem — and for good reason. A minimal design puts the focus on your content, loads in milliseconds, and never goes out of style. Here are the best minimal Jekyll themes in 2026.</p>\n\n",
"previous": {
"path": "_posts/2026-05-19-jekyll-vs-nextjs.md",
"relative_path": "_posts/2026-05-19-jekyll-vs-nextjs.md",
"excerpt": "<p>Jekyll and Next.js are both capable of producing fast, statically-generated websites. But comparing them is a bit like comparing a bicycle to a car — they are built for different journeys. This guide cuts through the noise and tells you which one fits your project.</p>\n\n",
"previous": {
"path": "_posts/2026-05-18-jekyll-custom-domain.md",
"relative_path": "_posts/2026-05-18-jekyll-custom-domain.md",
"id": "/tutorial/2026/05/18/jekyll-custom-domain",
"collection": "posts",
"url": "/tutorial/2026/05/18/jekyll-custom-domain/",
"draft": false,
"categories": [
"Tutorial"
],
"layout": "post",
"title": "How to Set Up a Custom Domain for Your Jekyll Site",
"description": "Connect a custom domain to your Jekyll site on GitHub Pages, Netlify, or Cloudflare Pages — with DNS setup, HTTPS configuration, and www vs apex domain guidance.",
"date": "2026-05-18 00:00:00 +0000",
"last_modified_at": "2026-05-18",
"image": "/assets/images/blog/jekyll-custom-domain.webp",
"author": "Marcus Webb",
"category": "Tutorial",
"featured": false,
"related_category": "Documentation",
"toc": true,
"tags": [
"jekyll custom domain",
"github pages custom domain",
"netlify custom domain",
"jekyll domain setup"
],
"slug": "jekyll-custom-domain",
"ext": ".md"
},
"id": "/comparison/2026/05/19/jekyll-vs-nextjs",
"collection": "posts",
"next": {
"path": "_posts/2026-05-20-jekyll-minimal-themes.md",
"relative_path": "_posts/2026-05-20-jekyll-minimal-themes.md",
"id": "/themes/2026/05/20/jekyll-minimal-themes",
"collection": "posts",
"url": "/themes/2026/05/20/jekyll-minimal-themes/",
"draft": false,
"categories": [
"Themes"
],
"layout": "post",
"title": "Best Minimal Jekyll Themes in 2026 (Clean, Fast, Distraction-Free)",
"description": "The best minimal Jekyll themes for blogs, portfolios, and personal sites — clean typography, fast load times, and zero visual clutter.",
"date": "2026-05-20 00:00:00 +0000",
"last_modified_at": "2026-07-05",
"image": "/assets/images/blog/jekyll-minimal-themes.webp",
"author": "Marcus Webb",
"category": "Themes",
"featured": false,
"related_category": "Blog",
"toc": true,
"slug": "jekyll-minimal-themes",
"ext": ".md",
"tags": [
]
},
"output": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\n <!-- Begin Jekyll SEO tag v2.8.0 -->\n<title>Jekyll vs Next.js: A Practical Comparison for 2026 | JekyllHub</title>\n<meta name=\"generator\" content=\"Jekyll v3.10.0\" />\n<meta property=\"og:title\" content=\"Jekyll vs Next.js: A Practical Comparison for 2026\" />\n<meta name=\"author\" content=\"Marcus Webb\" />\n<meta property=\"og:locale\" content=\"en_US\" />\n<meta name=\"description\" content=\"Jekyll and Next.js both produce fast websites — but they are built for very different situations. Here is how to choose between them for your next project.\" />\n<meta property=\"og:description\" content=\"Jekyll and Next.js both produce fast websites — but they are built for very different situations. Here is how to choose between them for your next project.\" />\n<link rel=\"canonical\" href=\"https://jekyllhub.com/comparison/2026/05/19/jekyll-vs-nextjs/\" />\n<meta property=\"og:url\" content=\"https://jekyllhub.com/comparison/2026/05/19/jekyll-vs-nextjs/\" />\n<meta property=\"og:site_name\" content=\"JekyllHub\" />\n<meta property=\"og:image\" content=\"https://jekyllhub.com/assets/images/blog/jekyll-vs-nextjs.webp\" />\n<meta property=\"og:type\" content=\"article\" />\n<meta property=\"article:published_time\" content=\"2026-05-19T00:00:00+00:00\" />\n<meta name=\"twitter:card\" content=\"summary_large_image\" />\n<meta property=\"twitter:image\" content=\"https://jekyllhub.com/assets/images/blog/jekyll-vs-nextjs.webp\" />\n<meta property=\"twitter:title\" content=\"Jekyll vs Next.js: A Practical Comparison for 2026\" />\n<meta name=\"twitter:site\" content=\"@jekyllhub\" />\n<meta name=\"twitter:creator\" content=\"@Marcus Webb\" />\n<script type=\"application/ld+json\">\n{\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",\"author\":{\"@type\":\"Person\",\"name\":\"Marcus Webb\"},\"dateModified\":\"2026-07-04T00:00:00+00:00\",\"datePublished\":\"2026-05-19T00:00:00+00:00\",\"description\":\"Jekyll and Next.js both produce fast websites — but they are built for very different situations. Here is how to choose between them for your next project.\",\"headline\":\"Jekyll vs Next.js: A Practical Comparison for 2026\",\"image\":\"https://jekyllhub.com/assets/images/blog/jekyll-vs-nextjs.webp\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https://jekyllhub.com/comparison/2026/05/19/jekyll-vs-nextjs/\"},\"url\":\"https://jekyllhub.com/comparison/2026/05/19/jekyll-vs-nextjs/\"}</script>\n<!-- End Jekyll SEO tag -->\n\n <meta name=\"impact-site-verification\" value=\"362087e7-78c6-43e3-b39c-5ddb44047f61\">\n\n <!-- og:site_name and og:image: kept here as jekyll-seo-tag does not set these reliably. -->\n <!-- All other canonical/OG/Twitter tags are handled by the seo tag above. -->\n <meta property=\"og:site_name\" content=\"JekyllHub\">\n\n <!-- OG / Twitter image — use page card_image, else fall back to social-card.png -->\n \n \n <meta property=\"og:image\" content=\"https://jekyllhub.com/assets/images/blog/jekyll-vs-nextjs.webp\">\n <meta name=\"twitter:image\" content=\"https://jekyllhub.com/assets/images/blog/jekyll-vs-nextjs.webp\">\n \n\n <!-- Fonts -->\n <link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n <link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n <link href=\"https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,300;12..96,400;12..96,500;12..96,600;12..96,700;12..96,800&family=DM+Mono:ital,wght@0,300;0,400;0,500;1,400&family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;1,9..40,400&display=swap\" rel=\"stylesheet\">\n\n <!-- Dark mode: read stored preference before CSS loads to prevent flash -->\n <script>\n (function() {\n var stored = localStorage.getItem('tf_theme');\n var theme = stored ? stored : (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light');\n document.documentElement.setAttribute('data-theme', theme);\n })();\n </script>\n\n <!-- Stylesheet -->\n <link rel=\"stylesheet\" href=\"/assets/css/main.css\">\n\n <!-- Favicon -->\n <link rel=\"icon\" type=\"image/svg+xml\" href=\"/assets/images/favicon.svg\">\n\n <!-- Structured Data -->\n \n <script type=\"application/ld+json\">\n {\n \"@context\": \"https://schema.org\",\n \"@type\": \"WebSite\",\n \"name\": \"JekyllHub\",\n \"description\": \"The premier marketplace for Jekyll themes. Browse, preview, and download stunning themes for your next project.\",\n \"url\": \"https://jekyllhub.com\"\n }\n </script>\n \n\n <!-- Analytics -->\n \n\n \n \n <!-- Google tag (gtag.js) -->\n <script async src=\"https://www.googletagmanager.com/gtag/js?id=G-W5Z2Z9GNPG\"></script>\n <script>\n window.dataLayer = window.dataLayer || [];\n function gtag(){dataLayer.push(arguments);}\n gtag('js', new Date());\n gtag('config', 'G-W5Z2Z9GNPG');\n </script>\n \n\n \n \n\n\n\n</head>\n<body>\n \n\n<div class=\"announcement-bar announcement-bar--dark\" id=\"announcement-bar\" data-ann-id=\"v1\" role=\"banner\" aria-label=\"Site announcement\">\n <div class=\"announcement-bar__inner\">\n <p class=\"announcement-bar__text\">\n 🚀 New premium themes dropping soon — join the waitlist and get 20% off launch price\n \n <a href=\"/waitlist/\" class=\"announcement-bar__link\">Join Waitlist →</a>\n \n </p>\n <button class=\"announcement-bar__close\" aria-label=\"Dismiss announcement\" onclick=\"dismissAnnouncement('v1')\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"/></svg>\n </button>\n </div>\n</div>\n\n\n <nav class=\"navbar\" id=\"navbar\" x-data=\"{ mobileOpen: false }\">\n <div class=\"container navbar__inner\">\n <!-- Logo -->\n <a href=\"/\" class=\"navbar__logo\" aria-label=\"JekyllHub home\">\n <span class=\"navbar__logo-icon\">\n <svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect width=\"32\" height=\"32\" rx=\"9\" fill=\"#2563EB\"/>\n <!-- J letterform -->\n <path d=\"M19 8h-6v1h5v10c0 2.2-1.8 4-4 4s-4-1.8-4-4v-1H9v1c0 2.76 2.24 5 5 5s5-2.24 5-5V8z\" fill=\"white\"/>\n <!-- Hub dots -->\n <circle cx=\"23\" cy=\"9\" r=\"2.5\" fill=\"#F0C94B\"/>\n </svg>\n </span>\n <span class=\"navbar__logo-text\">Jekyll<span class=\"navbar__logo-accent\">Hub</span></span>\n </a>\n\n <!-- Desktop nav -->\n <ul class=\"navbar__links\" role=\"list\">\n <li><a href=\"/themes/\" class=\"navbar__link \">Browse</a></li>\n <li><a href=\"/categories/\" class=\"navbar__link navbar__link--active\">Categories</a></li>\n <li><a href=\"/blog/\" class=\"navbar__link \">Blog</a></li>\n <li><a href=\"/showcase/\" class=\"navbar__link \">Showcase</a></li>\n </ul>\n\n <!-- Right controls -->\n <div class=\"navbar__actions\">\n <!-- Search trigger -->\n <button class=\"navbar__icon-btn\" id=\"search-trigger\" onclick=\"JekyllHub.openSearch()\" aria-label=\"Search themes\">\n <svg width=\"20\" height=\"20\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z\"/>\n </svg>\n </button>\n\n <!-- Bookmarks -->\n <a href=\"/bookmarks/\" class=\"navbar__icon-btn\" aria-label=\"Saved themes\">\n <svg width=\"20\" height=\"20\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M5 5a2 2 0 012-2h10a2 2 0 012 2v16l-7-3.5L5 21V5z\"/>\n </svg>\n <span class=\"navbar__badge\" id=\"bookmark-count\" style=\"display:none\">0</span>\n </a>\n\n <!-- Theme toggle -->\n <button class=\"navbar__icon-btn theme-toggle\" id=\"theme-toggle\" onclick=\"JekyllHub.toggleTheme()\" aria-label=\"Toggle dark mode\">\n <svg class=\"theme-toggle__sun\" width=\"20\" height=\"20\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <circle cx=\"12\" cy=\"12\" r=\"5\" stroke-width=\"2\"/>\n <path stroke-linecap=\"round\" stroke-width=\"2\" d=\"M12 1v2M12 21v2M4.22 4.22l1.42 1.42M18.36 18.36l1.42 1.42M1 12h2M21 12h2M4.22 19.78l1.42-1.42M18.36 5.64l1.42-1.42\"/>\n </svg>\n <svg class=\"theme-toggle__moon\" width=\"20\" height=\"20\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003 0 0012 21a9.003 9.003 0 008.354-5.646z\"/>\n </svg>\n </button>\n\n <!-- Mobile menu toggle -->\n <button class=\"navbar__mobile-toggle\" @click=\"mobileOpen = !mobileOpen\" :aria-expanded=\"mobileOpen\" aria-label=\"Toggle menu\">\n <svg x-show=\"!mobileOpen\" width=\"22\" height=\"22\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 6h16M4 12h16M4 18h16\"/>\n </svg>\n <svg x-show=\"mobileOpen\" width=\"22\" height=\"22\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M6 18L18 6M6 6l12 12\"/>\n </svg>\n </button>\n </div>\n </div>\n\n <!-- Mobile menu -->\n <div class=\"navbar__mobile-menu\" x-show=\"mobileOpen\" x-transition:enter=\"slide-down-enter\" x-transition:enter-start=\"slide-down-start\" x-transition:enter-end=\"slide-down-end\" @click.away=\"mobileOpen = false\">\n <div class=\"container\">\n <ul role=\"list\">\n <li><a href=\"/themes/\" class=\"navbar__mobile-link\">Browse Themes</a></li>\n <li><a href=\"/categories/\" class=\"navbar__mobile-link\">Categories</a></li>\n <li><a href=\"/blog/\" class=\"navbar__mobile-link\">Blog</a></li>\n <li><a href=\"/showcase/\" class=\"navbar__mobile-link\">Showcase</a></li>\n <li><a href=\"/bookmarks/\" class=\"navbar__mobile-link\">Saved Themes</a></li>\n </ul>\n </div>\n </div>\n</nav>\n\n<!-- Search overlay -->\n<div id=\"search-overlay\" class=\"search-overlay\" role=\"dialog\" aria-modal=\"true\" aria-label=\"Search\" onclick=\"JekyllHub.closeSearch()\">\n <div class=\"search-overlay__panel\" onclick=\"event.stopPropagation()\">\n <div class=\"search-overlay__input-wrap\">\n <svg width=\"20\" height=\"20\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" class=\"search-overlay__icon\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z\"/>\n </svg>\n <input type=\"search\" id=\"search-input\" class=\"search-overlay__input\" placeholder=\"Search themes and articles…\" autocomplete=\"off\" aria-label=\"Search\">\n <kbd class=\"search-overlay__esc\" onclick=\"JekyllHub.closeSearch()\">ESC</kbd>\n </div>\n <div id=\"search-results\" class=\"search-overlay__results\" role=\"listbox\"></div>\n <div class=\"search-overlay__hint\">\n Press <kbd>↑</kbd> <kbd>↓</kbd> to navigate, <kbd>↵</kbd> to select\n </div>\n </div>\n</div>\n\n\n <!-- Inject Jekyll collection data for client-side search, filtering, and bookmarks -->\n <script>\n window.SITE_DATA = {\n baseurl: \"\",\n themeCardPlaceholder: \"/assets/images/placeholder/placeholder-card.svg\",\n newBadgeDays: 30,\n themes: [\n \n {\n title: \"Academic Pages Jekyll Theme\",\n description: \"An academic portfolio Jekyll theme for researchers and scholars. Supports publications, talks, CV pages, and GitHub Pages out of the box.\",\n card_description: \"Academic portfolio for researchers with publications, talks, and CV pages.\",\n url: \"/themes/academicpages/\",\n category: \"Academic\",\n price_type: \"free\",\n price: null,\n featured: true,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://academicpages.github.io/\",\n card_image: \"/assets/images/themes/academicpages-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-06-07\",\n discount_label: null,\n discount_original_price: null,\n popular: true,\n bestseller: false,\n trending: false,\n slug: \"academicpages\",\n },\n \n {\n title: \"Advance Jekyll Theme\",\n description: \"A premium multi-purpose Jekyll theme for building advanced marketing and business websites. Includes Services, Projects, and Team content types, a configurable hero section, full blog, dark mode, and Bootstrap 5.2.\",\n card_description: \"Premium multi-purpose theme — services, projects, team, blog, and configurable hero.\",\n url: \"/themes/advance/\",\n category: \"Business\",\n price_type: \"premium\",\n price: 79,\n featured: true,\n dark_mode: true,\n responsive: true,\n demo_url: \"https://jekyll-advance.netlify.app/\",\n card_image: \"/assets/images/themes/advance-card.webp\",\n premium: false,\n buy_url: \"https://www.zerostatic.io/theme/jekyll-advance/\",\n author: \"Zerostatic\",\n added_at: \"2026-06-27\",\n discount_label: null,\n discount_original_price: null,\n popular: true,\n bestseller: true,\n trending: true,\n slug: \"advance\",\n },\n \n {\n title: \"Agency Jekyll Theme\",\n description: \"A striking single-page agency Jekyll theme with full-screen sections, portfolio grid, and team showcase. Based on Start Bootstrap Agency.\",\n card_description: \"Striking single-page agency theme with portfolio grid and team showcase.\",\n url: \"/themes/agency/\",\n category: \"Portfolio\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: true,\n responsive: true,\n demo_url: \"https://y7kim.github.io/agency-jekyll-theme/\",\n card_image: \"/assets/images/themes/agency-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-01-10\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"agency\",\n },\n \n {\n title: \"al-folio Jekyll Theme\",\n description: \"A clean, minimal Jekyll theme built for academics and researchers. Beautifully renders publications, projects, and CV with BibTeX support.\",\n card_description: \"Clean academic theme for researchers with BibTeX and publications support.\",\n url: \"/themes/al-folio/\",\n category: \"Academic\",\n price_type: \"free\",\n price: null,\n featured: true,\n dark_mode: true,\n responsive: true,\n demo_url: \"https://alshedivat.github.io/al-folio/\",\n card_image: \"/assets/images/themes/al-folio-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-01-15\",\n discount_label: null,\n discount_original_price: null,\n popular: true,\n bestseller: false,\n trending: true,\n slug: \"al-folio\",\n },\n \n {\n title: \"Alembic Jekyll Theme\",\n description: \"A clean, minimal Jekyll theme with great typography and flexible page layouts. Works out of the box as a gem-based theme.\",\n card_description: \"Clean, minimal gem-based theme with flexible page layouts.\",\n url: \"/themes/alembic/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://alembic.darn.es/\",\n card_image: \"/assets/images/themes/alembic-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-02-01\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"alembic\",\n },\n \n {\n title: \"Almace Scaffolding Jekyll Theme\",\n description: \"A bold, minimal, and blazing fast Jekyll theme with a distinctive typographic style and performance-first architecture.\",\n card_description: \"Bold, minimal, blazing-fast theme with distinctive typographic style.\",\n url: \"/themes/almace-scaffolding/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://sparanoid.com/lab/amsf/\",\n card_image: \"/assets/images/themes/almace-scaffolding-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-04-01\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"almace-scaffolding\",\n },\n \n {\n title: \"Architect Jekyll Theme\",\n description: \"A clean GitHub Pages Jekyll theme with a prominent sidebar and crisp typography. Official GitHub Pages theme, ideal for project documentation.\",\n card_description: \"Clean GitHub Pages theme with prominent sidebar for project docs.\",\n url: \"/themes/architect/\",\n category: \"Documentation\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://pages-themes.github.io/architect/\",\n card_image: \"/assets/images/themes/architect-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-06-07\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"architect\",\n },\n \n {\n title: \"Aura Pro Jekyll Theme\",\n description: \"The premium upgrade to the Aura Jekyll theme. Includes all Aura features plus advanced blog layouts, star-rated testimonials, Sendy newsletter support, and read-time indicators.\",\n card_description: \"Premium upgrade to Aura — advanced layouts, star testimonials, and read time.\",\n url: \"/themes/aura-pro/\",\n category: \"Personal\",\n price_type: \"premium\",\n price: 9,\n featured: true,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://satishw.github.io/jekyll-theme-aura-pro/\",\n card_image: \"/assets/images/themes/aura-pro-card.webp\",\n premium: false,\n buy_url: \"https://satishw.github.io/jekyll-theme-aura-pro/features/\",\n author: \"Satish W\",\n added_at: \"2026-06-26\",\n discount_label: \"launch_offer\",\n discount_original_price: 29,\n popular: false,\n bestseller: false,\n trending: true,\n slug: \"aura-pro\",\n },\n \n {\n title: \"Aura Jekyll Theme\",\n description: \"Versatile Jekyll theme designed for content creators, writers, and developers. Ships with blog, projects, testimonials, and portfolio sections — fully compatible with GitHub Pages.\",\n card_description: \"Versatile Jekyll theme for creators and developers — blog, projects, and portfolio ready.\",\n url: \"/themes/aura/\",\n category: \"Personal\",\n price_type: \"free\",\n price: null,\n featured: true,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://satishw.github.io/jekyll-theme-aura/\",\n card_image: \"/assets/images/themes/aura-card.webp\",\n premium: false,\n buy_url: null,\n author: \"Satish W\",\n added_at: \"2026-02-10\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: true,\n slug: \"aura\",\n },\n \n {\n title: \"Basically Basic Jekyll Theme\",\n description: \"Your new Jekyll default theme — a modern, polished substitute for Minima. Six customisable colour skins, resume layout, off-canvas menu, and everything Minima should have been.\",\n card_description: \"Modern Minima replacement with six colour skins and a resume layout.\",\n url: \"/themes/basically-basic/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://mmistakes.github.io/jekyll-theme-basically-basic/\",\n card_image: \"/assets/images/themes/basically-basic-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-06-07\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"basically-basic\",\n },\n \n {\n title: \"Beautiful Jekyll\",\n description: \"One of the most popular Jekyll blog themes. Easy to set up, highly customisable, and works perfectly on GitHub Pages.\",\n card_description: \"Highly popular blog theme — easy setup, works on GitHub Pages.\",\n url: \"/themes/beautiful-jekyll/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: true,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://beautifuljekyll.com/\",\n card_image: \"/assets/images/themes/beautiful-jekyll-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-01-20\",\n discount_label: null,\n discount_original_price: null,\n popular: true,\n bestseller: false,\n trending: false,\n slug: \"beautiful-jekyll\",\n },\n \n {\n title: \"Bulma Clean Theme Jekyll Theme\",\n description: \"A clean and modern Jekyll theme built with the Bulma CSS framework. Features a blog, portfolio, and docs-ready layout with extensive customisation.\",\n card_description: \"Clean, modern Bulma CSS theme for blogs, portfolios, and docs.\",\n url: \"/themes/bulma-clean-theme/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://www.csrhymes.com/bulma-clean-theme/\",\n card_image: \"/assets/images/themes/bulma-clean-theme-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-04-01\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"bulma-clean-theme\",\n },\n \n {\n title: \"Cayman Jekyll Theme\",\n description: \"A bright, clean GitHub Pages Jekyll theme with a large hero header and fluid typography. Simple and polished for project landing pages.\",\n card_description: \"Bright GitHub Pages theme with large hero header for project sites.\",\n url: \"/themes/cayman/\",\n category: \"Documentation\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://pages-themes.github.io/cayman/\",\n card_image: \"/assets/images/themes/cayman-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-02-20\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"cayman\",\n },\n \n {\n title: \"Centrarium Jekyll Theme\",\n description: \"A simple, classy Jekyll blog theme with a large header image, featured posts, category pages, and Google Analytics integration.\",\n card_description: \"Classy blog theme with large header images and featured posts.\",\n url: \"/themes/centrarium/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://bencentra.com/centrarium/\",\n card_image: \"/assets/images/themes/centrarium-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-04-01\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"centrarium\",\n },\n \n {\n title: \"Chalk Jekyll Theme\",\n description: \"A high quality, completely customisable Jekyll blog theme. Features an elegant two-column layout, full-text search, category filtering, and subtle animations that make the experience feel alive.\",\n card_description: \"Elegant two-column blog with full-text search and category filtering.\",\n url: \"/themes/chalk/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://chalk.nielsenramon.com/\",\n card_image: \"/assets/images/themes/chalk-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-06-07\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: true,\n slug: \"chalk\",\n },\n \n {\n title: \"Chirpy Jekyll Theme\",\n description: \"A polished, feature-rich blog theme with dark mode, full-text search, reading time, table of contents, and PWA support. One of the fastest-growing Jekyll themes.\",\n card_description: \"Feature-rich blog with dark mode, search, TOC, and PWA support.\",\n url: \"/themes/chirpy/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: true,\n dark_mode: true,\n responsive: true,\n demo_url: \"https://chirpy.cotes.page/\",\n card_image: \"/assets/images/themes/chirpy-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-01-05\",\n discount_label: null,\n discount_original_price: null,\n popular: true,\n bestseller: false,\n trending: true,\n slug: \"chirpy\",\n },\n \n {\n title: \"Clean Blog Jekyll Theme\",\n description: \"A clean, distraction-free blog theme with full-width header images per post. A Start Bootstrap original ported to Jekyll.\",\n card_description: \"Distraction-free blog with full-width header images per post.\",\n url: \"/themes/clean-blog/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: true,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://startbootstrap.github.io/startbootstrap-clean-blog-jekyll/\",\n card_image: \"/assets/images/themes/clean-blog-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-02-25\",\n discount_label: null,\n discount_original_price: null,\n popular: true,\n bestseller: false,\n trending: false,\n slug: \"clean-blog\",\n },\n \n {\n title: \"Contrast Jekyll Theme\",\n description: \"A simple, minimal Jekyll blog theme with strong typographic contrast, clean post listings, and support for tags and pagination.\",\n card_description: \"Minimal blog with strong typographic contrast and tag support.\",\n url: \"/themes/contrast/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://niklasbuschmann.github.io/contrast/\",\n card_image: \"/assets/images/themes/contrast-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-04-01\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"contrast\",\n },\n \n {\n title: \"Creative Jekyll Theme\",\n description: \"A one-page Bootstrap landing page Jekyll theme with a fullscreen hero image, smooth scroll navigation, and portfolio sections.\",\n card_description: \"One-page Bootstrap landing page with fullscreen hero and portfolio.\",\n url: \"/themes/creative/\",\n category: \"Landing Page\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://volny.github.io/creative-theme-jekyll/\",\n card_image: \"/assets/images/themes/creative-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-04-01\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"creative\",\n },\n \n {\n title: \"Devlopr Jekyll Theme\",\n description: \"A feature-rich developer portfolio Jekyll theme with an integrated blog, skills section, CMS support, and dark mode built in.\",\n card_description: \"Developer portfolio with blog, skills section, and dark mode built in.\",\n url: \"/themes/devlopr-jekyll/\",\n category: \"Portfolio\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: true,\n responsive: true,\n demo_url: \"https://devlopr.netlify.app/\",\n card_image: \"/assets/images/themes/devlopr-jekyll-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-06-07\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"devlopr-jekyll\",\n },\n \n {\n title: \"Dinky Jekyll Theme\",\n description: \"A compact GitHub Pages Jekyll theme with a fixed sidebar and clean layout. Great for small documentation pages and personal project sites.\",\n card_description: \"Compact GitHub Pages theme with fixed sidebar for small project sites.\",\n url: \"/themes/dinky/\",\n category: \"Documentation\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://pages-themes.github.io/dinky/\",\n card_image: \"/assets/images/themes/dinky-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-06-07\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"dinky\",\n },\n \n {\n title: \"Documentation Jekyll Theme\",\n description: \"A documentation and help system Jekyll theme with search, navigation sidebar, and clean typography for technical writing.\",\n card_description: \"Help system theme with search, sidebar navigation, and clean typography.\",\n url: \"/themes/documentation/\",\n category: \"Documentation\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://docs.cloudcannon.com/\",\n card_image: \"/assets/images/themes/documentation-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-04-01\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"documentation\",\n },\n \n {\n title: \"Feeling Responsive Jekyll Theme\",\n description: \"A multipurpose responsive Jekyll theme built on the Foundation framework with flexible layouts, widgets, and rich customisation options.\",\n card_description: \"Multipurpose Foundation theme with flexible layouts and rich widgets.\",\n url: \"/themes/feeling-responsive/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://phlow.github.io/feeling-responsive/\",\n card_image: \"/assets/images/themes/feeling-responsive-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-04-01\",\n discount_label: null,\n discount_original_price: null,\n popular: true,\n bestseller: false,\n trending: false,\n slug: \"feeling-responsive\",\n },\n \n {\n title: \"Flexible Jekyll\",\n description: \"A simple and clean Jekyll theme with a minimal design, dark mode support, tag pages, and a flexible two-column layout.\",\n card_description: \"Simple, clean blog with dark mode and flexible two-column layout.\",\n url: \"/themes/flexible-jekyll/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: true,\n responsive: true,\n demo_url: \"https://artemsheludko.github.io/flexible-jekyll/\",\n card_image: \"/assets/images/themes/flexible-jekyll-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-04-01\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"flexible-jekyll\",\n },\n \n {\n title: \"Forty Jekyll Theme\",\n description: \"A visually striking multipurpose Jekyll theme inspired by HTML5 UP. Features tiled project sections and high-impact full-screen headers.\",\n card_description: \"Visually striking multipurpose theme with tiled sections and full-screen headers.\",\n url: \"/themes/forty/\",\n category: \"Portfolio\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: true,\n responsive: true,\n demo_url: \"https://andrewbanchich.github.io/forty-jekyll-theme/\",\n card_image: \"/assets/images/themes/forty-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-03-01\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"forty\",\n },\n \n {\n title: \"Freelancer Jekyll Theme\",\n description: \"A flat design landing page and portfolio Jekyll theme based on the popular Freelancer Bootstrap theme by Start Bootstrap.\",\n card_description: \"Flat design portfolio and landing page theme for freelancers.\",\n url: \"/themes/freelancer/\",\n category: \"Portfolio\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://jeromelachaud.com/freelancer-theme/\",\n card_image: \"/assets/images/themes/freelancer-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-04-01\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"freelancer\",\n },\n \n {\n title: \"Hacker Blog Jekyll Theme\",\n description: \"A minimal, terminal-inspired dark Jekyll blog theme for developers. Pure CLI aesthetic — black background, monospace font, zero distractions.\",\n card_description: \"Terminal-inspired dark blog — monospace, minimal, distraction-free.\",\n url: \"/themes/hacker-blog/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: true,\n responsive: true,\n demo_url: \"https://tocttou.github.io/hacker-blog/\",\n card_image: \"/assets/images/themes/hacker-blog-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-03-05\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"hacker-blog\",\n },\n \n {\n title: \"Hacker Jekyll Theme\",\n description: \"The official GitHub Pages hacker Jekyll theme. Dark terminal-style design with monospace typography, built for developer project pages.\",\n card_description: \"Official GitHub Pages hacker theme with dark terminal-style design.\",\n url: \"/themes/hacker/\",\n category: \"Personal\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: true,\n responsive: true,\n demo_url: \"https://pages-themes.github.io/hacker/\",\n card_image: \"/assets/images/themes/hacker-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-06-07\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"hacker\",\n },\n \n {\n title: \"Hitchens Jekyll Theme\",\n description: \"An unfussy Jekyll theme for serious writers. Minimal design, elegant typography, and a dark mode — inspired by the prose of Christopher Hitchens.\",\n card_description: \"Unfussy, elegant theme for serious writers with dark mode built in.\",\n url: \"/themes/hitchens/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: true,\n responsive: true,\n demo_url: \"https://hitchens.patdryburgh.com/\",\n card_image: \"/assets/images/themes/hitchens-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-04-01\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"hitchens\",\n },\n \n {\n title: \"HPSTR Jekyll Theme\",\n description: \"A responsive, full-featured Jekyll blog theme by Michael Rose. Rich with image-forward posts, sliding panel navigation, and social sharing.\",\n card_description: \"Image-forward blog with sliding panel navigation and social sharing.\",\n url: \"/themes/hpstr/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://mmistakes.github.io/hpstr-jekyll-theme/\",\n card_image: \"/assets/images/themes/hpstr-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-06-07\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"hpstr\",\n },\n \n {\n title: \"Huxpro Jekyll Theme\",\n description: \"A beautiful, cover-image-driven Jekyll blog theme inspired by Ghost's Casper. Features full-screen hero images, smooth transitions, and a clean reading experience.\",\n card_description: \"Cover-image-driven blog inspired by Ghost's Casper theme.\",\n url: \"/themes/huxpro/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://huxpro.github.io/\",\n card_image: \"/assets/images/themes/huxpro-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-06-08\",\n discount_label: null,\n discount_original_price: null,\n popular: true,\n bestseller: false,\n trending: false,\n slug: \"huxpro\",\n },\n \n {\n title: \"Hyde Jekyll Theme\",\n description: \"A brazen two-column Jekyll theme that pairs a prominent sidebar with uncomplicated content. Based on Poole, by Mark Otto.\",\n card_description: \"Two-column theme with prominent sidebar — elegant and timeless.\",\n url: \"/themes/hyde/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://hyde.getpoole.com/\",\n card_image: \"/assets/images/themes/hyde-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-01-25\",\n discount_label: null,\n discount_original_price: null,\n popular: true,\n bestseller: false,\n trending: false,\n slug: \"hyde\",\n },\n \n {\n title: \"Hydejack Jekyll Theme\",\n description: \"A boutique Jekyll theme with a rich sidebar, smooth page transitions, and portfolio support. The premium evolution of Hyde.\",\n card_description: \"Boutique theme with smooth page transitions and portfolio support.\",\n url: \"/themes/hydejack/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: true,\n dark_mode: true,\n responsive: true,\n demo_url: \"https://hydejack.com/\",\n card_image: \"/assets/images/themes/hydejack-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-01-30\",\n discount_label: null,\n discount_original_price: null,\n popular: true,\n bestseller: false,\n trending: false,\n slug: \"hydejack\",\n },\n \n {\n title: \"Hydra Jekyll Theme\",\n description: \"A product and SaaS marketing Jekyll theme with a clean hero section, feature grid, pricing table, and testimonials.\",\n card_description: \"SaaS marketing theme with hero, feature grid, and pricing table.\",\n url: \"/themes/hydra/\",\n category: \"Landing Page\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://orange-ape.cloudvent.net/\",\n card_image: \"/assets/images/themes/hydra-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-04-01\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"hydra\",\n },\n \n {\n title: \"Jasper Jekyll Theme\",\n description: \"A Jekyll port of Ghost's default Casper theme. Brings the polished, editorial feel of Ghost blogging to static Jekyll sites.\",\n card_description: \"Jekyll port of Ghost's Casper — polished, editorial feel.\",\n url: \"/themes/jasper/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://jekyllt.github.io/jasper/\",\n card_image: \"/assets/images/themes/jasper-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-04-01\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"jasper\",\n },\n \n {\n title: \"Jekyll Now\",\n description: \"The quickest way to start a Jekyll blog. Fork on GitHub, enable Pages, and you have a live blog in under a minute — zero command line required.\",\n card_description: \"Quickest way to start a Jekyll blog — fork, enable Pages, done.\",\n url: \"/themes/jekyll-now/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://barryclark.github.io/jekyll-now/\",\n card_image: \"/assets/images/themes/jekyll-now-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-06-07\",\n discount_label: null,\n discount_original_price: null,\n popular: true,\n bestseller: false,\n trending: false,\n slug: \"jekyll-now\",\n },\n \n {\n title: \"TeXt Jekyll Theme\",\n description: \"A highly customisable Jekyll theme inspired by iOS 11 style. Features multiple skins, rich built-in components, full internationalisation, and support for blogs, documentation, and team sites.\",\n card_description: \"iOS-inspired theme with multiple skins and rich built-in components.\",\n url: \"/themes/jekyll-text-theme/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: true,\n dark_mode: true,\n responsive: true,\n demo_url: \"https://kitian616.github.io/jekyll-TeXt-theme/\",\n card_image: \"/assets/images/themes/jekyll-text-theme-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-06-07\",\n discount_label: null,\n discount_original_price: null,\n popular: true,\n bestseller: false,\n trending: false,\n slug: \"jekyll-text-theme\",\n },\n \n {\n title: \"Just the Docs Jekyll Theme\",\n description: \"The most popular Jekyll documentation theme. Clean sidebar navigation, full-text search, and excellent code block support.\",\n card_description: \"Most popular Jekyll docs theme with sidebar navigation and search.\",\n url: \"/themes/just-the-docs/\",\n category: \"Documentation\",\n price_type: \"free\",\n price: null,\n featured: true,\n dark_mode: true,\n responsive: true,\n demo_url: \"https://just-the-docs.com/\",\n card_image: \"/assets/images/themes/just-the-docs-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-01-08\",\n discount_label: null,\n discount_original_price: null,\n popular: true,\n bestseller: false,\n trending: true,\n slug: \"just-the-docs\",\n },\n \n {\n title: \"Klisé Jekyll Theme\",\n description: \"A minimalist Jekyll theme with seamless light and dark mode. Clean typography, fast performance, and a modern aesthetic — designed for personal sites and blogs that value simplicity.\",\n card_description: \"Minimalist theme with seamless dark mode and clean typography.\",\n url: \"/themes/klise/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: true,\n responsive: true,\n demo_url: \"https://klise.vercel.app/\",\n card_image: \"/assets/images/themes/klise-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-06-07\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: true,\n slug: \"klise\",\n },\n \n {\n title: \"Lanyon Jekyll Theme\",\n description: \"A Jekyll theme that hides its sidebar until you need it. Clean, spacious reading layout with a smooth slide-out navigation drawer.\",\n card_description: \"Clean blog theme with a smooth slide-out navigation drawer.\",\n url: \"/themes/lanyon/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://lanyon.getpoole.com/\",\n card_image: \"/assets/images/themes/lanyon-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-02-05\",\n discount_label: null,\n discount_original_price: null,\n popular: true,\n bestseller: false,\n trending: false,\n slug: \"lanyon\",\n },\n \n {\n title: \"Leonids Jekyll Theme\",\n description: \"A simple and clean two-column Jekyll blog theme. Fixed sidebar with author bio and social links, clean post listing, and a timeless layout that puts content front and centre.\",\n card_description: \"Two-column blog with fixed sidebar and timeless content-first layout.\",\n url: \"/themes/leonids/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://renyuanz.github.io/leonids/\",\n card_image: \"/assets/images/themes/leonids-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-06-07\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"leonids\",\n },\n \n {\n title: \"Livvic Jekyll Theme\",\n description: \"A clean, creative, and unique Jekyll theme for agency and personal portfolio websites. Features a flat modern design, unique effects, Bootstrap 4, and Font Awesome — ready to customise and launch in hours.\",\n card_description: \"Clean creative portfolio theme for agencies and freelancers — minimal, unique, responsive.\",\n url: \"/themes/livvic/\",\n category: \"Portfolio\",\n price_type: \"premium\",\n price: 49,\n featured: true,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://livvic-jekyll.tortoizthemes.com/\",\n card_image: \"/assets/images/themes/livvic-card.webp\",\n premium: false,\n buy_url: \"https://tortoizthemes.com/theme/livvic-jekyll-theme/\",\n author: \"Tortoiz Themes\",\n added_at: \"2026-06-27\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"livvic\",\n },\n \n {\n title: \"Long Haul Jekyll Theme\",\n description: \"A minimal, type-focused Jekyll theme designed for long-form writing. Understated design that keeps the reader's attention on the words.\",\n card_description: \"Minimal, type-focused theme designed for long-form writing.\",\n url: \"/themes/long-haul/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://brianmaierjr.com/long-haul/\",\n card_image: \"/assets/images/themes/long-haul-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-04-01\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"long-haul\",\n },\n \n {\n title: \"Massively Jekyll Theme\",\n description: \"A bold, image-driven Jekyll blog theme ported from HTML5 UP. Full-screen background image on the homepage, large featured post images, and a striking visual identity unlike any other Jekyll theme.\",\n card_description: \"Bold, image-driven blog with full-screen homepage background.\",\n url: \"/themes/massively/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://jekyllup.github.io/jekyll-theme-massively/\",\n card_image: \"/assets/images/themes/massively-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-06-07\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"massively\",\n },\n \n {\n title: \"Mediator Jekyll Theme\",\n description: \"A medium-inspired Jekyll blog theme with large featured images, clean typography, and a focus on long-form reading.\",\n card_description: \"Medium-inspired blog with large featured images and clean typography.\",\n url: \"/themes/mediator/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://blog.base68.com/\",\n card_image: \"/assets/images/themes/mediator-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-04-01\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"mediator\",\n },\n \n {\n title: \"Mediumish Jekyll Theme\",\n description: \"A Medium-inspired blog theme with card-based post listings, author pages, and a clean reading layout. One of the most popular Jekyll blog starters.\",\n card_description: \"Medium-inspired blog with card post listings and author pages.\",\n url: \"/themes/mediumish/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://wowthemesnet.github.io/mediumish-theme-jekyll/\",\n card_image: \"/assets/images/themes/mediumish-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-03-10\",\n discount_label: null,\n discount_original_price: null,\n popular: true,\n bestseller: false,\n trending: false,\n slug: \"mediumish\",\n },\n \n {\n title: \"Merlot Jekyll Theme\",\n description: \"A warm, editorial GitHub Pages Jekyll theme with classic typographic styling. Official GitHub Pages theme for personal and project sites.\",\n card_description: \"Warm, editorial GitHub Pages theme with classic typographic styling.\",\n url: \"/themes/merlot/\",\n category: \"Personal\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://pages-themes.github.io/merlot/\",\n card_image: \"/assets/images/themes/merlot-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-06-07\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"merlot\",\n },\n \n {\n title: \"Midnight Jekyll Theme\",\n description: \"A dark, sleek GitHub Pages Jekyll theme with light text on deep backgrounds. Official GitHub Pages theme ideal for personal projects and portfolios.\",\n card_description: \"Dark, sleek GitHub Pages theme with light text on deep backgrounds.\",\n url: \"/themes/midnight/\",\n category: \"Personal\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: true,\n responsive: true,\n demo_url: \"https://pages-themes.github.io/midnight/\",\n card_image: \"/assets/images/themes/midnight-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-06-07\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"midnight\",\n },\n \n {\n title: \"Miles Jekyll Theme\",\n description: \"A creative portfolio and agency Jekyll theme with 12+ homepage layouts, 6 portfolio styles, and 4 blog layouts. Designed for agencies, freelancers, and creative professionals who want a stunning site in hours not days.\",\n card_description: \"Creative agency and portfolio theme — 12+ homepages, 6 portfolio styles, dark design.\",\n url: \"/themes/miles/\",\n category: \"Portfolio\",\n price_type: \"premium\",\n price: 79,\n featured: true,\n dark_mode: true,\n responsive: true,\n demo_url: \"https://miles-jekyll.tortoizthemes.com/\",\n card_image: \"/assets/images/themes/miles-card.webp\",\n premium: false,\n buy_url: \"https://tortoizthemes.com/demo/miles/\",\n author: \"Tortoiz Themes\",\n added_at: \"2026-06-27\",\n discount_label: null,\n discount_original_price: null,\n popular: true,\n bestseller: false,\n trending: false,\n slug: \"miles\",\n },\n \n {\n title: \"Millennial Jekyll Theme\",\n description: \"A minimalist, responsive Jekyll blog theme with a clean layout, tag support, pagination, and social share buttons.\",\n card_description: \"Minimalist responsive blog with tag support and social share buttons.\",\n url: \"/themes/millennial/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://lenpaul.github.io/Millennial/\",\n card_image: \"/assets/images/themes/millennial-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-04-01\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"millennial\",\n },\n \n {\n title: \"Minima Jekyll Theme\",\n description: \"Jekyll's built-in default theme. Minimal, clean, and battle-tested. The foundation every Jekyll developer knows.\",\n card_description: \"Jekyll's default theme — minimal, clean, and battle-tested.\",\n url: \"/themes/minima/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: true,\n responsive: true,\n demo_url: \"https://jekyll.github.io/minima/\",\n card_image: \"/assets/images/themes/minima-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-01-01\",\n discount_label: null,\n discount_original_price: null,\n popular: true,\n bestseller: false,\n trending: false,\n slug: \"minima\",\n },\n \n {\n title: \"Minimal Mistakes Jekyll Theme\",\n description: \"The most popular Jekyll theme on GitHub. A flexible two-column theme perfect for personal sites, blogs, documentation, and portfolios — with 12 layout skins.\",\n card_description: \"Most popular Jekyll theme — flexible two-column with 12 layout skins.\",\n url: \"/themes/minimal-mistakes/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: true,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://mmistakes.github.io/minimal-mistakes/\",\n card_image: \"/assets/images/themes/minimal-mistakes-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-01-02\",\n discount_label: null,\n discount_original_price: null,\n popular: true,\n bestseller: false,\n trending: false,\n slug: \"minimal-mistakes\",\n },\n \n {\n title: \"Minimal Jekyll Theme\",\n description: \"The official minimal GitHub Pages Jekyll theme. Clean and lightweight with great default typography for personal projects and documentation.\",\n card_description: \"Official minimal GitHub Pages theme — clean and lightweight.\",\n url: \"/themes/minimal/\",\n category: \"Personal\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://pages-themes.github.io/minimal/\",\n card_image: \"/assets/images/themes/minimal-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-06-07\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"minimal\",\n },\n \n {\n title: \"Modern Resume Theme Jekyll Theme\",\n description: \"A sleek, single-page resume/CV theme for Jekyll. Dark header, clean timeline layout, and sections for experience, education, skills, and projects.\",\n card_description: \"Sleek single-page resume/CV with timeline and skills sections.\",\n url: \"/themes/modern-resume-theme/\",\n category: \"Resume / CV\",\n price_type: \"free\",\n price: null,\n featured: true,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://sproogen.github.io/modern-resume-theme/\",\n card_image: \"/assets/images/themes/modern-resume-theme-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-02-28\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"modern-resume-theme\",\n },\n \n {\n title: \"Moonwalk Jekyll Theme\",\n description: \"A dark, minimal Jekyll blog theme with a focus on typography and whitespace. Elegant simplicity for serious writers.\",\n card_description: \"Dark, minimal blog focused on typography and generous whitespace.\",\n url: \"/themes/moonwalk/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: true,\n responsive: true,\n demo_url: \"https://abhinavs.github.io/moonwalk/\",\n card_image: \"/assets/images/themes/moonwalk-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-03-12\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: true,\n slug: \"moonwalk\",\n },\n \n {\n title: \"Mundana Jekyll Theme\",\n description: \"A modern Jekyll theme for bloggers built with Bootstrap 4. Features featured posts, category pages, newsletter signup, and clean card layouts.\",\n card_description: \"Modern Bootstrap 4 blog with featured posts and newsletter signup.\",\n url: \"/themes/mundana/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://mundana.amitmerchant.com/\",\n card_image: \"/assets/images/themes/mundana-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-04-01\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"mundana\",\n },\n \n {\n title: \"Online CV Jekyll Theme\",\n description: \"A one-page Jekyll CV and resume theme for creating a beautiful online portfolio. Minimal, readable design perfect for job seekers and freelancers.\",\n card_description: \"One-page CV/resume theme for a beautiful online portfolio.\",\n url: \"/themes/online-cv/\",\n category: \"Resume / CV\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://sharu725.github.io/online-cv/\",\n card_image: \"/assets/images/themes/online-cv-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-03-15\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"online-cv\",\n },\n \n {\n title: \"Origin Jekyll Theme\",\n description: \"A fully featured and highly configurable modern blog theme for Jekyll. Includes categories, authors, comments, pagination, dark mode, and a perfect 100/100 Google Lighthouse score.\",\n card_description: \"Modern blog theme with dark mode, authors, categories, and 100/100 Lighthouse.\",\n url: \"/themes/origin/\",\n category: \"Blog\",\n price_type: \"premium\",\n price: 49,\n featured: true,\n dark_mode: true,\n responsive: true,\n demo_url: \"https://jekyll-origin.netlify.app/\",\n card_image: \"/assets/images/themes/origin-card.webp\",\n premium: false,\n buy_url: \"https://www.zerostatic.io/theme/jekyll-origin/\",\n author: \"Zerostatic\",\n added_at: \"2026-06-27\",\n discount_label: null,\n discount_original_price: null,\n popular: true,\n bestseller: false,\n trending: false,\n slug: \"origin\",\n },\n \n {\n title: \"Phantom Jekyll Theme\",\n description: \"A minimalist, responsive portfolio Jekyll theme with a project grid, modal image viewer, and subtle hover animations.\",\n card_description: \"Minimalist portfolio with project grid and modal image viewer.\",\n url: \"/themes/phantom/\",\n category: \"Portfolio\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://jamigibbs.github.io/phantom/\",\n card_image: \"/assets/images/themes/phantom-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-04-01\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"phantom\",\n },\n \n {\n title: \"Pixyll Jekyll Theme\",\n description: \"A simple, beautiful Jekyll theme that puts your content first. Mobile-first, fluidly responsive, and delightfully lightweight — built around great typography and generous whitespace.\",\n card_description: \"Simple, beautiful theme that puts content first with generous whitespace.\",\n url: \"/themes/pixyll/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://pixyll.com/\",\n card_image: \"/assets/images/themes/pixyll-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-06-07\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"pixyll\",\n },\n \n {\n title: \"Primer Jekyll Theme\",\n description: \"The official GitHub Pages primer Jekyll theme. Clean, GitHub-style design with great readability — perfect for documentation and project pages.\",\n card_description: \"Official GitHub Pages primer theme — clean GitHub-style for docs.\",\n url: \"/themes/primer/\",\n category: \"Documentation\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://pages-themes.github.io/primer/\",\n card_image: \"/assets/images/themes/primer-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-06-07\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"primer\",\n },\n \n {\n title: \"Researcher Jekyll Theme\",\n description: \"A minimal, clean Jekyll theme for a single-page academic CV. Presents your education, experience, publications, and skills in a clear, professional layout that loads instantly.\",\n card_description: \"Minimal single-page academic CV with a clean, professional layout.\",\n url: \"/themes/researcher/\",\n category: \"Resume / CV\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://ankitsultana.com/researcher/\",\n card_image: \"/assets/images/themes/researcher-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-06-07\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"researcher\",\n },\n \n {\n title: \"Reverie Jekyll Theme\",\n description: \"A ridiculously elegant, fully responsive Jekyll blog theme based on Poole. Supports categories, tags, Disqus comments, and Google Analytics.\",\n card_description: \"Elegantly responsive blog based on Poole with categories and tags.\",\n url: \"/themes/reverie/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://reverie.amitmerchant.com/\",\n card_image: \"/assets/images/themes/reverie-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-04-01\",\n discount_label: null,\n discount_original_price: null,\n popular: true,\n bestseller: false,\n trending: false,\n slug: \"reverie\",\n },\n \n {\n title: \"Sandbox Jekyll Theme\",\n description: \"A massive multipurpose Jekyll theme with 27 home pages, 130+ ready-to-use blocks, and 250+ UI elements. Built with Bootstrap 5 and zero jQuery — perfect for startups, SaaS, agencies, portfolios, and eCommerce sites.\",\n card_description: \"Multipurpose theme — 27 homepages, 130+ blocks, 250+ UI elements, Bootstrap 5.\",\n url: \"/themes/sandbox/\",\n category: \"Business\",\n price_type: \"premium\",\n price: 99,\n featured: true,\n dark_mode: true,\n responsive: true,\n demo_url: \"https://sandbox.tortoizthemes.com/demo28/\",\n card_image: \"/assets/images/themes/sandbox-card.webp\",\n premium: false,\n buy_url: \"https://tortoizthemes.com/theme/sandbox/\",\n author: \"Tortoiz Themes\",\n added_at: \"2026-06-27\",\n discount_label: null,\n discount_original_price: null,\n popular: true,\n bestseller: true,\n trending: true,\n slug: \"sandbox\",\n },\n \n {\n title: \"Scriptor Jekyll Theme\",\n description: \"A minimal, clean, and modern Jekyll theme for writers and bloggers. Elegant typography, featured images, and a distraction-free reading layout built for long-form content.\",\n card_description: \"Minimal, modern theme for writers with elegant typography.\",\n url: \"/themes/scriptor/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://scriptor-jekyll.netlify.app/\",\n card_image: \"/assets/images/themes/scriptor-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-06-07\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"scriptor\",\n },\n \n {\n title: \"Serif Jekyll Theme\",\n description: \"A beautiful small business Jekyll theme by CloudCannon. Elegant serif typography, warm tones, and sections for services, team members, and contact.\",\n card_description: \"Beautiful small business theme with serif typography and service sections.\",\n url: \"/themes/serif/\",\n category: \"Business\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://serif.cloudcannon.com/\",\n card_image: \"/assets/images/themes/serif-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-02-08\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"serif\",\n },\n \n {\n title: \"Slate Jekyll Theme\",\n description: \"A bold, dark GitHub Pages Jekyll theme with prominent sidebar navigation and strong code styling. Official GitHub Pages theme for developer docs.\",\n card_description: \"Bold, dark GitHub Pages theme for developer docs with sidebar nav.\",\n url: \"/themes/slate/\",\n category: \"Documentation\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://pages-themes.github.io/slate/\",\n card_image: \"/assets/images/themes/slate-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-06-07\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"slate\",\n },\n \n {\n title: \"Snowlake Jekyll Theme\",\n description: \"A versatile multipurpose Jekyll theme with 27 unique demos, 17 color schemes, 5 font options, Slider Revolution, and 4 icon sets with 2300+ icons. Built on Jekyll 4.3+ and Bootstrap 5 — ideal for businesses, agencies, SaaS, and creatives.\",\n card_description: \"Multipurpose theme — 27 demos, 17 color schemes, Slider Revolution, Bootstrap 5.\",\n url: \"/themes/snowlake/\",\n category: \"Business\",\n price_type: \"premium\",\n price: 79,\n featured: true,\n dark_mode: true,\n responsive: true,\n demo_url: \"https://snowlake.tortoizthemes.com/\",\n card_image: \"/assets/images/themes/snowlake-card.webp\",\n premium: false,\n buy_url: \"https://tortoizthemes.com/theme/snowlake-jekyll-theme/\",\n author: \"Tortoiz Themes\",\n added_at: \"2026-06-27\",\n discount_label: null,\n discount_original_price: null,\n popular: true,\n bestseller: false,\n trending: true,\n slug: \"snowlake\",\n },\n \n {\n title: \"So Simple Jekyll Theme\",\n description: \"A simple Jekyll theme for words and pictures. Clean reading layout with support for author profiles, social links, and Google Analytics.\",\n card_description: \"Simple theme for words and pictures with author profile support.\",\n url: \"/themes/so-simple/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://mmistakes.github.io/so-simple-theme/\",\n card_image: \"/assets/images/themes/so-simple-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-04-01\",\n discount_label: null,\n discount_original_price: null,\n popular: true,\n bestseller: false,\n trending: false,\n slug: \"so-simple\",\n },\n \n {\n title: \"Swiss Jekyll Theme\",\n description: \"A bold, typographic Jekyll theme inspired by International Swiss Style design. Strong grid, oversized headings, and a clean black-and-white palette that puts typography first.\",\n card_description: \"Bold, typographic theme inspired by Swiss International Style design.\",\n url: \"/themes/swiss/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://broccolini.net/swiss/\",\n card_image: \"/assets/images/themes/swiss-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-06-07\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"swiss\",\n },\n \n {\n title: \"Tactile Jekyll Theme\",\n description: \"A textured, warm GitHub Pages Jekyll theme with a hand-crafted sidebar style. Official GitHub Pages theme with classic personality and charm.\",\n card_description: \"Textured, warm GitHub Pages theme with hand-crafted sidebar style.\",\n url: \"/themes/tactile/\",\n category: \"Personal\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://pages-themes.github.io/tactile/\",\n card_image: \"/assets/images/themes/tactile-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-06-07\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"tactile\",\n },\n \n {\n title: \"Tale Jekyll Theme\",\n description: \"An minimal Jekyll theme focused on content. Elegant single-column layout with beautiful typography, clean post listings, and zero visual noise — perfect for long-form writing.\",\n card_description: \"Minimal, elegant single-column blog for long-form writing.\",\n url: \"/themes/tale/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://chesterhow.github.io/tale/\",\n card_image: \"/assets/images/themes/tale-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-06-07\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"tale\",\n },\n \n {\n title: \"Type Theme Jekyll Theme\",\n description: \"A free, open-source theme for Jekyll focused purely on typography and reading. Minimal design, fast load times, and a beautifully simple blog layout for writers who mean business.\",\n card_description: \"Typography-focused minimal theme for writers who value clean reading.\",\n url: \"/themes/type-theme/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://rohanchandra.github.io/type-theme/\",\n card_image: \"/assets/images/themes/type-theme-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-06-07\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"type-theme\",\n },\n \n {\n title: \"YAT Jekyll Theme\",\n description: \"Yet Another Theme — a modern, flat-design Jekyll blog theme with night mode, multi-language support, and beautiful typography. Clean, fast, and elegant for writers and developers alike.\",\n card_description: \"Modern flat-design blog with night mode and multi-language support.\",\n url: \"/themes/yat/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: true,\n responsive: true,\n demo_url: \"https://jeffreytse.github.io/jekyll-theme-yat/\",\n card_image: \"/assets/images/themes/yat-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-06-07\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: true,\n slug: \"yat\",\n }\n \n ],\n posts: [\n \n {\n title: \"Jekyll vs Gatsby: Which Static Site Generator Should You Choose in 2026?\",\n excerpt: \"Jekyll and Gatsby both produce fast, static websites — but they come from completely different worlds. Jekyll is a mature, Ruby-based generator built for sim...\",\n url: \"/comparison/2026/07/03/jekyll-vs-gatsby/\",\n tags: [],\n category: \"Comparison\",\n date: \"July 3, 2026\",\n image: \"/assets/images/blog/jekyll-vs-gatsby.webp\"\n },\n \n {\n title: \"Jekyll Static Files and Assets: How to Manage Images, CSS, and JS\",\n excerpt: \"Jekyll processes some files (Markdown, Liquid templates, Sass) and copies others unchanged. Understanding which is which — and how to reference assets correc...\",\n url: \"/tutorial/2026/07/02/jekyll-static-files-assets/\",\n tags: [],\n category: \"Tutorial\",\n date: \"July 2, 2026\",\n image: \"/assets/images/blog/jekyll-static-files-assets.webp\"\n },\n \n {\n title: \"Jekyll Drafts and Publishing Workflow: How to Manage Content\",\n excerpt: \"Jekyll gives you several ways to keep content out of your public site while you work on it: the _drafts/ folder, published: false front matter, and future-da...\",\n url: \"/tutorial/2026/07/01/jekyll-drafts-publishing-workflow/\",\n tags: [],\n category: \"Tutorial\",\n date: \"July 1, 2026\",\n image: \"/assets/images/blog/jekyll-drafts-publishing-workflow.webp\"\n },\n \n {\n title: \"How to Use Sass and SCSS with Jekyll (Complete Guide)\",\n excerpt: \"Jekyll has built-in Sass processing — no Node.js, no build tools, no webpack required. Write SCSS files, Jekyll compiles them to CSS automatically. This guid...\",\n url: \"/tutorial/2026/06/30/jekyll-sass-scss-guide/\",\n tags: [],\n category: \"Tutorial\",\n date: \"June 30, 2026\",\n image: \"/assets/images/blog/jekyll-sass-scss-guide.webp\"\n },\n \n {\n title: \"Jekyll Permalinks and URL Structure: The Complete Guide\",\n excerpt: \"Jekyll gives you precise control over the URL structure of every page on your site. Understanding how permalinks work is important for clean URLs, SEO, and e...\",\n url: \"/tutorial/2026/06/29/jekyll-permalinks-url-structure/\",\n tags: [],\n category: \"Tutorial\",\n date: \"June 29, 2026\",\n image: \"/assets/images/blog/jekyll-permalinks-url-structure.webp\"\n },\n \n {\n title: \"Jekyll Variables Reference: site, page, layout, and More\",\n excerpt: \"Jekyll makes a set of variables available in every template through Liquid. Knowing which variables exist and what they contain is essential for building and...\",\n url: \"/tutorial/2026/06/28/jekyll-variables-reference/\",\n tags: [],\n category: \"Tutorial\",\n date: \"June 28, 2026\",\n image: \"/assets/images/blog/jekyll-variables-reference.webp\"\n },\n \n {\n title: \"What Makes a Good Jekyll Theme? (Checklist Before You Buy)\",\n excerpt: \"A Jekyll theme can look polished in a screenshot and be a nightmare to work with in practice. Bad themes have hard-coded values scattered across templates, S...\",\n url: \"/themes/2026/06/27/what-makes-a-good-jekyll-theme/\",\n tags: [\"jekyll themes\",\"jekyll theme quality\",\"best jekyll themes\",\"premium jekyll themes\",\"jekyll theme checklist\"],\n category: \"Themes\",\n date: \"June 27, 2026\",\n image: \"/assets/images/blog/what-makes-a-good-jekyll-theme.webp\"\n },\n \n {\n title: \"Jekyll Liquid Tags: The Complete Reference Guide\",\n excerpt: \"Liquid tags are the logic layer of Jekyll templates. Wrapped in {% %} delimiters, they control flow, create variables, loop over data, and embed content — wi...\",\n url: \"/tutorial/2026/06/26/jekyll-liquid-tags-reference/\",\n tags: [],\n category: \"Tutorial\",\n date: \"June 26, 2026\",\n image: \"/assets/images/blog/jekyll-liquid-tags-reference.webp\"\n },\n \n {\n title: \"Jekyll Liquid Templating: A Beginner's Complete Guide\",\n excerpt: \"Liquid is the template language Jekyll uses to make HTML dynamic. It was created by Shopify and is also used in many other platforms. In Jekyll, Liquid lets ...\",\n url: \"/tutorial/2026/06/25/jekyll-liquid-templating-basics/\",\n tags: [],\n category: \"Tutorial\",\n date: \"June 25, 2026\",\n image: \"/assets/images/blog/jekyll-liquid-templating-basics.webp\"\n },\n \n {\n title: \"Jekyll Directory Structure Explained: What Every File and Folder Does\",\n excerpt: \"When you first open a Jekyll project, the folder structure can look confusing. Underscores everywhere, a _site folder that appears after building, special fi...\",\n url: \"/tutorial/2026/06/24/jekyll-directory-structure/\",\n tags: [],\n category: \"Tutorial\",\n date: \"June 24, 2026\",\n image: \"/assets/images/blog/jekyll-directory-structure.webp\"\n },\n \n {\n title: \"Jekyll Remote Themes: How to Use Any GitHub Theme Without Installing It\",\n excerpt: \"Remote themes are one of the most convenient ways to use a Jekyll theme — especially on GitHub Pages. Instead of installing a theme as a Ruby gem, you refere...\",\n url: \"/tutorial/2026/06/23/jekyll-remote-themes/\",\n tags: [],\n category: \"Tutorial\",\n date: \"June 23, 2026\",\n image: \"/assets/images/blog/jekyll-remote-themes.webp\"\n },\n \n {\n title: \"Jekyll _config.yml: The Complete Configuration Guide\",\n excerpt: \"_config.yml is the single most important file in a Jekyll project. It controls everything: your site’s URL, which plugins run, how collections are defined, w...\",\n url: \"/tutorial/2026/06/22/jekyll-config-yml-guide/\",\n tags: [],\n category: \"Tutorial\",\n date: \"June 22, 2026\",\n image: \"/assets/images/blog/jekyll-config-yml-guide.webp\"\n },\n \n {\n title: \"10 Things to Check Before Installing a Jekyll Theme\",\n excerpt: \"Installing a Jekyll theme takes minutes. Undoing a bad choice takes hours. Before you run bundle install, it is worth spending ten minutes checking these ten...\",\n url: \"/themes/2026/06/21/jekyll-theme-checklist-before-installing/\",\n tags: [\"jekyll themes\",\"jekyll theme checklist\",\"install jekyll theme\",\"jekyll theme quality\"],\n category: \"Themes\",\n date: \"June 21, 2026\",\n image: \"/assets/images/blog/jekyll-theme-checklist-before-installing.webp\"\n },\n \n {\n title: \"Jekyll Includes vs Layouts: What's the Difference and When to Use Each\",\n excerpt: \"Jekyll has two ways to reuse HTML across your site: layouts and includes. Both reduce repetition, but they work differently and serve different purposes. Und...\",\n url: \"/tutorial/2026/06/20/jekyll-includes-vs-layouts/\",\n tags: [],\n category: \"Tutorial\",\n date: \"June 20, 2026\",\n image: \"/assets/images/blog/jekyll-includes-vs-layouts.webp\"\n },\n \n {\n title: \"Jekyll Layouts Explained: How to Structure Your Site Templates\",\n excerpt: \"Layouts are Jekyll’s template system — reusable HTML wrappers that surround your content. Every page on your Jekyll site uses a layout, even if you have not ...\",\n url: \"/tutorial/2026/06/19/jekyll-layouts-explained/\",\n tags: [],\n category: \"Tutorial\",\n date: \"June 19, 2026\",\n image: \"/assets/images/blog/jekyll-layouts-explained.webp\"\n },\n \n {\n title: \"Jekyll Front Matter: The Complete Guide\",\n excerpt: \"Front matter is how Jekyll knows what to do with a file. Without it, Jekyll treats a file as a static asset and copies it unchanged. With it, Jekyll processe...\",\n url: \"/tutorial/2026/06/18/jekyll-front-matter-guide/\",\n tags: [],\n category: \"Tutorial\",\n date: \"June 18, 2026\",\n image: \"/assets/images/blog/jekyll-front-matter-guide.webp\"\n },\n \n {\n title: \"How to Deploy a Jekyll Site to Firebase Hosting (2026 Guide)\",\n excerpt: \"Firebase Hosting is Google’s static hosting platform — part of the Firebase suite alongside Firestore, Auth, and Cloud Functions. For a Jekyll site, it offer...\",\n url: \"/tutorial/2026/06/17/deploy-jekyll-firebase/\",\n tags: [],\n category: \"Tutorial\",\n date: \"June 17, 2026\",\n image: \"/assets/images/blog/deploy-jekyll-firebase.webp\"\n },\n \n {\n title: \"How to Deploy a Jekyll Site to AWS (S3 + CloudFront Guide)\",\n excerpt: \"Deploying a Jekyll site to AWS gives you enterprise-grade infrastructure with granular control over every aspect of your hosting. The standard setup combines...\",\n url: \"/tutorial/2026/06/16/deploy-jekyll-aws/\",\n tags: [],\n category: \"Tutorial\",\n date: \"June 16, 2026\",\n image: \"/assets/images/blog/deploy-jekyll-aws.webp\"\n },\n \n {\n title: \"How to Pick the Perfect Jekyll Theme for Your Website\",\n excerpt: \"Picking a Jekyll theme feels simple until you are staring at hundreds of options and realise they all look good in the screenshots. The wrong choice means ho...\",\n url: \"/themes/2026/06/15/how-to-pick-jekyll-theme/\",\n tags: [\"jekyll themes\",\"choose jekyll theme\",\"jekyll theme guide\",\"jekyll for beginners\"],\n category: \"Themes\",\n date: \"June 15, 2026\",\n image: \"/assets/images/blog/how-to-pick-jekyll-theme.webp\"\n },\n \n {\n title: \"How to Deploy a Jekyll Site to Vercel (2026 Guide)\",\n excerpt: \"Vercel is best known as the home of Next.js, but it works equally well for Jekyll sites. Its build infrastructure is fast, the developer experience is polish...\",\n url: \"/tutorial/2026/06/14/deploy-jekyll-vercel/\",\n tags: [],\n category: \"Tutorial\",\n date: \"June 14, 2026\",\n image: \"/assets/images/blog/deploy-jekyll-vercel.webp\"\n },\n \n {\n title: \"How to Deploy a Jekyll Site to Netlify (Complete 2026 Guide)\",\n excerpt: \"Netlify was the platform that made deploying static sites simple and it remains one of the best choices for Jekyll in 2026. Automatic deploys from Git, previ...\",\n url: \"/tutorial/2026/06/13/deploy-jekyll-netlify/\",\n tags: [],\n category: \"Tutorial\",\n date: \"June 13, 2026\",\n image: \"/assets/images/blog/deploy-jekyll-netlify.webp\"\n },\n \n {\n title: \"How to Deploy a Jekyll Site to Cloudflare Pages (Step-by-Step Guide)\",\n excerpt: \"Cloudflare Pages is one of the best places to host a Jekyll site in 2026. It is free for unlimited sites, has 300+ CDN locations worldwide, deploys automatic...\",\n url: \"/tutorial/2026/06/12/deploy-jekyll-cloudflare-pages/\",\n tags: [],\n category: \"Tutorial\",\n date: \"June 12, 2026\",\n image: \"/assets/images/blog/deploy-jekyll-cloudflare-pages.webp\"\n },\n \n {\n title: \"How to Grow Traffic to Your Jekyll Blog (A Practical Guide for 2026)\",\n excerpt: \"A Jekyll blog with zero visitors is just a collection of Markdown files. Getting consistent organic traffic requires deliberate effort — but it is not myster...\",\n url: \"/tutorial/2026/06/11/grow-jekyll-blog-traffic/\",\n tags: [],\n category: \"Tutorial\",\n date: \"June 11, 2026\",\n image: \"/assets/images/blog/grow-jekyll-blog-traffic.webp\"\n },\n \n {\n title: \"How to Monetize a Jekyll Blog in 2026 (7 Strategies That Actually Work)\",\n excerpt: \"Jekyll is a static site — it has no built-in monetization features. But that does not mean you cannot make money from it. The absence of a CMS or plugin mark...\",\n url: \"/tutorial/2026/06/10/jekyll-blog-monetization/\",\n tags: [],\n category: \"Tutorial\",\n date: \"June 10, 2026\",\n image: \"/assets/images/blog/jekyll-blog-monetization.webp\"\n },\n \n {\n title: \"How to Add a Custom 404 Page to Your Jekyll Site\",\n excerpt: \"A default 404 page is a dead end. A custom 404 page turns a broken link into an opportunity — pointing visitors to your most popular content, your search pag...\",\n url: \"/tutorial/2026/06/09/jekyll-custom-404-page/\",\n tags: [\"jekyll 404 page\",\"custom 404 jekyll\",\"jekyll error page\",\"jekyll not found page\"],\n category: \"Tutorial\",\n date: \"June 9, 2026\",\n image: \"/assets/images/blog/jekyll-custom-404.webp\"\n },\n \n {\n title: \"Using Jekyll for Open Source Project Documentation\",\n excerpt: \"Jekyll powers documentation for thousands of open source projects — Bootstrap, Jekyll itself, GitHub’s own docs, and hundreds of others. It is the natural ch...\",\n url: \"/tutorial/2026/06/08/jekyll-open-source-documentation/\",\n tags: [],\n category: \"Tutorial\",\n date: \"June 8, 2026\",\n image: \"/assets/images/blog/jekyll-open-source-documentation.webp\"\n },\n \n {\n title: \"How to Build a Resume or CV Website with Jekyll\",\n excerpt: \"An online resume or CV is one of the most valuable things a developer, designer, academic, or job seeker can have. A Jekyll-based CV gives you full control o...\",\n url: \"/tutorial/2026/06/07/jekyll-resume-cv-website/\",\n tags: [],\n category: \"Tutorial\",\n date: \"June 7, 2026\",\n image: \"/assets/images/blog/jekyll-resume-cv-website.webp\"\n },\n \n {\n title: \"Core Web Vitals for Jekyll Sites: A Practical Optimisation Guide (2026)\",\n excerpt: \"Jekyll sites start with an inherent performance advantage — no database, no server-side rendering, no PHP. But Core Web Vitals are not just about server spee...\",\n url: \"/tutorial/2026/06/06/jekyll-core-web-vitals/\",\n tags: [],\n category: \"Tutorial\",\n date: \"June 6, 2026\",\n image: \"/assets/images/blog/jekyll-core-web-vitals.webp\"\n },\n \n {\n title: \"Jekyll with a Headless CMS: Contentful, Sanity, and Decap Compared\",\n excerpt: \"Jekyll stores content as Markdown files — ideal for developers, frustrating for non-technical editors who want a visual dashboard. A headless CMS solves this...\",\n url: \"/tutorial/2026/06/05/jekyll-headless-cms/\",\n tags: [],\n category: \"Tutorial\",\n date: \"June 5, 2026\",\n image: \"/assets/images/blog/jekyll-headless-cms.webp\"\n },\n \n {\n title: \"How to Add a CMS to Jekyll with Decap CMS (Formerly Netlify CMS)\",\n excerpt: \"Jekyll is code-first — posts are Markdown files, publishing means a Git commit. That’s great for developers but a barrier for non-technical collaborators. De...\",\n url: \"/tutorial/2026/06/04/jekyll-decap-cms/\",\n tags: [\"jekyll cms\",\"decap cms jekyll\",\"netlify cms jekyll\",\"jekyll headless cms\",\"jekyll admin panel\"],\n category: \"Tutorial\",\n date: \"June 4, 2026\",\n image: \"/assets/images/blog/jekyll-decap-cms.webp\"\n },\n \n {\n title: \"How to Add Interactivity to Jekyll with Alpine.js\",\n excerpt: \"Jekyll produces static HTML — no JavaScript framework, no reactive state, just pages. That is a feature, not a bug. But sometimes you need a little interacti...\",\n url: \"/tutorial/2026/06/03/jekyll-alpine-js/\",\n tags: [],\n category: \"Tutorial\",\n date: \"June 3, 2026\",\n image: \"/assets/images/blog/jekyll-alpine-js.webp\"\n },\n \n {\n title: \"How to Use Tailwind CSS with Jekyll (2026 Guide)\",\n excerpt: \"Tailwind CSS and Jekyll are a natural combination — Tailwind’s utility-first approach works beautifully in Liquid templates, and the purging process eliminat...\",\n url: \"/tutorial/2026/06/02/jekyll-tailwind-css/\",\n tags: [],\n category: \"Tutorial\",\n date: \"June 2, 2026\",\n image: \"/assets/images/blog/jekyll-tailwind-css.webp\"\n },\n \n {\n title: \"Jekyll vs Webflow: Which Is Right for Your Website in 2026?\",\n excerpt: \"Jekyll and Webflow represent two very different approaches to building websites. Jekyll is a code-first static site generator. Webflow is a visual design too...\",\n url: \"/comparison/2026/06/01/jekyll-vs-webflow/\",\n tags: [],\n category: \"Comparison\",\n date: \"June 1, 2026\",\n image: \"/assets/images/blog/jekyll-vs-webflow.webp\"\n },\n \n {\n title: \"Jekyll vs Ghost: Which Platform Is Right for Your Blog in 2026?\",\n excerpt: \"Jekyll and Ghost are both popular choices for bloggers and writers, but they come from opposite ends of the web publishing spectrum. Jekyll is a static site ...\",\n url: \"/comparison/2026/05/31/jekyll-vs-ghost/\",\n tags: [],\n category: \"Comparison\",\n date: \"May 31, 2026\",\n image: \"/assets/images/blog/jekyll-vs-ghost.webp\"\n },\n \n {\n title: \"Jekyll vs Astro: Which Static Site Generator Should You Use in 2026?\",\n excerpt: \"Astro launched in 2021 and quickly became one of the most talked-about static site generators. Jekyll has been around since 2008 and remains one of the most ...\",\n url: \"/comparison/2026/05/30/jekyll-vs-astro/\",\n tags: [],\n category: \"Comparison\",\n date: \"May 30, 2026\",\n image: \"/assets/images/blog/jekyll-vs-astro.webp\"\n },\n \n {\n title: \"Accessibility Best Practices for Jekyll Themes (WCAG 2.2 Guide)\",\n excerpt: \"Accessibility is not a nice-to-have — it determines whether your content reaches everyone. An inaccessible Jekyll theme excludes users with visual, motor, an...\",\n url: \"/tutorial/2026/05/29/jekyll-accessibility-wcag/\",\n tags: [\"jekyll accessibility\",\"wcag jekyll\",\"accessible jekyll theme\",\"jekyll aria\"],\n category: \"Tutorial\",\n date: \"May 29, 2026\",\n image: \"/assets/images/blog/jekyll-accessibility.webp\"\n },\n \n {\n title: \"How to Sell a Jekyll Theme: A Complete Guide for Developers\",\n excerpt: \"Building a great Jekyll theme is one thing. Turning it into a product people will pay for is another. This guide covers everything — from what buyers expect ...\",\n url: \"/tutorial/2026/05/28/how-to-sell-jekyll-theme/\",\n tags: [],\n category: \"Tutorial\",\n date: \"May 28, 2026\",\n image: \"/assets/images/blog/how-to-sell-jekyll-theme.webp\"\n },\n \n {\n title: \"Best Jekyll Themes for Writers and Bloggers in 2026\",\n excerpt: \"Writers have different needs from developers. You want beautiful typography, generous line spacing, a clean reading experience, and a design that makes your ...\",\n url: \"/themes/2026/05/27/jekyll-themes-for-writers/\",\n tags: [],\n category: \"Themes\",\n date: \"May 27, 2026\",\n image: \"/assets/images/blog/jekyll-themes-for-writers.webp\"\n },\n \n {\n title: \"How to Set Up a Multi-Author Jekyll Blog\",\n excerpt: \"Jekyll does not have user accounts or a login system, but it handles multiple authors elegantly using collections. You define each author as a data file or c...\",\n url: \"/tutorial/2026/05/26/jekyll-multi-author-blog/\",\n tags: [],\n category: \"Tutorial\",\n date: \"May 26, 2026\",\n image: \"/assets/images/blog/jekyll-multi-author-blog.webp\"\n },\n \n {\n title: \"Best Jekyll Themes for Small Business Websites in 2026\",\n excerpt: \"Jekyll is an excellent choice for small business websites. Pages load in milliseconds, hosting is free or nearly free, and there is no database to hack or Wo...\",\n url: \"/themes/2026/05/25/best-jekyll-themes-small-business/\",\n tags: [],\n category: \"Themes\",\n date: \"May 25, 2026\",\n image: \"/assets/images/blog/best-jekyll-themes-small-business.webp\"\n },\n \n {\n title: \"How to Add an Email Newsletter Signup to Your Jekyll Site\",\n excerpt: \"Building an email list is one of the highest-value things you can do for a content site — owned audience, no algorithm dependency. Jekyll doesn’t have a buil...\",\n url: \"/tutorial/2026/05/24/jekyll-newsletter-signup/\",\n tags: [\"jekyll newsletter\",\"mailchimp jekyll\",\"convertkit jekyll\",\"jekyll email signup\",\"static site newsletter\"],\n category: \"Tutorial\",\n date: \"May 24, 2026\",\n image: \"/assets/images/blog/jekyll-newsletter-signup.webp\"\n },\n \n {\n title: \"Jekyll E-commerce with Snipcart: Add a Shopping Cart to Your Static Site\",\n excerpt: \"Jekyll is a static site generator — it does not have a database, a server, or a shopping cart. But that does not mean you cannot sell online. Snipcart is a J...\",\n url: \"/tutorial/2026/05/23/jekyll-ecommerce-snipcart/\",\n tags: [],\n category: \"Tutorial\",\n date: \"May 23, 2026\",\n image: \"/assets/images/blog/jekyll-ecommerce-snipcart.webp\"\n },\n \n {\n title: \"Jekyll Environment Variables: The Complete Guide\",\n excerpt: \"Environment variables in Jekyll are simpler than you might expect — but also more limited than many developers assume coming from Node.js or Python. Here is ...\",\n url: \"/tutorial/2026/05/22/jekyll-environment-variables/\",\n tags: [],\n category: \"Tutorial\",\n date: \"May 22, 2026\",\n image: \"/assets/images/blog/jekyll-environment-variables.webp\"\n },\n \n {\n title: \"Jekyll Liquid Filters: The Complete Cheatsheet (2026)\",\n excerpt: \"Liquid filters transform output in Jekyll templates. They are chained with the pipe character | and applied to variables, strings, numbers, arrays, and dates...\",\n url: \"/tutorial/2026/05/21/jekyll-liquid-filters-cheatsheet/\",\n tags: [],\n category: \"Tutorial\",\n date: \"May 21, 2026\",\n image: \"/assets/images/blog/jekyll-liquid-filters-cheatsheet.webp\"\n },\n \n {\n title: \"Best Minimal Jekyll Themes in 2026 (Clean, Fast, Distraction-Free)\",\n excerpt: \"Minimal themes are the most popular category in the Jekyll ecosystem — and for good reason. A minimal design puts the focus on your content, loads in millise...\",\n url: \"/themes/2026/05/20/jekyll-minimal-themes/\",\n tags: [],\n category: \"Themes\",\n date: \"May 20, 2026\",\n image: \"/assets/images/blog/jekyll-minimal-themes.webp\"\n },\n \n {\n title: \"Jekyll vs Next.js: A Practical Comparison for 2026\",\n excerpt: \"Jekyll and Next.js are both capable of producing fast, statically-generated websites. But comparing them is a bit like comparing a bicycle to a car — they ar...\",\n url: \"/comparison/2026/05/19/jekyll-vs-nextjs/\",\n tags: [],\n category: \"Comparison\",\n date: \"May 19, 2026\",\n image: \"/assets/images/blog/jekyll-vs-nextjs.webp\"\n },\n \n {\n title: \"How to Set Up a Custom Domain for Your Jekyll Site\",\n excerpt: \"Getting your Jekyll site onto a custom domain takes about 10–30 minutes. The process is the same regardless of which registrar you use — you update DNS recor...\",\n url: \"/tutorial/2026/05/18/jekyll-custom-domain/\",\n tags: [\"jekyll custom domain\",\"github pages custom domain\",\"netlify custom domain\",\"jekyll domain setup\"],\n category: \"Tutorial\",\n date: \"May 18, 2026\",\n image: \"/assets/images/blog/jekyll-custom-domain.webp\"\n },\n \n {\n title: \"How to Add a Table of Contents to Jekyll Posts\",\n excerpt: \"A table of contents helps readers navigate long posts and signals to Google that your content is structured and comprehensive. Jekyll has three ways to add o...\",\n url: \"/tutorial/2026/05/13/jekyll-table-of-contents/\",\n tags: [\"jekyll table of contents\",\"jekyll toc\",\"jekyll kramdown toc\",\"jekyll post navigation\"],\n category: \"Tutorial\",\n date: \"May 13, 2026\",\n image: \"/assets/images/blog/jekyll-table-of-contents.webp\"\n },\n \n {\n title: \"Jekyll Data Files: The Complete Guide to _data\",\n excerpt: \"The _data folder is one of Jekyll’s most underused features. It lets you store structured content — navigation menus, team members, FAQs, pricing tables, soc...\",\n url: \"/tutorial/2026/05/07/jekyll-data-files/\",\n tags: [\"jekyll data files\",\"jekyll _data\",\"jekyll yaml\",\"jekyll liquid data\"],\n category: \"Tutorial\",\n date: \"May 7, 2026\",\n image: \"/assets/images/blog/jekyll-data-files.webp\"\n },\n \n {\n title: \"Jekyll vs WordPress: Should You Switch in 2026?\",\n excerpt: \"WordPress powers 43% of the web. Jekyll powers a fraction of that. So why would anyone switch? For the right kind of site, Jekyll is dramatically better — fa...\",\n url: \"/comparison/2026/05/02/jekyll-vs-wordpress/\",\n tags: [\"jekyll vs wordpress\",\"switch wordpress to jekyll\",\"wordpress alternative\",\"static site vs wordpress\"],\n category: \"Comparison\",\n date: \"May 2, 2026\",\n image: \"/assets/images/blog/jekyll-vs-wordpress.webp\"\n },\n \n {\n title: \"How to Add a Contact Form to Your Jekyll Site\",\n excerpt: \"Jekyll generates static HTML — there’s no server-side code to process form submissions. But you don’t need one. Three services handle form submissions for st...\",\n url: \"/tutorial/2026/04/26/jekyll-contact-form/\",\n tags: [\"jekyll contact form\",\"formspree jekyll\",\"netlify forms jekyll\",\"static site contact form\"],\n category: \"Tutorial\",\n date: \"April 26, 2026\",\n image: \"/assets/images/blog/jekyll-contact-form.webp\"\n },\n \n {\n title: \"How to Add Google Analytics to Your Jekyll Site\",\n excerpt: \"Adding Google Analytics to Jekyll takes about 5 minutes. This guide covers Google Analytics 4 (GA4), the only version Google currently supports, plus tips fo...\",\n url: \"/tutorial/2026/04/21/add-google-analytics-jekyll/\",\n tags: [\"jekyll google analytics\",\"google analytics 4 jekyll\",\"jekyll analytics\",\"jekyll tracking\"],\n category: \"Tutorial\",\n date: \"April 21, 2026\",\n image: \"/assets/images/blog/jekyll-google-analytics.webp\"\n },\n \n {\n title: \"Jekyll Hosting Comparison: GitHub Pages vs Netlify vs Cloudflare Pages vs Vercel\",\n excerpt: \"Choosing where to host your Jekyll site is one of the first decisions you’ll make — and all four major platforms are free for personal projects. The differen...\",\n url: \"/tutorial/2026/04/15/jekyll-hosting-comparison/\",\n tags: [\"jekyll hosting\",\"github pages vs netlify\",\"cloudflare pages jekyll\",\"vercel jekyll\",\"static site hosting\"],\n category: \"Tutorial\",\n date: \"April 15, 2026\",\n image: \"/assets/images/blog/jekyll-hosting-comparison.webp\"\n },\n \n {\n title: \"How to Migrate from WordPress to Jekyll Without Losing SEO\",\n excerpt: \"Migrating from WordPress to Jekyll can destroy your search rankings if done carelessly — or preserve them completely if done right. The difference is almost ...\",\n url: \"/tutorial/2026/04/10/migrate-wordpress-to-jekyll-seo/\",\n tags: [\"wordpress to jekyll\",\"migrate without losing seo\",\"jekyll seo migration\",\"301 redirects jekyll\"],\n category: \"Tutorial\",\n date: \"April 10, 2026\",\n image: \"/assets/images/blog/migrate-wordpress-jekyll-seo.webp\"\n },\n \n {\n title: \"Create Dynamic Navigation and Smart Sidebars in Jekyll\",\n excerpt: \"Hard-coded navigation and static sidebars are the first thing that makes a Jekyll theme feel unpolished. This guide covers building dynamic navigation driven...\",\n url: \"/tutorial/2026/04/05/jekyll-navigation-sidebars/\",\n tags: [\"jekyll navigation\",\"jekyll sidebar\",\"jekyll menu\",\"jekyll liquid\"],\n category: \"Tutorial\",\n date: \"April 5, 2026\",\n image: \"/assets/images/blog/jekyll-navigation-sidebars.webp\"\n },\n \n {\n title: \"Jekyll Theme Architecture: Best Practices for Clean & Scalable Code\",\n excerpt: \"Most Jekyll sites start as a quick setup and slowly become hard to maintain — styles scattered across files, layouts duplicating logic, includes tangled with...\",\n url: \"/tutorial/2026/03/30/jekyll-theme-architecture/\",\n tags: [\"jekyll theme development\",\"jekyll architecture\",\"jekyll best practices\",\"jekyll sass structure\"],\n category: \"Tutorial\",\n date: \"March 30, 2026\",\n image: \"/assets/images/blog/jekyll-theme-architecture.webp\"\n },\n \n {\n title: \"How to Build a Jekyll Theme from Scratch\",\n excerpt: \"Building a Jekyll theme from scratch is the fastest way to deeply understand Jekyll — and it’s more achievable than it sounds. This guide walks through build...\",\n url: \"/tutorial/2026/03/25/build-jekyll-theme-from-scratch/\",\n tags: [\"jekyll theme development\",\"create jekyll theme\",\"jekyll gem theme\",\"build jekyll theme\"],\n category: \"Tutorial\",\n date: \"March 25, 2026\",\n image: \"/assets/images/blog/build-jekyll-theme-scratch.webp\"\n },\n \n {\n title: \"25 Best Jekyll Themes for Blogs and Portfolios in 2026\",\n excerpt: \"Looking for a Jekyll theme in 2026? There are thousands on GitHub, but most are outdated, poorly maintained, or just not that good. This list covers the 25 b...\",\n url: \"/themes/2026/03/19/best-jekyll-themes-blogs-portfolios/\",\n tags: [\"best jekyll themes\",\"jekyll blog themes\",\"jekyll portfolio themes\",\"jekyll themes 2026\"],\n category: \"Themes\",\n date: \"March 19, 2026\",\n image: \"/assets/images/blog/best-jekyll-themes-2026.webp\"\n },\n \n {\n title: \"Jekyll vs Hugo vs Eleventy: Which Static Site Generator in 2026?\",\n excerpt: \"Jekyll, Hugo, and Eleventy are the three most popular static site generators in 2026. They all produce fast, secure static sites — but they make very differe...\",\n url: \"/comparison/2026/03/14/jekyll-vs-hugo-eleventy/\",\n tags: [\"jekyll vs hugo\",\"jekyll vs eleventy\",\"static site generators 2026\",\"best static site generator\"],\n category: \"Comparison\",\n date: \"March 14, 2026\",\n image: \"/assets/images/blog/jekyll-vs-hugo-vs-eleventy.webp\"\n },\n \n {\n title: \"How to Build a Portfolio Website with Jekyll\",\n excerpt: \"A Jekyll portfolio site is fast, free to host, and lives in a GitHub repository — which itself signals professionalism to employers and clients. This guide c...\",\n url: \"/tutorial/2026/03/08/jekyll-portfolio-website/\",\n tags: [\"jekyll portfolio\",\"portfolio website jekyll\",\"jekyll developer portfolio\",\"github pages portfolio\"],\n category: \"Tutorial\",\n date: \"March 8, 2026\",\n image: \"/assets/images/blog/jekyll-portfolio.webp\"\n },\n \n {\n title: \"How to Convert an HTML Template to a Jekyll Theme\",\n excerpt: \"You have an HTML template you like — clean design, good structure — but you want to run it as a Jekyll site so you can write in Markdown and deploy to GitHub...\",\n url: \"/tutorial/2026/03/03/convert-html-to-jekyll-theme/\",\n tags: [\"jekyll theme development\",\"html to jekyll\",\"create jekyll theme\",\"jekyll tutorial\"],\n category: \"Tutorial\",\n date: \"March 3, 2026\",\n image: \"/assets/images/blog/convert-html-jekyll-theme.webp\"\n },\n \n {\n title: \"How to Auto-Generate Tag and Category Pages in Jekyll\",\n excerpt: \"If you click a tag on most Jekyll blogs, you get a 404. That’s because Jekyll doesn’t generate tag or category pages by default. The jekyll-archives plugin f...\",\n url: \"/tutorial/2026/02/25/jekyll-tag-category-pages/\",\n tags: [\"jekyll tags\",\"jekyll categories\",\"jekyll archives\",\"jekyll tag pages\"],\n category: \"Tutorial\",\n date: \"February 25, 2026\",\n image: \"/assets/images/blog/jekyll-tag-category-pages.webp\"\n },\n \n {\n title: \"How to Add Schema Markup to Your Jekyll Site\",\n excerpt: \"Schema markup tells search engines what your content is about — not just the words, but the type of content. It can earn your site rich snippets in Google’s ...\",\n url: \"/seo/2026/02/20/jekyll-schema-markup/\",\n tags: [\"jekyll schema markup\",\"json-ld jekyll\",\"structured data jekyll\",\"jekyll rich snippets\"],\n category: \"SEO\",\n date: \"February 20, 2026\",\n image: \"/assets/images/blog/jekyll-schema-markup.webp\"\n },\n \n {\n title: \"How to Make Your Jekyll Site Load Under 1 Second\",\n excerpt: \"Jekyll sites are inherently fast — there’s no PHP, no database, no server-side rendering. But “fast” isn’t automatic. Poor image handling, unminified CSS, an...\",\n url: \"/tutorial/2026/02/14/jekyll-performance/\",\n tags: [\"jekyll performance\",\"jekyll speed\",\"static site performance\",\"core web vitals jekyll\"],\n category: \"Tutorial\",\n date: \"February 14, 2026\",\n image: \"/assets/images/blog/jekyll-performance.webp\"\n },\n \n {\n title: \"How to Add Pagination to Your Jekyll Blog\",\n excerpt: \"By default, Jekyll lists all your posts on a single page. Once you have 20+ posts, that page becomes slow and hard to navigate. Pagination splits posts acros...\",\n url: \"/tutorial/2026/02/09/jekyll-pagination/\",\n tags: [\"jekyll pagination\",\"jekyll paginate\",\"jekyll blog pagination\"],\n category: \"Tutorial\",\n date: \"February 9, 2026\",\n image: \"/assets/images/blog/jekyll-pagination.webp\"\n },\n \n {\n title: \"Jekyll Collections: The Complete Guide\",\n excerpt: \"Collections are one of Jekyll’s most powerful features — and one of the most underused. They let you create custom content types beyond posts and pages: prod...\",\n url: \"/tutorial/2026/02/04/jekyll-collections-guide/\",\n tags: [\"jekyll collections\",\"jekyll custom content types\",\"jekyll _config.yml\"],\n category: \"Tutorial\",\n date: \"February 4, 2026\",\n image: \"/assets/images/blog/jekyll-collections.webp\"\n },\n \n {\n title: \"How to Add Search to a Jekyll Site (Lunr.js vs Algolia)\",\n excerpt: \"Jekyll doesn’t include search out of the box — but adding it is simpler than you might think. This guide covers the two best options: Lunr.js for a free, no-...\",\n url: \"/tutorial/2026/01/29/add-search-jekyll/\",\n tags: [\"jekyll search\",\"lunr.js jekyll\",\"algolia jekyll\",\"static site search\"],\n category: \"Tutorial\",\n date: \"January 29, 2026\",\n image: \"/assets/images/blog/jekyll-search.webp\"\n },\n \n {\n title: \"How to Automate Jekyll Builds with GitHub Actions\",\n excerpt: \"GitHub Actions can build, test, and deploy your Jekyll site automatically on every push. This guide covers everything from the basic setup to advanced workfl...\",\n url: \"/tutorial/2026/01/24/jekyll-github-actions/\",\n tags: [\"jekyll github actions\",\"jekyll ci cd\",\"github actions jekyll\",\"jekyll deployment\"],\n category: \"Tutorial\",\n date: \"January 24, 2026\",\n image: \"/assets/images/blog/jekyll-github-actions.webp\"\n },\n \n {\n title: \"How to Build a Documentation Site with Jekyll\",\n excerpt: \"Jekyll is one of the best tools for documentation sites. The result is fast, searchable, version-controllable, and free to host. This guide walks through bui...\",\n url: \"/tutorial/2026/01/18/jekyll-documentation-site/\",\n tags: [\"jekyll documentation\",\"jekyll docs site\",\"just the docs\",\"static documentation\"],\n category: \"Tutorial\",\n date: \"January 18, 2026\",\n image: \"/assets/images/blog/jekyll-documentation-site.webp\"\n },\n \n {\n title: \"How to Add Comments to Jekyll: Disqus vs Giscus vs Utterances\",\n excerpt: \"Jekyll doesn’t have a built-in comment system — it’s a static site generator. But you have three solid options that work well with static sites. Here’s how e...\",\n url: \"/tutorial/2026/01/13/add-comments-jekyll/\",\n tags: [\"jekyll comments\",\"giscus jekyll\",\"disqus jekyll\",\"utterances jekyll\",\"static site comments\"],\n category: \"Tutorial\",\n date: \"January 13, 2026\",\n image: \"/assets/images/blog/jekyll-comments.webp\"\n },\n \n {\n title: \"15 Must-Have Jekyll Plugins for 2026\",\n excerpt: \"Jekyll’s plugin ecosystem is smaller than WordPress’s, but it has everything you need. These 15 plugins cover SEO, performance, content management, and quali...\",\n url: \"/tutorial/2026/01/07/must-have-jekyll-plugins/\",\n tags: [\"jekyll plugins\",\"best jekyll plugins\",\"jekyll seo tag\",\"jekyll sitemap\"],\n category: \"Tutorial\",\n date: \"January 7, 2026\",\n image: \"/assets/images/blog/must-have-jekyll-plugins.webp\"\n },\n \n {\n title: \"How to Add Dark Mode to Your Jekyll Site\",\n excerpt: \"Dark mode is no longer optional — it’s expected. This guide shows you how to add a proper dark mode toggle to any Jekyll site, with the user’s preference sav...\",\n url: \"/tutorial/2026/01/02/add-dark-mode-jekyll/\",\n tags: [\"jekyll dark mode\",\"dark mode toggle\",\"css dark mode\",\"jekyll tutorial\"],\n category: \"Tutorial\",\n date: \"January 2, 2026\",\n image: \"/assets/images/blog/add-dark-mode-jekyll.webp\"\n },\n \n {\n title: \"Deploy Jekyll to GitHub Pages in 10 Minutes\",\n excerpt: \"GitHub Pages is the fastest way to get a Jekyll site online — and it’s completely free. This guide gets you from zero to a live site in 10 minutes.\\n\\n\",\n url: \"/tutorial/2025/12/27/deploy-jekyll-github-pages/\",\n tags: [\"deploy jekyll github pages\",\"jekyll github pages\",\"github pages tutorial\",\"jekyll hosting\"],\n category: \"Tutorial\",\n date: \"December 27, 2025\",\n image: \"/assets/images/blog/deploy-jekyll-github-pages.webp\"\n },\n \n {\n title: \"Free vs Premium Jekyll Themes: What's Actually Worth Paying For?\",\n excerpt: \"There are thousands of free Jekyll themes on GitHub. So why would anyone pay for one? The honest answer: it depends on what you need. This post breaks down w...\",\n url: \"/themes/2025/12/22/free-vs-premium-jekyll-themes/\",\n tags: [\"free jekyll themes\",\"premium jekyll themes\",\"jekyll theme comparison\",\"buy jekyll theme\"],\n category: \"Themes\",\n date: \"December 22, 2025\",\n image: \"/assets/images/blog/free-vs-premium-jekyll-themes.webp\"\n },\n \n {\n title: \"Jekyll SEO Guide: How to Rank Higher on Google\",\n excerpt: \"Jekyll gives you a significant SEO head start over WordPress — no bloated plugins, no slow database queries, and near-perfect Core Web Vitals out of the box....\",\n url: \"/seo/2025/12/16/jekyll-seo-guide/\",\n tags: [\"jekyll seo\",\"seo for jekyll\",\"jekyll meta tags\",\"jekyll sitemap\",\"static site seo\"],\n category: \"SEO\",\n date: \"December 16, 2025\",\n image: \"/assets/images/blog/jekyll-seo-guide.webp\"\n },\n \n {\n title: \"How to Migrate from WordPress to Jekyll (Complete Guide)\",\n excerpt: \"Moving from WordPress to Jekyll is one of the most common migrations in the static site world — and for good reason. Jekyll sites are faster, cheaper to host...\",\n url: \"/tutorial/2025/12/11/migrate-wordpress-to-jekyll/\",\n tags: [\"wordpress to jekyll\",\"migrate wordpress jekyll\",\"jekyll migration\",\"static site migration\"],\n category: \"Tutorial\",\n date: \"December 11, 2025\",\n image: \"/assets/images/blog/migrate-wordpress-to-jekyll.webp\"\n },\n \n {\n title: \"25 Common Jekyll Errors and How to Fix Them Fast\",\n excerpt: \"Jekyll errors can stop your build dead in its tracks. Whether you are setting up for the first time or have been running Jekyll for years, these errors show ...\",\n url: \"/tutorial/2025/12/05/common-jekyll-errors/\",\n tags: [\"jekyll errors\",\"jekyll troubleshooting\",\"jekyll build errors\",\"jekyll fix\"],\n category: \"Tutorial\",\n date: \"December 5, 2025\",\n image: \"/assets/images/blog/common-jekyll-errors.webp\"\n },\n \n {\n title: \"Jekyll Theme Setup Tutorial: Complete Walkthrough (2026)\",\n excerpt: \"This tutorial walks you through the complete process of setting up a Jekyll theme — from a blank machine to a fully configured, live website. No prior Jekyll...\",\n url: \"/tutorial/2025/11/30/jekyll-theme-setup-tutorial/\",\n tags: [\"jekyll theme setup\",\"jekyll tutorial\",\"jekyll configuration\",\"github pages\"],\n category: \"Tutorial\",\n date: \"November 30, 2025\",\n image: \"/assets/images/blog/jekyll-theme-setup-tutorial.webp\"\n },\n \n {\n title: \"Jekyll Blog Setup Guide: From Zero to Live in 30 Minutes (2026)\",\n excerpt: \"Jekyll is the most popular static site generator for personal blogs — and for good reason. It’s free to host on GitHub Pages, blazing fast, and once set up, ...\",\n url: \"/tutorial/2025/11/25/jekyll-blog-setup-guide/\",\n tags: [\"jekyll blog\",\"jekyll setup\",\"github pages\",\"beginner guide\"],\n category: \"Tutorial\",\n date: \"November 25, 2025\",\n image: \"/assets/images/blog/jekyll-blog-setup-guide.webp\"\n },\n \n {\n title: \"Best Jekyll Themes for a Portfolio Website (2026)\",\n excerpt: \"A portfolio is one of the best use cases for Jekyll. Static files load instantly, hosting is free on GitHub Pages, and the result looks as good as any dynami...\",\n url: \"/roundup/2025/11/19/jekyll-theme-portfolio-website/\",\n tags: [\"jekyll portfolio theme\",\"portfolio website\",\"jekyll themes\",\"developer portfolio\"],\n category: \"Roundup\",\n date: \"November 19, 2025\",\n image: \"/assets/images/blog/jekyll-portfolio-themes.webp\"\n },\n \n {\n title: \"Jekyll vs Hugo: Full Comparison for 2026 (Themes, Speed, Hosting)\",\n excerpt: \"Jekyll and Hugo are the two most popular static site generators. Both produce fast, secure static websites — but they approach it differently. This compariso...\",\n url: \"/comparison/2025/11/14/jekyll-vs-hugo-themes/\",\n tags: [\"jekyll vs hugo\",\"static site generators\",\"jekyll themes\",\"hugo themes\",\"github pages\"],\n category: \"Comparison\",\n date: \"November 14, 2025\",\n image: \"/assets/images/blog/jekyll-vs-hugo-themes.webp\"\n },\n \n {\n title: \"Best Static Site Themes in 2026 (Jekyll, Hugo & Eleventy)\",\n excerpt: \"Static site generators have matured into a serious alternative to WordPress and other CMS platforms. Jekyll, Hugo, and Eleventy each have strong theme ecosys...\",\n url: \"/roundup/2025/11/08/best-static-site-themes/\",\n tags: [\"static site themes\",\"best jekyll themes\",\"hugo themes\",\"eleventy themes\"],\n category: \"Roundup\",\n date: \"November 8, 2025\",\n image: \"/assets/images/blog/best-static-site-themes.webp\"\n },\n \n {\n title: \"Jekyll Theme vs WordPress Theme: Which Should You Choose in 2026?\",\n excerpt: \"Choosing between Jekyll and WordPress is one of the most common decisions developers and bloggers face. Both power millions of websites — but they are fundam...\",\n url: \"/comparison/2025/11/03/jekyll-theme-vs-wordpress-theme/\",\n tags: [\"jekyll vs wordpress\",\"static site vs cms\",\"jekyll theme\",\"wordpress theme\"],\n category: \"Comparison\",\n date: \"November 3, 2025\",\n image: \"/assets/images/blog/jekyll-vs-wordpress.webp\"\n },\n \n {\n title: \"How to Change Your Jekyll Theme (Without Losing Content)\",\n excerpt: \"Changing a Jekyll theme is straightforward if you follow the right steps. The key is understanding what belongs to the theme and what belongs to your content...\",\n url: \"/tutorial/2025/10/28/how-to-change-jekyll-theme/\",\n tags: [\"change jekyll theme\",\"switch jekyll theme\",\"jekyll migration\",\"tutorial\"],\n category: \"Tutorial\",\n date: \"October 28, 2025\",\n image: \"/assets/images/blog/how-to-change-jekyll-theme.webp\"\n },\n \n {\n title: \"GitHub Pages Jekyll Theme: Complete Setup Guide (2026)\",\n excerpt: \"GitHub Pages is the most popular way to host a Jekyll site — it’s free, integrates directly with your repository, and rebuilds automatically on every push. T...\",\n url: \"/tutorial/2025/10/23/github-pages-jekyll-theme/\",\n tags: [\"github pages\",\"jekyll theme\",\"github pages jekyll\",\"tutorial\"],\n category: \"Tutorial\",\n date: \"October 23, 2025\",\n image: \"/assets/images/blog/github-pages-jekyll-theme.webp\"\n },\n \n {\n title: \"How to Customize a Jekyll Theme (Complete Guide 2026)\",\n excerpt: \"Customizing a Jekyll theme doesn’t mean editing the theme files directly — that approach breaks every time you update the theme. The right way is to use Jeky...\",\n url: \"/tutorial/2025/10/17/how-to-customize-jekyll-theme/\",\n tags: [\"customize jekyll theme\",\"jekyll scss\",\"jekyll layouts\",\"tutorial\"],\n category: \"Tutorial\",\n date: \"October 17, 2025\",\n image: \"/assets/images/blog/how-to-customize-jekyll-theme.webp\"\n },\n \n {\n title: \"How to Install a Jekyll Theme (Step-by-Step Guide for 2026)\",\n excerpt: \"Installing a Jekyll theme is one of the first things you will do when building a static site. Whether you are using GitHub Pages, a local Jekyll setup, or de...\",\n url: \"/tutorial/2025/10/12/how-to-install-jekyll-theme/\",\n tags: [\"install jekyll theme\",\"jekyll setup\",\"github pages\",\"tutorial\"],\n category: \"Tutorial\",\n date: \"October 12, 2025\",\n image: \"/assets/images/blog/how-to-install-jekyll-theme.webp\"\n },\n \n {\n title: \"Best Free Jekyll Themes for GitHub Pages (2026)\",\n excerpt: \"GitHub Pages is the easiest way to host a Jekyll site — free, reliable, and zero configuration. The catch is that it only supports a whitelist of plugins and...\",\n url: \"/blog/2025/10/06/free-jekyll-themes-github-pages/\",\n tags: [\"free jekyll themes\",\"github pages\",\"open source\"],\n category: \"Blog\",\n date: \"October 6, 2025\",\n image: \"/assets/images/blog/free-jekyll-themes-github-pages.webp\"\n },\n \n {\n title: \"35 Best Jekyll Themes for 2026 (Free + Premium)\",\n excerpt: \"Jekyll remains one of the most reliable static site generators in 2026 — fast, GitHub Pages native, and backed by a thriving theme ecosystem. Whether you are...\",\n url: \"/blog/2025/10/01/best-jekyll-themes-2026/\",\n tags: [\"jekyll themes\",\"best themes\",\"free themes\",\"premium themes\"],\n category: \"Blog\",\n date: \"October 1, 2025\",\n image: \"/assets/images/blog/best-jekyll-themes-2026.webp\"\n }\n \n ],\n testimonials: [\n \n {\n name: \"Sarah Reynolds\",\n role: \"Freelance Developer\",\n rating: 5,\n quote: \"Found the perfect portfolio theme in minutes. Clean code, well documented, and looks stunning out of the box. Saved me days of work.\"\n },\n \n {\n name: \"Marcus Thornton\",\n role: \"Full-Stack Engineer\",\n rating: 5,\n quote: \"Switched from WordPress and couldn't be happier. The themes here are modern, fast, and actually work with Jekyll without hacks.\"\n },\n \n {\n name: \"James Kowalski\",\n role: \"Open Source Maintainer\",\n rating: 5,\n quote: \"The documentation theme I picked made my open source project look incredibly professional. My users noticed the difference immediately.\"\n },\n \n {\n name: \"Aisha Langford\",\n role: \"Technical Writer\",\n rating: 4.5,\n quote: \"Great selection of blog themes. I launched my personal blog in an afternoon — setup was painless and the design is exactly what I wanted.\"\n },\n \n {\n name: \"David Carver\",\n role: \"Product Designer\",\n rating: 4,\n quote: \"Really impressed by the quality. The premium theme I bought had more features than themes costing 3× the price on other marketplaces.\"\n },\n \n {\n name: \"Nina Patel\",\n role: \"UX Designer\",\n rating: 5,\n quote: \"Finally a Jekyll marketplace that takes design seriously. Every theme looks hand-crafted, not like a generic template with the colours swapped.\"\n },\n \n {\n name: \"Tom Whitfield\",\n role: \"Indie Hacker\",\n rating: 5,\n quote: \"Launched my SaaS landing page using a JekyllHub theme. Got compliments on the design before I even launched the product.\"\n },\n \n {\n name: \"Elena Marchetti\",\n role: \"Academic Researcher\",\n rating: 4.5,\n quote: \"The academic theme I found here is exactly what my lab website needed — clean, fast, and easy for non-technical colleagues to update.\"\n },\n \n {\n name: \"Ryan Summers\",\n role: \"Backend Developer\",\n rating: 4.5,\n quote: \"I'm not a designer but my site looks like I am. The theme was drop-in ready and the customisation was straightforward.\"\n }\n \n ]\n };\n </script>\n\n <main id=\"main-content\">\n <div class=\"read-progress\" id=\"read-progress\"></div>\n\n<article class=\"post\" itemscope itemtype=\"https://schema.org/BlogPosting\">\n\n <header class=\"post-hero\">\n <div class=\"container\">\n <div class=\"post-hero__breadcrumb\">\n <a href=\"/\">Home</a>\n <span class=\"breadcrumb-sep\">›</span>\n <a href=\"/blog/\">Blog</a>\n <span class=\"breadcrumb-sep\">›</span>\n <span>Jekyll vs Next.js: A Practical Comparison for 2026</span>\n </div>\n\n <div class=\"post-hero__inner\">\n \n <span class=\"post-hero__cat\">Comparison</span>\n \n\n <h1 class=\"post-hero__title\" itemprop=\"name\">Jekyll vs Next.js: A Practical Comparison for 2026</h1>\n\n \n <p class=\"post-hero__desc\" itemprop=\"description\">Jekyll and Next.js both produce fast websites — but they are built for very different situations. Here is how to choose between them for your next project.</p>\n \n\n <div class=\"post-hero__meta\">\n <span class=\"post-meta-item\">\n <svg width=\"15\" height=\"15\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z\"/></svg>\n Updated <time itemprop=\"dateModified\" datetime=\"2026-07-04T00:00:00+00:00\">July 4, 2026</time>\n </span>\n\n <span class=\"post-meta-item\">\n <svg width=\"15\" height=\"15\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z\"/></svg>\n 4 min read\n </span>\n </div>\n </div>\n </div>\n </header>\n\n \n <div class=\"post-cover\">\n <div class=\"container\">\n <img src=\"/assets/images/blog/jekyll-vs-nextjs.webp\" alt=\"Jekyll vs Next.js: A Practical Comparison for 2026\" class=\"post-cover__img\" itemprop=\"image\">\n </div>\n </div>\n \n\n <div class=\"container\">\n <div class=\"post-body\">\n <div class=\"post-body__main\">\n \n <div class=\"post-toc\" id=\"post-toc\" data-collapsed=\"false\" style=\"display:none\">\n <button class=\"post-toc__label\" id=\"toc-toggle\" aria-expanded=\"false\" aria-controls=\"toc-body\">\n <span class=\"post-toc__label-left\">\n <svg width=\"14\" height=\"14\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 6h16M4 10h16M4 14h10\"/></svg>\n Table of Contents\n </span>\n <svg class=\"post-toc__chevron\" width=\"14\" height=\"14\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M19 9l-7 7-7-7\"/></svg>\n </button>\n <nav id=\"toc-body\" class=\"toc\"></nav>\n </div>\n \n\n <div class=\"prose\" itemprop=\"articleBody\">\n <p>Jekyll and Next.js are both capable of producing fast, statically-generated websites. But comparing them is a bit like comparing a bicycle to a car — they are built for different journeys. This guide cuts through the noise and tells you which one fits your project.</p>\n\n<h2 id=\"the-fundamental-difference\">The fundamental difference</h2>\n\n<p>Jekyll is a static site generator. It takes your Markdown files and Liquid templates and produces plain HTML. That is all it does, and it does it extremely well.</p>\n\n<p>Next.js is a full-stack React framework that happens to support static export. Its primary purpose is server-rendered and hybrid web applications. Static generation is one mode among many — not its identity.</p>\n\n<h2 id=\"learning-curve\">Learning curve</h2>\n\n<p>Jekyll requires Markdown, YAML, and Liquid templating — none of which are programming languages in the traditional sense. A non-developer can be productive in Jekyll within a day.</p>\n\n<p>Next.js requires React, JavaScript (ideally TypeScript), an understanding of server-side rendering versus static generation, and the Next.js routing model. If you do not already know React, Next.js is a significant investment.</p>\n\n<p><strong>Bottom line:</strong> Jekyll is accessible to anyone. Next.js requires a JavaScript developer.</p>\n\n<h2 id=\"build-output-and-hosting\">Build output and hosting</h2>\n\n<p>Both can produce a folder of static HTML files ready to deploy anywhere. But the experience differs considerably.</p>\n\n<p>Jekyll outputs clean HTML by default and hosts natively on GitHub Pages — push your repository and your site is live within minutes, for free.</p>\n\n<p>Next.js static export (<code class=\"language-plaintext highlighter-rouge\">next export</code>) works well but loses several Next.js features: API routes, middleware, image optimisation via <code class=\"language-plaintext highlighter-rouge\">next/image</code>, and incremental static regeneration. If you strip out those features, you are essentially using a React-based template engine.</p>\n\n<table>\n <thead>\n <tr>\n <th> </th>\n <th>Jekyll</th>\n <th>Next.js static</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>GitHub Pages (native)</td>\n <td>Yes</td>\n <td>No (requires Actions)</td>\n </tr>\n <tr>\n <td>Netlify / Cloudflare</td>\n <td>Yes</td>\n <td>Yes</td>\n </tr>\n <tr>\n <td>Vercel</td>\n <td>Yes</td>\n <td>Yes (first-class)</td>\n </tr>\n <tr>\n <td>Output size</td>\n <td>Very small</td>\n <td>Larger (React bundle)</td>\n </tr>\n <tr>\n <td>JS required for content</td>\n <td>No</td>\n <td>Yes (hydration)</td>\n </tr>\n </tbody>\n</table>\n\n<h2 id=\"performance\">Performance</h2>\n\n<p>A Jekyll site ships zero JavaScript by default. The page is just HTML and CSS. This is excellent for Core Web Vitals — particularly Interaction to Next Paint (INP) and Total Blocking Time.</p>\n\n<p>Next.js ships a React runtime with every page, even for fully static content. This adds 70–200kb of JavaScript that must parse and execute before the page is fully interactive. For content sites (blogs, docs, portfolios), this is overhead with no benefit.</p>\n\n<p><strong>For content-focused sites, Jekyll is faster in practice</strong> — not in theory, but in the metrics that matter for real users on real connections.</p>\n\n<h2 id=\"themes-and-design\">Themes and design</h2>\n\n<p>Jekyll has a mature theme ecosystem with hundreds of free themes on GitHub and dedicated marketplaces like JekyllHub. Themes are plain HTML, CSS, and Liquid — readable by anyone.</p>\n\n<p>Next.js themes exist (Vercel has a showcase, there are paid options) but the concept of a “theme” is less central to the framework. Customisation requires React component knowledge.</p>\n\n<h2 id=\"when-nextjs-makes-sense-over-jekyll\">When Next.js makes sense over Jekyll</h2>\n\n<ul>\n <li>You are building a web application, not a content site</li>\n <li>You need API routes, authentication, or database access</li>\n <li>Your team is already using React across multiple projects</li>\n <li>You need incremental static regeneration (pages that update without a full rebuild)</li>\n <li>Your site pulls from a headless CMS and you need real-time preview</li>\n</ul>\n\n<h2 id=\"when-jekyll-makes-sense-over-nextjs\">When Jekyll makes sense over Next.js</h2>\n\n<ul>\n <li>Your site is primarily content: blog, documentation, portfolio, or landing pages</li>\n <li>You want zero runtime JavaScript on the page</li>\n <li>You want free hosting on GitHub Pages with no build configuration</li>\n <li>You are not a JavaScript developer</li>\n <li>You want themes you can understand and customise without a compiler</li>\n</ul>\n\n<h2 id=\"the-honest-answer\">The honest answer</h2>\n\n<p>For a blog, documentation site, portfolio, or small business website: choose Jekyll. It is simpler, faster to build, free to host, and produces lighter pages.</p>\n\n<p>For a web application with dynamic features that also needs some statically-generated pages: choose Next.js on Vercel.</p>\n\n<p>The mistake people make is reaching for Next.js because it is popular, then spending weeks managing a React build pipeline to publish content that could have been a Markdown file.</p>\n\n<p>Start with the right tool. Browse <a href=\"/themes/\">Jekyll themes on JekyllHub</a> and have your site live today.</p>\n\n </div>\n\n \n <div class=\"post-tags\">\n \n </div>\n \n\n <div class=\"post-share\">\n <span class=\"post-share__label\">Share</span>\n <a href=\"https://twitter.com/intent/tweet?url=https%3A%2F%2Fjekyllhub.com%2Fcomparison%2F2026%2F05%2F19%2Fjekyll-vs-nextjs%2F&text=Jekyll+vs+Next.js%3A+A+Practical+Comparison+for+2026\" target=\"_blank\" rel=\"noopener\" class=\"post-share__btn post-share__btn--twitter\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-4.714-6.231-5.401 6.231H2.746l7.73-8.835L1.254 2.25H8.08l4.253 5.622zm-1.161 17.52h1.833L7.084 4.126H5.117z\"/></svg>\n X / Twitter\n </a>\n <a href=\"https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fjekyllhub.com%2Fcomparison%2F2026%2F05%2F19%2Fjekyll-vs-nextjs%2F&title=Jekyll+vs+Next.js%3A+A+Practical+Comparison+for+2026\" target=\"_blank\" rel=\"noopener\" class=\"post-share__btn post-share__btn--linkedin\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 01-2.063-2.065 2.064 2.064 0 112.063 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z\"/></svg>\n LinkedIn\n </a>\n <button class=\"post-share__btn post-share__btn--copy\" onclick=\"JekyllHub.copyPostLink(this)\">\n <svg width=\"14\" height=\"14\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\"/></svg>\n <span>Copy Link</span>\n </button>\n </div>\n\n \n\n <nav class=\"post-nav\" aria-label=\"Post navigation\">\n <div class=\"post-nav__prev\">\n \n <a href=\"/tutorial/2026/05/18/jekyll-custom-domain/\" class=\"post-nav__link\">\n <span class=\"post-nav__label\">← Previous</span>\n <span class=\"post-nav__title\">How to Set Up a Custom Domain for Your Jekyll Site</span>\n </a>\n \n </div>\n <div class=\"post-nav__center\">\n <a href=\"/blog/\" class=\"btn btn--secondary btn--sm\">All Posts</a>\n </div>\n <div class=\"post-nav__next\">\n \n <a href=\"/themes/2026/05/20/jekyll-minimal-themes/\" class=\"post-nav__link post-nav__link--next\">\n <span class=\"post-nav__label\">Next →</span>\n <span class=\"post-nav__title\">Best Minimal Jekyll Themes in 2026 (Clean, Fast, Distraction-Free)</span>\n </a>\n \n </div>\n </nav>\n </div>\n\n <aside class=\"post-body__sidebar\">\n <div class=\"sidebar-card\">\n <h3 class=\"sidebar-card__title\">Browse Themes</h3>\n <ul class=\"post-sidebar__links\">\n \n <li><a href=\"/jekyll-academic-themes/\">🎓 Academic Themes</a></li>\n \n <li><a href=\"/jekyll-blog-themes/\">✍️ Blog Themes</a></li>\n \n <li><a href=\"/jekyll-business-themes/\">💼 Business Themes</a></li>\n \n <li><a href=\"/jekyll-documentation-themes/\">📚 Documentation Themes</a></li>\n \n <li><a href=\"/jekyll-e-commerce-themes/\">🛒 E-commerce Themes</a></li>\n \n <li><a href=\"/jekyll-landing-page-themes/\">🚀 Landing Page Themes</a></li>\n \n <li><a href=\"/jekyll-personal-themes/\">👤 Personal Themes</a></li>\n \n <li><a href=\"/jekyll-portfolio-themes/\">🎨 Portfolio Themes</a></li>\n \n <li><a href=\"/jekyll-resume-cv-themes/\">📄 Resume/CV Themes</a></li>\n \n <li><a href=\"/jekyll-github-pages-themes/\"><svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"currentColor\" style=\"display:inline;vertical-align:middle;margin-right:4px\"><path d=\"M12 0C5.374 0 0 5.373 0 12c0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23A11.509 11.509 0 0 1 12 5.803c1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576C20.566 21.797 24 17.3 24 12c0-6.627-5.373-12-12-12z\"/></svg>GitHub Pages Themes</a></li>\n </ul>\n <a href=\"/themes/\" class=\"btn btn--primary btn--full\" style=\"margin-top:var(--space-5)\">Browse All Themes →</a>\n </div>\n\n <div class=\"sidebar-card\" style=\"margin-top:var(--space-6)\">\n <h3 class=\"sidebar-card__title\">Submit Your Theme</h3>\n <p style=\"font-size:0.875rem;color:var(--text-3);line-height:1.6;margin-bottom:var(--space-4)\">Built a Jekyll theme? Share it with thousands of developers.</p>\n <a href=\"/submit/\" class=\"btn btn--secondary btn--full\">Submit a Theme →</a>\n </div>\n </aside>\n </div>\n </div>\n\n <!-- Related Themes — rendered by JS from SITE_DATA, shuffled per page load -->\n\n \n\n \n <section class=\"post-related-themes\" style=\"display:none\">\n <div class=\"container\">\n <h2 class=\"post-related-themes__title\">Themes You Might Like</h2>\n <div class=\"themes-grid themes-grid--4\" id=\"post-related-themes-grid\"\n data-tags=\"[]\"\n data-related-category=\"Blog\"></div>\n </div>\n </section>\n \n\n</article>\n\n<!-- Back to top -->\n<button class=\"back-to-top\" id=\"back-to-top\" aria-label=\"Back to top\" onclick=\"window.scrollTo({top:0,behavior:'smooth'})\">\n <svg fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" d=\"M5 15l7-7 7 7\"/>\n </svg>\n</button>\n<script src=\"/assets/js/post.js\" defer></script>\n\n </main>\n\n <footer class=\"footer\">\n <div class=\"container\">\n <div class=\"footer__grid\">\n <!-- Brand -->\n <div class=\"footer__brand\">\n <a href=\"/\" class=\"footer__logo\">\n <svg width=\"28\" height=\"28\" viewBox=\"0 0 32 32\" fill=\"none\">\n <rect width=\"32\" height=\"32\" rx=\"9\" fill=\"#2563EB\"/>\n <path d=\"M19 8h-6v1h5v10c0 2.2-1.8 4-4 4s-4-1.8-4-4v-1H9v1c0 2.76 2.24 5 5 5s5-2.24 5-5V8z\" fill=\"white\"/>\n <circle cx=\"23\" cy=\"9\" r=\"2.5\" fill=\"#F0C94B\"/>\n </svg>\n Jekyll<span style=\"color:var(--color-brand)\">Hub</span>\n </a>\n <p class=\"footer__tagline\">The premier marketplace for Jekyll themes. Build something beautiful.</p>\n <div class=\"footer__social\">\n <a href=\"https://github.com/jekyllhub\" target=\"_blank\" rel=\"noopener\" aria-label=\"GitHub\">\n <svg width=\"18\" height=\"18\" fill=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z\"/></svg>\n\n </a>\n <a href=\"https://twitter.com/jekyllhub\" target=\"_blank\" rel=\"noopener\" aria-label=\"Twitter\">\n <svg width=\"18\" height=\"18\" fill=\"currentColor\" viewBox=\"0 0 24 24\"><path d=\"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z\"/></svg>\n </a>\n <a href=\"/feed.xml\" aria-label=\"RSS Feed\">\n <svg width=\"18\" height=\"18\" fill=\"currentColor\" viewBox=\"0 0 24 24\"><path d=\"M6.18 15.64a2.18 2.18 0 0 1 2.18 2.18C8.36 19.01 7.38 20 6.18 20C4.98 20 4 19.01 4 17.82a2.18 2.18 0 0 1 2.18-2.18M4 4.44A15.56 15.56 0 0 1 19.56 20h-2.83A12.73 12.73 0 0 0 4 7.27V4.44m0 5.66a9.9 9.9 0 0 1 9.9 9.9h-2.83A7.07 7.07 0 0 0 4 12.93V10.1z\"/></svg>\n </a>\n </div>\n </div>\n\n <!-- Explore -->\n <div class=\"footer__col\">\n <h3 class=\"footer__heading\">Explore</h3>\n <ul class=\"footer__links\" role=\"list\">\n <li><a href=\"/themes/\">All Themes</a></li>\n <li><a href=\"/themes/?price=premium\">Premium Themes</a></li>\n <li><a href=\"/themes/?price=free\">Free Themes</a></li>\n <li><a href=\"/themes/?sort=newest\">Newest</a></li>\n <li><a href=\"/themes/?sort=updated\">Recently Updated</a></li>\n <li><a href=\"/themes/?featured=true\">Featured</a></li>\n </ul>\n </div>\n\n <!-- Categories -->\n <div class=\"footer__col\">\n <h3 class=\"footer__heading\">Categories</h3>\n <ul class=\"footer__links\" role=\"list\">\n \n <li><a href=\"/jekyll-academic-themes/\">Academic</a></li>\n \n <li><a href=\"/jekyll-blog-themes/\">Blog</a></li>\n \n <li><a href=\"/jekyll-business-themes/\">Business</a></li>\n \n <li><a href=\"/jekyll-documentation-themes/\">Documentation</a></li>\n \n <li><a href=\"/jekyll-e-commerce-themes/\">E-commerce</a></li>\n \n <li><a href=\"/jekyll-github-pages-themes/\">GitHub Pages Themes</a></li>\n <li><a href=\"/categories/\">View all →</a></li>\n </ul>\n </div>\n\n <!-- Resources -->\n <div class=\"footer__col\">\n <h3 class=\"footer__heading\">Learn</h3>\n <ul class=\"footer__links\" role=\"list\">\n <li><a href=\"/jekyll-resources/\">Jekyll Resources</a></li>\n <li><a href=\"/installation/\">Installation Guide</a></li>\n <li><a href=\"/submit/\">Submit a Theme</a></li>\n <li><a href=\"https://jekyllrb.com\" target=\"_blank\" rel=\"noopener\">Jekyll Docs</a></li>\n <li><a href=\"/faq/\">FAQ</a></li>\n <li><a href=\"/authors/\">Authors</a></li>\n <li><a href=\"/about/\">About</a></li>\n <li><a href=\"/contact/\">Contact</a></li>\n </ul>\n </div>\n </div>\n\n <div class=\"footer__bottom\">\n <p class=\"footer__copy\">© 2026 JekyllHub. Built with ❤️ and <a href=\"https://jekyllrb.com\" target=\"_blank\" rel=\"noopener\">Jekyll</a>.</p>\n <div class=\"footer__legal\">\n <a href=\"/privacy/\">Privacy</a>\n <a href=\"/terms/\">Terms</a>\n <a href=\"/refunds/\">Refunds</a>\n <a href=\"/sitemap.xml\">Sitemap</a>\n </div>\n </div>\n </div>\n</footer>\n\n\n <!-- Alpine.js — pinned to 3.13.5 for stability (handles mobile nav toggle) -->\n <script defer src=\"https://unpkg.com/alpinejs@3.13.5/dist/cdn.min.js\"></script>\n\n <!-- Main JS -->\n <script src=\"/assets/js/main.js\"></script>\n\n <!-- Page-specific scripts -->\n \n</body>\n</html>\n",
"content": "<p>Jekyll and Next.js are both capable of producing fast, statically-generated websites. But comparing them is a bit like comparing a bicycle to a car — they are built for different journeys. This guide cuts through the noise and tells you which one fits your project.</p>\n\n<h2 id=\"the-fundamental-difference\">The fundamental difference</h2>\n\n<p>Jekyll is a static site generator. It takes your Markdown files and Liquid templates and produces plain HTML. That is all it does, and it does it extremely well.</p>\n\n<p>Next.js is a full-stack React framework that happens to support static export. Its primary purpose is server-rendered and hybrid web applications. Static generation is one mode among many — not its identity.</p>\n\n<h2 id=\"learning-curve\">Learning curve</h2>\n\n<p>Jekyll requires Markdown, YAML, and Liquid templating — none of which are programming languages in the traditional sense. A non-developer can be productive in Jekyll within a day.</p>\n\n<p>Next.js requires React, JavaScript (ideally TypeScript), an understanding of server-side rendering versus static generation, and the Next.js routing model. If you do not already know React, Next.js is a significant investment.</p>\n\n<p><strong>Bottom line:</strong> Jekyll is accessible to anyone. Next.js requires a JavaScript developer.</p>\n\n<h2 id=\"build-output-and-hosting\">Build output and hosting</h2>\n\n<p>Both can produce a folder of static HTML files ready to deploy anywhere. But the experience differs considerably.</p>\n\n<p>Jekyll outputs clean HTML by default and hosts natively on GitHub Pages — push your repository and your site is live within minutes, for free.</p>\n\n<p>Next.js static export (<code class=\"language-plaintext highlighter-rouge\">next export</code>) works well but loses several Next.js features: API routes, middleware, image optimisation via <code class=\"language-plaintext highlighter-rouge\">next/image</code>, and incremental static regeneration. If you strip out those features, you are essentially using a React-based template engine.</p>\n\n<table>\n <thead>\n <tr>\n <th> </th>\n <th>Jekyll</th>\n <th>Next.js static</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>GitHub Pages (native)</td>\n <td>Yes</td>\n <td>No (requires Actions)</td>\n </tr>\n <tr>\n <td>Netlify / Cloudflare</td>\n <td>Yes</td>\n <td>Yes</td>\n </tr>\n <tr>\n <td>Vercel</td>\n <td>Yes</td>\n <td>Yes (first-class)</td>\n </tr>\n <tr>\n <td>Output size</td>\n <td>Very small</td>\n <td>Larger (React bundle)</td>\n </tr>\n <tr>\n <td>JS required for content</td>\n <td>No</td>\n <td>Yes (hydration)</td>\n </tr>\n </tbody>\n</table>\n\n<h2 id=\"performance\">Performance</h2>\n\n<p>A Jekyll site ships zero JavaScript by default. The page is just HTML and CSS. This is excellent for Core Web Vitals — particularly Interaction to Next Paint (INP) and Total Blocking Time.</p>\n\n<p>Next.js ships a React runtime with every page, even for fully static content. This adds 70–200kb of JavaScript that must parse and execute before the page is fully interactive. For content sites (blogs, docs, portfolios), this is overhead with no benefit.</p>\n\n<p><strong>For content-focused sites, Jekyll is faster in practice</strong> — not in theory, but in the metrics that matter for real users on real connections.</p>\n\n<h2 id=\"themes-and-design\">Themes and design</h2>\n\n<p>Jekyll has a mature theme ecosystem with hundreds of free themes on GitHub and dedicated marketplaces like JekyllHub. Themes are plain HTML, CSS, and Liquid — readable by anyone.</p>\n\n<p>Next.js themes exist (Vercel has a showcase, there are paid options) but the concept of a “theme” is less central to the framework. Customisation requires React component knowledge.</p>\n\n<h2 id=\"when-nextjs-makes-sense-over-jekyll\">When Next.js makes sense over Jekyll</h2>\n\n<ul>\n <li>You are building a web application, not a content site</li>\n <li>You need API routes, authentication, or database access</li>\n <li>Your team is already using React across multiple projects</li>\n <li>You need incremental static regeneration (pages that update without a full rebuild)</li>\n <li>Your site pulls from a headless CMS and you need real-time preview</li>\n</ul>\n\n<h2 id=\"when-jekyll-makes-sense-over-nextjs\">When Jekyll makes sense over Next.js</h2>\n\n<ul>\n <li>Your site is primarily content: blog, documentation, portfolio, or landing pages</li>\n <li>You want zero runtime JavaScript on the page</li>\n <li>You want free hosting on GitHub Pages with no build configuration</li>\n <li>You are not a JavaScript developer</li>\n <li>You want themes you can understand and customise without a compiler</li>\n</ul>\n\n<h2 id=\"the-honest-answer\">The honest answer</h2>\n\n<p>For a blog, documentation site, portfolio, or small business website: choose Jekyll. It is simpler, faster to build, free to host, and produces lighter pages.</p>\n\n<p>For a web application with dynamic features that also needs some statically-generated pages: choose Next.js on Vercel.</p>\n\n<p>The mistake people make is reaching for Next.js because it is popular, then spending weeks managing a React build pipeline to publish content that could have been a Markdown file.</p>\n\n<p>Start with the right tool. Browse <a href=\"/themes/\">Jekyll themes on JekyllHub</a> and have your site live today.</p>\n",
"url": "/comparison/2026/05/19/jekyll-vs-nextjs/",
"draft": false,
"categories": [
"Comparison"
],
"layout": "post",
"title": "Jekyll vs Next.js: A Practical Comparison for 2026",
"description": "Jekyll and Next.js both produce fast websites — but they are built for very different situations. Here is how to choose between them for your next project.",
"date": "2026-05-19 00:00:00 +0000",
"last_modified_at": "2026-07-04",
"image": "/assets/images/blog/jekyll-vs-nextjs.webp",
"author": "Marcus Webb",
"category": "Comparison",
"featured": false,
"related_category": "Blog",
"toc": true,
"slug": "jekyll-vs-nextjs",
"ext": ".md",
"tags": [
]
},
"id": "/themes/2026/05/20/jekyll-minimal-themes",
"collection": "posts",
"next": {
"path": "_posts/2026-05-21-jekyll-liquid-filters-cheatsheet.md",
"relative_path": "_posts/2026-05-21-jekyll-liquid-filters-cheatsheet.md",
"excerpt": "<p>Liquid filters transform output in Jekyll templates. They are chained with the pipe character <code class=\"language-plaintext highlighter-rouge\">|</code> and applied to variables, strings, numbers, arrays, and dates. This cheatsheet covers every filter you will actually use, with real examples.</p>\n\n",
"previous": {
"path": "_posts/2026-05-20-jekyll-minimal-themes.md",
"relative_path": "_posts/2026-05-20-jekyll-minimal-themes.md",
"id": "/themes/2026/05/20/jekyll-minimal-themes",
"collection": "posts",
"url": "/themes/2026/05/20/jekyll-minimal-themes/",
"draft": false,
"categories": [
"Themes"
],
"layout": "post",
"title": "Best Minimal Jekyll Themes in 2026 (Clean, Fast, Distraction-Free)",
"description": "The best minimal Jekyll themes for blogs, portfolios, and personal sites — clean typography, fast load times, and zero visual clutter.",
"date": "2026-05-20 00:00:00 +0000",
"last_modified_at": "2026-07-05",
"image": "/assets/images/blog/jekyll-minimal-themes.webp",
"author": "Marcus Webb",
"category": "Themes",
"featured": false,
"related_category": "Blog",
"toc": true,
"slug": "jekyll-minimal-themes",
"ext": ".md",
"tags": [
]
},
"id": "/tutorial/2026/05/21/jekyll-liquid-filters-cheatsheet",
"collection": "posts",
"next": {
"path": "_posts/2026-05-22-jekyll-environment-variables.md",
"relative_path": "_posts/2026-05-22-jekyll-environment-variables.md",
"id": "/tutorial/2026/05/22/jekyll-environment-variables",
"collection": "posts",
"url": "/tutorial/2026/05/22/jekyll-environment-variables/",
"draft": false,
"categories": [
"Tutorial"
],
"layout": "post",
"title": "Jekyll Environment Variables: The Complete Guide",
"description": "How to use environment variables in Jekyll — JEKYLL_ENV, accessing env vars in config, conditional builds, and best practices for managing secrets.",
"date": "2026-05-22 00:00:00 +0000",
"last_modified_at": "2026-07-07",
"image": "/assets/images/blog/jekyll-environment-variables.webp",
"author": "Marcus Webb",
"category": "Tutorial",
"featured": false,
"related_category": "Blog",
"toc": true,
"slug": "jekyll-environment-variables",
"ext": ".md",
"tags": [
]
},
"output": null,
"content": "Liquid filters transform output in Jekyll templates. They are chained with the pipe character `|` and applied to variables, strings, numbers, arrays, and dates. This cheatsheet covers every filter you will actually use, with real examples.\n\n## String filters\n\n### append and prepend\n\n```liquid\n{{ \"Jekyll\" | append: \" Themes\" }}\n<!-- output: Jekyll Themes -->\n\n{{ \"Themes\" | prepend: \"Jekyll \" }}\n<!-- output: Jekyll Themes -->\n```\n\n### upcase, downcase, capitalize\n\n```liquid\n{{ \"hello world\" | upcase }}\n<!-- output: HELLO WORLD -->\n\n{{ \"HELLO WORLD\" | downcase }}\n<!-- output: hello world -->\n\n{{ \"hello world\" | capitalize }}\n<!-- output: Hello world -->\n```\n\n### strip, lstrip, rstrip\n\nRemoves whitespace from both ends, left only, or right only.\n\n```liquid\n{{ \" hello \" | strip }}\n<!-- output: hello -->\n```\n\n### replace and replace_first\n\n```liquid\n{{ \"Jekyll is great, Jekyll is fast\" | replace: \"Jekyll\", \"JekyllHub\" }}\n<!-- output: JekyllHub is great, JekyllHub is fast -->\n\n{{ \"Jekyll is great, Jekyll is fast\" | replace_first: \"Jekyll\", \"JekyllHub\" }}\n<!-- output: JekyllHub is great, Jekyll is fast -->\n```\n\n### remove and remove_first\n\n```liquid\n{{ \"Hello, World!\" | remove: \",\" }}\n<!-- output: Hello World! -->\n```\n\n### truncate and truncatewords\n\n```liquid\n{{ \"The quick brown fox\" | truncate: 10 }}\n<!-- output: The qui... -->\n\n{{ \"The quick brown fox\" | truncatewords: 3 }}\n<!-- output: The quick brown... -->\n```\n\n### split and join\n\n```liquid\n{% raw %}\n{% assign tags = \"jekyll,blog,themes\" | split: \",\" %}\n{{ tags | join: \" · \" }}\n<!-- output: jekyll · blog · themes -->\n{% endraw %}\n```\n\n### slice\n\nReturns a substring starting at the given index.\n\n```liquid\n{{ \"Jekyll\" | slice: 0, 3 }}\n<!-- output: Jek -->\n```\n\n### strip_html\n\nRemoves all HTML tags from a string — useful for generating meta descriptions from post content.\n\n```liquid\n{{ post.content | strip_html | truncate: 160 }}\n```\n\n### strip_newlines\n\n```liquid\n{{ content | strip_newlines }}\n```\n\n### newline_to_br\n\nConverts newlines to `<br>` tags.\n\n```liquid\n{{ content | newline_to_br }}\n```\n\n### escape and escape_once\n\nHTML-encodes a string.\n\n```liquid\n{{ '<script>' | escape }}\n<!-- output: &lt;script&gt; -->\n```\n\n### url_encode and url_decode\n\n```liquid\n{{ \"hello world\" | url_encode }}\n<!-- output: hello+world -->\n```\n\n### markdownify\n\nConverts a Markdown string to HTML. Useful for front matter fields written in Markdown.\n\n```liquid\n{{ page.description | markdownify }}\n```\n\n### jsonify\n\nConverts an object to JSON. Essential for passing Jekyll data to JavaScript.\n\n```liquid\n<script>\n var themes = {{ site.themes | jsonify }};\n</script>\n```\n\n## Number filters\n\n### plus, minus, times, divided_by, modulo\n\n```liquid\n{{ 10 | plus: 5 }} <!-- 15 -->\n{{ 10 | minus: 3 }} <!-- 7 -->\n{{ 4 | times: 3 }} <!-- 12 -->\n{{ 10 | divided_by: 3 }} <!-- 3 (integer division) -->\n{{ 10 | modulo: 3 }} <!-- 1 -->\n```\n\n### ceil, floor, round, abs\n\n```liquid\n{{ 4.3 | ceil }} <!-- 5 -->\n{{ 4.7 | floor }} <!-- 4 -->\n{{ 4.567 | round: 2 }} <!-- 4.57 -->\n{{ -5 | abs }} <!-- 5 -->\n```\n\n## Array filters\n\n### size\n\nWorks on strings and arrays.\n\n```liquid\n{{ site.themes | size }}\n{{ \"Jekyll\" | size }} <!-- 6 -->\n```\n\n### first and last\n\n```liquid\n{{ site.themes | first }}\n{{ site.themes | last }}\n```\n\n### push and pop, shift and unshift\n\nAdd or remove items from an array.\n\n```liquid\n{% raw %}\n{% assign updated = site.themes | push: new_theme %}\n{% endraw %}\n```\n\n### concat\n\nMerges two arrays.\n\n```liquid\n{% raw %}\n{% assign all_posts = site.posts | concat: site.pages %}\n{% endraw %}\n```\n\n### map\n\nExtracts a single property from an array of objects.\n\n```liquid\n{% raw %}\n{% assign titles = site.themes | map: \"title\" %}\n{{ titles | join: \", \" }}\n{% endraw %}\n```\n\n### where and where_exp\n\nFilter an array by a property value.\n\n```liquid\n{% raw %}\n{% assign premium = site.themes | where: \"price_type\", \"premium\" %}\n\n{% assign recent = site.posts | where_exp: \"post\", \"post.date > '2026-01-01'\" %}\n{% endraw %}\n```\n\n### sort and sort_natural\n\n```liquid\n{% raw %}\n{% assign sorted = site.themes | sort: \"title\" %}\n{% assign sorted = site.themes | sort_natural: \"title\" %}\n{% endraw %}\n```\n\n### reverse\n\n```liquid\n{% raw %}\n{% assign reversed = site.posts | reverse %}\n{% endraw %}\n```\n\n### uniq\n\nRemoves duplicate values from an array.\n\n```liquid\n{% raw %}\n{% assign unique_cats = site.themes | map: \"category\" | uniq %}\n{% endraw %}\n```\n\n### group_by and group_by_exp\n\nGroups an array of objects by a property.\n\n```liquid\n{% raw %}\n{% assign by_category = site.themes | group_by: \"category\" %}\n{% for group in by_category %}\n <h2>{{ group.name }}</h2>\n {% for theme in group.items %}\n <p>{{ theme.title }}</p>\n {% endfor %}\n{% endfor %}\n{% endraw %}\n```\n\n### find and find_exp\n\nReturns the first item matching a condition (Jekyll 4+).\n\n```liquid\n{% raw %}\n{% assign featured = site.themes | find: \"featured\", true %}\n{% endraw %}\n```\n\n### sum\n\nAdds up a numeric property across an array.\n\n```liquid\n{{ site.themes | map: \"stars\" | sum }}\n```\n\n### compact\n\nRemoves nil values from an array.\n\n```liquid\n{% raw %}\n{% assign clean = array | compact %}\n{% endraw %}\n```\n\n### flatten\n\nFlattens a nested array.\n\n```liquid\n{% raw %}\n{% assign flat = nested_array | flatten %}\n{% endraw %}\n```\n\n## Date filters\n\n### date\n\nFormats a date using `strftime` syntax.\n\n```liquid\n{{ page.date | date: \"%B %-d, %Y\" }}\n<!-- output: July 3, 2026 -->\n\n{{ page.date | date: \"%Y-%m-%d\" }}\n<!-- output: 2026-07-03 -->\n\n{{ page.date | date: \"%d %b %Y\" }}\n<!-- output: 03 Jul 2026 -->\n```\n\nCommon format codes:\n- `%Y` — four-digit year\n- `%m` — zero-padded month (01–12)\n- `%-m` — month without padding (1–12)\n- `%B` — full month name\n- `%b` — abbreviated month name\n- `%d` — zero-padded day\n- `%-d` — day without padding\n- `%A` — full weekday name\n- `%H:%M` — 24-hour time\n\n### date_to_long_string and date_to_string\n\nJekyll shortcuts for common date formats.\n\n```liquid\n{{ page.date | date_to_long_string }}\n<!-- output: 03 July 2026 -->\n\n{{ page.date | date_to_string }}\n<!-- output: 03 Jul 2026 -->\n```\n\n### date_to_xmlschema and date_to_rfc822\n\nUsed in feeds and structured data.\n\n```liquid\n{{ page.date | date_to_xmlschema }}\n<!-- output: 2026-07-03T00:00:00+00:00 -->\n```\n\n## URL and path filters\n\n### relative_url and absolute_url\n\nEssential — always use these instead of hardcoded paths.\n\n```liquid\n<a href=\"{{ '/themes/' | relative_url }}\">Browse themes</a>\n<meta property=\"og:url\" content=\"{{ page.url | absolute_url }}\">\n```\n\n### slugify\n\nConverts a string to a URL-safe slug.\n\n```liquid\n{{ \"Hello World! How are you?\" | slugify }}\n<!-- output: hello-world-how-are-you -->\n```\n\n### uri_escape\n\nPercent-encodes a URI.\n\n```liquid\n{{ \"search query\" | uri_escape }}\n<!-- output: search%20query -->\n```\n\n### cgi_escape\n\nCGI-escapes a string (spaces become `+`).\n\n```liquid\n{{ \"hello world\" | cgi_escape }}\n<!-- output: hello+world -->\n```\n\n## Miscellaneous\n\n### default\n\nReturns a default value when the variable is nil, false, or empty.\n\n```liquid\n{{ page.author | default: site.author.name }}\n{{ page.image | default: site.og_image | relative_url }}\n```\n\n### inspect\n\nOutputs a Ruby representation of the object — invaluable for debugging.\n\n```liquid\n{{ page | inspect }}\n```\n\n### sample\n\nReturns a random element from an array.\n\n```liquid\n{{ site.themes | sample }}\n```\n\n### number_of_words\n\nCounts words in a string.\n\n```liquid\n{{ content | number_of_words }}\n```\n\n## Chaining filters\n\nFilters can be chained — output from one becomes input to the next.\n\n```liquid\n{{ page.title | downcase | replace: \" \", \"-\" | prepend: \"/blog/\" }}\n\n{{ post.content | strip_html | truncatewords: 30 | append: \"…\" }}\n```\n\n## Quick reference card\n\n| Filter | What it does |\n|--------|-------------|\n| `append` / `prepend` | Add text before or after |\n| `upcase` / `downcase` | Change case |\n| `strip_html` | Remove HTML tags |\n| `truncate` / `truncatewords` | Shorten text |\n| `replace` | Find and replace |\n| `date` | Format a date |\n| `where` | Filter array by property |\n| `map` | Extract one property from array |\n| `sort` | Sort an array |\n| `size` | Count items |\n| `default` | Fallback value |\n| `relative_url` | Prefix baseurl |\n| `jsonify` | Convert to JSON |\n| `markdownify` | Render Markdown |\n\nBookmark this page — you will reference it constantly.\n",
"url": "/tutorial/2026/05/21/jekyll-liquid-filters-cheatsheet/",
"draft": false,
"categories": [
"Tutorial"
],
"layout": "post",
"title": "Jekyll Liquid Filters: The Complete Cheatsheet (2026)",
"description": "Every Liquid filter you need for Jekyll — string manipulation, date formatting, array filters, URL helpers, and Jekyll-specific additions. With examples.",
"date": "2026-05-21 00:00:00 +0000",
"last_modified_at": "2026-07-06",
"image": "/assets/images/blog/jekyll-liquid-filters-cheatsheet.webp",
"author": "Marcus Webb",
"category": "Tutorial",
"featured": false,
"related_category": "Blog",
"toc": true,
"slug": "jekyll-liquid-filters-cheatsheet",
"ext": ".md",
"tags": [
]
},
"output": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\n <!-- Begin Jekyll SEO tag v2.8.0 -->\n<title>Best Minimal Jekyll Themes in 2026 (Clean, Fast, Distraction-Free) | JekyllHub</title>\n<meta name=\"generator\" content=\"Jekyll v3.10.0\" />\n<meta property=\"og:title\" content=\"Best Minimal Jekyll Themes in 2026 (Clean, Fast, Distraction-Free)\" />\n<meta name=\"author\" content=\"Marcus Webb\" />\n<meta property=\"og:locale\" content=\"en_US\" />\n<meta name=\"description\" content=\"The best minimal Jekyll themes for blogs, portfolios, and personal sites — clean typography, fast load times, and zero visual clutter.\" />\n<meta property=\"og:description\" content=\"The best minimal Jekyll themes for blogs, portfolios, and personal sites — clean typography, fast load times, and zero visual clutter.\" />\n<link rel=\"canonical\" href=\"https://jekyllhub.com/themes/2026/05/20/jekyll-minimal-themes/\" />\n<meta property=\"og:url\" content=\"https://jekyllhub.com/themes/2026/05/20/jekyll-minimal-themes/\" />\n<meta property=\"og:site_name\" content=\"JekyllHub\" />\n<meta property=\"og:image\" content=\"https://jekyllhub.com/assets/images/blog/jekyll-minimal-themes.webp\" />\n<meta property=\"og:type\" content=\"article\" />\n<meta property=\"article:published_time\" content=\"2026-05-20T00:00:00+00:00\" />\n<meta name=\"twitter:card\" content=\"summary_large_image\" />\n<meta property=\"twitter:image\" content=\"https://jekyllhub.com/assets/images/blog/jekyll-minimal-themes.webp\" />\n<meta property=\"twitter:title\" content=\"Best Minimal Jekyll Themes in 2026 (Clean, Fast, Distraction-Free)\" />\n<meta name=\"twitter:site\" content=\"@jekyllhub\" />\n<meta name=\"twitter:creator\" content=\"@Marcus Webb\" />\n<script type=\"application/ld+json\">\n{\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",\"author\":{\"@type\":\"Person\",\"name\":\"Marcus Webb\"},\"dateModified\":\"2026-07-05T00:00:00+00:00\",\"datePublished\":\"2026-05-20T00:00:00+00:00\",\"description\":\"The best minimal Jekyll themes for blogs, portfolios, and personal sites — clean typography, fast load times, and zero visual clutter.\",\"headline\":\"Best Minimal Jekyll Themes in 2026 (Clean, Fast, Distraction-Free)\",\"image\":\"https://jekyllhub.com/assets/images/blog/jekyll-minimal-themes.webp\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https://jekyllhub.com/themes/2026/05/20/jekyll-minimal-themes/\"},\"url\":\"https://jekyllhub.com/themes/2026/05/20/jekyll-minimal-themes/\"}</script>\n<!-- End Jekyll SEO tag -->\n\n <meta name=\"impact-site-verification\" value=\"362087e7-78c6-43e3-b39c-5ddb44047f61\">\n\n <!-- og:site_name and og:image: kept here as jekyll-seo-tag does not set these reliably. -->\n <!-- All other canonical/OG/Twitter tags are handled by the seo tag above. -->\n <meta property=\"og:site_name\" content=\"JekyllHub\">\n\n <!-- OG / Twitter image — use page card_image, else fall back to social-card.png -->\n \n \n <meta property=\"og:image\" content=\"https://jekyllhub.com/assets/images/blog/jekyll-minimal-themes.webp\">\n <meta name=\"twitter:image\" content=\"https://jekyllhub.com/assets/images/blog/jekyll-minimal-themes.webp\">\n \n\n <!-- Fonts -->\n <link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n <link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n <link href=\"https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,300;12..96,400;12..96,500;12..96,600;12..96,700;12..96,800&family=DM+Mono:ital,wght@0,300;0,400;0,500;1,400&family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;1,9..40,400&display=swap\" rel=\"stylesheet\">\n\n <!-- Dark mode: read stored preference before CSS loads to prevent flash -->\n <script>\n (function() {\n var stored = localStorage.getItem('tf_theme');\n var theme = stored ? stored : (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light');\n document.documentElement.setAttribute('data-theme', theme);\n })();\n </script>\n\n <!-- Stylesheet -->\n <link rel=\"stylesheet\" href=\"/assets/css/main.css\">\n\n <!-- Favicon -->\n <link rel=\"icon\" type=\"image/svg+xml\" href=\"/assets/images/favicon.svg\">\n\n <!-- Structured Data -->\n \n <script type=\"application/ld+json\">\n {\n \"@context\": \"https://schema.org\",\n \"@type\": \"WebSite\",\n \"name\": \"JekyllHub\",\n \"description\": \"The premier marketplace for Jekyll themes. Browse, preview, and download stunning themes for your next project.\",\n \"url\": \"https://jekyllhub.com\"\n }\n </script>\n \n\n <!-- Analytics -->\n \n\n \n \n <!-- Google tag (gtag.js) -->\n <script async src=\"https://www.googletagmanager.com/gtag/js?id=G-W5Z2Z9GNPG\"></script>\n <script>\n window.dataLayer = window.dataLayer || [];\n function gtag(){dataLayer.push(arguments);}\n gtag('js', new Date());\n gtag('config', 'G-W5Z2Z9GNPG');\n </script>\n \n\n \n \n\n\n\n</head>\n<body>\n \n\n<div class=\"announcement-bar announcement-bar--dark\" id=\"announcement-bar\" data-ann-id=\"v1\" role=\"banner\" aria-label=\"Site announcement\">\n <div class=\"announcement-bar__inner\">\n <p class=\"announcement-bar__text\">\n 🚀 New premium themes dropping soon — join the waitlist and get 20% off launch price\n \n <a href=\"/waitlist/\" class=\"announcement-bar__link\">Join Waitlist →</a>\n \n </p>\n <button class=\"announcement-bar__close\" aria-label=\"Dismiss announcement\" onclick=\"dismissAnnouncement('v1')\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"/></svg>\n </button>\n </div>\n</div>\n\n\n <nav class=\"navbar\" id=\"navbar\" x-data=\"{ mobileOpen: false }\">\n <div class=\"container navbar__inner\">\n <!-- Logo -->\n <a href=\"/\" class=\"navbar__logo\" aria-label=\"JekyllHub home\">\n <span class=\"navbar__logo-icon\">\n <svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect width=\"32\" height=\"32\" rx=\"9\" fill=\"#2563EB\"/>\n <!-- J letterform -->\n <path d=\"M19 8h-6v1h5v10c0 2.2-1.8 4-4 4s-4-1.8-4-4v-1H9v1c0 2.76 2.24 5 5 5s5-2.24 5-5V8z\" fill=\"white\"/>\n <!-- Hub dots -->\n <circle cx=\"23\" cy=\"9\" r=\"2.5\" fill=\"#F0C94B\"/>\n </svg>\n </span>\n <span class=\"navbar__logo-text\">Jekyll<span class=\"navbar__logo-accent\">Hub</span></span>\n </a>\n\n <!-- Desktop nav -->\n <ul class=\"navbar__links\" role=\"list\">\n <li><a href=\"/themes/\" class=\"navbar__link navbar__link--active\">Browse</a></li>\n <li><a href=\"/categories/\" class=\"navbar__link navbar__link--active\">Categories</a></li>\n <li><a href=\"/blog/\" class=\"navbar__link \">Blog</a></li>\n <li><a href=\"/showcase/\" class=\"navbar__link \">Showcase</a></li>\n </ul>\n\n <!-- Right controls -->\n <div class=\"navbar__actions\">\n <!-- Search trigger -->\n <button class=\"navbar__icon-btn\" id=\"search-trigger\" onclick=\"JekyllHub.openSearch()\" aria-label=\"Search themes\">\n <svg width=\"20\" height=\"20\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z\"/>\n </svg>\n </button>\n\n <!-- Bookmarks -->\n <a href=\"/bookmarks/\" class=\"navbar__icon-btn\" aria-label=\"Saved themes\">\n <svg width=\"20\" height=\"20\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M5 5a2 2 0 012-2h10a2 2 0 012 2v16l-7-3.5L5 21V5z\"/>\n </svg>\n <span class=\"navbar__badge\" id=\"bookmark-count\" style=\"display:none\">0</span>\n </a>\n\n <!-- Theme toggle -->\n <button class=\"navbar__icon-btn theme-toggle\" id=\"theme-toggle\" onclick=\"JekyllHub.toggleTheme()\" aria-label=\"Toggle dark mode\">\n <svg class=\"theme-toggle__sun\" width=\"20\" height=\"20\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <circle cx=\"12\" cy=\"12\" r=\"5\" stroke-width=\"2\"/>\n <path stroke-linecap=\"round\" stroke-width=\"2\" d=\"M12 1v2M12 21v2M4.22 4.22l1.42 1.42M18.36 18.36l1.42 1.42M1 12h2M21 12h2M4.22 19.78l1.42-1.42M18.36 5.64l1.42-1.42\"/>\n </svg>\n <svg class=\"theme-toggle__moon\" width=\"20\" height=\"20\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003 0 0012 21a9.003 9.003 0 008.354-5.646z\"/>\n </svg>\n </button>\n\n <!-- Mobile menu toggle -->\n <button class=\"navbar__mobile-toggle\" @click=\"mobileOpen = !mobileOpen\" :aria-expanded=\"mobileOpen\" aria-label=\"Toggle menu\">\n <svg x-show=\"!mobileOpen\" width=\"22\" height=\"22\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 6h16M4 12h16M4 18h16\"/>\n </svg>\n <svg x-show=\"mobileOpen\" width=\"22\" height=\"22\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M6 18L18 6M6 6l12 12\"/>\n </svg>\n </button>\n </div>\n </div>\n\n <!-- Mobile menu -->\n <div class=\"navbar__mobile-menu\" x-show=\"mobileOpen\" x-transition:enter=\"slide-down-enter\" x-transition:enter-start=\"slide-down-start\" x-transition:enter-end=\"slide-down-end\" @click.away=\"mobileOpen = false\">\n <div class=\"container\">\n <ul role=\"list\">\n <li><a href=\"/themes/\" class=\"navbar__mobile-link\">Browse Themes</a></li>\n <li><a href=\"/categories/\" class=\"navbar__mobile-link\">Categories</a></li>\n <li><a href=\"/blog/\" class=\"navbar__mobile-link\">Blog</a></li>\n <li><a href=\"/showcase/\" class=\"navbar__mobile-link\">Showcase</a></li>\n <li><a href=\"/bookmarks/\" class=\"navbar__mobile-link\">Saved Themes</a></li>\n </ul>\n </div>\n </div>\n</nav>\n\n<!-- Search overlay -->\n<div id=\"search-overlay\" class=\"search-overlay\" role=\"dialog\" aria-modal=\"true\" aria-label=\"Search\" onclick=\"JekyllHub.closeSearch()\">\n <div class=\"search-overlay__panel\" onclick=\"event.stopPropagation()\">\n <div class=\"search-overlay__input-wrap\">\n <svg width=\"20\" height=\"20\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" class=\"search-overlay__icon\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z\"/>\n </svg>\n <input type=\"search\" id=\"search-input\" class=\"search-overlay__input\" placeholder=\"Search themes and articles…\" autocomplete=\"off\" aria-label=\"Search\">\n <kbd class=\"search-overlay__esc\" onclick=\"JekyllHub.closeSearch()\">ESC</kbd>\n </div>\n <div id=\"search-results\" class=\"search-overlay__results\" role=\"listbox\"></div>\n <div class=\"search-overlay__hint\">\n Press <kbd>↑</kbd> <kbd>↓</kbd> to navigate, <kbd>↵</kbd> to select\n </div>\n </div>\n</div>\n\n\n <!-- Inject Jekyll collection data for client-side search, filtering, and bookmarks -->\n <script>\n window.SITE_DATA = {\n baseurl: \"\",\n themeCardPlaceholder: \"/assets/images/placeholder/placeholder-card.svg\",\n newBadgeDays: 30,\n themes: [\n \n {\n title: \"Academic Pages Jekyll Theme\",\n description: \"An academic portfolio Jekyll theme for researchers and scholars. Supports publications, talks, CV pages, and GitHub Pages out of the box.\",\n card_description: \"Academic portfolio for researchers with publications, talks, and CV pages.\",\n url: \"/themes/academicpages/\",\n category: \"Academic\",\n price_type: \"free\",\n price: null,\n featured: true,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://academicpages.github.io/\",\n card_image: \"/assets/images/themes/academicpages-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-06-07\",\n discount_label: null,\n discount_original_price: null,\n popular: true,\n bestseller: false,\n trending: false,\n slug: \"academicpages\",\n },\n \n {\n title: \"Advance Jekyll Theme\",\n description: \"A premium multi-purpose Jekyll theme for building advanced marketing and business websites. Includes Services, Projects, and Team content types, a configurable hero section, full blog, dark mode, and Bootstrap 5.2.\",\n card_description: \"Premium multi-purpose theme — services, projects, team, blog, and configurable hero.\",\n url: \"/themes/advance/\",\n category: \"Business\",\n price_type: \"premium\",\n price: 79,\n featured: true,\n dark_mode: true,\n responsive: true,\n demo_url: \"https://jekyll-advance.netlify.app/\",\n card_image: \"/assets/images/themes/advance-card.webp\",\n premium: false,\n buy_url: \"https://www.zerostatic.io/theme/jekyll-advance/\",\n author: \"Zerostatic\",\n added_at: \"2026-06-27\",\n discount_label: null,\n discount_original_price: null,\n popular: true,\n bestseller: true,\n trending: true,\n slug: \"advance\",\n },\n \n {\n title: \"Agency Jekyll Theme\",\n description: \"A striking single-page agency Jekyll theme with full-screen sections, portfolio grid, and team showcase. Based on Start Bootstrap Agency.\",\n card_description: \"Striking single-page agency theme with portfolio grid and team showcase.\",\n url: \"/themes/agency/\",\n category: \"Portfolio\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: true,\n responsive: true,\n demo_url: \"https://y7kim.github.io/agency-jekyll-theme/\",\n card_image: \"/assets/images/themes/agency-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-01-10\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"agency\",\n },\n \n {\n title: \"al-folio Jekyll Theme\",\n description: \"A clean, minimal Jekyll theme built for academics and researchers. Beautifully renders publications, projects, and CV with BibTeX support.\",\n card_description: \"Clean academic theme for researchers with BibTeX and publications support.\",\n url: \"/themes/al-folio/\",\n category: \"Academic\",\n price_type: \"free\",\n price: null,\n featured: true,\n dark_mode: true,\n responsive: true,\n demo_url: \"https://alshedivat.github.io/al-folio/\",\n card_image: \"/assets/images/themes/al-folio-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-01-15\",\n discount_label: null,\n discount_original_price: null,\n popular: true,\n bestseller: false,\n trending: true,\n slug: \"al-folio\",\n },\n \n {\n title: \"Alembic Jekyll Theme\",\n description: \"A clean, minimal Jekyll theme with great typography and flexible page layouts. Works out of the box as a gem-based theme.\",\n card_description: \"Clean, minimal gem-based theme with flexible page layouts.\",\n url: \"/themes/alembic/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://alembic.darn.es/\",\n card_image: \"/assets/images/themes/alembic-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-02-01\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"alembic\",\n },\n \n {\n title: \"Almace Scaffolding Jekyll Theme\",\n description: \"A bold, minimal, and blazing fast Jekyll theme with a distinctive typographic style and performance-first architecture.\",\n card_description: \"Bold, minimal, blazing-fast theme with distinctive typographic style.\",\n url: \"/themes/almace-scaffolding/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://sparanoid.com/lab/amsf/\",\n card_image: \"/assets/images/themes/almace-scaffolding-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-04-01\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"almace-scaffolding\",\n },\n \n {\n title: \"Architect Jekyll Theme\",\n description: \"A clean GitHub Pages Jekyll theme with a prominent sidebar and crisp typography. Official GitHub Pages theme, ideal for project documentation.\",\n card_description: \"Clean GitHub Pages theme with prominent sidebar for project docs.\",\n url: \"/themes/architect/\",\n category: \"Documentation\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://pages-themes.github.io/architect/\",\n card_image: \"/assets/images/themes/architect-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-06-07\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"architect\",\n },\n \n {\n title: \"Aura Pro Jekyll Theme\",\n description: \"The premium upgrade to the Aura Jekyll theme. Includes all Aura features plus advanced blog layouts, star-rated testimonials, Sendy newsletter support, and read-time indicators.\",\n card_description: \"Premium upgrade to Aura — advanced layouts, star testimonials, and read time.\",\n url: \"/themes/aura-pro/\",\n category: \"Personal\",\n price_type: \"premium\",\n price: 9,\n featured: true,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://satishw.github.io/jekyll-theme-aura-pro/\",\n card_image: \"/assets/images/themes/aura-pro-card.webp\",\n premium: false,\n buy_url: \"https://satishw.github.io/jekyll-theme-aura-pro/features/\",\n author: \"Satish W\",\n added_at: \"2026-06-26\",\n discount_label: \"launch_offer\",\n discount_original_price: 29,\n popular: false,\n bestseller: false,\n trending: true,\n slug: \"aura-pro\",\n },\n \n {\n title: \"Aura Jekyll Theme\",\n description: \"Versatile Jekyll theme designed for content creators, writers, and developers. Ships with blog, projects, testimonials, and portfolio sections — fully compatible with GitHub Pages.\",\n card_description: \"Versatile Jekyll theme for creators and developers — blog, projects, and portfolio ready.\",\n url: \"/themes/aura/\",\n category: \"Personal\",\n price_type: \"free\",\n price: null,\n featured: true,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://satishw.github.io/jekyll-theme-aura/\",\n card_image: \"/assets/images/themes/aura-card.webp\",\n premium: false,\n buy_url: null,\n author: \"Satish W\",\n added_at: \"2026-02-10\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: true,\n slug: \"aura\",\n },\n \n {\n title: \"Basically Basic Jekyll Theme\",\n description: \"Your new Jekyll default theme — a modern, polished substitute for Minima. Six customisable colour skins, resume layout, off-canvas menu, and everything Minima should have been.\",\n card_description: \"Modern Minima replacement with six colour skins and a resume layout.\",\n url: \"/themes/basically-basic/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://mmistakes.github.io/jekyll-theme-basically-basic/\",\n card_image: \"/assets/images/themes/basically-basic-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-06-07\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"basically-basic\",\n },\n \n {\n title: \"Beautiful Jekyll\",\n description: \"One of the most popular Jekyll blog themes. Easy to set up, highly customisable, and works perfectly on GitHub Pages.\",\n card_description: \"Highly popular blog theme — easy setup, works on GitHub Pages.\",\n url: \"/themes/beautiful-jekyll/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: true,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://beautifuljekyll.com/\",\n card_image: \"/assets/images/themes/beautiful-jekyll-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-01-20\",\n discount_label: null,\n discount_original_price: null,\n popular: true,\n bestseller: false,\n trending: false,\n slug: \"beautiful-jekyll\",\n },\n \n {\n title: \"Bulma Clean Theme Jekyll Theme\",\n description: \"A clean and modern Jekyll theme built with the Bulma CSS framework. Features a blog, portfolio, and docs-ready layout with extensive customisation.\",\n card_description: \"Clean, modern Bulma CSS theme for blogs, portfolios, and docs.\",\n url: \"/themes/bulma-clean-theme/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://www.csrhymes.com/bulma-clean-theme/\",\n card_image: \"/assets/images/themes/bulma-clean-theme-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-04-01\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"bulma-clean-theme\",\n },\n \n {\n title: \"Cayman Jekyll Theme\",\n description: \"A bright, clean GitHub Pages Jekyll theme with a large hero header and fluid typography. Simple and polished for project landing pages.\",\n card_description: \"Bright GitHub Pages theme with large hero header for project sites.\",\n url: \"/themes/cayman/\",\n category: \"Documentation\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://pages-themes.github.io/cayman/\",\n card_image: \"/assets/images/themes/cayman-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-02-20\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"cayman\",\n },\n \n {\n title: \"Centrarium Jekyll Theme\",\n description: \"A simple, classy Jekyll blog theme with a large header image, featured posts, category pages, and Google Analytics integration.\",\n card_description: \"Classy blog theme with large header images and featured posts.\",\n url: \"/themes/centrarium/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://bencentra.com/centrarium/\",\n card_image: \"/assets/images/themes/centrarium-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-04-01\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"centrarium\",\n },\n \n {\n title: \"Chalk Jekyll Theme\",\n description: \"A high quality, completely customisable Jekyll blog theme. Features an elegant two-column layout, full-text search, category filtering, and subtle animations that make the experience feel alive.\",\n card_description: \"Elegant two-column blog with full-text search and category filtering.\",\n url: \"/themes/chalk/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://chalk.nielsenramon.com/\",\n card_image: \"/assets/images/themes/chalk-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-06-07\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: true,\n slug: \"chalk\",\n },\n \n {\n title: \"Chirpy Jekyll Theme\",\n description: \"A polished, feature-rich blog theme with dark mode, full-text search, reading time, table of contents, and PWA support. One of the fastest-growing Jekyll themes.\",\n card_description: \"Feature-rich blog with dark mode, search, TOC, and PWA support.\",\n url: \"/themes/chirpy/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: true,\n dark_mode: true,\n responsive: true,\n demo_url: \"https://chirpy.cotes.page/\",\n card_image: \"/assets/images/themes/chirpy-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-01-05\",\n discount_label: null,\n discount_original_price: null,\n popular: true,\n bestseller: false,\n trending: true,\n slug: \"chirpy\",\n },\n \n {\n title: \"Clean Blog Jekyll Theme\",\n description: \"A clean, distraction-free blog theme with full-width header images per post. A Start Bootstrap original ported to Jekyll.\",\n card_description: \"Distraction-free blog with full-width header images per post.\",\n url: \"/themes/clean-blog/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: true,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://startbootstrap.github.io/startbootstrap-clean-blog-jekyll/\",\n card_image: \"/assets/images/themes/clean-blog-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-02-25\",\n discount_label: null,\n discount_original_price: null,\n popular: true,\n bestseller: false,\n trending: false,\n slug: \"clean-blog\",\n },\n \n {\n title: \"Contrast Jekyll Theme\",\n description: \"A simple, minimal Jekyll blog theme with strong typographic contrast, clean post listings, and support for tags and pagination.\",\n card_description: \"Minimal blog with strong typographic contrast and tag support.\",\n url: \"/themes/contrast/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://niklasbuschmann.github.io/contrast/\",\n card_image: \"/assets/images/themes/contrast-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-04-01\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"contrast\",\n },\n \n {\n title: \"Creative Jekyll Theme\",\n description: \"A one-page Bootstrap landing page Jekyll theme with a fullscreen hero image, smooth scroll navigation, and portfolio sections.\",\n card_description: \"One-page Bootstrap landing page with fullscreen hero and portfolio.\",\n url: \"/themes/creative/\",\n category: \"Landing Page\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://volny.github.io/creative-theme-jekyll/\",\n card_image: \"/assets/images/themes/creative-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-04-01\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"creative\",\n },\n \n {\n title: \"Devlopr Jekyll Theme\",\n description: \"A feature-rich developer portfolio Jekyll theme with an integrated blog, skills section, CMS support, and dark mode built in.\",\n card_description: \"Developer portfolio with blog, skills section, and dark mode built in.\",\n url: \"/themes/devlopr-jekyll/\",\n category: \"Portfolio\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: true,\n responsive: true,\n demo_url: \"https://devlopr.netlify.app/\",\n card_image: \"/assets/images/themes/devlopr-jekyll-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-06-07\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"devlopr-jekyll\",\n },\n \n {\n title: \"Dinky Jekyll Theme\",\n description: \"A compact GitHub Pages Jekyll theme with a fixed sidebar and clean layout. Great for small documentation pages and personal project sites.\",\n card_description: \"Compact GitHub Pages theme with fixed sidebar for small project sites.\",\n url: \"/themes/dinky/\",\n category: \"Documentation\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://pages-themes.github.io/dinky/\",\n card_image: \"/assets/images/themes/dinky-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-06-07\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"dinky\",\n },\n \n {\n title: \"Documentation Jekyll Theme\",\n description: \"A documentation and help system Jekyll theme with search, navigation sidebar, and clean typography for technical writing.\",\n card_description: \"Help system theme with search, sidebar navigation, and clean typography.\",\n url: \"/themes/documentation/\",\n category: \"Documentation\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://docs.cloudcannon.com/\",\n card_image: \"/assets/images/themes/documentation-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-04-01\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"documentation\",\n },\n \n {\n title: \"Feeling Responsive Jekyll Theme\",\n description: \"A multipurpose responsive Jekyll theme built on the Foundation framework with flexible layouts, widgets, and rich customisation options.\",\n card_description: \"Multipurpose Foundation theme with flexible layouts and rich widgets.\",\n url: \"/themes/feeling-responsive/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://phlow.github.io/feeling-responsive/\",\n card_image: \"/assets/images/themes/feeling-responsive-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-04-01\",\n discount_label: null,\n discount_original_price: null,\n popular: true,\n bestseller: false,\n trending: false,\n slug: \"feeling-responsive\",\n },\n \n {\n title: \"Flexible Jekyll\",\n description: \"A simple and clean Jekyll theme with a minimal design, dark mode support, tag pages, and a flexible two-column layout.\",\n card_description: \"Simple, clean blog with dark mode and flexible two-column layout.\",\n url: \"/themes/flexible-jekyll/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: true,\n responsive: true,\n demo_url: \"https://artemsheludko.github.io/flexible-jekyll/\",\n card_image: \"/assets/images/themes/flexible-jekyll-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-04-01\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"flexible-jekyll\",\n },\n \n {\n title: \"Forty Jekyll Theme\",\n description: \"A visually striking multipurpose Jekyll theme inspired by HTML5 UP. Features tiled project sections and high-impact full-screen headers.\",\n card_description: \"Visually striking multipurpose theme with tiled sections and full-screen headers.\",\n url: \"/themes/forty/\",\n category: \"Portfolio\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: true,\n responsive: true,\n demo_url: \"https://andrewbanchich.github.io/forty-jekyll-theme/\",\n card_image: \"/assets/images/themes/forty-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-03-01\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"forty\",\n },\n \n {\n title: \"Freelancer Jekyll Theme\",\n description: \"A flat design landing page and portfolio Jekyll theme based on the popular Freelancer Bootstrap theme by Start Bootstrap.\",\n card_description: \"Flat design portfolio and landing page theme for freelancers.\",\n url: \"/themes/freelancer/\",\n category: \"Portfolio\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://jeromelachaud.com/freelancer-theme/\",\n card_image: \"/assets/images/themes/freelancer-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-04-01\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"freelancer\",\n },\n \n {\n title: \"Hacker Blog Jekyll Theme\",\n description: \"A minimal, terminal-inspired dark Jekyll blog theme for developers. Pure CLI aesthetic — black background, monospace font, zero distractions.\",\n card_description: \"Terminal-inspired dark blog — monospace, minimal, distraction-free.\",\n url: \"/themes/hacker-blog/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: true,\n responsive: true,\n demo_url: \"https://tocttou.github.io/hacker-blog/\",\n card_image: \"/assets/images/themes/hacker-blog-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-03-05\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"hacker-blog\",\n },\n \n {\n title: \"Hacker Jekyll Theme\",\n description: \"The official GitHub Pages hacker Jekyll theme. Dark terminal-style design with monospace typography, built for developer project pages.\",\n card_description: \"Official GitHub Pages hacker theme with dark terminal-style design.\",\n url: \"/themes/hacker/\",\n category: \"Personal\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: true,\n responsive: true,\n demo_url: \"https://pages-themes.github.io/hacker/\",\n card_image: \"/assets/images/themes/hacker-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-06-07\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"hacker\",\n },\n \n {\n title: \"Hitchens Jekyll Theme\",\n description: \"An unfussy Jekyll theme for serious writers. Minimal design, elegant typography, and a dark mode — inspired by the prose of Christopher Hitchens.\",\n card_description: \"Unfussy, elegant theme for serious writers with dark mode built in.\",\n url: \"/themes/hitchens/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: true,\n responsive: true,\n demo_url: \"https://hitchens.patdryburgh.com/\",\n card_image: \"/assets/images/themes/hitchens-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-04-01\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"hitchens\",\n },\n \n {\n title: \"HPSTR Jekyll Theme\",\n description: \"A responsive, full-featured Jekyll blog theme by Michael Rose. Rich with image-forward posts, sliding panel navigation, and social sharing.\",\n card_description: \"Image-forward blog with sliding panel navigation and social sharing.\",\n url: \"/themes/hpstr/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://mmistakes.github.io/hpstr-jekyll-theme/\",\n card_image: \"/assets/images/themes/hpstr-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-06-07\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"hpstr\",\n },\n \n {\n title: \"Huxpro Jekyll Theme\",\n description: \"A beautiful, cover-image-driven Jekyll blog theme inspired by Ghost's Casper. Features full-screen hero images, smooth transitions, and a clean reading experience.\",\n card_description: \"Cover-image-driven blog inspired by Ghost's Casper theme.\",\n url: \"/themes/huxpro/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://huxpro.github.io/\",\n card_image: \"/assets/images/themes/huxpro-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-06-08\",\n discount_label: null,\n discount_original_price: null,\n popular: true,\n bestseller: false,\n trending: false,\n slug: \"huxpro\",\n },\n \n {\n title: \"Hyde Jekyll Theme\",\n description: \"A brazen two-column Jekyll theme that pairs a prominent sidebar with uncomplicated content. Based on Poole, by Mark Otto.\",\n card_description: \"Two-column theme with prominent sidebar — elegant and timeless.\",\n url: \"/themes/hyde/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://hyde.getpoole.com/\",\n card_image: \"/assets/images/themes/hyde-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-01-25\",\n discount_label: null,\n discount_original_price: null,\n popular: true,\n bestseller: false,\n trending: false,\n slug: \"hyde\",\n },\n \n {\n title: \"Hydejack Jekyll Theme\",\n description: \"A boutique Jekyll theme with a rich sidebar, smooth page transitions, and portfolio support. The premium evolution of Hyde.\",\n card_description: \"Boutique theme with smooth page transitions and portfolio support.\",\n url: \"/themes/hydejack/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: true,\n dark_mode: true,\n responsive: true,\n demo_url: \"https://hydejack.com/\",\n card_image: \"/assets/images/themes/hydejack-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-01-30\",\n discount_label: null,\n discount_original_price: null,\n popular: true,\n bestseller: false,\n trending: false,\n slug: \"hydejack\",\n },\n \n {\n title: \"Hydra Jekyll Theme\",\n description: \"A product and SaaS marketing Jekyll theme with a clean hero section, feature grid, pricing table, and testimonials.\",\n card_description: \"SaaS marketing theme with hero, feature grid, and pricing table.\",\n url: \"/themes/hydra/\",\n category: \"Landing Page\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://orange-ape.cloudvent.net/\",\n card_image: \"/assets/images/themes/hydra-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-04-01\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"hydra\",\n },\n \n {\n title: \"Jasper Jekyll Theme\",\n description: \"A Jekyll port of Ghost's default Casper theme. Brings the polished, editorial feel of Ghost blogging to static Jekyll sites.\",\n card_description: \"Jekyll port of Ghost's Casper — polished, editorial feel.\",\n url: \"/themes/jasper/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://jekyllt.github.io/jasper/\",\n card_image: \"/assets/images/themes/jasper-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-04-01\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"jasper\",\n },\n \n {\n title: \"Jekyll Now\",\n description: \"The quickest way to start a Jekyll blog. Fork on GitHub, enable Pages, and you have a live blog in under a minute — zero command line required.\",\n card_description: \"Quickest way to start a Jekyll blog — fork, enable Pages, done.\",\n url: \"/themes/jekyll-now/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://barryclark.github.io/jekyll-now/\",\n card_image: \"/assets/images/themes/jekyll-now-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-06-07\",\n discount_label: null,\n discount_original_price: null,\n popular: true,\n bestseller: false,\n trending: false,\n slug: \"jekyll-now\",\n },\n \n {\n title: \"TeXt Jekyll Theme\",\n description: \"A highly customisable Jekyll theme inspired by iOS 11 style. Features multiple skins, rich built-in components, full internationalisation, and support for blogs, documentation, and team sites.\",\n card_description: \"iOS-inspired theme with multiple skins and rich built-in components.\",\n url: \"/themes/jekyll-text-theme/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: true,\n dark_mode: true,\n responsive: true,\n demo_url: \"https://kitian616.github.io/jekyll-TeXt-theme/\",\n card_image: \"/assets/images/themes/jekyll-text-theme-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-06-07\",\n discount_label: null,\n discount_original_price: null,\n popular: true,\n bestseller: false,\n trending: false,\n slug: \"jekyll-text-theme\",\n },\n \n {\n title: \"Just the Docs Jekyll Theme\",\n description: \"The most popular Jekyll documentation theme. Clean sidebar navigation, full-text search, and excellent code block support.\",\n card_description: \"Most popular Jekyll docs theme with sidebar navigation and search.\",\n url: \"/themes/just-the-docs/\",\n category: \"Documentation\",\n price_type: \"free\",\n price: null,\n featured: true,\n dark_mode: true,\n responsive: true,\n demo_url: \"https://just-the-docs.com/\",\n card_image: \"/assets/images/themes/just-the-docs-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-01-08\",\n discount_label: null,\n discount_original_price: null,\n popular: true,\n bestseller: false,\n trending: true,\n slug: \"just-the-docs\",\n },\n \n {\n title: \"Klisé Jekyll Theme\",\n description: \"A minimalist Jekyll theme with seamless light and dark mode. Clean typography, fast performance, and a modern aesthetic — designed for personal sites and blogs that value simplicity.\",\n card_description: \"Minimalist theme with seamless dark mode and clean typography.\",\n url: \"/themes/klise/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: true,\n responsive: true,\n demo_url: \"https://klise.vercel.app/\",\n card_image: \"/assets/images/themes/klise-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-06-07\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: true,\n slug: \"klise\",\n },\n \n {\n title: \"Lanyon Jekyll Theme\",\n description: \"A Jekyll theme that hides its sidebar until you need it. Clean, spacious reading layout with a smooth slide-out navigation drawer.\",\n card_description: \"Clean blog theme with a smooth slide-out navigation drawer.\",\n url: \"/themes/lanyon/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://lanyon.getpoole.com/\",\n card_image: \"/assets/images/themes/lanyon-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-02-05\",\n discount_label: null,\n discount_original_price: null,\n popular: true,\n bestseller: false,\n trending: false,\n slug: \"lanyon\",\n },\n \n {\n title: \"Leonids Jekyll Theme\",\n description: \"A simple and clean two-column Jekyll blog theme. Fixed sidebar with author bio and social links, clean post listing, and a timeless layout that puts content front and centre.\",\n card_description: \"Two-column blog with fixed sidebar and timeless content-first layout.\",\n url: \"/themes/leonids/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://renyuanz.github.io/leonids/\",\n card_image: \"/assets/images/themes/leonids-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-06-07\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"leonids\",\n },\n \n {\n title: \"Livvic Jekyll Theme\",\n description: \"A clean, creative, and unique Jekyll theme for agency and personal portfolio websites. Features a flat modern design, unique effects, Bootstrap 4, and Font Awesome — ready to customise and launch in hours.\",\n card_description: \"Clean creative portfolio theme for agencies and freelancers — minimal, unique, responsive.\",\n url: \"/themes/livvic/\",\n category: \"Portfolio\",\n price_type: \"premium\",\n price: 49,\n featured: true,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://livvic-jekyll.tortoizthemes.com/\",\n card_image: \"/assets/images/themes/livvic-card.webp\",\n premium: false,\n buy_url: \"https://tortoizthemes.com/theme/livvic-jekyll-theme/\",\n author: \"Tortoiz Themes\",\n added_at: \"2026-06-27\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"livvic\",\n },\n \n {\n title: \"Long Haul Jekyll Theme\",\n description: \"A minimal, type-focused Jekyll theme designed for long-form writing. Understated design that keeps the reader's attention on the words.\",\n card_description: \"Minimal, type-focused theme designed for long-form writing.\",\n url: \"/themes/long-haul/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://brianmaierjr.com/long-haul/\",\n card_image: \"/assets/images/themes/long-haul-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-04-01\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"long-haul\",\n },\n \n {\n title: \"Massively Jekyll Theme\",\n description: \"A bold, image-driven Jekyll blog theme ported from HTML5 UP. Full-screen background image on the homepage, large featured post images, and a striking visual identity unlike any other Jekyll theme.\",\n card_description: \"Bold, image-driven blog with full-screen homepage background.\",\n url: \"/themes/massively/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://jekyllup.github.io/jekyll-theme-massively/\",\n card_image: \"/assets/images/themes/massively-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-06-07\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"massively\",\n },\n \n {\n title: \"Mediator Jekyll Theme\",\n description: \"A medium-inspired Jekyll blog theme with large featured images, clean typography, and a focus on long-form reading.\",\n card_description: \"Medium-inspired blog with large featured images and clean typography.\",\n url: \"/themes/mediator/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://blog.base68.com/\",\n card_image: \"/assets/images/themes/mediator-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-04-01\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"mediator\",\n },\n \n {\n title: \"Mediumish Jekyll Theme\",\n description: \"A Medium-inspired blog theme with card-based post listings, author pages, and a clean reading layout. One of the most popular Jekyll blog starters.\",\n card_description: \"Medium-inspired blog with card post listings and author pages.\",\n url: \"/themes/mediumish/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://wowthemesnet.github.io/mediumish-theme-jekyll/\",\n card_image: \"/assets/images/themes/mediumish-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-03-10\",\n discount_label: null,\n discount_original_price: null,\n popular: true,\n bestseller: false,\n trending: false,\n slug: \"mediumish\",\n },\n \n {\n title: \"Merlot Jekyll Theme\",\n description: \"A warm, editorial GitHub Pages Jekyll theme with classic typographic styling. Official GitHub Pages theme for personal and project sites.\",\n card_description: \"Warm, editorial GitHub Pages theme with classic typographic styling.\",\n url: \"/themes/merlot/\",\n category: \"Personal\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://pages-themes.github.io/merlot/\",\n card_image: \"/assets/images/themes/merlot-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-06-07\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"merlot\",\n },\n \n {\n title: \"Midnight Jekyll Theme\",\n description: \"A dark, sleek GitHub Pages Jekyll theme with light text on deep backgrounds. Official GitHub Pages theme ideal for personal projects and portfolios.\",\n card_description: \"Dark, sleek GitHub Pages theme with light text on deep backgrounds.\",\n url: \"/themes/midnight/\",\n category: \"Personal\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: true,\n responsive: true,\n demo_url: \"https://pages-themes.github.io/midnight/\",\n card_image: \"/assets/images/themes/midnight-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-06-07\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"midnight\",\n },\n \n {\n title: \"Miles Jekyll Theme\",\n description: \"A creative portfolio and agency Jekyll theme with 12+ homepage layouts, 6 portfolio styles, and 4 blog layouts. Designed for agencies, freelancers, and creative professionals who want a stunning site in hours not days.\",\n card_description: \"Creative agency and portfolio theme — 12+ homepages, 6 portfolio styles, dark design.\",\n url: \"/themes/miles/\",\n category: \"Portfolio\",\n price_type: \"premium\",\n price: 79,\n featured: true,\n dark_mode: true,\n responsive: true,\n demo_url: \"https://miles-jekyll.tortoizthemes.com/\",\n card_image: \"/assets/images/themes/miles-card.webp\",\n premium: false,\n buy_url: \"https://tortoizthemes.com/demo/miles/\",\n author: \"Tortoiz Themes\",\n added_at: \"2026-06-27\",\n discount_label: null,\n discount_original_price: null,\n popular: true,\n bestseller: false,\n trending: false,\n slug: \"miles\",\n },\n \n {\n title: \"Millennial Jekyll Theme\",\n description: \"A minimalist, responsive Jekyll blog theme with a clean layout, tag support, pagination, and social share buttons.\",\n card_description: \"Minimalist responsive blog with tag support and social share buttons.\",\n url: \"/themes/millennial/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://lenpaul.github.io/Millennial/\",\n card_image: \"/assets/images/themes/millennial-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-04-01\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"millennial\",\n },\n \n {\n title: \"Minima Jekyll Theme\",\n description: \"Jekyll's built-in default theme. Minimal, clean, and battle-tested. The foundation every Jekyll developer knows.\",\n card_description: \"Jekyll's default theme — minimal, clean, and battle-tested.\",\n url: \"/themes/minima/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: true,\n responsive: true,\n demo_url: \"https://jekyll.github.io/minima/\",\n card_image: \"/assets/images/themes/minima-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-01-01\",\n discount_label: null,\n discount_original_price: null,\n popular: true,\n bestseller: false,\n trending: false,\n slug: \"minima\",\n },\n \n {\n title: \"Minimal Mistakes Jekyll Theme\",\n description: \"The most popular Jekyll theme on GitHub. A flexible two-column theme perfect for personal sites, blogs, documentation, and portfolios — with 12 layout skins.\",\n card_description: \"Most popular Jekyll theme — flexible two-column with 12 layout skins.\",\n url: \"/themes/minimal-mistakes/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: true,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://mmistakes.github.io/minimal-mistakes/\",\n card_image: \"/assets/images/themes/minimal-mistakes-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-01-02\",\n discount_label: null,\n discount_original_price: null,\n popular: true,\n bestseller: false,\n trending: false,\n slug: \"minimal-mistakes\",\n },\n \n {\n title: \"Minimal Jekyll Theme\",\n description: \"The official minimal GitHub Pages Jekyll theme. Clean and lightweight with great default typography for personal projects and documentation.\",\n card_description: \"Official minimal GitHub Pages theme — clean and lightweight.\",\n url: \"/themes/minimal/\",\n category: \"Personal\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://pages-themes.github.io/minimal/\",\n card_image: \"/assets/images/themes/minimal-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-06-07\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"minimal\",\n },\n \n {\n title: \"Modern Resume Theme Jekyll Theme\",\n description: \"A sleek, single-page resume/CV theme for Jekyll. Dark header, clean timeline layout, and sections for experience, education, skills, and projects.\",\n card_description: \"Sleek single-page resume/CV with timeline and skills sections.\",\n url: \"/themes/modern-resume-theme/\",\n category: \"Resume / CV\",\n price_type: \"free\",\n price: null,\n featured: true,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://sproogen.github.io/modern-resume-theme/\",\n card_image: \"/assets/images/themes/modern-resume-theme-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-02-28\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"modern-resume-theme\",\n },\n \n {\n title: \"Moonwalk Jekyll Theme\",\n description: \"A dark, minimal Jekyll blog theme with a focus on typography and whitespace. Elegant simplicity for serious writers.\",\n card_description: \"Dark, minimal blog focused on typography and generous whitespace.\",\n url: \"/themes/moonwalk/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: true,\n responsive: true,\n demo_url: \"https://abhinavs.github.io/moonwalk/\",\n card_image: \"/assets/images/themes/moonwalk-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-03-12\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: true,\n slug: \"moonwalk\",\n },\n \n {\n title: \"Mundana Jekyll Theme\",\n description: \"A modern Jekyll theme for bloggers built with Bootstrap 4. Features featured posts, category pages, newsletter signup, and clean card layouts.\",\n card_description: \"Modern Bootstrap 4 blog with featured posts and newsletter signup.\",\n url: \"/themes/mundana/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://mundana.amitmerchant.com/\",\n card_image: \"/assets/images/themes/mundana-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-04-01\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"mundana\",\n },\n \n {\n title: \"Online CV Jekyll Theme\",\n description: \"A one-page Jekyll CV and resume theme for creating a beautiful online portfolio. Minimal, readable design perfect for job seekers and freelancers.\",\n card_description: \"One-page CV/resume theme for a beautiful online portfolio.\",\n url: \"/themes/online-cv/\",\n category: \"Resume / CV\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://sharu725.github.io/online-cv/\",\n card_image: \"/assets/images/themes/online-cv-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-03-15\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"online-cv\",\n },\n \n {\n title: \"Origin Jekyll Theme\",\n description: \"A fully featured and highly configurable modern blog theme for Jekyll. Includes categories, authors, comments, pagination, dark mode, and a perfect 100/100 Google Lighthouse score.\",\n card_description: \"Modern blog theme with dark mode, authors, categories, and 100/100 Lighthouse.\",\n url: \"/themes/origin/\",\n category: \"Blog\",\n price_type: \"premium\",\n price: 49,\n featured: true,\n dark_mode: true,\n responsive: true,\n demo_url: \"https://jekyll-origin.netlify.app/\",\n card_image: \"/assets/images/themes/origin-card.webp\",\n premium: false,\n buy_url: \"https://www.zerostatic.io/theme/jekyll-origin/\",\n author: \"Zerostatic\",\n added_at: \"2026-06-27\",\n discount_label: null,\n discount_original_price: null,\n popular: true,\n bestseller: false,\n trending: false,\n slug: \"origin\",\n },\n \n {\n title: \"Phantom Jekyll Theme\",\n description: \"A minimalist, responsive portfolio Jekyll theme with a project grid, modal image viewer, and subtle hover animations.\",\n card_description: \"Minimalist portfolio with project grid and modal image viewer.\",\n url: \"/themes/phantom/\",\n category: \"Portfolio\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://jamigibbs.github.io/phantom/\",\n card_image: \"/assets/images/themes/phantom-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-04-01\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"phantom\",\n },\n \n {\n title: \"Pixyll Jekyll Theme\",\n description: \"A simple, beautiful Jekyll theme that puts your content first. Mobile-first, fluidly responsive, and delightfully lightweight — built around great typography and generous whitespace.\",\n card_description: \"Simple, beautiful theme that puts content first with generous whitespace.\",\n url: \"/themes/pixyll/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://pixyll.com/\",\n card_image: \"/assets/images/themes/pixyll-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-06-07\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"pixyll\",\n },\n \n {\n title: \"Primer Jekyll Theme\",\n description: \"The official GitHub Pages primer Jekyll theme. Clean, GitHub-style design with great readability — perfect for documentation and project pages.\",\n card_description: \"Official GitHub Pages primer theme — clean GitHub-style for docs.\",\n url: \"/themes/primer/\",\n category: \"Documentation\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://pages-themes.github.io/primer/\",\n card_image: \"/assets/images/themes/primer-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-06-07\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"primer\",\n },\n \n {\n title: \"Researcher Jekyll Theme\",\n description: \"A minimal, clean Jekyll theme for a single-page academic CV. Presents your education, experience, publications, and skills in a clear, professional layout that loads instantly.\",\n card_description: \"Minimal single-page academic CV with a clean, professional layout.\",\n url: \"/themes/researcher/\",\n category: \"Resume / CV\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://ankitsultana.com/researcher/\",\n card_image: \"/assets/images/themes/researcher-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-06-07\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"researcher\",\n },\n \n {\n title: \"Reverie Jekyll Theme\",\n description: \"A ridiculously elegant, fully responsive Jekyll blog theme based on Poole. Supports categories, tags, Disqus comments, and Google Analytics.\",\n card_description: \"Elegantly responsive blog based on Poole with categories and tags.\",\n url: \"/themes/reverie/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://reverie.amitmerchant.com/\",\n card_image: \"/assets/images/themes/reverie-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-04-01\",\n discount_label: null,\n discount_original_price: null,\n popular: true,\n bestseller: false,\n trending: false,\n slug: \"reverie\",\n },\n \n {\n title: \"Sandbox Jekyll Theme\",\n description: \"A massive multipurpose Jekyll theme with 27 home pages, 130+ ready-to-use blocks, and 250+ UI elements. Built with Bootstrap 5 and zero jQuery — perfect for startups, SaaS, agencies, portfolios, and eCommerce sites.\",\n card_description: \"Multipurpose theme — 27 homepages, 130+ blocks, 250+ UI elements, Bootstrap 5.\",\n url: \"/themes/sandbox/\",\n category: \"Business\",\n price_type: \"premium\",\n price: 99,\n featured: true,\n dark_mode: true,\n responsive: true,\n demo_url: \"https://sandbox.tortoizthemes.com/demo28/\",\n card_image: \"/assets/images/themes/sandbox-card.webp\",\n premium: false,\n buy_url: \"https://tortoizthemes.com/theme/sandbox/\",\n author: \"Tortoiz Themes\",\n added_at: \"2026-06-27\",\n discount_label: null,\n discount_original_price: null,\n popular: true,\n bestseller: true,\n trending: true,\n slug: \"sandbox\",\n },\n \n {\n title: \"Scriptor Jekyll Theme\",\n description: \"A minimal, clean, and modern Jekyll theme for writers and bloggers. Elegant typography, featured images, and a distraction-free reading layout built for long-form content.\",\n card_description: \"Minimal, modern theme for writers with elegant typography.\",\n url: \"/themes/scriptor/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://scriptor-jekyll.netlify.app/\",\n card_image: \"/assets/images/themes/scriptor-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-06-07\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"scriptor\",\n },\n \n {\n title: \"Serif Jekyll Theme\",\n description: \"A beautiful small business Jekyll theme by CloudCannon. Elegant serif typography, warm tones, and sections for services, team members, and contact.\",\n card_description: \"Beautiful small business theme with serif typography and service sections.\",\n url: \"/themes/serif/\",\n category: \"Business\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://serif.cloudcannon.com/\",\n card_image: \"/assets/images/themes/serif-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-02-08\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"serif\",\n },\n \n {\n title: \"Slate Jekyll Theme\",\n description: \"A bold, dark GitHub Pages Jekyll theme with prominent sidebar navigation and strong code styling. Official GitHub Pages theme for developer docs.\",\n card_description: \"Bold, dark GitHub Pages theme for developer docs with sidebar nav.\",\n url: \"/themes/slate/\",\n category: \"Documentation\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://pages-themes.github.io/slate/\",\n card_image: \"/assets/images/themes/slate-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-06-07\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"slate\",\n },\n \n {\n title: \"Snowlake Jekyll Theme\",\n description: \"A versatile multipurpose Jekyll theme with 27 unique demos, 17 color schemes, 5 font options, Slider Revolution, and 4 icon sets with 2300+ icons. Built on Jekyll 4.3+ and Bootstrap 5 — ideal for businesses, agencies, SaaS, and creatives.\",\n card_description: \"Multipurpose theme — 27 demos, 17 color schemes, Slider Revolution, Bootstrap 5.\",\n url: \"/themes/snowlake/\",\n category: \"Business\",\n price_type: \"premium\",\n price: 79,\n featured: true,\n dark_mode: true,\n responsive: true,\n demo_url: \"https://snowlake.tortoizthemes.com/\",\n card_image: \"/assets/images/themes/snowlake-card.webp\",\n premium: false,\n buy_url: \"https://tortoizthemes.com/theme/snowlake-jekyll-theme/\",\n author: \"Tortoiz Themes\",\n added_at: \"2026-06-27\",\n discount_label: null,\n discount_original_price: null,\n popular: true,\n bestseller: false,\n trending: true,\n slug: \"snowlake\",\n },\n \n {\n title: \"So Simple Jekyll Theme\",\n description: \"A simple Jekyll theme for words and pictures. Clean reading layout with support for author profiles, social links, and Google Analytics.\",\n card_description: \"Simple theme for words and pictures with author profile support.\",\n url: \"/themes/so-simple/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://mmistakes.github.io/so-simple-theme/\",\n card_image: \"/assets/images/themes/so-simple-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-04-01\",\n discount_label: null,\n discount_original_price: null,\n popular: true,\n bestseller: false,\n trending: false,\n slug: \"so-simple\",\n },\n \n {\n title: \"Swiss Jekyll Theme\",\n description: \"A bold, typographic Jekyll theme inspired by International Swiss Style design. Strong grid, oversized headings, and a clean black-and-white palette that puts typography first.\",\n card_description: \"Bold, typographic theme inspired by Swiss International Style design.\",\n url: \"/themes/swiss/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://broccolini.net/swiss/\",\n card_image: \"/assets/images/themes/swiss-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-06-07\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"swiss\",\n },\n \n {\n title: \"Tactile Jekyll Theme\",\n description: \"A textured, warm GitHub Pages Jekyll theme with a hand-crafted sidebar style. Official GitHub Pages theme with classic personality and charm.\",\n card_description: \"Textured, warm GitHub Pages theme with hand-crafted sidebar style.\",\n url: \"/themes/tactile/\",\n category: \"Personal\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://pages-themes.github.io/tactile/\",\n card_image: \"/assets/images/themes/tactile-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-06-07\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"tactile\",\n },\n \n {\n title: \"Tale Jekyll Theme\",\n description: \"An minimal Jekyll theme focused on content. Elegant single-column layout with beautiful typography, clean post listings, and zero visual noise — perfect for long-form writing.\",\n card_description: \"Minimal, elegant single-column blog for long-form writing.\",\n url: \"/themes/tale/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://chesterhow.github.io/tale/\",\n card_image: \"/assets/images/themes/tale-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-06-07\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"tale\",\n },\n \n {\n title: \"Type Theme Jekyll Theme\",\n description: \"A free, open-source theme for Jekyll focused purely on typography and reading. Minimal design, fast load times, and a beautifully simple blog layout for writers who mean business.\",\n card_description: \"Typography-focused minimal theme for writers who value clean reading.\",\n url: \"/themes/type-theme/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: false,\n responsive: true,\n demo_url: \"https://rohanchandra.github.io/type-theme/\",\n card_image: \"/assets/images/themes/type-theme-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-06-07\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: false,\n slug: \"type-theme\",\n },\n \n {\n title: \"YAT Jekyll Theme\",\n description: \"Yet Another Theme — a modern, flat-design Jekyll blog theme with night mode, multi-language support, and beautiful typography. Clean, fast, and elegant for writers and developers alike.\",\n card_description: \"Modern flat-design blog with night mode and multi-language support.\",\n url: \"/themes/yat/\",\n category: \"Blog\",\n price_type: \"free\",\n price: null,\n featured: false,\n dark_mode: true,\n responsive: true,\n demo_url: \"https://jeffreytse.github.io/jekyll-theme-yat/\",\n card_image: \"/assets/images/themes/yat-card.webp\",\n premium: false,\n buy_url: null,\n author: \"GitHub Community\",\n added_at: \"2026-06-07\",\n discount_label: null,\n discount_original_price: null,\n popular: false,\n bestseller: false,\n trending: true,\n slug: \"yat\",\n }\n \n ],\n posts: [\n \n {\n title: \"Jekyll vs Gatsby: Which Static Site Generator Should You Choose in 2026?\",\n excerpt: \"Jekyll and Gatsby both produce fast, static websites — but they come from completely different worlds. Jekyll is a mature, Ruby-based generator built for sim...\",\n url: \"/comparison/2026/07/03/jekyll-vs-gatsby/\",\n tags: [],\n category: \"Comparison\",\n date: \"July 3, 2026\",\n image: \"/assets/images/blog/jekyll-vs-gatsby.webp\"\n },\n \n {\n title: \"Jekyll Static Files and Assets: How to Manage Images, CSS, and JS\",\n excerpt: \"Jekyll processes some files (Markdown, Liquid templates, Sass) and copies others unchanged. Understanding which is which — and how to reference assets correc...\",\n url: \"/tutorial/2026/07/02/jekyll-static-files-assets/\",\n tags: [],\n category: \"Tutorial\",\n date: \"July 2, 2026\",\n image: \"/assets/images/blog/jekyll-static-files-assets.webp\"\n },\n \n {\n title: \"Jekyll Drafts and Publishing Workflow: How to Manage Content\",\n excerpt: \"Jekyll gives you several ways to keep content out of your public site while you work on it: the _drafts/ folder, published: false front matter, and future-da...\",\n url: \"/tutorial/2026/07/01/jekyll-drafts-publishing-workflow/\",\n tags: [],\n category: \"Tutorial\",\n date: \"July 1, 2026\",\n image: \"/assets/images/blog/jekyll-drafts-publishing-workflow.webp\"\n },\n \n {\n title: \"How to Use Sass and SCSS with Jekyll (Complete Guide)\",\n excerpt: \"Jekyll has built-in Sass processing — no Node.js, no build tools, no webpack required. Write SCSS files, Jekyll compiles them to CSS automatically. This guid...\",\n url: \"/tutorial/2026/06/30/jekyll-sass-scss-guide/\",\n tags: [],\n category: \"Tutorial\",\n date: \"June 30, 2026\",\n image: \"/assets/images/blog/jekyll-sass-scss-guide.webp\"\n },\n \n {\n title: \"Jekyll Permalinks and URL Structure: The Complete Guide\",\n excerpt: \"Jekyll gives you precise control over the URL structure of every page on your site. Understanding how permalinks work is important for clean URLs, SEO, and e...\",\n url: \"/tutorial/2026/06/29/jekyll-permalinks-url-structure/\",\n tags: [],\n category: \"Tutorial\",\n date: \"June 29, 2026\",\n image: \"/assets/images/blog/jekyll-permalinks-url-structure.webp\"\n },\n \n {\n title: \"Jekyll Variables Reference: site, page, layout, and More\",\n excerpt: \"Jekyll makes a set of variables available in every template through Liquid. Knowing which variables exist and what they contain is essential for building and...\",\n url: \"/tutorial/2026/06/28/jekyll-variables-reference/\",\n tags: [],\n category: \"Tutorial\",\n date: \"June 28, 2026\",\n image: \"/assets/images/blog/jekyll-variables-reference.webp\"\n },\n \n {\n title: \"What Makes a Good Jekyll Theme? (Checklist Before You Buy)\",\n excerpt: \"A Jekyll theme can look polished in a screenshot and be a nightmare to work with in practice. Bad themes have hard-coded values scattered across templates, S...\",\n url: \"/themes/2026/06/27/what-makes-a-good-jekyll-theme/\",\n tags: [\"jekyll themes\",\"jekyll theme quality\",\"best jekyll themes\",\"premium jekyll themes\",\"jekyll theme checklist\"],\n category: \"Themes\",\n date: \"June 27, 2026\",\n image: \"/assets/images/blog/what-makes-a-good-jekyll-theme.webp\"\n },\n \n {\n title: \"Jekyll Liquid Tags: The Complete Reference Guide\",\n excerpt: \"Liquid tags are the logic layer of Jekyll templates. Wrapped in {% %} delimiters, they control flow, create variables, loop over data, and embed content — wi...\",\n url: \"/tutorial/2026/06/26/jekyll-liquid-tags-reference/\",\n tags: [],\n category: \"Tutorial\",\n date: \"June 26, 2026\",\n image: \"/assets/images/blog/jekyll-liquid-tags-reference.webp\"\n },\n \n {\n title: \"Jekyll Liquid Templating: A Beginner's Complete Guide\",\n excerpt: \"Liquid is the template language Jekyll uses to make HTML dynamic. It was created by Shopify and is also used in many other platforms. In Jekyll, Liquid lets ...\",\n url: \"/tutorial/2026/06/25/jekyll-liquid-templating-basics/\",\n tags: [],\n category: \"Tutorial\",\n date: \"June 25, 2026\",\n image: \"/assets/images/blog/jekyll-liquid-templating-basics.webp\"\n },\n \n {\n title: \"Jekyll Directory Structure Explained: What Every File and Folder Does\",\n excerpt: \"When you first open a Jekyll project, the folder structure can look confusing. Underscores everywhere, a _site folder that appears after building, special fi...\",\n url: \"/tutorial/2026/06/24/jekyll-directory-structure/\",\n tags: [],\n category: \"Tutorial\",\n date: \"June 24, 2026\",\n image: \"/assets/images/blog/jekyll-directory-structure.webp\"\n },\n \n {\n title: \"Jekyll Remote Themes: How to Use Any GitHub Theme Without Installing It\",\n excerpt: \"Remote themes are one of the most convenient ways to use a Jekyll theme — especially on GitHub Pages. Instead of installing a theme as a Ruby gem, you refere...\",\n url: \"/tutorial/2026/06/23/jekyll-remote-themes/\",\n tags: [],\n category: \"Tutorial\",\n date: \"June 23, 2026\",\n image: \"/assets/images/blog/jekyll-remote-themes.webp\"\n },\n \n {\n title: \"Jekyll _config.yml: The Complete Configuration Guide\",\n excerpt: \"_config.yml is the single most important file in a Jekyll project. It controls everything: your site’s URL, which plugins run, how collections are defined, w...\",\n url: \"/tutorial/2026/06/22/jekyll-config-yml-guide/\",\n tags: [],\n category: \"Tutorial\",\n date: \"June 22, 2026\",\n image: \"/assets/images/blog/jekyll-config-yml-guide.webp\"\n },\n \n {\n title: \"10 Things to Check Before Installing a Jekyll Theme\",\n excerpt: \"Installing a Jekyll theme takes minutes. Undoing a bad choice takes hours. Before you run bundle install, it is worth spending ten minutes checking these ten...\",\n url: \"/themes/2026/06/21/jekyll-theme-checklist-before-installing/\",\n tags: [\"jekyll themes\",\"jekyll theme checklist\",\"install jekyll theme\",\"jekyll theme quality\"],\n category: \"Themes\",\n date: \"June 21, 2026\",\n image: \"/assets/images/blog/jekyll-theme-checklist-before-installing.webp\"\n },\n \n {\n title: \"Jekyll Includes vs Layouts: What's the Difference and When to Use Each\",\n excerpt: \"Jekyll has two ways to reuse HTML across your site: layouts and includes. Both reduce repetition, but they work differently and serve different purposes. Und...\",\n url: \"/tutorial/2026/06/20/jekyll-includes-vs-layouts/\",\n tags: [],\n category: \"Tutorial\",\n date: \"June 20, 2026\",\n image: \"/assets/images/blog/jekyll-includes-vs-layouts.webp\"\n },\n \n {\n title: \"Jekyll Layouts Explained: How to Structure Your Site Templates\",\n excerpt: \"Layouts are Jekyll’s template system — reusable HTML wrappers that surround your content. Every page on your Jekyll site uses a layout, even if you have not ...\",\n url: \"/tutorial/2026/06/19/jekyll-layouts-explained/\",\n tags: [],\n category: \"Tutorial\",\n date: \"June 19, 2026\",\n image: \"/assets/images/blog/jekyll-layouts-explained.webp\"\n },\n \n {\n title: \"Jekyll Front Matter: The Complete Guide\",\n excerpt: \"Front matter is how Jekyll knows what to do with a file. Without it, Jekyll treats a file as a static asset and copies it unchanged. With it, Jekyll processe...\",\n url: \"/tutorial/2026/06/18/jekyll-front-matter-guide/\",\n tags: [],\n category: \"Tutorial\",\n date: \"June 18, 2026\",\n image: \"/assets/images/blog/jekyll-front-matter-guide.webp\"\n },\n \n {\n title: \"How to Deploy a Jekyll Site to Firebase Hosting (2026 Guide)\",\n excerpt: \"Firebase Hosting is Google’s static hosting platform — part of the Firebase suite alongside Firestore, Auth, and Cloud Functions. For a Jekyll site, it offer...\",\n url: \"/tutorial/2026/06/17/deploy-jekyll-firebase/\",\n tags: [],\n category: \"Tutorial\",\n date: \"June 17, 2026\",\n image: \"/assets/images/blog/deploy-jekyll-firebase.webp\"\n },\n \n {\n title: \"How to Deploy a Jekyll Site to AWS (S3 + CloudFront Guide)\",\n excerpt: \"Deploying a Jekyll site to AWS gives you enterprise-grade infrastructure with granular control over every aspect of your hosting. The standard setup combines...\",\n url: \"/tutorial/2026/06/16/deploy-jekyll-aws/\",\n tags: [],\n category: \"Tutorial\",\n date: \"June 16, 2026\",\n image: \"/assets/images/blog/deploy-jekyll-aws.webp\"\n },\n \n {\n title: \"How to Pick the Perfect Jekyll Theme for Your Website\",\n excerpt: \"Picking a Jekyll theme feels simple until you are staring at hundreds of options and realise they all look good in the screenshots. The wrong choice means ho...\",\n url: \"/themes/2026/06/15/how-to-pick-jekyll-theme/\",\n tags: [\"jekyll themes\",\"choose jekyll theme\",\"jekyll theme guide\",\"jekyll for beginners\"],\n category: \"Themes\",\n date: \"June 15, 2026\",\n image: \"/assets/images/blog/how-to-pick-jekyll-theme.webp\"\n },\n \n {\n title: \"How to Deploy a Jekyll Site to Vercel (2026 Guide)\",\n excerpt: \"Vercel is best known as the home of Next.js, but it works equally well for Jekyll sites. Its build infrastructure is fast, the developer experience is polish...\",\n url: \"/tutorial/2026/06/14/deploy-jekyll-vercel/\",\n tags: [],\n category: \"Tutorial\",\n date: \"June 14, 2026\",\n image: \"/assets/images/blog/deploy-jekyll-vercel.webp\"\n },\n \n {\n title: \"How to Deploy a Jekyll Site to Netlify (Complete 2026 Guide)\",\n excerpt: \"Netlify was the platform that made deploying static sites simple and it remains one of the best choices for Jekyll in 2026. Automatic deploys from Git, previ...\",\n url: \"/tutorial/2026/06/13/deploy-jekyll-netlify/\",\n tags: [],\n category: \"Tutorial\",\n date: \"June 13, 2026\",\n image: \"/assets/images/blog/deploy-jekyll-netlify.webp\"\n },\n \n {\n title: \"How to Deploy a Jekyll Site to Cloudflare Pages (Step-by-Step Guide)\",\n excerpt: \"Cloudflare Pages is one of the best places to host a Jekyll site in 2026. It is free for unlimited sites, has 300+ CDN locations worldwide, deploys automatic...\",\n url: \"/tutorial/2026/06/12/deploy-jekyll-cloudflare-pages/\",\n tags: [],\n category: \"Tutorial\",\n date: \"June 12, 2026\",\n image: \"/assets/images/blog/deploy-jekyll-cloudflare-pages.webp\"\n },\n \n {\n title: \"How to Grow Traffic to Your Jekyll Blog (A Practical Guide for 2026)\",\n excerpt: \"A Jekyll blog with zero visitors is just a collection of Markdown files. Getting consistent organic traffic requires deliberate effort — but it is not myster...\",\n url: \"/tutorial/2026/06/11/grow-jekyll-blog-traffic/\",\n tags: [],\n category: \"Tutorial\",\n date: \"June 11, 2026\",\n image: \"/assets/images/blog/grow-jekyll-blog-traffic.webp\"\n },\n \n {\n title: \"How to Monetize a Jekyll Blog in 2026 (7 Strategies That Actually Work)\",\n excerpt: \"Jekyll is a static site — it has no built-in monetization features. But that does not mean you cannot make money from it. The absence of a CMS or plugin mark...\",\n url: \"/tutorial/2026/06/10/jekyll-blog-monetization/\",\n tags: [],\n category: \"Tutorial\",\n date: \"June 10, 2026\",\n image: \"/assets/images/blog/jekyll-blog-monetization.webp\"\n },\n \n {\n title: \"How to Add a Custom 404 Page to Your Jekyll Site\",\n excerpt: \"A default 404 page is a dead end. A custom 404 page turns a broken link into an opportunity — pointing visitors to your most popular content, your search pag...\",\n url: \"/tutorial/2026/06/09/jekyll-custom-404-page/\",\n tags: [\"jekyll 404 page\",\"custom 404 jekyll\",\"jekyll error page\",\"jekyll not found page\"],\n category: \"Tutorial\",\n date: \"June 9, 2026\",\n image: \"/assets/images/blog/jekyll-custom-404.webp\"\n },\n \n {\n title: \"Using Jekyll for Open Source Project Documentation\",\n excerpt: \"Jekyll powers documentation for thousands of open source projects — Bootstrap, Jekyll itself, GitHub’s own docs, and hundreds of others. It is the natural ch...\",\n url: \"/tutorial/2026/06/08/jekyll-open-source-documentation/\",\n tags: [],\n category: \"Tutorial\",\n date: \"June 8, 2026\",\n image: \"/assets/images/blog/jekyll-open-source-documentation.webp\"\n },\n \n {\n title: \"How to Build a Resume or CV Website with Jekyll\",\n excerpt: \"An online resume or CV is one of the most valuable things a developer, designer, academic, or job seeker can have. A Jekyll-based CV gives you full control o...\",\n url: \"/tutorial/2026/06/07/jekyll-resume-cv-website/\",\n tags: [],\n category: \"Tutorial\",\n date: \"June 7, 2026\",\n image: \"/assets/images/blog/jekyll-resume-cv-website.webp\"\n },\n \n {\n title: \"Core Web Vitals for Jekyll Sites: A Practical Optimisation Guide (2026)\",\n excerpt: \"Jekyll sites start with an inherent performance advantage — no database, no server-side rendering, no PHP. But Core Web Vitals are not just about server spee...\",\n url: \"/tutorial/2026/06/06/jekyll-core-web-vitals/\",\n tags: [],\n category: \"Tutorial\",\n date: \"June 6, 2026\",\n image: \"/assets/images/blog/jekyll-core-web-vitals.webp\"\n },\n \n {\n title: \"Jekyll with a Headless CMS: Contentful, Sanity, and Decap Compared\",\n excerpt: \"Jekyll stores content as Markdown files — ideal for developers, frustrating for non-technical editors who want a visual dashboard. A headless CMS solves this...\",\n url: \"/tutorial/2026/06/05/jekyll-headless-cms/\",\n tags: [],\n category: \"Tutorial\",\n date: \"June 5, 2026\",\n image: \"/assets/images/blog/jekyll-headless-cms.webp\"\n },\n \n {\n title: \"How to Add a CMS to Jekyll with Decap CMS (Formerly Netlify CMS)\",\n excerpt: \"Jekyll is code-first — posts are Markdown files, publishing means a Git commit. That’s great for developers but a barrier for non-technical collaborators. De...\",\n url: \"/tutorial/2026/06/04/jekyll-decap-cms/\",\n tags: [\"jekyll cms\",\"decap cms jekyll\",\"netlify cms jekyll\",\"jekyll headless cms\",\"jekyll admin panel\"],\n category: \"Tutorial\",\n date: \"June 4, 2026\",\n image: \"/assets/images/blog/jekyll-decap-cms.webp\"\n },\n \n {\n title: \"How to Add Interactivity to Jekyll with Alpine.js\",\n excerpt: \"Jekyll produces static HTML — no JavaScript framework, no reactive state, just pages. That is a feature, not a bug. But sometimes you need a little interacti...\",\n url: \"/tutorial/2026/06/03/jekyll-alpine-js/\",\n tags: [],\n category: \"Tutorial\",\n date: \"June 3, 2026\",\n image: \"/assets/images/blog/jekyll-alpine-js.webp\"\n },\n \n {\n title: \"How to Use Tailwind CSS with Jekyll (2026 Guide)\",\n excerpt: \"Tailwind CSS and Jekyll are a natural combination — Tailwind’s utility-first approach works beautifully in Liquid templates, and the purging process eliminat...\",\n url: \"/tutorial/2026/06/02/jekyll-tailwind-css/\",\n tags: [],\n category: \"Tutorial\",\n date: \"June 2, 2026\",\n image: \"/assets/images/blog/jekyll-tailwind-css.webp\"\n },\n \n {\n title: \"Jekyll vs Webflow: Which Is Right for Your Website in 2026?\",\n excerpt: \"Jekyll and Webflow represent two very different approaches to building websites. Jekyll is a code-first static site generator. Webflow is a visual design too...\",\n url: \"/comparison/2026/06/01/jekyll-vs-webflow/\",\n tags: [],\n category: \"Comparison\",\n date: \"June 1, 2026\",\n image: \"/assets/images/blog/jekyll-vs-webflow.webp\"\n },\n \n {\n title: \"Jekyll vs Ghost: Which Platform Is Right for Your Blog in 2026?\",\n excerpt: \"Jekyll and Ghost are both popular choices for bloggers and writers, but they come from opposite ends of the web publishing spectrum. Jekyll is a static site ...\",\n url: \"/comparison/2026/05/31/jekyll-vs-ghost/\",\n tags: [],\n category: \"Comparison\",\n date: \"May 31, 2026\",\n image: \"/assets/images/blog/jekyll-vs-ghost.webp\"\n },\n \n {\n title: \"Jekyll vs Astro: Which Static Site Generator Should You Use in 2026?\",\n excerpt: \"Astro launched in 2021 and quickly became one of the most talked-about static site generators. Jekyll has been around since 2008 and remains one of the most ...\",\n url: \"/comparison/2026/05/30/jekyll-vs-astro/\",\n tags: [],\n category: \"Comparison\",\n date: \"May 30, 2026\",\n image: \"/assets/images/blog/jekyll-vs-astro.webp\"\n },\n \n {\n title: \"Accessibility Best Practices for Jekyll Themes (WCAG 2.2 Guide)\",\n excerpt: \"Accessibility is not a nice-to-have — it determines whether your content reaches everyone. An inaccessible Jekyll theme excludes users with visual, motor, an...\",\n url: \"/tutorial/2026/05/29/jekyll-accessibility-wcag/\",\n tags: [\"jekyll accessibility\",\"wcag jekyll\",\"accessible jekyll theme\",\"jekyll aria\"],\n category: \"Tutorial\",\n date: \"May 29, 2026\",\n image: \"/assets/images/blog/jekyll-accessibility.webp\"\n },\n \n {\n title: \"How to Sell a Jekyll Theme: A Complete Guide for Developers\",\n excerpt: \"Building a great Jekyll theme is one thing. Turning it into a product people will pay for is another. This guide covers everything — from what buyers expect ...\",\n url: \"/tutorial/2026/05/28/how-to-sell-jekyll-theme/\",\n tags: [],\n category: \"Tutorial\",\n date: \"May 28, 2026\",\n image: \"/assets/images/blog/how-to-sell-jekyll-theme.webp\"\n },\n \n {\n title: \"Best Jekyll Themes for Writers and Bloggers in 2026\",\n excerpt: \"Writers have different needs from developers. You want beautiful typography, generous line spacing, a clean reading experience, and a design that makes your ...\",\n url: \"/themes/2026/05/27/jekyll-themes-for-writers/\",\n tags: [],\n category: \"Themes\",\n date: \"May 27, 2026\",\n image: \"/assets/images/blog/jekyll-themes-for-writers.webp\"\n },\n \n {\n title: \"How to Set Up a Multi-Author Jekyll Blog\",\n excerpt: \"Jekyll does not have user accounts or a login system, but it handles multiple authors elegantly using collections. You define each author as a data file or c...\",\n url: \"/tutorial/2026/05/26/jekyll-multi-author-blog/\",\n tags: [],\n category: \"Tutorial\",\n date: \"May 26, 2026\",\n image: \"/assets/images/blog/jekyll-multi-author-blog.webp\"\n },\n \n {\n title: \"Best Jekyll Themes for Small Business Websites in 2026\",\n excerpt: \"Jekyll is an excellent choice for small business websites. Pages load in milliseconds, hosting is free or nearly free, and there is no database to hack or Wo...\",\n url: \"/themes/2026/05/25/best-jekyll-themes-small-business/\",\n tags: [],\n category: \"Themes\",\n date: \"May 25, 2026\",\n image: \"/assets/images/blog/best-jekyll-themes-small-business.webp\"\n },\n \n {\n title: \"How to Add an Email Newsletter Signup to Your Jekyll Site\",\n excerpt: \"Building an email list is one of the highest-value things you can do for a content site — owned audience, no algorithm dependency. Jekyll doesn’t have a buil...\",\n url: \"/tutorial/2026/05/24/jekyll-newsletter-signup/\",\n tags: [\"jekyll newsletter\",\"mailchimp jekyll\",\"convertkit jekyll\",\"jekyll email signup\",\"static site newsletter\"],\n category: \"Tutorial\",\n date: \"May 24, 2026\",\n image: \"/assets/images/blog/jekyll-newsletter-signup.webp\"\n },\n \n {\n title: \"Jekyll E-commerce with Snipcart: Add a Shopping Cart to Your Static Site\",\n excerpt: \"Jekyll is a static site generator — it does not have a database, a server, or a shopping cart. But that does not mean you cannot sell online. Snipcart is a J...\",\n url: \"/tutorial/2026/05/23/jekyll-ecommerce-snipcart/\",\n tags: [],\n category: \"Tutorial\",\n date: \"May 23, 2026\",\n image: \"/assets/images/blog/jekyll-ecommerce-snipcart.webp\"\n },\n \n {\n title: \"Jekyll Environment Variables: The Complete Guide\",\n excerpt: \"Environment variables in Jekyll are simpler than you might expect — but also more limited than many developers assume coming from Node.js or Python. Here is ...\",\n url: \"/tutorial/2026/05/22/jekyll-environment-variables/\",\n tags: [],\n category: \"Tutorial\",\n date: \"May 22, 2026\",\n image: \"/assets/images/blog/jekyll-environment-variables.webp\"\n },\n \n {\n title: \"Jekyll Liquid Filters: The Complete Cheatsheet (2026)\",\n excerpt: \"Liquid filters transform output in Jekyll templates. They are chained with the pipe character | and applied to variables, strings, numbers, arrays, and dates...\",\n url: \"/tutorial/2026/05/21/jekyll-liquid-filters-cheatsheet/\",\n tags: [],\n category: \"Tutorial\",\n date: \"May 21, 2026\",\n image: \"/assets/images/blog/jekyll-liquid-filters-cheatsheet.webp\"\n },\n \n {\n title: \"Best Minimal Jekyll Themes in 2026 (Clean, Fast, Distraction-Free)\",\n excerpt: \"Minimal themes are the most popular category in the Jekyll ecosystem — and for good reason. A minimal design puts the focus on your content, loads in millise...\",\n url: \"/themes/2026/05/20/jekyll-minimal-themes/\",\n tags: [],\n category: \"Themes\",\n date: \"May 20, 2026\",\n image: \"/assets/images/blog/jekyll-minimal-themes.webp\"\n },\n \n {\n title: \"Jekyll vs Next.js: A Practical Comparison for 2026\",\n excerpt: \"Jekyll and Next.js are both capable of producing fast, statically-generated websites. But comparing them is a bit like comparing a bicycle to a car — they ar...\",\n url: \"/comparison/2026/05/19/jekyll-vs-nextjs/\",\n tags: [],\n category: \"Comparison\",\n date: \"May 19, 2026\",\n image: \"/assets/images/blog/jekyll-vs-nextjs.webp\"\n },\n \n {\n title: \"How to Set Up a Custom Domain for Your Jekyll Site\",\n excerpt: \"Getting your Jekyll site onto a custom domain takes about 10–30 minutes. The process is the same regardless of which registrar you use — you update DNS recor...\",\n url: \"/tutorial/2026/05/18/jekyll-custom-domain/\",\n tags: [\"jekyll custom domain\",\"github pages custom domain\",\"netlify custom domain\",\"jekyll domain setup\"],\n category: \"Tutorial\",\n date: \"May 18, 2026\",\n image: \"/assets/images/blog/jekyll-custom-domain.webp\"\n },\n \n {\n title: \"How to Add a Table of Contents to Jekyll Posts\",\n excerpt: \"A table of contents helps readers navigate long posts and signals to Google that your content is structured and comprehensive. Jekyll has three ways to add o...\",\n url: \"/tutorial/2026/05/13/jekyll-table-of-contents/\",\n tags: [\"jekyll table of contents\",\"jekyll toc\",\"jekyll kramdown toc\",\"jekyll post navigation\"],\n category: \"Tutorial\",\n date: \"May 13, 2026\",\n image: \"/assets/images/blog/jekyll-table-of-contents.webp\"\n },\n \n {\n title: \"Jekyll Data Files: The Complete Guide to _data\",\n excerpt: \"The _data folder is one of Jekyll’s most underused features. It lets you store structured content — navigation menus, team members, FAQs, pricing tables, soc...\",\n url: \"/tutorial/2026/05/07/jekyll-data-files/\",\n tags: [\"jekyll data files\",\"jekyll _data\",\"jekyll yaml\",\"jekyll liquid data\"],\n category: \"Tutorial\",\n date: \"May 7, 2026\",\n image: \"/assets/images/blog/jekyll-data-files.webp\"\n },\n \n {\n title: \"Jekyll vs WordPress: Should You Switch in 2026?\",\n excerpt: \"WordPress powers 43% of the web. Jekyll powers a fraction of that. So why would anyone switch? For the right kind of site, Jekyll is dramatically better — fa...\",\n url: \"/comparison/2026/05/02/jekyll-vs-wordpress/\",\n tags: [\"jekyll vs wordpress\",\"switch wordpress to jekyll\",\"wordpress alternative\",\"static site vs wordpress\"],\n category: \"Comparison\",\n date: \"May 2, 2026\",\n image: \"/assets/images/blog/jekyll-vs-wordpress.webp\"\n },\n \n {\n title: \"How to Add a Contact Form to Your Jekyll Site\",\n excerpt: \"Jekyll generates static HTML — there’s no server-side code to process form submissions. But you don’t need one. Three services handle form submissions for st...\",\n url: \"/tutorial/2026/04/26/jekyll-contact-form/\",\n tags: [\"jekyll contact form\",\"formspree jekyll\",\"netlify forms jekyll\",\"static site contact form\"],\n category: \"Tutorial\",\n date: \"April 26, 2026\",\n image: \"/assets/images/blog/jekyll-contact-form.webp\"\n },\n \n {\n title: \"How to Add Google Analytics to Your Jekyll Site\",\n excerpt: \"Adding Google Analytics to Jekyll takes about 5 minutes. This guide covers Google Analytics 4 (GA4), the only version Google currently supports, plus tips fo...\",\n url: \"/tutorial/2026/04/21/add-google-analytics-jekyll/\",\n tags: [\"jekyll google analytics\",\"google analytics 4 jekyll\",\"jekyll analytics\",\"jekyll tracking\"],\n category: \"Tutorial\",\n date: \"April 21, 2026\",\n image: \"/assets/images/blog/jekyll-google-analytics.webp\"\n },\n \n {\n title: \"Jekyll Hosting Comparison: GitHub Pages vs Netlify vs Cloudflare Pages vs Vercel\",\n excerpt: \"Choosing where to host your Jekyll site is one of the first decisions you’ll make — and all four major platforms are free for personal projects. The differen...\",\n url: \"/tutorial/2026/04/15/jekyll-hosting-comparison/\",\n tags: [\"jekyll hosting\",\"github pages vs netlify\",\"cloudflare pages jekyll\",\"vercel jekyll\",\"static site hosting\"],\n category: \"Tutorial\",\n date: \"April 15, 2026\",\n image: \"/assets/images/blog/jekyll-hosting-comparison.webp\"\n },\n \n {\n title: \"How to Migrate from WordPress to Jekyll Without Losing SEO\",\n excerpt: \"Migrating from WordPress to Jekyll can destroy your search rankings if done carelessly — or preserve them completely if done right. The difference is almost ...\",\n url: \"/tutorial/2026/04/10/migrate-wordpress-to-jekyll-seo/\",\n tags: [\"wordpress to jekyll\",\"migrate without losing seo\",\"jekyll seo migration\",\"301 redirects jekyll\"],\n category: \"Tutorial\",\n date: \"April 10, 2026\",\n image: \"/assets/images/blog/migrate-wordpress-jekyll-seo.webp\"\n },\n \n {\n title: \"Create Dynamic Navigation and Smart Sidebars in Jekyll\",\n excerpt: \"Hard-coded navigation and static sidebars are the first thing that makes a Jekyll theme feel unpolished. This guide covers building dynamic navigation driven...\",\n url: \"/tutorial/2026/04/05/jekyll-navigation-sidebars/\",\n tags: [\"jekyll navigation\",\"jekyll sidebar\",\"jekyll menu\",\"jekyll liquid\"],\n category: \"Tutorial\",\n date: \"April 5, 2026\",\n image: \"/assets/images/blog/jekyll-navigation-sidebars.webp\"\n },\n \n {\n title: \"Jekyll Theme Architecture: Best Practices for Clean & Scalable Code\",\n excerpt: \"Most Jekyll sites start as a quick setup and slowly become hard to maintain — styles scattered across files, layouts duplicating logic, includes tangled with...\",\n url: \"/tutorial/2026/03/30/jekyll-theme-architecture/\",\n tags: [\"jekyll theme development\",\"jekyll architecture\",\"jekyll best practices\",\"jekyll sass structure\"],\n category: \"Tutorial\",\n date: \"March 30, 2026\",\n image: \"/assets/images/blog/jekyll-theme-architecture.webp\"\n },\n \n {\n title: \"How to Build a Jekyll Theme from Scratch\",\n excerpt: \"Building a Jekyll theme from scratch is the fastest way to deeply understand Jekyll — and it’s more achievable than it sounds. This guide walks through build...\",\n url: \"/tutorial/2026/03/25/build-jekyll-theme-from-scratch/\",\n tags: [\"jekyll theme development\",\"create jekyll theme\",\"jekyll gem theme\",\"build jekyll theme\"],\n category: \"Tutorial\",\n date: \"March 25, 2026\",\n image: \"/assets/images/blog/build-jekyll-theme-scratch.webp\"\n },\n \n {\n title: \"25 Best Jekyll Themes for Blogs and Portfolios in 2026\",\n excerpt: \"Looking for a Jekyll theme in 2026? There are thousands on GitHub, but most are outdated, poorly maintained, or just not that good. This list covers the 25 b...\",\n url: \"/themes/2026/03/19/best-jekyll-themes-blogs-portfolios/\",\n tags: [\"best jekyll themes\",\"jekyll blog themes\",\"jekyll portfolio themes\",\"jekyll themes 2026\"],\n category: \"Themes\",\n date: \"March 19, 2026\",\n image: \"/assets/images/blog/best-jekyll-themes-2026.webp\"\n },\n \n {\n title: \"Jekyll vs Hugo vs Eleventy: Which Static Site Generator in 2026?\",\n excerpt: \"Jekyll, Hugo, and Eleventy are the three most popular static site generators in 2026. They all produce fast, secure static sites — but they make very differe...\",\n url: \"/comparison/2026/03/14/jekyll-vs-hugo-eleventy/\",\n tags: [\"jekyll vs hugo\",\"jekyll vs eleventy\",\"static site generators 2026\",\"best static site generator\"],\n category: \"Comparison\",\n date: \"March 14, 2026\",\n image: \"/assets/images/blog/jekyll-vs-hugo-vs-eleventy.webp\"\n },\n \n {\n title: \"How to Build a Portfolio Website with Jekyll\",\n excerpt: \"A Jekyll portfolio site is fast, free to host, and lives in a GitHub repository — which itself signals professionalism to employers and clients. This guide c...\",\n url: \"/tutorial/2026/03/08/jekyll-portfolio-website/\",\n tags: [\"jekyll portfolio\",\"portfolio website jekyll\",\"jekyll developer portfolio\",\"github pages portfolio\"],\n category: \"Tutorial\",\n date: \"March 8, 2026\",\n image: \"/assets/images/blog/jekyll-portfolio.webp\"\n },\n \n {\n title: \"How to Convert an HTML Template to a Jekyll Theme\",\n excerpt: \"You have an HTML template you like — clean design, good structure — but you want to run it as a Jekyll site so you can write in Markdown and deploy to GitHub...\",\n url: \"/tutorial/2026/03/03/convert-html-to-jekyll-theme/\",\n tags: [\"jekyll theme development\",\"html to jekyll\",\"create jekyll theme\",\"jekyll tutorial\"],\n category: \"Tutorial\",\n date: \"March 3, 2026\",\n image: \"/assets/images/blog/convert-html-jekyll-theme.webp\"\n },\n \n {\n title: \"How to Auto-Generate Tag and Category Pages in Jekyll\",\n excerpt: \"If you click a tag on most Jekyll blogs, you get a 404. That’s because Jekyll doesn’t generate tag or category pages by default. The jekyll-archives plugin f...\",\n url: \"/tutorial/2026/02/25/jekyll-tag-category-pages/\",\n tags: [\"jekyll tags\",\"jekyll categories\",\"jekyll archives\",\"jekyll tag pages\"],\n category: \"Tutorial\",\n date: \"February 25, 2026\",\n image: \"/assets/images/blog/jekyll-tag-category-pages.webp\"\n },\n \n {\n title: \"How to Add Schema Markup to Your Jekyll Site\",\n excerpt: \"Schema markup tells search engines what your content is about — not just the words, but the type of content. It can earn your site rich snippets in Google’s ...\",\n url: \"/seo/2026/02/20/jekyll-schema-markup/\",\n tags: [\"jekyll schema markup\",\"json-ld jekyll\",\"structured data jekyll\",\"jekyll rich snippets\"],\n category: \"SEO\",\n date: \"February 20, 2026\",\n image: \"/assets/images/blog/jekyll-schema-markup.webp\"\n },\n \n {\n title: \"How to Make Your Jekyll Site Load Under 1 Second\",\n excerpt: \"Jekyll sites are inherently fast — there’s no PHP, no database, no server-side rendering. But “fast” isn’t automatic. Poor image handling, unminified CSS, an...\",\n url: \"/tutorial/2026/02/14/jekyll-performance/\",\n tags: [\"jekyll performance\",\"jekyll speed\",\"static site performance\",\"core web vitals jekyll\"],\n category: \"Tutorial\",\n date: \"February 14, 2026\",\n image: \"/assets/images/blog/jekyll-performance.webp\"\n },\n \n {\n title: \"How to Add Pagination to Your Jekyll Blog\",\n excerpt: \"By default, Jekyll lists all your posts on a single page. Once you have 20+ posts, that page becomes slow and hard to navigate. Pagination splits posts acros...\",\n url: \"/tutorial/2026/02/09/jekyll-pagination/\",\n tags: [\"jekyll pagination\",\"jekyll paginate\",\"jekyll blog pagination\"],\n category: \"Tutorial\",\n date: \"February 9, 2026\",\n image: \"/assets/images/blog/jekyll-pagination.webp\"\n },\n \n {\n title: \"Jekyll Collections: The Complete Guide\",\n excerpt: \"Collections are one of Jekyll’s most powerful features — and one of the most underused. They let you create custom content types beyond posts and pages: prod...\",\n url: \"/tutorial/2026/02/04/jekyll-collections-guide/\",\n tags: [\"jekyll collections\",\"jekyll custom content types\",\"jekyll _config.yml\"],\n category: \"Tutorial\",\n date: \"February 4, 2026\",\n image: \"/assets/images/blog/jekyll-collections.webp\"\n },\n \n {\n title: \"How to Add Search to a Jekyll Site (Lunr.js vs Algolia)\",\n excerpt: \"Jekyll doesn’t include search out of the box — but adding it is simpler than you might think. This guide covers the two best options: Lunr.js for a free, no-...\",\n url: \"/tutorial/2026/01/29/add-search-jekyll/\",\n tags: [\"jekyll search\",\"lunr.js jekyll\",\"algolia jekyll\",\"static site search\"],\n category: \"Tutorial\",\n date: \"January 29, 2026\",\n image: \"/assets/images/blog/jekyll-search.webp\"\n },\n \n {\n title: \"How to Automate Jekyll Builds with GitHub Actions\",\n excerpt: \"GitHub Actions can build, test, and deploy your Jekyll site automatically on every push. This guide covers everything from the basic setup to advanced workfl...\",\n url: \"/tutorial/2026/01/24/jekyll-github-actions/\",\n tags: [\"jekyll github actions\",\"jekyll ci cd\",\"github actions jekyll\",\"jekyll deployment\"],\n category: \"Tutorial\",\n date: \"January 24, 2026\",\n image: \"/assets/images/blog/jekyll-github-actions.webp\"\n },\n \n {\n title: \"How to Build a Documentation Site with Jekyll\",\n excerpt: \"Jekyll is one of the best tools for documentation sites. The result is fast, searchable, version-controllable, and free to host. This guide walks through bui...\",\n url: \"/tutorial/2026/01/18/jekyll-documentation-site/\",\n tags: [\"jekyll documentation\",\"jekyll docs site\",\"just the docs\",\"static documentation\"],\n category: \"Tutorial\",\n date: \"January 18, 2026\",\n image: \"/assets/images/blog/jekyll-documentation-site.webp\"\n },\n \n {\n title: \"How to Add Comments to Jekyll: Disqus vs Giscus vs Utterances\",\n excerpt: \"Jekyll doesn’t have a built-in comment system — it’s a static site generator. But you have three solid options that work well with static sites. Here’s how e...\",\n url: \"/tutorial/2026/01/13/add-comments-jekyll/\",\n tags: [\"jekyll comments\",\"giscus jekyll\",\"disqus jekyll\",\"utterances jekyll\",\"static site comments\"],\n category: \"Tutorial\",\n date: \"January 13, 2026\",\n image: \"/assets/images/blog/jekyll-comments.webp\"\n },\n \n {\n title: \"15 Must-Have Jekyll Plugins for 2026\",\n excerpt: \"Jekyll’s plugin ecosystem is smaller than WordPress’s, but it has everything you need. These 15 plugins cover SEO, performance, content management, and quali...\",\n url: \"/tutorial/2026/01/07/must-have-jekyll-plugins/\",\n tags: [\"jekyll plugins\",\"best jekyll plugins\",\"jekyll seo tag\",\"jekyll sitemap\"],\n category: \"Tutorial\",\n date: \"January 7, 2026\",\n image: \"/assets/images/blog/must-have-jekyll-plugins.webp\"\n },\n \n {\n title: \"How to Add Dark Mode to Your Jekyll Site\",\n excerpt: \"Dark mode is no longer optional — it’s expected. This guide shows you how to add a proper dark mode toggle to any Jekyll site, with the user’s preference sav...\",\n url: \"/tutorial/2026/01/02/add-dark-mode-jekyll/\",\n tags: [\"jekyll dark mode\",\"dark mode toggle\",\"css dark mode\",\"jekyll tutorial\"],\n category: \"Tutorial\",\n date: \"January 2, 2026\",\n image: \"/assets/images/blog/add-dark-mode-jekyll.webp\"\n },\n \n {\n title: \"Deploy Jekyll to GitHub Pages in 10 Minutes\",\n excerpt: \"GitHub Pages is the fastest way to get a Jekyll site online — and it’s completely free. This guide gets you from zero to a live site in 10 minutes.\\n\\n\",\n url: \"/tutorial/2025/12/27/deploy-jekyll-github-pages/\",\n tags: [\"deploy jekyll github pages\",\"jekyll github pages\",\"github pages tutorial\",\"jekyll hosting\"],\n category: \"Tutorial\",\n date: \"December 27, 2025\",\n image: \"/assets/images/blog/deploy-jekyll-github-pages.webp\"\n },\n \n {\n title: \"Free vs Premium Jekyll Themes: What's Actually Worth Paying For?\",\n excerpt: \"There are thousands of free Jekyll themes on GitHub. So why would anyone pay for one? The honest answer: it depends on what you need. This post breaks down w...\",\n url: \"/themes/2025/12/22/free-vs-premium-jekyll-themes/\",\n tags: [\"free jekyll themes\",\"premium jekyll themes\",\"jekyll theme comparison\",\"buy jekyll theme\"],\n category: \"Themes\",\n date: \"December 22, 2025\",\n image: \"/assets/images/blog/free-vs-premium-jekyll-themes.webp\"\n },\n \n {\n title: \"Jekyll SEO Guide: How to Rank Higher on Google\",\n excerpt: \"Jekyll gives you a significant SEO head start over WordPress — no bloated plugins, no slow database queries, and near-perfect Core Web Vitals out of the box....\",\n url: \"/seo/2025/12/16/jekyll-seo-guide/\",\n tags: [\"jekyll seo\",\"seo for jekyll\",\"jekyll meta tags\",\"jekyll sitemap\",\"static site seo\"],\n category: \"SEO\",\n date: \"December 16, 2025\",\n image: \"/assets/images/blog/jekyll-seo-guide.webp\"\n },\n \n {\n title: \"How to Migrate from WordPress to Jekyll (Complete Guide)\",\n excerpt: \"Moving from WordPress to Jekyll is one of the most common migrations in the static site world — and for good reason. Jekyll sites are faster, cheaper to host...\",\n url: \"/tutorial/2025/12/11/migrate-wordpress-to-jekyll/\",\n tags: [\"wordpress to jekyll\",\"migrate wordpress jekyll\",\"jekyll migration\",\"static site migration\"],\n category: \"Tutorial\",\n date: \"December 11, 2025\",\n image: \"/assets/images/blog/migrate-wordpress-to-jekyll.webp\"\n },\n \n {\n title: \"25 Common Jekyll Errors and How to Fix Them Fast\",\n excerpt: \"Jekyll errors can stop your build dead in its tracks. Whether you are setting up for the first time or have been running Jekyll for years, these errors show ...\",\n url: \"/tutorial/2025/12/05/common-jekyll-errors/\",\n tags: [\"jekyll errors\",\"jekyll troubleshooting\",\"jekyll build errors\",\"jekyll fix\"],\n category: \"Tutorial\",\n date: \"December 5, 2025\",\n image: \"/assets/images/blog/common-jekyll-errors.webp\"\n },\n \n {\n title: \"Jekyll Theme Setup Tutorial: Complete Walkthrough (2026)\",\n excerpt: \"This tutorial walks you through the complete process of setting up a Jekyll theme — from a blank machine to a fully configured, live website. No prior Jekyll...\",\n url: \"/tutorial/2025/11/30/jekyll-theme-setup-tutorial/\",\n tags: [\"jekyll theme setup\",\"jekyll tutorial\",\"jekyll configuration\",\"github pages\"],\n category: \"Tutorial\",\n date: \"November 30, 2025\",\n image: \"/assets/images/blog/jekyll-theme-setup-tutorial.webp\"\n },\n \n {\n title: \"Jekyll Blog Setup Guide: From Zero to Live in 30 Minutes (2026)\",\n excerpt: \"Jekyll is the most popular static site generator for personal blogs — and for good reason. It’s free to host on GitHub Pages, blazing fast, and once set up, ...\",\n url: \"/tutorial/2025/11/25/jekyll-blog-setup-guide/\",\n tags: [\"jekyll blog\",\"jekyll setup\",\"github pages\",\"beginner guide\"],\n category: \"Tutorial\",\n date: \"November 25, 2025\",\n image: \"/assets/images/blog/jekyll-blog-setup-guide.webp\"\n },\n \n {\n title: \"Best Jekyll Themes for a Portfolio Website (2026)\",\n excerpt: \"A portfolio is one of the best use cases for Jekyll. Static files load instantly, hosting is free on GitHub Pages, and the result looks as good as any dynami...\",\n url: \"/roundup/2025/11/19/jekyll-theme-portfolio-website/\",\n tags: [\"jekyll portfolio theme\",\"portfolio website\",\"jekyll themes\",\"developer portfolio\"],\n category: \"Roundup\",\n date: \"November 19, 2025\",\n image: \"/assets/images/blog/jekyll-portfolio-themes.webp\"\n },\n \n {\n title: \"Jekyll vs Hugo: Full Comparison for 2026 (Themes, Speed, Hosting)\",\n excerpt: \"Jekyll and Hugo are the two most popular static site generators. Both produce fast, secure static websites — but they approach it differently. This compariso...\",\n url: \"/comparison/2025/11/14/jekyll-vs-hugo-themes/\",\n tags: [\"jekyll vs hugo\",\"static site generators\",\"jekyll themes\",\"hugo themes\",\"github pages\"],\n category: \"Comparison\",\n date: \"November 14, 2025\",\n image: \"/assets/images/blog/jekyll-vs-hugo-themes.webp\"\n },\n \n {\n title: \"Best Static Site Themes in 2026 (Jekyll, Hugo & Eleventy)\",\n excerpt: \"Static site generators have matured into a serious alternative to WordPress and other CMS platforms. Jekyll, Hugo, and Eleventy each have strong theme ecosys...\",\n url: \"/roundup/2025/11/08/best-static-site-themes/\",\n tags: [\"static site themes\",\"best jekyll themes\",\"hugo themes\",\"eleventy themes\"],\n category: \"Roundup\",\n date: \"November 8, 2025\",\n image: \"/assets/images/blog/best-static-site-themes.webp\"\n },\n \n {\n title: \"Jekyll Theme vs WordPress Theme: Which Should You Choose in 2026?\",\n excerpt: \"Choosing between Jekyll and WordPress is one of the most common decisions developers and bloggers face. Both power millions of websites — but they are fundam...\",\n url: \"/comparison/2025/11/03/jekyll-theme-vs-wordpress-theme/\",\n tags: [\"jekyll vs wordpress\",\"static site vs cms\",\"jekyll theme\",\"wordpress theme\"],\n category: \"Comparison\",\n date: \"November 3, 2025\",\n image: \"/assets/images/blog/jekyll-vs-wordpress.webp\"\n },\n \n {\n title: \"How to Change Your Jekyll Theme (Without Losing Content)\",\n excerpt: \"Changing a Jekyll theme is straightforward if you follow the right steps. The key is understanding what belongs to the theme and what belongs to your content...\",\n url: \"/tutorial/2025/10/28/how-to-change-jekyll-theme/\",\n tags: [\"change jekyll theme\",\"switch jekyll theme\",\"jekyll migration\",\"tutorial\"],\n category: \"Tutorial\",\n date: \"October 28, 2025\",\n image: \"/assets/images/blog/how-to-change-jekyll-theme.webp\"\n },\n \n {\n title: \"GitHub Pages Jekyll Theme: Complete Setup Guide (2026)\",\n excerpt: \"GitHub Pages is the most popular way to host a Jekyll site — it’s free, integrates directly with your repository, and rebuilds automatically on every push. T...\",\n url: \"/tutorial/2025/10/23/github-pages-jekyll-theme/\",\n tags: [\"github pages\",\"jekyll theme\",\"github pages jekyll\",\"tutorial\"],\n category: \"Tutorial\",\n date: \"October 23, 2025\",\n image: \"/assets/images/blog/github-pages-jekyll-theme.webp\"\n },\n \n {\n title: \"How to Customize a Jekyll Theme (Complete Guide 2026)\",\n excerpt: \"Customizing a Jekyll theme doesn’t mean editing the theme files directly — that approach breaks every time you update the theme. The right way is to use Jeky...\",\n url: \"/tutorial/2025/10/17/how-to-customize-jekyll-theme/\",\n tags: [\"customize jekyll theme\",\"jekyll scss\",\"jekyll layouts\",\"tutorial\"],\n category: \"Tutorial\",\n date: \"October 17, 2025\",\n image: \"/assets/images/blog/how-to-customize-jekyll-theme.webp\"\n },\n \n {\n title: \"How to Install a Jekyll Theme (Step-by-Step Guide for 2026)\",\n excerpt: \"Installing a Jekyll theme is one of the first things you will do when building a static site. Whether you are using GitHub Pages, a local Jekyll setup, or de...\",\n url: \"/tutorial/2025/10/12/how-to-install-jekyll-theme/\",\n tags: [\"install jekyll theme\",\"jekyll setup\",\"github pages\",\"tutorial\"],\n category: \"Tutorial\",\n date: \"October 12, 2025\",\n image: \"/assets/images/blog/how-to-install-jekyll-theme.webp\"\n },\n \n {\n title: \"Best Free Jekyll Themes for GitHub Pages (2026)\",\n excerpt: \"GitHub Pages is the easiest way to host a Jekyll site — free, reliable, and zero configuration. The catch is that it only supports a whitelist of plugins and...\",\n url: \"/blog/2025/10/06/free-jekyll-themes-github-pages/\",\n tags: [\"free jekyll themes\",\"github pages\",\"open source\"],\n category: \"Blog\",\n date: \"October 6, 2025\",\n image: \"/assets/images/blog/free-jekyll-themes-github-pages.webp\"\n },\n \n {\n title: \"35 Best Jekyll Themes for 2026 (Free + Premium)\",\n excerpt: \"Jekyll remains one of the most reliable static site generators in 2026 — fast, GitHub Pages native, and backed by a thriving theme ecosystem. Whether you are...\",\n url: \"/blog/2025/10/01/best-jekyll-themes-2026/\",\n tags: [\"jekyll themes\",\"best themes\",\"free themes\",\"premium themes\"],\n category: \"Blog\",\n date: \"October 1, 2025\",\n image: \"/assets/images/blog/best-jekyll-themes-2026.webp\"\n }\n \n ],\n testimonials: [\n \n {\n name: \"Sarah Reynolds\",\n role: \"Freelance Developer\",\n rating: 5,\n quote: \"Found the perfect portfolio theme in minutes. Clean code, well documented, and looks stunning out of the box. Saved me days of work.\"\n },\n \n {\n name: \"Marcus Thornton\",\n role: \"Full-Stack Engineer\",\n rating: 5,\n quote: \"Switched from WordPress and couldn't be happier. The themes here are modern, fast, and actually work with Jekyll without hacks.\"\n },\n \n {\n name: \"James Kowalski\",\n role: \"Open Source Maintainer\",\n rating: 5,\n quote: \"The documentation theme I picked made my open source project look incredibly professional. My users noticed the difference immediately.\"\n },\n \n {\n name: \"Aisha Langford\",\n role: \"Technical Writer\",\n rating: 4.5,\n quote: \"Great selection of blog themes. I launched my personal blog in an afternoon — setup was painless and the design is exactly what I wanted.\"\n },\n \n {\n name: \"David Carver\",\n role: \"Product Designer\",\n rating: 4,\n quote: \"Really impressed by the quality. The premium theme I bought had more features than themes costing 3× the price on other marketplaces.\"\n },\n \n {\n name: \"Nina Patel\",\n role: \"UX Designer\",\n rating: 5,\n quote: \"Finally a Jekyll marketplace that takes design seriously. Every theme looks hand-crafted, not like a generic template with the colours swapped.\"\n },\n \n {\n name: \"Tom Whitfield\",\n role: \"Indie Hacker\",\n rating: 5,\n quote: \"Launched my SaaS landing page using a JekyllHub theme. Got compliments on the design before I even launched the product.\"\n },\n \n {\n name: \"Elena Marchetti\",\n role: \"Academic Researcher\",\n rating: 4.5,\n quote: \"The academic theme I found here is exactly what my lab website needed — clean, fast, and easy for non-technical colleagues to update.\"\n },\n \n {\n name: \"Ryan Summers\",\n role: \"Backend Developer\",\n rating: 4.5,\n quote: \"I'm not a designer but my site looks like I am. The theme was drop-in ready and the customisation was straightforward.\"\n }\n \n ]\n };\n </script>\n\n <main id=\"main-content\">\n <div class=\"read-progress\" id=\"read-progress\"></div>\n\n<article class=\"post\" itemscope itemtype=\"https://schema.org/BlogPosting\">\n\n <header class=\"post-hero\">\n <div class=\"container\">\n <div class=\"post-hero__breadcrumb\">\n <a href=\"/\">Home</a>\n <span class=\"breadcrumb-sep\">›</span>\n <a href=\"/blog/\">Blog</a>\n <span class=\"breadcrumb-sep\">›</span>\n <span>Best Minimal Jekyll Themes in 2026 (Clean, Fast, Distraction-Free)</span>\n </div>\n\n <div class=\"post-hero__inner\">\n \n <span class=\"post-hero__cat\">Themes</span>\n \n\n <h1 class=\"post-hero__title\" itemprop=\"name\">Best Minimal Jekyll Themes in 2026 (Clean, Fast, Distraction-Free)</h1>\n\n \n <p class=\"post-hero__desc\" itemprop=\"description\">The best minimal Jekyll themes for blogs, portfolios, and personal sites — clean typography, fast load times, and zero visual clutter.</p>\n \n\n <div class=\"post-hero__meta\">\n <span class=\"post-meta-item\">\n <svg width=\"15\" height=\"15\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z\"/></svg>\n Updated <time itemprop=\"dateModified\" datetime=\"2026-07-05T00:00:00+00:00\">July 5, 2026</time>\n </span>\n\n <span class=\"post-meta-item\">\n <svg width=\"15\" height=\"15\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z\"/></svg>\n 4 min read\n </span>\n </div>\n </div>\n </div>\n </header>\n\n \n <div class=\"post-cover\">\n <div class=\"container\">\n <img src=\"/assets/images/blog/jekyll-minimal-themes.webp\" alt=\"Best Minimal Jekyll Themes in 2026 (Clean, Fast, Distraction-Free)\" class=\"post-cover__img\" itemprop=\"image\">\n </div>\n </div>\n \n\n <div class=\"container\">\n <div class=\"post-body\">\n <div class=\"post-body__main\">\n \n <div class=\"post-toc\" id=\"post-toc\" data-collapsed=\"false\" style=\"display:none\">\n <button class=\"post-toc__label\" id=\"toc-toggle\" aria-expanded=\"false\" aria-controls=\"toc-body\">\n <span class=\"post-toc__label-left\">\n <svg width=\"14\" height=\"14\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 6h16M4 10h16M4 14h10\"/></svg>\n Table of Contents\n </span>\n <svg class=\"post-toc__chevron\" width=\"14\" height=\"14\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M19 9l-7 7-7-7\"/></svg>\n </button>\n <nav id=\"toc-body\" class=\"toc\"></nav>\n </div>\n \n\n <div class=\"prose\" itemprop=\"articleBody\">\n <p>Minimal themes are the most popular category in the Jekyll ecosystem — and for good reason. A minimal design puts the focus on your content, loads in milliseconds, and never goes out of style. Here are the best minimal Jekyll themes in 2026.</p>\n\n<h2 id=\"what-makes-a-theme-truly-minimal\">What makes a theme truly minimal?</h2>\n\n<p>A minimal Jekyll theme is not just a theme with less CSS. The best ones share a few key characteristics:</p>\n\n<ul>\n <li><strong>Typography-first</strong> — the reading experience is the design</li>\n <li><strong>No unnecessary widgets</strong> — no popups, cookie banners, social share floods, or autoplay anything</li>\n <li><strong>Fast by default</strong> — no large hero images, no heavy JavaScript frameworks</li>\n <li><strong>Easy to customise</strong> — minimal markup means less to override</li>\n <li><strong>Responsive</strong> — works perfectly on mobile without a complex grid system</li>\n</ul>\n\n<h2 id=\"best-free-minimal-jekyll-themes\">Best free minimal Jekyll themes</h2>\n\n<h3 id=\"minima\">Minima</h3>\n\n<p>The default Jekyll theme and arguably the most used Jekyll theme in existence. Minima ships with every new Jekyll install. It is bare-bones by design: clean typography, a simple nav, an archive list, and not much else.</p>\n\n<p><strong>Best for:</strong> Getting started, technical blogs, personal sites where content is everything.<br />\n<strong>GitHub:</strong> <a href=\"https://github.com/jekyll/minima\">jekyll/minima</a> — 3,000+ stars</p>\n\n<h3 id=\"klise\">Klise</h3>\n\n<p>Klise is a minimal, high contrast Jekyll theme with dark mode support. It focuses entirely on readability — clean sans-serif type, generous line height, and a subtle dark/light toggle. No hero, no sidebar, no decorative elements.</p>\n\n<p><strong>Best for:</strong> Developer blogs, writing-focused sites.<br />\n<strong>GitHub:</strong> <a href=\"https://github.com/piharpi/jekyll-klise\">piharpi/jekyll-klise</a> — 800+ stars</p>\n\n<h3 id=\"chirpy\">Chirpy</h3>\n\n<p>Chirpy is minimal but feature-complete. It adds a left sidebar with categories and tags, a table of contents that follows the reader, and dark mode — all without visual noise. The design is calm and professional.</p>\n\n<p><strong>Best for:</strong> Technical blogs that need categories and navigation without sacrificing simplicity.<br />\n<strong>GitHub:</strong> <a href=\"https://github.com/cotes2020/jekyll-theme-chirpy\">cotes2020/jekyll-theme-chirpy</a> — 8,000+ stars</p>\n\n<h3 id=\"no-style-please\">No Style Please!</h3>\n\n<p>Exactly what the name says. This theme applies almost no CSS — content renders in the browser’s default styles. Intentionally ugly, intentionally fast. Popular in the indie web and “small web” communities.</p>\n\n<p><strong>Best for:</strong> Experimental sites, writers who want the ultimate zero-distraction canvas.<br />\n<strong>GitHub:</strong> <a href=\"https://github.com/riggraz/no-style-please\">riggraz/no-style-please</a> — 800+ stars</p>\n\n<h3 id=\"so-simple\">So Simple</h3>\n\n<p>A simple-is-better theme with a single-column layout, large readable type, and support for author profiles. The name is accurate. It is maintained by Michael Rose, who also built the excellent Minimal Mistakes theme.</p>\n\n<p><strong>Best for:</strong> Personal sites, writing portfolios, minimalist blogs.</p>\n\n<h3 id=\"researcher\">Researcher</h3>\n\n<p>Researcher is built for academic and research professionals who want a clean, no-frills presence online. It outputs a single-page site with sections for bio, publications, and projects. Nothing more.</p>\n\n<p><strong>Best for:</strong> Academics, PhD students, researchers, scientists.<br />\n<strong>GitHub:</strong> <a href=\"https://github.com/ankitsultana/researcher\">ankitsultana/researcher</a></p>\n\n<h2 id=\"what-to-look-for-when-choosing-a-minimal-theme\">What to look for when choosing a minimal theme</h2>\n\n<p><strong>Typography:</strong> Check the font pairing, line height, and measure (line length). The ideal measure for body text is 50–75 characters per line. If the theme stretches text full-width on desktop, skip it.</p>\n\n<p><strong>Dark mode:</strong> In 2026, dark mode is expected. Look for themes with a clean system-respecting dark mode rather than a garish inverted palette.</p>\n\n<p><strong>Performance:</strong> Open the theme’s demo in PageSpeed Insights. A good minimal theme should score 95+ on mobile without any optimisation from you.</p>\n\n<p><strong>Front matter support:</strong> Check what fields the theme supports: <code class=\"language-plaintext highlighter-rouge\">description</code>, <code class=\"language-plaintext highlighter-rouge\">image</code>, <code class=\"language-plaintext highlighter-rouge\">author</code>, <code class=\"language-plaintext highlighter-rouge\">toc</code>. Themes that support rich front matter give you more flexibility as your site grows.</p>\n\n<h2 id=\"premium-minimal-options\">Premium minimal options</h2>\n\n<p>Free minimal themes are excellent, but if you want something more refined — custom typography, polished dark mode, better SEO defaults, and actual support — a premium theme is worth considering.</p>\n\n<p>Browse <a href=\"/themes/?category=Blog\">minimal Jekyll themes on JekyllHub</a> to compare free and premium options side by side.</p>\n\n<h2 id=\"the-right-amount-of-minimal\">The right amount of minimal</h2>\n\n<p>“Minimal” is not the same as “unfinished.” The best minimal themes are the result of careful design decisions — every element has a reason to be there, and everything unnecessary has been removed. They are not lazy; they are deliberate.</p>\n\n<p>When you find the right one, you will spend your time writing. That is the point.</p>\n\n </div>\n\n \n <div class=\"post-tags\">\n \n </div>\n \n\n <div class=\"post-share\">\n <span class=\"post-share__label\">Share</span>\n <a href=\"https://twitter.com/intent/tweet?url=https%3A%2F%2Fjekyllhub.com%2Fthemes%2F2026%2F05%2F20%2Fjekyll-minimal-themes%2F&text=Best+Minimal+Jekyll+Themes+in+2026+%28Clean%2C+Fast%2C+Distraction-Free%29\" target=\"_blank\" rel=\"noopener\" class=\"post-share__btn post-share__btn--twitter\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-4.714-6.231-5.401 6.231H2.746l7.73-8.835L1.254 2.25H8.08l4.253 5.622zm-1.161 17.52h1.833L7.084 4.126H5.117z\"/></svg>\n X / Twitter\n </a>\n <a href=\"https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fjekyllhub.com%2Fthemes%2F2026%2F05%2F20%2Fjekyll-minimal-themes%2F&title=Best+Minimal+Jekyll+Themes+in+2026+%28Clean%2C+Fast%2C+Distraction-Free%29\" target=\"_blank\" rel=\"noopener\" class=\"post-share__btn post-share__btn--linkedin\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 01-2.063-2.065 2.064 2.064 0 112.063 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z\"/></svg>\n LinkedIn\n </a>\n <button class=\"post-share__btn post-share__btn--copy\" onclick=\"JekyllHub.copyPostLink(this)\">\n <svg width=\"14\" height=\"14\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\"/></svg>\n <span>Copy Link</span>\n </button>\n </div>\n\n \n\n <nav class=\"post-nav\" aria-label=\"Post navigation\">\n <div class=\"post-nav__prev\">\n \n <a href=\"/comparison/2026/05/19/jekyll-vs-nextjs/\" class=\"post-nav__link\">\n <span class=\"post-nav__label\">← Previous</span>\n <span class=\"post-nav__title\">Jekyll vs Next.js: A Practical Comparison for 2026</span>\n </a>\n \n </div>\n <div class=\"post-nav__center\">\n <a href=\"/blog/\" class=\"btn btn--secondary btn--sm\">All Posts</a>\n </div>\n <div class=\"post-nav__next\">\n \n <a href=\"/tutorial/2026/05/21/jekyll-liquid-filters-cheatsheet/\" class=\"post-nav__link post-nav__link--next\">\n <span class=\"post-nav__label\">Next →</span>\n <span class=\"post-nav__title\">Jekyll Liquid Filters: The Complete Cheatsheet (2026)</span>\n </a>\n \n </div>\n </nav>\n </div>\n\n <aside class=\"post-body__sidebar\">\n <div class=\"sidebar-card\">\n <h3 class=\"sidebar-card__title\">Browse Themes</h3>\n <ul class=\"post-sidebar__links\">\n \n <li><a href=\"/jekyll-academic-themes/\">🎓 Academic Themes</a></li>\n \n <li><a href=\"/jekyll-blog-themes/\">✍️ Blog Themes</a></li>\n \n <li><a href=\"/jekyll-business-themes/\">💼 Business Themes</a></li>\n \n <li><a href=\"/jekyll-documentation-themes/\">📚 Documentation Themes</a></li>\n \n <li><a href=\"/jekyll-e-commerce-themes/\">🛒 E-commerce Themes</a></li>\n \n <li><a href=\"/jekyll-landing-page-themes/\">🚀 Landing Page Themes</a></li>\n \n <li><a href=\"/jekyll-personal-themes/\">👤 Personal Themes</a></li>\n \n <li><a href=\"/jekyll-portfolio-themes/\">🎨 Portfolio Themes</a></li>\n \n <li><a href=\"/jekyll-resume-cv-themes/\">📄 Resume/CV Themes</a></li>\n \n <li><a href=\"/jekyll-github-pages-themes/\"><svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"currentColor\" style=\"display:inline;vertical-align:middle;margin-right:4px\"><path d=\"M12 0C5.374 0 0 5.373 0 12c0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23A11.509 11.509 0 0 1 12 5.803c1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576C20.566 21.797 24 17.3 24 12c0-6.627-5.373-12-12-12z\"/></svg>GitHub Pages Themes</a></li>\n </ul>\n <a href=\"/themes/\" class=\"btn btn--primary btn--full\" style=\"margin-top:var(--space-5)\">Browse All Themes →</a>\n </div>\n\n <div class=\"sidebar-card\" style=\"margin-top:var(--space-6)\">\n <h3 class=\"sidebar-card__title\">Submit Your Theme</h3>\n <p style=\"font-size:0.875rem;color:var(--text-3);line-height:1.6;margin-bottom:var(--space-4)\">Built a Jekyll theme? Share it with thousands of developers.</p>\n <a href=\"/submit/\" class=\"btn btn--secondary btn--full\">Submit a Theme →</a>\n </div>\n </aside>\n </div>\n </div>\n\n <!-- Related Themes — rendered by JS from SITE_DATA, shuffled per page load -->\n\n \n\n \n <section class=\"post-related-themes\" style=\"display:none\">\n <div class=\"container\">\n <h2 class=\"post-related-themes__title\">Themes You Might Like</h2>\n <div class=\"themes-grid themes-grid--4\" id=\"post-related-themes-grid\"\n data-tags=\"[]\"\n data-related-category=\"Blog\"></div>\n </div>\n </section>\n \n\n</article>\n\n<!-- Back to top -->\n<button class=\"back-to-top\" id=\"back-to-top\" aria-label=\"Back to top\" onclick=\"window.scrollTo({top:0,behavior:'smooth'})\">\n <svg fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" d=\"M5 15l7-7 7 7\"/>\n </svg>\n</button>\n<script src=\"/assets/js/post.js\" defer></script>\n\n </main>\n\n <footer class=\"footer\">\n <div class=\"container\">\n <div class=\"footer__grid\">\n <!-- Brand -->\n <div class=\"footer__brand\">\n <a href=\"/\" class=\"footer__logo\">\n <svg width=\"28\" height=\"28\" viewBox=\"0 0 32 32\" fill=\"none\">\n <rect width=\"32\" height=\"32\" rx=\"9\" fill=\"#2563EB\"/>\n <path d=\"M19 8h-6v1h5v10c0 2.2-1.8 4-4 4s-4-1.8-4-4v-1H9v1c0 2.76 2.24 5 5 5s5-2.24 5-5V8z\" fill=\"white\"/>\n <circle cx=\"23\" cy=\"9\" r=\"2.5\" fill=\"#F0C94B\"/>\n </svg>\n Jekyll<span style=\"color:var(--color-brand)\">Hub</span>\n </a>\n <p class=\"footer__tagline\">The premier marketplace for Jekyll themes. Build something beautiful.</p>\n <div class=\"footer__social\">\n <a href=\"https://github.com/jekyllhub\" target=\"_blank\" rel=\"noopener\" aria-label=\"GitHub\">\n <svg width=\"18\" height=\"18\" fill=\"currentColor\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z\"/></svg>\n\n </a>\n <a href=\"https://twitter.com/jekyllhub\" target=\"_blank\" rel=\"noopener\" aria-label=\"Twitter\">\n <svg width=\"18\" height=\"18\" fill=\"currentColor\" viewBox=\"0 0 24 24\"><path d=\"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z\"/></svg>\n </a>\n <a href=\"/feed.xml\" aria-label=\"RSS Feed\">\n <svg width=\"18\" height=\"18\" fill=\"currentColor\" viewBox=\"0 0 24 24\"><path d=\"M6.18 15.64a2.18 2.18 0 0 1 2.18 2.18C8.36 19.01 7.38 20 6.18 20C4.98 20 4 19.01 4 17.82a2.18 2.18 0 0 1 2.18-2.18M4 4.44A15.56 15.56 0 0 1 19.56 20h-2.83A12.73 12.73 0 0 0 4 7.27V4.44m0 5.66a9.9 9.9 0 0 1 9.9 9.9h-2.83A7.07 7.07 0 0 0 4 12.93V10.1z\"/></svg>\n </a>\n </div>\n </div>\n\n <!-- Explore -->\n <div class=\"footer__col\">\n <h3 class=\"footer__heading\">Explore</h3>\n <ul class=\"footer__links\" role=\"list\">\n <li><a href=\"/themes/\">All Themes</a></li>\n <li><a href=\"/themes/?price=premium\">Premium Themes</a></li>\n <li><a href=\"/themes/?price=free\">Free Themes</a></li>\n <li><a href=\"/themes/?sort=newest\">Newest</a></li>\n <li><a href=\"/themes/?sort=updated\">Recently Updated</a></li>\n <li><a href=\"/themes/?featured=true\">Featured</a></li>\n </ul>\n </div>\n\n <!-- Categories -->\n <div class=\"footer__col\">\n <h3 class=\"footer__heading\">Categories</h3>\n <ul class=\"footer__links\" role=\"list\">\n \n <li><a href=\"/jekyll-academic-themes/\">Academic</a></li>\n \n <li><a href=\"/jekyll-blog-themes/\">Blog</a></li>\n \n <li><a href=\"/jekyll-business-themes/\">Business</a></li>\n \n <li><a href=\"/jekyll-documentation-themes/\">Documentation</a></li>\n \n <li><a href=\"/jekyll-e-commerce-themes/\">E-commerce</a></li>\n \n <li><a href=\"/jekyll-github-pages-themes/\">GitHub Pages Themes</a></li>\n <li><a href=\"/categories/\">View all →</a></li>\n </ul>\n </div>\n\n <!-- Resources -->\n <div class=\"footer__col\">\n <h3 class=\"footer__heading\">Learn</h3>\n <ul class=\"footer__links\" role=\"list\">\n <li><a href=\"/jekyll-resources/\">Jekyll Resources</a></li>\n <li><a href=\"/installation/\">Installation Guide</a></li>\n <li><a href=\"/submit/\">Submit a Theme</a></li>\n <li><a href=\"https://jekyllrb.com\" target=\"_blank\" rel=\"noopener\">Jekyll Docs</a></li>\n <li><a href=\"/faq/\">FAQ</a></li>\n <li><a href=\"/authors/\">Authors</a></li>\n <li><a href=\"/about/\">About</a></li>\n <li><a href=\"/contact/\">Contact</a></li>\n </ul>\n </div>\n </div>\n\n <div class=\"footer__bottom\">\n <p class=\"footer__copy\">© 2026 JekyllHub. Built with ❤️ and <a href=\"https://jekyllrb.com\" target=\"_blank\" rel=\"noopener\">Jekyll</a>.</p>\n <div class=\"footer__legal\">\n <a href=\"/privacy/\">Privacy</a>\n <a href=\"/terms/\">Terms</a>\n <a href=\"/refunds/\">Refunds</a>\n <a href=\"/sitemap.xml\">Sitemap</a>\n </div>\n </div>\n </div>\n</footer>\n\n\n <!-- Alpine.js — pinned to 3.13.5 for stability (handles mobile nav toggle) -->\n <script defer src=\"https://unpkg.com/alpinejs@3.13.5/dist/cdn.min.js\"></script>\n\n <!-- Main JS -->\n <script src=\"/assets/js/main.js\"></script>\n\n <!-- Page-specific scripts -->\n \n</body>\n</html>\n",
"content": "<p>Minimal themes are the most popular category in the Jekyll ecosystem — and for good reason. A minimal design puts the focus on your content, loads in milliseconds, and never goes out of style. Here are the best minimal Jekyll themes in 2026.</p>\n\n<h2 id=\"what-makes-a-theme-truly-minimal\">What makes a theme truly minimal?</h2>\n\n<p>A minimal Jekyll theme is not just a theme with less CSS. The best ones share a few key characteristics:</p>\n\n<ul>\n <li><strong>Typography-first</strong> — the reading experience is the design</li>\n <li><strong>No unnecessary widgets</strong> — no popups, cookie banners, social share floods, or autoplay anything</li>\n <li><strong>Fast by default</strong> — no large hero images, no heavy JavaScript frameworks</li>\n <li><strong>Easy to customise</strong> — minimal markup means less to override</li>\n <li><strong>Responsive</strong> — works perfectly on mobile without a complex grid system</li>\n</ul>\n\n<h2 id=\"best-free-minimal-jekyll-themes\">Best free minimal Jekyll themes</h2>\n\n<h3 id=\"minima\">Minima</h3>\n\n<p>The default Jekyll theme and arguably the most used Jekyll theme in existence. Minima ships with every new Jekyll install. It is bare-bones by design: clean typography, a simple nav, an archive list, and not much else.</p>\n\n<p><strong>Best for:</strong> Getting started, technical blogs, personal sites where content is everything.<br />\n<strong>GitHub:</strong> <a href=\"https://github.com/jekyll/minima\">jekyll/minima</a> — 3,000+ stars</p>\n\n<h3 id=\"klise\">Klise</h3>\n\n<p>Klise is a minimal, high contrast Jekyll theme with dark mode support. It focuses entirely on readability — clean sans-serif type, generous line height, and a subtle dark/light toggle. No hero, no sidebar, no decorative elements.</p>\n\n<p><strong>Best for:</strong> Developer blogs, writing-focused sites.<br />\n<strong>GitHub:</strong> <a href=\"https://github.com/piharpi/jekyll-klise\">piharpi/jekyll-klise</a> — 800+ stars</p>\n\n<h3 id=\"chirpy\">Chirpy</h3>\n\n<p>Chirpy is minimal but feature-complete. It adds a left sidebar with categories and tags, a table of contents that follows the reader, and dark mode — all without visual noise. The design is calm and professional.</p>\n\n<p><strong>Best for:</strong> Technical blogs that need categories and navigation without sacrificing simplicity.<br />\n<strong>GitHub:</strong> <a href=\"https://github.com/cotes2020/jekyll-theme-chirpy\">cotes2020/jekyll-theme-chirpy</a> — 8,000+ stars</p>\n\n<h3 id=\"no-style-please\">No Style Please!</h3>\n\n<p>Exactly what the name says. This theme applies almost no CSS — content renders in the browser’s default styles. Intentionally ugly, intentionally fast. Popular in the indie web and “small web” communities.</p>\n\n<p><strong>Best for:</strong> Experimental sites, writers who want the ultimate zero-distraction canvas.<br />\n<strong>GitHub:</strong> <a href=\"https://github.com/riggraz/no-style-please\">riggraz/no-style-please</a> — 800+ stars</p>\n\n<h3 id=\"so-simple\">So Simple</h3>\n\n<p>A simple-is-better theme with a single-column layout, large readable type, and support for author profiles. The name is accurate. It is maintained by Michael Rose, who also built the excellent Minimal Mistakes theme.</p>\n\n<p><strong>Best for:</strong> Personal sites, writing portfolios, minimalist blogs.</p>\n\n<h3 id=\"researcher\">Researcher</h3>\n\n<p>Researcher is built for academic and research professionals who want a clean, no-frills presence online. It outputs a single-page site with sections for bio, publications, and projects. Nothing more.</p>\n\n<p><strong>Best for:</strong> Academics, PhD students, researchers, scientists.<br />\n<strong>GitHub:</strong> <a href=\"https://github.com/ankitsultana/researcher\">ankitsultana/researcher</a></p>\n\n<h2 id=\"what-to-look-for-when-choosing-a-minimal-theme\">What to look for when choosing a minimal theme</h2>\n\n<p><strong>Typography:</strong> Check the font pairing, line height, and measure (line length). The ideal measure for body text is 50–75 characters per line. If the theme stretches text full-width on desktop, skip it.</p>\n\n<p><strong>Dark mode:</strong> In 2026, dark mode is expected. Look for themes with a clean system-respecting dark mode rather than a garish inverted palette.</p>\n\n<p><strong>Performance:</strong> Open the theme’s demo in PageSpeed Insights. A good minimal theme should score 95+ on mobile without any optimisation from you.</p>\n\n<p><strong>Front matter support:</strong> Check what fields the theme supports: <code class=\"language-plaintext highlighter-rouge\">description</code>, <code class=\"language-plaintext highlighter-rouge\">image</code>, <code class=\"language-plaintext highlighter-rouge\">author</code>, <code class=\"language-plaintext highlighter-rouge\">toc</code>. Themes that support rich front matter give you more flexibility as your site grows.</p>\n\n<h2 id=\"premium-minimal-options\">Premium minimal options</h2>\n\n<p>Free minimal themes are excellent, but if you want something more refined — custom typography, polished dark mode, better SEO defaults, and actual support — a premium theme is worth considering.</p>\n\n<p>Browse <a href=\"/themes/?category=Blog\">minimal Jekyll themes on JekyllHub</a> to compare free and premium options side by side.</p>\n\n<h2 id=\"the-right-amount-of-minimal\">The right amount of minimal</h2>\n\n<p>“Minimal” is not the same as “unfinished.” The best minimal themes are the result of careful design decisions — every element has a reason to be there, and everything unnecessary has been removed. They are not lazy; they are deliberate.</p>\n\n<p>When you find the right one, you will spend your time writing. That is the point.</p>\n",
"url": "/themes/2026/05/20/jekyll-minimal-themes/",
"draft": false,
"categories": [
"Themes"
],
"layout": "post",
"title": "Best Minimal Jekyll Themes in 2026 (Clean, Fast, Distraction-Free)",
"description": "The best minimal Jekyll themes for blogs, portfolios, and personal sites — clean typography, fast load times, and zero visual clutter.",
"date": "2026-05-20 00:00:00 +0000",
"last_modified_at": "2026-07-05",
"image": "/assets/images/blog/jekyll-minimal-themes.webp",
"author": "Marcus Webb",
"category": "Themes",
"featured": false,
"related_category": "Blog",
"toc": true,
"slug": "jekyll-minimal-themes",
"ext": ".md",
"tags": [
]
},
"id": "/tutorial/2026/05/21/jekyll-liquid-filters-cheatsheet",
"collection": "posts",
"next": {
"path": "_posts/2026-05-22-jekyll-environment-variables.md",
"relative_path": "_posts/2026-05-22-jekyll-environment-variables.md",
"excerpt": "<p>Environment variables in Jekyll are simpler than you might expect — but also more limited than many developers assume coming from Node.js or Python. Here is everything you need to know.</p>\n\n",
"previous": {
"path": "_posts/2026-05-21-jekyll-liquid-filters-cheatsheet.md",
"relative_path": "_posts/2026-05-21-jekyll-liquid-filters-cheatsheet.md",
"excerpt": "<p>Liquid filters transform output in Jekyll templates. They are chained with the pipe character <code class=\"language-plaintext highlighter-rouge\">|</code> and applied to variables, strings, numbers, arrays, and dates. This cheatsheet covers every filter you will actually use, with real examples.</p>\n\n",
"previous": {
"path": "_posts/2026-05-20-jekyll-minimal-themes.md",
"relative_path": "_posts/2026-05-20-jekyll-minimal-themes.md",
"id": "/themes/2026/05/20/jekyll-minimal-themes",
"collection": "posts",
"url": "/themes/2026/05/20/jekyll-minimal-themes/",
"draft": false,
"categories": [
"Themes"
],
"layout": "post",
"title": "Best Minimal Jekyll Themes in 2026 (Clean, Fast, Distraction-Free)",
"description": "The best minimal Jekyll themes for blogs, portfolios, and personal sites — clean typography, fast load times, and zero visual clutter.",
"date": "2026-05-20 00:00:00 +0000",
"last_modified_at": "2026-07-05",
"image": "/assets/images/blog/jekyll-minimal-themes.webp",
"author": "Marcus Webb",
"category": "Themes",
"featured": false,
"related_category": "Blog",
"toc": true,
"slug": "jekyll-minimal-themes",
"ext": ".md",
"tags": [
]
},
"id": "/tutorial/2026/05/21/jekyll-liquid-filters-cheatsheet",
"collection": "posts",
"next": {
"path": "_posts/2026-05-22-jekyll-environment-variables.md",
"relative_path": "_posts/2026-05-22-jekyll-environment-variables.md",
"id": "/tutorial/2026/05/22/jekyll-environment-variables",
"collection": "posts",
"url": "/tutorial/2026/05/22/jekyll-environment-variables/",
"draft": false,
"categories": [
"Tutorial"
],
"layout": "post",
"title": "Jekyll Environment Variables: The Complete Guide",
"description": "How to use environment variables in Jekyll — JEKYLL_ENV, accessing env vars in config, conditional builds, and best practices for managing secrets.",
"date": "2026-05-22 00:00:00 +0000",
"last_modified_at": "2026-07-07",
"image": "/assets/images/blog/jekyll-environment-variables.webp",
"author": "Marcus Webb",
"category": "Tutorial",
"featured": false,
"related_category": "Blog",
"toc": true,
"slug": "jekyll-environment-variables",
"ext": ".md",
"tags": [
]
},
"output": null,
"content": "Liquid filters transform output in Jekyll templates. They are chained with the pipe character `|` and applied to variables, strings, numbers, arrays, and dates. This cheatsheet covers every filter you will actually use, with real examples.\n\n## String filters\n\n### append and prepend\n\n```liquid\n{{ \"Jekyll\" | append: \" Themes\" }}\n<!-- output: Jekyll Themes -->\n\n{{ \"Themes\" | prepend: \"Jekyll \" }}\n<!-- output: Jekyll Themes -->\n```\n\n### upcase, downcase, capitalize\n\n```liquid\n{{ \"hello world\" | upcase }}\n<!-- output: HELLO WORLD -->\n\n{{ \"HELLO WORLD\" | downcase }}\n<!-- output: hello world -->\n\n{{ \"hello world\" | capitalize }}\n<!-- output: Hello world -->\n```\n\n### strip, lstrip, rstrip\n\nRemoves whitespace from both ends, left only, or right only.\n\n```liquid\n{{ \" hello \" | strip }}\n<!-- output: hello -->\n```\n\n### replace and replace_first\n\n```liquid\n{{ \"Jekyll is great, Jekyll is fast\" | replace: \"Jekyll\", \"JekyllHub\" }}\n<!-- output: JekyllHub is great, JekyllHub is fast -->\n\n{{ \"Jekyll is great, Jekyll is fast\" | replace_first: \"Jekyll\", \"JekyllHub\" }}\n<!-- output: JekyllHub is great, Jekyll is fast -->\n```\n\n### remove and remove_first\n\n```liquid\n{{ \"Hello, World!\" | remove: \",\" }}\n<!-- output: Hello World! -->\n```\n\n### truncate and truncatewords\n\n```liquid\n{{ \"The quick brown fox\" | truncate: 10 }}\n<!-- output: The qui... -->\n\n{{ \"The quick brown fox\" | truncatewords: 3 }}\n<!-- output: The quick brown... -->\n```\n\n### split and join\n\n```liquid\n{% raw %}\n{% assign tags = \"jekyll,blog,themes\" | split: \",\" %}\n{{ tags | join: \" · \" }}\n<!-- output: jekyll · blog · themes -->\n{% endraw %}\n```\n\n### slice\n\nReturns a substring starting at the given index.\n\n```liquid\n{{ \"Jekyll\" | slice: 0, 3 }}\n<!-- output: Jek -->\n```\n\n### strip_html\n\nRemoves all HTML tags from a string — useful for generating meta descriptions from post content.\n\n```liquid\n{{ post.content | strip_html | truncate: 160 }}\n```\n\n### strip_newlines\n\n```liquid\n{{ content | strip_newlines }}\n```\n\n### newline_to_br\n\nConverts newlines to `<br>` tags.\n\n```liquid\n{{ content | newline_to_br }}\n```\n\n### escape and escape_once\n\nHTML-encodes a string.\n\n```liquid\n{{ '<script>' | escape }}\n<!-- output: &lt;script&gt; -->\n```\n\n### url_encode and url_decode\n\n```liquid\n{{ \"hello world\" | url_encode }}\n<!-- output: hello+world -->\n```\n\n### markdownify\n\nConverts a Markdown string to HTML. Useful for front matter fields written in Markdown.\n\n```liquid\n{{ page.description | markdownify }}\n```\n\n### jsonify\n\nConverts an object to JSON. Essential for passing Jekyll data to JavaScript.\n\n```liquid\n<script>\n var themes = {{ site.themes | jsonify }};\n</script>\n```\n\n## Number filters\n\n### plus, minus, times, divided_by, modulo\n\n```liquid\n{{ 10 | plus: 5 }} <!-- 15 -->\n{{ 10 | minus: 3 }} <!-- 7 -->\n{{ 4 | times: 3 }} <!-- 12 -->\n{{ 10 | divided_by: 3 }} <!-- 3 (integer division) -->\n{{ 10 | modulo: 3 }} <!-- 1 -->\n```\n\n### ceil, floor, round, abs\n\n```liquid\n{{ 4.3 | ceil }} <!-- 5 -->\n{{ 4.7 | floor }} <!-- 4 -->\n{{ 4.567 | round: 2 }} <!-- 4.57 -->\n{{ -5 | abs }} <!-- 5 -->\n```\n\n## Array filters\n\n### size\n\nWorks on strings and arrays.\n\n```liquid\n{{ site.themes | size }}\n{{ \"Jekyll\" | size }} <!-- 6 -->\n```\n\n### first and last\n\n```liquid\n{{ site.themes | first }}\n{{ site.themes | last }}\n```\n\n### push and pop, shift and unshift\n\nAdd or remove items from an array.\n\n```liquid\n{% raw %}\n{% assign updated = site.themes | push: new_theme %}\n{% endraw %}\n```\n\n### concat\n\nMerges two arrays.\n\n```liquid\n{% raw %}\n{% assign all_posts = site.posts | concat: site.pages %}\n{% endraw %}\n```\n\n### map\n\nExtracts a single property from an array of objects.\n\n```liquid\n{% raw %}\n{% assign titles = site.themes | map: \"title\" %}\n{{ titles | join: \", \" }}\n{% endraw %}\n```\n\n### where and where_exp\n\nFilter an array by a property value.\n\n```liquid\n{% raw %}\n{% assign premium = site.themes | where: \"price_type\", \"premium\" %}\n\n{% assign recent = site.posts | where_exp: \"post\", \"post.date > '2026-01-01'\" %}\n{% endraw %}\n```\n\n### sort and sort_natural\n\n```liquid\n{% raw %}\n{% assign sorted = site.themes | sort: \"title\" %}\n{% assign sorted = site.themes | sort_natural: \"title\" %}\n{% endraw %}\n```\n\n### reverse\n\n```liquid\n{% raw %}\n{% assign reversed = site.posts | reverse %}\n{% endraw %}\n```\n\n### uniq\n\nRemoves duplicate values from an array.\n\n```liquid\n{% raw %}\n{% assign unique_cats = site.themes | map: \"category\" | uniq %}\n{% endraw %}\n```\n\n### group_by and group_by_exp\n\nGroups an array of objects by a property.\n\n```liquid\n{% raw %}\n{% assign by_category = site.themes | group_by: \"category\" %}\n{% for group in by_category %}\n <h2>{{ group.name }}</h2>\n {% for theme in group.items %}\n <p>{{ theme.title }}</p>\n {% endfor %}\n{% endfor %}\n{% endraw %}\n```\n\n### find and find_exp\n\nReturns the first item matching a condition (Jekyll 4+).\n\n```liquid\n{% raw %}\n{% assign featured = site.themes | find: \"featured\", true %}\n{% endraw %}\n```\n\n### sum\n\nAdds up a numeric property across an array.\n\n```liquid\n{{ site.themes | map: \"stars\" | sum }}\n```\n\n### compact\n\nRemoves nil values from an array.\n\n```liquid\n{% raw %}\n{% assign clean = array | compact %}\n{% endraw %}\n```\n\n### flatten\n\nFlattens a nested array.\n\n```liquid\n{% raw %}\n{% assign flat = nested_array | flatten %}\n{% endraw %}\n```\n\n## Date filters\n\n### date\n\nFormats a date using `strftime` syntax.\n\n```liquid\n{{ page.date | date: \"%B %-d, %Y\" }}\n<!-- output: July 3, 2026 -->\n\n{{ page.date | date: \"%Y-%m-%d\" }}\n<!-- output: 2026-07-03 -->\n\n{{ page.date | date: \"%d %b %Y\" }}\n<!-- output: 03 Jul 2026 -->\n```\n\nCommon format codes:\n- `%Y` — four-digit year\n- `%m` — zero-padded month (01–12)\n- `%-m` — month without padding (1–12)\n- `%B` — full month name\n- `%b` — abbreviated month name\n- `%d` — zero-padded day\n- `%-d` — day without padding\n- `%A` — full weekday name\n- `%H:%M` — 24-hour time\n\n### date_to_long_string and date_to_string\n\nJekyll shortcuts for common date formats.\n\n```liquid\n{{ page.date | date_to_long_string }}\n<!-- output: 03 July 2026 -->\n\n{{ page.date | date_to_string }}\n<!-- output: 03 Jul 2026 -->\n```\n\n### date_to_xmlschema and date_to_rfc822\n\nUsed in feeds and structured data.\n\n```liquid\n{{ page.date | date_to_xmlschema }}\n<!-- output: 2026-07-03T00:00:00+00:00 -->\n```\n\n## URL and path filters\n\n### relative_url and absolute_url\n\nEssential — always use these instead of hardcoded paths.\n\n```liquid\n<a href=\"{{ '/themes/' | relative_url }}\">Browse themes</a>\n<meta property=\"og:url\" content=\"{{ page.url | absolute_url }}\">\n```\n\n### slugify\n\nConverts a string to a URL-safe slug.\n\n```liquid\n{{ \"Hello World! How are you?\" | slugify }}\n<!-- output: hello-world-how-are-you -->\n```\n\n### uri_escape\n\nPercent-encodes a URI.\n\n```liquid\n{{ \"search query\" | uri_escape }}\n<!-- output: search%20query -->\n```\n\n### cgi_escape\n\nCGI-escapes a string (spaces become `+`).\n\n```liquid\n{{ \"hello world\" | cgi_escape }}\n<!-- output: hello+world -->\n```\n\n## Miscellaneous\n\n### default\n\nReturns a default value when the variable is nil, false, or empty.\n\n```liquid\n{{ page.author | default: site.author.name }}\n{{ page.image | default: site.og_image | relative_url }}\n```\n\n### inspect\n\nOutputs a Ruby representation of the object — invaluable for debugging.\n\n```liquid\n{{ page | inspect }}\n```\n\n### sample\n\nReturns a random element from an array.\n\n```liquid\n{{ site.themes | sample }}\n```\n\n### number_of_words\n\nCounts words in a string.\n\n```liquid\n{{ content | number_of_words }}\n```\n\n## Chaining filters\n\nFilters can be chained — output from one becomes input to the next.\n\n```liquid\n{{ page.title | downcase | replace: \" \", \"-\" | prepend: \"/blog/\" }}\n\n{{ post.content | strip_html | truncatewords: 30 | append: \"…\" }}\n```\n\n## Quick reference card\n\n| Filter | What it does |\n|--------|-------------|\n| `append` / `prepend` | Add text before or after |\n| `upcase` / `downcase` | Change case |\n| `strip_html` | Remove HTML tags |\n| `truncate` / `truncatewords` | Shorten text |\n| `replace` | Find and replace |\n| `date` | Format a date |\n| `where` | Filter array by property |\n| `map` | Extract one property from array |\n| `sort` | Sort an array |\n| `size` | Count items |\n| `default` | Fallback value |\n| `relative_url` | Prefix baseurl |\n| `jsonify` | Convert to JSON |\n| `markdownify` | Render Markdown |\n\nBookmark this page — you will reference it constantly.\n",
"url": "/tutorial/2026/05/21/jekyll-liquid-filters-cheatsheet/",
"draft": false,
"categories": [
"Tutorial"
],
"layout": "post",
"title": "Jekyll Liquid Filters: The Complete Cheatsheet (2026)",
"description": "Every Liquid filter you need for Jekyll — string manipulation, date formatting, array filters, URL helpers, and Jekyll-specific additions. With examples.",
"date": "2026-05-21 00:00:00 +0000",
"last_modified_at": "2026-07-06",
"image": "/assets/images/blog/jekyll-liquid-filters-cheatsheet.webp",
"author": "Marcus Webb",
"category": "Tutorial",
"featured": false,
"related_category": "Blog",
"toc": true,
"slug": "jekyll-liquid-filters-cheatsheet",
"ext": ".md",
"tags": [
]
},
"id": "/tutorial/2026/05/22/jekyll-environment-variables",
"collection": "posts",
"next": {
"path": "_posts/2026-05-23-jekyll-ecommerce-snipcart.md",
"relative_path": "_posts/2026-05-23-jekyll-ecommerce-snipcart.md",
"excerpt": "<p>Jekyll is a static site generator — it does not have a database, a server, or a shopping cart. But that does not mean you cannot sell online. Snipcart is a JavaScript-powered shopping cart that adds to any static site with a few lines of HTML. No backend, no database, no hosting complexity.</p>\n\n",
"previous": {
"path": "_posts/2026-05-22-jekyll-environment-variables.md",
"relative_path": "_posts/2026-05-22-jekyll-environment-variables.md",
"id": "/tutorial/2026/05/22/jekyll-environment-variables",
"collection": "posts",
"url": "/tutorial/2026/05/22/jekyll-environment-variables/",
"draft": false,
"categories": [
"Tutorial"
],
"layout": "post",
"title": "Jekyll Environment Variables: The Complete Guide",
"description": "How to use environment variables in Jekyll — JEKYLL_ENV, accessing env vars in config, conditional builds, and best practices for managing secrets.",
"date": "2026-05-22 00:00:00 +0000",
"last_modified_at": "2026-07-07",
"image": "/assets/images/blog/jekyll-environment-variables.webp",
"author": "Marcus Webb",
"category": "Tutorial",
"featured": false,
"related_category": "Blog",
"toc": true,
"slug": "jekyll-environment-variables",
"ext": ".md",
"tags": [
]
},
"id": "/tutorial/2026/05/23/jekyll-ecommerce-snipcart",
"collection": "posts",
"next": {
"path": "_posts/2026-05-24-jekyll-newsletter-signup.md",
"relative_path": "_posts/2026-05-24-jekyll-newsletter-signup.md",
"id": "/tutorial/2026/05/24/jekyll-newsletter-signup",
"collection": "posts",
"url": "/tutorial/2026/05/24/jekyll-newsletter-signup/",
"draft": false,
"categories": [
"Tutorial"
],
"layout": "post",
"title": "How to Add an Email Newsletter Signup to Your Jekyll Site",
"description": "Add a working email newsletter signup form to Jekyll — using Mailchimp, ConvertKit, Buttondown, or Netlify Forms. Setup guides, embedded forms, and popup options.",
"date": "2026-05-24 00:00:00 +0000",
"last_modified_at": "2026-05-24",
"image": "/assets/images/blog/jekyll-newsletter-signup.webp",
"author": "Marcus Webb",
"category": "Tutorial",
"featured": false,
"related_category": "Blog",
"toc": true,
"tags": [
"jekyll newsletter",
"mailchimp jekyll",
"convertkit jekyll",
"jekyll email signup",
"static site newsletter"
],
"slug": "jekyll-newsletter-signup",
"ext": ".md"
},
"output": null,
"content": "Jekyll is a static site generator — it does not have a database, a server, or a shopping cart. But that does not mean you cannot sell online. Snipcart is a JavaScript-powered shopping cart that adds to any static site with a few lines of HTML. No backend, no database, no hosting complexity.\n\nHere is how to build a fully functional Jekyll store with Snipcart.\n\n## What is Snipcart?\n\nSnipcart is a headless e-commerce platform. You add their JavaScript to your site, mark your products with HTML data attributes, and Snipcart handles the cart, checkout, payment processing (via Stripe), and order management through their dashboard.\n\nYou keep full control of your site's design. Snipcart handles everything that requires a server.\n\n**Pricing:** 2% transaction fee on sales up to $500/month, then $20/month flat fee. Free to test with a sandbox mode.\n\n## Setting up Snipcart in Jekyll\n\n### Step 1: Create a Snipcart account\n\nSign up at [snipcart.com](https://snipcart.com). You will get a public API key for testing (sandbox) and one for production.\n\n### Step 2: Add Snipcart to your Jekyll layout\n\nAdd the following to your `_layouts/default.html` before the closing `</body>` tag:\n\n```html\n{% raw %}\n{% if site.snipcart_key != \"\" %}\n<link rel=\"preconnect\" href=\"https://app.snipcart.com\">\n<link rel=\"preconnect\" href=\"https://cdn.snipcart.com\">\n<link rel=\"stylesheet\" href=\"https://cdn.snipcart.com/themes/v3.3.3/default/snipcart.css\" />\n<div hidden id=\"snipcart\" data-api-key=\"{{ site.snipcart_key }}\"></div>\n<script async src=\"https://cdn.snipcart.com/themes/v3.3.3/default/snipcart.js\"></script>\n{% endif %}\n{% endraw %}\n```\n\n### Step 3: Add your API key to _config.yml\n\n```yaml\n# _config.yml\nsnipcart_key: \"\" # Add your Snipcart public API key here\n```\n\nKeep your test key for local development and your live key in your hosting platform's environment variables.\n\n### Step 4: Define products in front matter\n\nCreate a `_products` collection in `_config.yml`:\n\n```yaml\ncollections:\n products:\n output: true\n permalink: /shop/:slug/\n```\n\nCreate a product file at `_products/jekyll-starter-theme.md`:\n\n```yaml\n---\nlayout: product\ntitle: \"Jekyll Starter Theme\"\nprice: 29.00\nsku: \"JST-001\"\ndescription: \"A clean, minimal Jekyll theme for developers. Includes dark mode, SEO optimisation, and full documentation.\"\nimage: /assets/images/products/jekyll-starter-theme.jpg\ncategory: Themes\nin_stock: true\n---\n\nYour full product description here in Markdown...\n```\n\n### Step 5: Create the Add to Cart button\n\nIn your product layout or product listing, add a button with Snipcart's data attributes:\n\n```html\n{% raw %}\n<button\n class=\"snipcart-add-item btn btn--primary\"\n data-item-id=\"{{ product.sku }}\"\n data-item-name=\"{{ product.title }}\"\n data-item-price=\"{{ product.price }}\"\n data-item-url=\"{{ product.url | absolute_url }}\"\n data-item-description=\"{{ product.description | strip_html | truncate: 255 }}\"\n data-item-image=\"{{ product.image | absolute_url }}\"\n>\n Add to Cart — ${{ product.price }}\n</button>\n{% endraw %}\n```\n\nThe `data-item-url` must point to the live product page where Snipcart can verify the price. This is Snipcart's anti-fraud mechanism — it crawls the URL and confirms the price matches what was passed to the cart.\n\n### Step 6: Add the cart button to your nav\n\n```html\n<button class=\"snipcart-checkout navbar__icon-btn\" aria-label=\"Shopping cart\">\n <svg width=\"20\" height=\"20\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z\"/>\n </svg>\n <span class=\"snipcart-items-count\">0</span>\n</button>\n```\n\nThe `snipcart-items-count` class is updated automatically by Snipcart with the current cart item count.\n\n## Creating a product listing page\n\nCreate `_pages/shop.html`:\n\n```html\n---\nlayout: default\ntitle: \"Shop\"\npermalink: /shop/\n---\n\n<div class=\"product-grid\">\n {% raw %}{% for product in site.products %}{% endraw %}\n <div class=\"product-card\">\n <img src=\"{% raw %}{{ product.image | relative_url }}{% endraw %}\" alt=\"{% raw %}{{ product.title }}{% endraw %}\">\n <h3>{% raw %}{{ product.title }}{% endraw %}</h3>\n <p>{% raw %}{{ product.description | truncate: 120 }}{% endraw %}</p>\n <p class=\"price\">${% raw %}{{ product.price }}{% endraw %}</p>\n <button\n class=\"snipcart-add-item btn btn--primary\"\n data-item-id=\"{% raw %}{{ product.sku }}{% endraw %}\"\n data-item-name=\"{% raw %}{{ product.title }}{% endraw %}\"\n data-item-price=\"{% raw %}{{ product.price }}{% endraw %}\"\n data-item-url=\"{% raw %}{{ product.url | absolute_url }}{% endraw %}\"\n data-item-description=\"{% raw %}{{ product.description | strip_html | truncate: 255 }}{% endraw %}\"\n data-item-image=\"{% raw %}{{ product.image | absolute_url }}{% endraw %}\"\n >\n Add to Cart\n </button>\n </div>\n {% raw %}{% endfor %}{% endraw %}\n</div>\n```\n\n## Handling digital products\n\nSnipcart supports digital product delivery via a file URL. Add it to your button:\n\n```html\ndata-item-file-guid=\"YOUR_FILE_GUID\"\n```\n\nYou upload the file in the Snipcart dashboard and get a GUID. Snipcart delivers a download link to the customer after payment. This is ideal for selling theme files, ebooks, or templates.\n\n## Tax and shipping\n\nConfigure tax rules and shipping rates in the Snipcart dashboard — no code changes needed. You can set rates by country, region, or product category.\n\n## Alternatives to Snipcart\n\n| Option | Best for |\n|--------|----------|\n| **Snipcart** | Most Jekyll stores — simplest setup |\n| **Gumroad** | Digital products only — embed a Gumroad button |\n| **Stripe Payment Links** | Single products, no cart needed |\n| **Shopify Buy Button** | Larger catalogues with existing Shopify store |\n| **Lemon Squeezy** | SaaS products, subscriptions, software |\n\n## Is Jekyll right for e-commerce?\n\nJekyll works well for stores with a small to medium catalogue (under a few hundred products), digital goods, or marketplaces where the product pages are mostly static content. It is not the right choice for large catalogues with complex inventory management, real-time stock levels, or customer accounts.\n\nFor selling a Jekyll theme or digital download, Jekyll plus Snipcart is a perfectly reasonable stack. For a 10,000-SKU physical goods store, reach for Shopify.\n",
"url": "/tutorial/2026/05/23/jekyll-ecommerce-snipcart/",
"draft": false,
"categories": [
"Tutorial"
],
"layout": "post",
"title": "Jekyll E-commerce with Snipcart: Add a Shopping Cart to Your Static Site",
"description": "Learn how to add a fully functional shopping cart to a Jekyll site using Snipcart. Product listings, checkout, payments, and order management — no backend required.",
"date": "2026-05-23 00:00:00 +0000",
"last_modified_at": "2026-07-08",
"image": "/assets/images/blog/jekyll-ecommerce-snipcart.webp",
"author": "Marcus Webb",
"category": "Tutorial",
"featured": false,
"related_category": "Blog",
"toc": true,
"slug": "jekyll-ecommerce-snipcart",
"ext": ".md",
"tags": [
]
},
"output": null,
"content": "Environment variables in Jekyll are simpler than you might expect — but also more limited than many developers assume coming from Node.js or Python. Here is everything you need to know.\n\n## JEKYLL_ENV: the key environment variable\n\nJekyll ships with one built-in environment variable: `JEKYLL_ENV`. It defaults to `development` when you run `jekyll serve` or `jekyll build` locally. To set it to production, prefix your build command:\n\n```bash\nJEKYLL_ENV=production jekyll build\n```\n\nOn Netlify, Cloudflare Pages, and most CI platforms, this is set automatically.\n\n### Using JEKYLL_ENV in Liquid templates\n\nYou can read the environment in your templates using `jekyll.environment`:\n\n```liquid\n{% raw %}\n{% if jekyll.environment == \"production\" %}\n {% include analytics.html %}\n{% endif %}\n{% endraw %}\n```\n\nThis is the standard pattern for including analytics, chat widgets, and other scripts only in production builds — keeping your development output clean and your test data separate from real analytics.\n\n### Common production-only includes\n\n```liquid\n{% raw %}\n{% comment %} In _layouts/default.html {% endcomment %}\n{% if jekyll.environment == \"production\" %}\n {% include analytics.html %}\n {% include cookie-banner.html %}\n{% endif %}\n{% endraw %}\n```\n\n## Can Jekyll read system environment variables?\n\nYes — but only through `_config.yml` using ERB interpolation, and only when Jekyll is run with the `--config` flag pointing to a `.yml` file processed as ERB. This is not supported out of the box in standard Jekyll.\n\nThe most reliable approach for secrets in Jekyll is to use your hosting platform's environment variable system and inject values at build time.\n\n## Injecting environment variables via _config.yml on Netlify\n\nNetlify lets you set environment variables in your site dashboard (Site settings → Environment variables). You can then reference them in `netlify.toml`:\n\n```toml\n[build]\n command = \"JEKYLL_ENV=production jekyll build\"\n publish = \"_site\"\n\n[build.environment]\n JEKYLL_ENV = \"production\"\n```\n\nFor values you want available in your Liquid templates, the cleanest approach is to set them in `_config.yml` directly — keeping non-secret config in version control and only truly secret values (API keys, tokens) in the platform's environment variable system.\n\n## Environment-specific config files\n\nJekyll supports multiple config files merged at build time. This is the recommended pattern for environment-specific settings:\n\n```bash\n# Development (default)\njekyll serve\n\n# Production\njekyll build --config _config.yml,_config.production.yml\n\n# Staging\njekyll build --config _config.yml,_config.staging.yml\n```\n\nYour `_config.production.yml` overrides only the values that differ:\n\n```yaml\n# _config.production.yml\nurl: \"https://yourdomain.com\"\ngoogle_analytics: \"G-XXXXXXXXXX\"\nshow_drafts: false\n```\n\nYour `_config.yml` keeps safe defaults:\n\n```yaml\n# _config.yml\nurl: \"http://localhost:4000\"\ngoogle_analytics: \"\"\nshow_drafts: true\n```\n\n## Practical examples\n\n### Analytics only in production\n\n```liquid\n{% raw %}\n{% comment %} _includes/analytics.html {% endcomment %}\n{% if jekyll.environment == \"production\" and site.google_analytics != \"\" %}\n<script async src=\"https://www.googletagmanager.com/gtag/js?id={{ site.google_analytics }}\"></script>\n<script>\n window.dataLayer = window.dataLayer || [];\n function gtag(){dataLayer.push(arguments);}\n gtag(\"js\", new Date());\n gtag(\"config\", \"{{ site.google_analytics }}\");\n</script>\n{% endif %}\n{% endraw %}\n```\n\n### Draft posts visible in development only\n\n```yaml\n# _config.yml\nshow_drafts: false\n\n# _config.development.yml \nshow_drafts: true\n```\n\n```bash\njekyll serve --config _config.yml,_config.development.yml --drafts\n```\n\n### Different base URLs per environment\n\n```yaml\n# _config.yml\nurl: \"https://jekyllhub.com\"\nbaseurl: \"\"\n\n# _config.staging.yml\nurl: \"https://staging.jekyllhub.com\"\nbaseurl: \"/staging\"\n```\n\n### Banner or maintenance mode\n\n```yaml\n# _config.yml\nmaintenance_mode: false\n```\n\n```liquid\n{% raw %}\n{% if site.maintenance_mode %}\n <div class=\"maintenance-banner\">We are performing maintenance. Back shortly.</div>\n{% endif %}\n{% endraw %}\n```\n\n## What you cannot do directly\n\nJekyll does not have a `.env` file loader like Node.js projects. You cannot write:\n\n```bash\n# This does NOT work in Jekyll\nAPI_KEY=abc123\n```\n\n...and then access `{{ ENV.API_KEY }}` in a template. Jekyll does not read shell environment variables into the Liquid context.\n\nIf you need to expose an API key to client-side JavaScript, remember that anything in your built `_site` folder is public. Never embed secret API keys in static HTML. Use a proxy function (Netlify Functions, Cloudflare Workers) to make authenticated requests from the server side.\n\n## Summary\n\n| Pattern | Use case |\n|---------|----------|\n| `JEKYLL_ENV=production` | Toggle analytics, ads, and scripts |\n| Multiple `_config` files | Environment-specific URLs and settings |\n| Platform env vars in `netlify.toml` | Inject build-time values |\n| `jekyll.environment` in Liquid | Conditional template logic |\n\nKeep your environment strategy simple. For most Jekyll sites, `JEKYLL_ENV` plus a production config override covers everything you need.\n",
"url": "/tutorial/2026/05/22/jekyll-environment-variables/",
"draft": false,
"categories": [
"Tutorial"
],
"layout": "post",
"title": "Jekyll Environment Variables: The Complete Guide",
"description": "How to use environment variables in Jekyll — JEKYLL_ENV, accessing env vars in config, conditional builds, and best practices for managing secrets.",
"date": "2026-05-22 00:00:00 +0000",
"last_modified_at": "2026-07-07",
"image": "/assets/images/blog/jekyll-environment-variables.webp",
"author": "Marcus Webb",
"category": "Tutorial",
"featured": false,
"related_category": "Blog",
"toc": true,
"slug": "jekyll-environment-variables",
"ext": ".md",
"tags": [
]
},
"output": null,
"content": "Liquid filters transform output in Jekyll templates. They are chained with the pipe character `|` and applied to variables, strings, numbers, arrays, and dates. This cheatsheet covers every filter you will actually use, with real examples.\n\n## String filters\n\n### append and prepend\n\n```liquid\n{{ \"Jekyll\" | append: \" Themes\" }}\n<!-- output: Jekyll Themes -->\n\n{{ \"Themes\" | prepend: \"Jekyll \" }}\n<!-- output: Jekyll Themes -->\n```\n\n### upcase, downcase, capitalize\n\n```liquid\n{{ \"hello world\" | upcase }}\n<!-- output: HELLO WORLD -->\n\n{{ \"HELLO WORLD\" | downcase }}\n<!-- output: hello world -->\n\n{{ \"hello world\" | capitalize }}\n<!-- output: Hello world -->\n```\n\n### strip, lstrip, rstrip\n\nRemoves whitespace from both ends, left only, or right only.\n\n```liquid\n{{ \" hello \" | strip }}\n<!-- output: hello -->\n```\n\n### replace and replace_first\n\n```liquid\n{{ \"Jekyll is great, Jekyll is fast\" | replace: \"Jekyll\", \"JekyllHub\" }}\n<!-- output: JekyllHub is great, JekyllHub is fast -->\n\n{{ \"Jekyll is great, Jekyll is fast\" | replace_first: \"Jekyll\", \"JekyllHub\" }}\n<!-- output: JekyllHub is great, Jekyll is fast -->\n```\n\n### remove and remove_first\n\n```liquid\n{{ \"Hello, World!\" | remove: \",\" }}\n<!-- output: Hello World! -->\n```\n\n### truncate and truncatewords\n\n```liquid\n{{ \"The quick brown fox\" | truncate: 10 }}\n<!-- output: The qui... -->\n\n{{ \"The quick brown fox\" | truncatewords: 3 }}\n<!-- output: The quick brown... -->\n```\n\n### split and join\n\n```liquid\n{% raw %}\n{% assign tags = \"jekyll,blog,themes\" | split: \",\" %}\n{{ tags | join: \" · \" }}\n<!-- output: jekyll · blog · themes -->\n{% endraw %}\n```\n\n### slice\n\nReturns a substring starting at the given index.\n\n```liquid\n{{ \"Jekyll\" | slice: 0, 3 }}\n<!-- output: Jek -->\n```\n\n### strip_html\n\nRemoves all HTML tags from a string — useful for generating meta descriptions from post content.\n\n```liquid\n{{ post.content | strip_html | truncate: 160 }}\n```\n\n### strip_newlines\n\n```liquid\n{{ content | strip_newlines }}\n```\n\n### newline_to_br\n\nConverts newlines to `<br>` tags.\n\n```liquid\n{{ content | newline_to_br }}\n```\n\n### escape and escape_once\n\nHTML-encodes a string.\n\n```liquid\n{{ '<script>' | escape }}\n<!-- output: &lt;script&gt; -->\n```\n\n### url_encode and url_decode\n\n```liquid\n{{ \"hello world\" | url_encode }}\n<!-- output: hello+world -->\n```\n\n### markdownify\n\nConverts a Markdown string to HTML. Useful for front matter fields written in Markdown.\n\n```liquid\n{{ page.description | markdownify }}\n```\n\n### jsonify\n\nConverts an object to JSON. Essential for passing Jekyll data to JavaScript.\n\n```liquid\n<script>\n var themes = {{ site.themes | jsonify }};\n</script>\n```\n\n## Number filters\n\n### plus, minus, times, divided_by, modulo\n\n```liquid\n{{ 10 | plus: 5 }} <!-- 15 -->\n{{ 10 | minus: 3 }} <!-- 7 -->\n{{ 4 | times: 3 }} <!-- 12 -->\n{{ 10 | divided_by: 3 }} <!-- 3 (integer division) -->\n{{ 10 | modulo: 3 }} <!-- 1 -->\n```\n\n### ceil, floor, round, abs\n\n```liquid\n{{ 4.3 | ceil }} <!-- 5 -->\n{{ 4.7 | floor }} <!-- 4 -->\n{{ 4.567 | round: 2 }} <!-- 4.57 -->\n{{ -5 | abs }} <!-- 5 -->\n```\n\n## Array filters\n\n### size\n\nWorks on strings and arrays.\n\n```liquid\n{{ site.themes | size }}\n{{ \"Jekyll\" | size }} <!-- 6 -->\n```\n\n### first and last\n\n```liquid\n{{ site.themes | first }}\n{{ site.themes | last }}\n```\n\n### push and pop, shift and unshift\n\nAdd or remove items from an array.\n\n```liquid\n{% raw %}\n{% assign updated = site.themes | push: new_theme %}\n{% endraw %}\n```\n\n### concat\n\nMerges two arrays.\n\n```liquid\n{% raw %}\n{% assign all_posts = site.posts | concat: site.pages %}\n{% endraw %}\n```\n\n### map\n\nExtracts a single property from an array of objects.\n\n```liquid\n{% raw %}\n{% assign titles = site.themes | map: \"title\" %}\n{{ titles | join: \", \" }}\n{% endraw %}\n```\n\n### where and where_exp\n\nFilter an array by a property value.\n\n```liquid\n{% raw %}\n{% assign premium = site.themes | where: \"price_type\", \"premium\" %}\n\n{% assign recent = site.posts | where_exp: \"post\", \"post.date > '2026-01-01'\" %}\n{% endraw %}\n```\n\n### sort and sort_natural\n\n```liquid\n{% raw %}\n{% assign sorted = site.themes | sort: \"title\" %}\n{% assign sorted = site.themes | sort_natural: \"title\" %}\n{% endraw %}\n```\n\n### reverse\n\n```liquid\n{% raw %}\n{% assign reversed = site.posts | reverse %}\n{% endraw %}\n```\n\n### uniq\n\nRemoves duplicate values from an array.\n\n```liquid\n{% raw %}\n{% assign unique_cats = site.themes | map: \"category\" | uniq %}\n{% endraw %}\n```\n\n### group_by and group_by_exp\n\nGroups an array of objects by a property.\n\n```liquid\n{% raw %}\n{% assign by_category = site.themes | group_by: \"category\" %}\n{% for group in by_category %}\n <h2>{{ group.name }}</h2>\n {% for theme in group.items %}\n <p>{{ theme.title }}</p>\n {% endfor %}\n{% endfor %}\n{% endraw %}\n```\n\n### find and find_exp\n\nReturns the first item matching a condition (Jekyll 4+).\n\n```liquid\n{% raw %}\n{% assign featured = site.themes | find: \"featured\", true %}\n{% endraw %}\n```\n\n### sum\n\nAdds up a numeric property across an array.\n\n```liquid\n{{ site.themes | map: \"stars\" | sum }}\n```\n\n### compact\n\nRemoves nil values from an array.\n\n```liquid\n{% raw %}\n{% assign clean = array | compact %}\n{% endraw %}\n```\n\n### flatten\n\nFlattens a nested array.\n\n```liquid\n{% raw %}\n{% assign flat = nested_array | flatten %}\n{% endraw %}\n```\n\n## Date filters\n\n### date\n\nFormats a date using `strftime` syntax.\n\n```liquid\n{{ page.date | date: \"%B %-d, %Y\" }}\n<!-- output: July 3, 2026 -->\n\n{{ page.date | date: \"%Y-%m-%d\" }}\n<!-- output: 2026-07-03 -->\n\n{{ page.date | date: \"%d %b %Y\" }}\n<!-- output: 03 Jul 2026 -->\n```\n\nCommon format codes:\n- `%Y` — four-digit year\n- `%m` — zero-padded month (01–12)\n- `%-m` — month without padding (1–12)\n- `%B` — full month name\n- `%b` — abbreviated month name\n- `%d` — zero-padded day\n- `%-d` — day without padding\n- `%A` — full weekday name\n- `%H:%M` — 24-hour time\n\n### date_to_long_string and date_to_string\n\nJekyll shortcuts for common date formats.\n\n```liquid\n{{ page.date | date_to_long_string }}\n<!-- output: 03 July 2026 -->\n\n{{ page.date | date_to_string }}\n<!-- output: 03 Jul 2026 -->\n```\n\n### date_to_xmlschema and date_to_rfc822\n\nUsed in feeds and structured data.\n\n```liquid\n{{ page.date | date_to_xmlschema }}\n<!-- output: 2026-07-03T00:00:00+00:00 -->\n```\n\n## URL and path filters\n\n### relative_url and absolute_url\n\nEssential — always use these instead of hardcoded paths.\n\n```liquid\n<a href=\"{{ '/themes/' | relative_url }}\">Browse themes</a>\n<meta property=\"og:url\" content=\"{{ page.url | absolute_url }}\">\n```\n\n### slugify\n\nConverts a string to a URL-safe slug.\n\n```liquid\n{{ \"Hello World! How are you?\" | slugify }}\n<!-- output: hello-world-how-are-you -->\n```\n\n### uri_escape\n\nPercent-encodes a URI.\n\n```liquid\n{{ \"search query\" | uri_escape }}\n<!-- output: search%20query -->\n```\n\n### cgi_escape\n\nCGI-escapes a string (spaces become `+`).\n\n```liquid\n{{ \"hello world\" | cgi_escape }}\n<!-- output: hello+world -->\n```\n\n## Miscellaneous\n\n### default\n\nReturns a default value when the variable is nil, false, or empty.\n\n```liquid\n{{ page.author | default: site.author.name }}\n{{ page.image | default: site.og_image | relative_url }}\n```\n\n### inspect\n\nOutputs a Ruby representation of the object — invaluable for debugging.\n\n```liquid\n{{ page | inspect }}\n```\n\n### sample\n\nReturns a random element from an array.\n\n```liquid\n{{ site.themes | sample }}\n```\n\n### number_of_words\n\nCounts words in a string.\n\n```liquid\n{{ content | number_of_words }}\n```\n\n## Chaining filters\n\nFilters can be chained — output from one becomes input to the next.\n\n```liquid\n{{ page.title | downcase | replace: \" \", \"-\" | prepend: \"/blog/\" }}\n\n{{ post.content | strip_html | truncatewords: 30 | append: \"…\" }}\n```\n\n## Quick reference card\n\n| Filter | What it does |\n|--------|-------------|\n| `append` / `prepend` | Add text before or after |\n| `upcase` / `downcase` | Change case |\n| `strip_html` | Remove HTML tags |\n| `truncate` / `truncatewords` | Shorten text |\n| `replace` | Find and replace |\n| `date` | Format a date |\n| `where` | Filter array by property |\n| `map` | Extract one property from array |\n| `sort` | Sort an array |\n| `size` | Count items |\n| `default` | Fallback value |\n| `relative_url` | Prefix baseurl |\n| `jsonify` | Convert to JSON |\n| `markdownify` | Render Markdown |\n\nBookmark this page — you will reference it constantly.\n",
"url": "/tutorial/2026/05/21/jekyll-liquid-filters-cheatsheet/",
"draft": false,
"categories": [
"Tutorial"
],
"layout": "post",
"title": "Jekyll Liquid Filters: The Complete Cheatsheet (2026)",
"description": "Every Liquid filter you need for Jekyll — string manipulation, date formatting, array filters, URL helpers, and Jekyll-specific additions. With examples.",
"date": "2026-05-21 00:00:00 +0000",
"last_modified_at": "2026-07-06",
"image": "/assets/images/blog/jekyll-liquid-filters-cheatsheet.webp",
"author": "Marcus Webb",
"category": "Tutorial",
"featured": false,
"related_category": "Blog",
"toc": true,
"slug": "jekyll-liquid-filters-cheatsheet",
"ext": ".md",
"tags": [
]
}
sample
Returns a random element from an array.
Millennial is a clean, straightforward Jekyll blog theme designed for writers who want a no-nonsense publishing platform. The layout is minimal by design — no sidebars, no clutter, just posts.
Tag archive pages organise content for readers, and pagination handles large archives gracefully.
**Who is it for?** Bloggers who want a lean, focused reading experience without any distracting design elements.
number_of_words
Counts words in a string.
1318
Chaining filters
Filters can be chained — output from one becomes input to the next.
/blog/jekyll-liquid-filters:-the-complete-cheatsheet-(2026)
…
Quick reference card
| Filter | What it does |
|---|---|
append / prepend |
Add text before or after |
upcase / downcase |
Change case |
strip_html |
Remove HTML tags |
truncate / truncatewords |
Shorten text |
replace |
Find and replace |
date |
Format a date |
where |
Filter array by property |
map |
Extract one property from array |
sort |
Sort an array |
size |
Count items |
default |
Fallback value |
relative_url |
Prefix baseurl |
jsonify |
Convert to JSON |
markdownify |
Render Markdown |
Bookmark this page — you will reference it constantly.
<!DOCTYPE html>
Best Minimal Jekyll Themes in 2026 (Clean, Fast, Distraction-Free)
The best minimal Jekyll themes for blogs, portfolios, and personal sites — clean typography, fast load times, and zero visual clutter.
Minimal themes are the most popular category in the Jekyll ecosystem — and for good reason. A minimal design puts the focus on your content, loads in milliseconds, and never goes out of style. Here are the best minimal Jekyll themes in 2026.
What makes a theme truly minimal?
A minimal Jekyll theme is not just a theme with less CSS. The best ones share a few key characteristics:
- Typography-first — the reading experience is the design
- No unnecessary widgets — no popups, cookie banners, social share floods, or autoplay anything
- Fast by default — no large hero images, no heavy JavaScript frameworks
- Easy to customise — minimal markup means less to override
- Responsive — works perfectly on mobile without a complex grid system
Best free minimal Jekyll themes
Minima
The default Jekyll theme and arguably the most used Jekyll theme in existence. Minima ships with every new Jekyll install. It is bare-bones by design: clean typography, a simple nav, an archive list, and not much else.
Best for: Getting started, technical blogs, personal sites where content is everything.
GitHub: jekyll/minima — 3,000+ stars
Klise
Klise is a minimal, high contrast Jekyll theme with dark mode support. It focuses entirely on readability — clean sans-serif type, generous line height, and a subtle dark/light toggle. No hero, no sidebar, no decorative elements.
Best for: Developer blogs, writing-focused sites.
GitHub: piharpi/jekyll-klise — 800+ stars
Chirpy
Chirpy is minimal but feature-complete. It adds a left sidebar with categories and tags, a table of contents that follows the reader, and dark mode — all without visual noise. The design is calm and professional.
Best for: Technical blogs that need categories and navigation without sacrificing simplicity.
GitHub: cotes2020/jekyll-theme-chirpy — 8,000+ stars
No Style Please!
Exactly what the name says. This theme applies almost no CSS — content renders in the browser’s default styles. Intentionally ugly, intentionally fast. Popular in the indie web and “small web” communities.
Best for: Experimental sites, writers who want the ultimate zero-distraction canvas.
GitHub: riggraz/no-style-please — 800+ stars
So Simple
A simple-is-better theme with a single-column layout, large readable type, and support for author profiles. The name is accurate. It is maintained by Michael Rose, who also built the excellent Minimal Mistakes theme.
Best for: Personal sites, writing portfolios, minimalist blogs.
Researcher
Researcher is built for academic and research professionals who want a clean, no-frills presence online. It outputs a single-page site with sections for bio, publications, and projects. Nothing more.
Best for: Academics, PhD students, researchers, scientists.
GitHub: ankitsultana/researcher
What to look for when choosing a minimal theme
Typography: Check the font pairing, line height, and measure (line length). The ideal measure for body text is 50–75 characters per line. If the theme stretches text full-width on desktop, skip it.
Dark mode: In 2026, dark mode is expected. Look for themes with a clean system-respecting dark mode rather than a garish inverted palette.
Performance: Open the theme’s demo in PageSpeed Insights. A good minimal theme should score 95+ on mobile without any optimisation from you.
Front matter support: Check what fields the theme supports: description, image, author, toc. Themes that support rich front matter give you more flexibility as your site grows.
Premium minimal options
Free minimal themes are excellent, but if you want something more refined — custom typography, polished dark mode, better SEO defaults, and actual support — a premium theme is worth considering.
Browse minimal Jekyll themes on JekyllHub to compare free and premium options side by side.
The right amount of minimal
“Minimal” is not the same as “unfinished.” The best minimal themes are the result of careful design decisions — every element has a reason to be there, and everything unnecessary has been removed. They are not lazy; they are deliberate.
When you find the right one, you will spend your time writing. That is the point.
<!DOCTYPE html>
Jekyll vs Next.js: A Practical Comparison for 2026
Jekyll and Next.js both produce fast websites — but they are built for very different situations. Here is how to choose between them for your next project.
Jekyll and Next.js are both capable of producing fast, statically-generated websites. But comparing them is a bit like comparing a bicycle to a car — they are built for different journeys. This guide cuts through the noise and tells you which one fits your project.
The fundamental difference
Jekyll is a static site generator. It takes your Markdown files and Liquid templates and produces plain HTML. That is all it does, and it does it extremely well.
Next.js is a full-stack React framework that happens to support static export. Its primary purpose is server-rendered and hybrid web applications. Static generation is one mode among many — not its identity.
Learning curve
Jekyll requires Markdown, YAML, and Liquid templating — none of which are programming languages in the traditional sense. A non-developer can be productive in Jekyll within a day.
Next.js requires React, JavaScript (ideally TypeScript), an understanding of server-side rendering versus static generation, and the Next.js routing model. If you do not already know React, Next.js is a significant investment.
Bottom line: Jekyll is accessible to anyone. Next.js requires a JavaScript developer.
Build output and hosting
Both can produce a folder of static HTML files ready to deploy anywhere. But the experience differs considerably.
Jekyll outputs clean HTML by default and hosts natively on GitHub Pages — push your repository and your site is live within minutes, for free.
Next.js static export (next export) works well but loses several Next.js features: API routes, middleware, image optimisation via next/image, and incremental static regeneration. If you strip out those features, you are essentially using a React-based template engine.
| Jekyll | Next.js static | |
|---|---|---|
| GitHub Pages (native) | Yes | No (requires Actions) |
| Netlify / Cloudflare | Yes | Yes |
| Vercel | Yes | Yes (first-class) |
| Output size | Very small | Larger (React bundle) |
| JS required for content | No | Yes (hydration) |
Performance
A Jekyll site ships zero JavaScript by default. The page is just HTML and CSS. This is excellent for Core Web Vitals — particularly Interaction to Next Paint (INP) and Total Blocking Time.
Next.js ships a React runtime with every page, even for fully static content. This adds 70–200kb of JavaScript that must parse and execute before the page is fully interactive. For content sites (blogs, docs, portfolios), this is overhead with no benefit.
For content-focused sites, Jekyll is faster in practice — not in theory, but in the metrics that matter for real users on real connections.
Themes and design
Jekyll has a mature theme ecosystem with hundreds of free themes on GitHub and dedicated marketplaces like JekyllHub. Themes are plain HTML, CSS, and Liquid — readable by anyone.
Next.js themes exist (Vercel has a showcase, there are paid options) but the concept of a “theme” is less central to the framework. Customisation requires React component knowledge.
When Next.js makes sense over Jekyll
- You are building a web application, not a content site
- You need API routes, authentication, or database access
- Your team is already using React across multiple projects
- You need incremental static regeneration (pages that update without a full rebuild)
- Your site pulls from a headless CMS and you need real-time preview
When Jekyll makes sense over Next.js
- Your site is primarily content: blog, documentation, portfolio, or landing pages
- You want zero runtime JavaScript on the page
- You want free hosting on GitHub Pages with no build configuration
- You are not a JavaScript developer
- You want themes you can understand and customise without a compiler
The honest answer
For a blog, documentation site, portfolio, or small business website: choose Jekyll. It is simpler, faster to build, free to host, and produces lighter pages.
For a web application with dynamic features that also needs some statically-generated pages: choose Next.js on Vercel.
The mistake people make is reaching for Next.js because it is popular, then spending weeks managing a React build pipeline to publish content that could have been a Markdown file.
Start with the right tool. Browse Jekyll themes on JekyllHub and have your site live today.
<!DOCTYPE html>
How to Set Up a Custom Domain for Your Jekyll Site
Connect a custom domain to your Jekyll site on GitHub Pages, Netlify, or Cloudflare Pages — with DNS setup, HTTPS configuration, and www vs apex domain guidance.
Getting your Jekyll site onto a custom domain takes about 10–30 minutes. The process is the same regardless of which registrar you use — you update DNS records and tell your hosting platform about the domain. This guide covers GitHub Pages, Netlify, and Cloudflare Pages.
Before You Start
You need:
- A domain name (from Namecheap, GoDaddy, Google Domains, Porkbun, or any registrar)
- Your Jekyll site already deployed to GitHub Pages, Netlify, or Cloudflare Pages
DNS changes take anywhere from a few minutes to 48 hours to propagate globally. Most changes take effect within 30 minutes.
Apex Domain vs www
You have two common choices:
- Apex domain:
yourdomain.com— cleaner, but some DNS providers don’t supportALIAS/ANAMErecords for it - www subdomain:
www.yourdomain.com— a standard CNAME works, very reliable - Both: redirect
wwwto apex, or apex towww— best user experience
Most modern hosting platforms support apex domains directly. Our recommendation: use the apex domain (yourdomain.com) as primary and redirect www to it.
Option 1: GitHub Pages + Custom Domain
Step 1: Add the CNAME File
In your Jekyll site’s root directory, create a file named CNAME (no extension) containing only your domain:
yourdomain.com
Commit and push this file. GitHub Pages reads it and serves the site at that domain.
Important: If you use GitHub Actions for deployment, include the CNAME file in your _site output or add it to the build step. Otherwise it may get overwritten on each deploy.
Step 2: Configure DNS
In your domain registrar’s DNS settings, add these records:
For an apex domain (yourdomain.com):
Add four A records pointing to GitHub Pages’ IP addresses:
| Type | Name | Value |
|---|---|---|
| A | @ | 185.199.108.153 |
| A | @ | 185.199.109.153 |
| A | @ | 185.199.110.153 |
| A | @ | 185.199.111.153 |
For www subdomain:
| Type | Name | Value |
|---|---|---|
| CNAME | www | yourusername.github.io |
Step 3: Enable in GitHub Repository Settings
- Go to your repository → Settings → Pages
- Under Custom domain, enter
yourdomain.com - Click Save
- Check Enforce HTTPS (available after DNS propagates)
Step 4: Verify
GitHub will show a green checkmark once DNS is propagating correctly. Visit https://yourdomain.com — it should load your Jekyll site with a valid SSL certificate.
Option 2: Netlify + Custom Domain
Step 1: Add Domain in Netlify
- In Netlify Dashboard, go to your site → Domain management → Add a domain
- Enter your domain and click Verify
- Click Add domain
Step 2: Configure DNS
Option A: Use Netlify DNS (Recommended)
Transfer your domain’s nameservers to Netlify’s. In Netlify, click Set up Netlify DNS and follow the instructions. You’ll get four nameservers like:
dns1.p01.nsone.net
dns2.p01.nsone.net
dns3.p01.nsone.net
dns4.p01.nsone.net
Update your registrar’s nameserver settings to these four. This gives Netlify full DNS control and enables automatic HTTPS and www→apex redirect.
Option B: Keep Your Existing DNS
Add these records in your registrar:
| Type | Name | Value |
|---|---|---|
| A | @ | 75.2.60.5 |
| CNAME | www | yoursitename.netlify.app |
Step 3: HTTPS
Netlify provisions a free Let’s Encrypt certificate automatically within minutes of DNS propagating. You don’t need to do anything — it just works.
Option 3: Cloudflare Pages + Custom Domain
If your site is on Cloudflare Pages and your domain is on Cloudflare (or you move it there):
Step 1: Add Custom Domain
- In Cloudflare Dashboard → Pages → your project → Custom domains
- Click Set up a custom domain
- Enter your domain and click Continue
Step 2: DNS (if domain is on Cloudflare)
Cloudflare automatically adds the DNS record. Done.
Step 3: DNS (if domain is on another registrar)
Add a CNAME record:
| Type | Name | Value |
|---|---|---|
| CNAME | @ (or yourdomain.com) | yourproject.pages.dev |
| CNAME | www | yourproject.pages.dev |
Note: Some registrars don’t support CNAME on the apex (@). Use an ALIAS or ANAME record instead if available, or switch to Cloudflare DNS (it’s free and excellent).
HTTPS
Cloudflare provides HTTPS automatically via their edge network. No certificate configuration needed.
Redirecting www to Apex (or Vice Versa)
Users will type both www.yourdomain.com and yourdomain.com. Pick one as canonical and redirect the other.
On Netlify — automatic if you use Netlify DNS. Otherwise add to _redirects:
https://www.yourdomain.com/* https://yourdomain.com/:splat 301!
On Cloudflare — add a Page Rule or Redirect Rule: www.yourdomain.com/* → https://yourdomain.com/$1 (301)
On GitHub Pages — add both yourdomain.com and www.yourdomain.com to your CNAME, GitHub handles the redirect automatically.
Update _config.yml
Once your custom domain is live, update your Jekyll config:
# _config.yml
url: "https://yourdomain.com"
baseurl: "" # Empty for root domain
This ensures all canonical URLs, sitemaps, and Open Graph tags use your custom domain.
Rebuild and redeploy after this change.
Verify Everything Is Working
Check HTTPS:
curl -I https://yourdomain.com
# Should return: HTTP/2 200
Check www redirect:
curl -I https://www.yourdomain.com
# Should return: HTTP/2 301 and Location: https://yourdomain.com/
Check SSL certificate:
Open your site in a browser and click the padlock icon. The certificate should show as valid and issued for your domain.
Check Google Search Console:
Add your domain as a property in Search Console and verify ownership. Submit your sitemap at https://yourdomain.com/sitemap.xml.
Common Issues
Site still showing at username.github.io after setting custom domain
Wait for DNS propagation (up to 48 hours). Check propagation status at dnschecker.org.
HTTPS not working / certificate error
The SSL certificate is provisioned after DNS propagates. Wait 30–60 minutes after DNS is confirmed working.
www not redirecting
You need separate DNS records for www. Add the CNAME for www pointing to your hosting platform.
Jekyll site assets (CSS/JS) not loading after domain change
Update url in _config.yml to your new domain and ensure baseurl is empty. Rebuild and redeploy.
Once your custom domain is set up, your Jekyll site at yourdomain.com is fully production-ready. Browse Jekyll themes on JekyllHub to find a design that represents your brand.
<!DOCTYPE html>
How to Add a Table of Contents to Jekyll Posts
Add an automatic table of contents to your Jekyll posts — using kramdown's built-in TOC, the jekyll-toc plugin, or a JavaScript approach with active section highlighting.
A table of contents helps readers navigate long posts and signals to Google that your content is structured and comprehensive. Jekyll has three ways to add one — from a one-line kramdown shortcut to a fully interactive sticky sidebar TOC.
Option 1: kramdown Built-in TOC (Simplest)
Jekyll uses kramdown as its default Markdown processor, and kramdown includes a built-in TOC feature that requires zero plugins.
Add TOC to a Specific Post
In your post Markdown, add this wherever you want the TOC to appear:
* TOC
{:toc}
That’s it. kramdown automatically generates a nested list from all headings in the post.
Output example:
- Introduction
- Setting Up
- Installation
- Configuration
- Advanced Usage
- Conclusion
Style It
The TOC is rendered as a plain <ul>. Add CSS to make it look polished:
// _sass/components/_toc.scss
.toc {
background: var(--card-bg);
border: 1px solid var(--border-color);
border-radius: var(--radius-md);
padding: 1.25rem 1.5rem;
margin-bottom: 2rem;
font-size: 0.9rem;
&::before {
content: "On this page";
display: block;
font-weight: 700;
margin-bottom: 0.75rem;
color: var(--heading-color);
}
ul {
margin: 0;
padding-left: 1.25rem;
list-style: none;
}
li {
margin: 0.25rem 0;
}
a {
color: var(--text-muted);
text-decoration: none;
&:hover {
color: var(--link-color);
}
}
}
Add the class to the TOC element by wrapping it:
<div class="toc" markdown="1">
* TOC
{:toc}
</div>
Skip Specific Headings
To exclude a heading from the TOC, add {: .no_toc} after it:
## This heading appears in the TOC
## This one does not {: .no_toc}
Exclude the TOC from H1 and Only Show H2/H3
In _config.yml:
kramdown:
toc_levels: "2..3"
Option 2: jekyll-toc Plugin (More Control)
The jekyll-toc plugin gives you more control — inject TOC separately from content, use it in layouts, and customise the output.
Install
# Gemfile
gem "jekyll-toc"
# _config.yml
plugins:
- jekyll-toc
Run bundle install.
Usage in Layouts
In _layouts/post.html, split the content into TOC and body:
{% if page.toc %}
<aside class="post-toc">
{{ content | toc_only }}
</aside>
{% endif %}
<div class="post-content">
{{ content | inject_anchors }}
</div>
toc_only extracts the TOC as a standalone block.
inject_anchors adds id attributes to headings so TOC links work.
Control Per Post with Front Matter
---
toc: true # Show TOC on this post
---
---
toc: false # No TOC
---
Set a default in _config.yml:
defaults:
- scope:
type: posts
values:
toc: false # Off by default, enable per post
Option 3: JavaScript TOC with Active Section Highlighting
For a sidebar TOC that highlights the current section as the user scrolls — the pattern used by documentation sites like Just the Docs and MDN:
HTML Structure
In your post layout, add a two-column wrapper:
<div class="post-wrapper">
<article class="post-content">
{{ content }}
</article>
<aside class="post-toc-sidebar" id="toc-sidebar">
<nav aria-label="Table of contents">
<p class="toc-sidebar__title">On this page</p>
<ul id="toc-list"></ul>
</nav>
</aside>
</div>
JavaScript: Auto-Build + Scroll Spy
// assets/js/toc.js
(function() {
const tocList = document.getElementById('toc-list');
if (!tocList) return;
// Build TOC from headings
const headings = document.querySelectorAll('.post-content h2, .post-content h3');
if (headings.length < 3) {
document.getElementById('toc-sidebar').style.display = 'none';
return;
}
headings.forEach(heading => {
// Ensure heading has an ID
if (!heading.id) {
heading.id = heading.textContent
.toLowerCase()
.replace(/[^\w\s-]/g, '')
.replace(/\s+/g, '-');
}
const li = document.createElement('li');
li.className = heading.tagName === 'H3' ? 'toc-item toc-item--h3' : 'toc-item';
li.innerHTML = `<a href="#${heading.id}" class="toc-link">${heading.textContent}</a>`;
tocList.appendChild(li);
});
// Scroll spy — highlight active section
const observer = new IntersectionObserver(entries => {
entries.forEach(entry => {
const id = entry.target.getAttribute('id');
const link = tocList.querySelector(`a[href="#${id}"]`);
if (!link) return;
if (entry.isIntersecting) {
tocList.querySelectorAll('.toc-link').forEach(l => l.classList.remove('active'));
link.classList.add('active');
}
});
}, {
rootMargin: '-10% 0px -80% 0px'
});
headings.forEach(h => observer.observe(h));
})();
CSS
.post-wrapper {
display: grid;
grid-template-columns: 1fr;
gap: 2rem;
@media (min-width: 1200px) {
grid-template-columns: 1fr 240px;
align-items: start;
}
}
.post-toc-sidebar {
display: none;
@media (min-width: 1200px) {
display: block;
position: sticky;
top: 2rem;
font-size: 0.85rem;
}
}
.toc-sidebar__title {
font-weight: 700;
font-size: 0.75rem;
text-transform: uppercase;
letter-spacing: 0.05em;
color: var(--text-muted);
margin-bottom: 0.75rem;
}
#toc-list {
list-style: none;
padding: 0;
margin: 0;
border-left: 2px solid var(--border-color);
}
.toc-item {
padding: 0.2rem 0;
}
.toc-item--h3 .toc-link {
padding-left: 1.5rem;
}
.toc-link {
display: block;
padding: 0.2rem 0 0.2rem 0.75rem;
color: var(--text-muted);
text-decoration: none;
transition: color 0.15s, border-color 0.15s;
border-left: 2px solid transparent;
margin-left: -2px;
line-height: 1.4;
&:hover { color: var(--link-color); }
&.active {
color: var(--link-color);
border-left-color: var(--link-color);
font-weight: 600;
}
}
Which Option to Choose
| kramdown built-in | jekyll-toc plugin | JavaScript | |
|---|---|---|---|
| Setup effort | Minimal | Easy | Medium |
| Position | Inline in post | Flexible | Sidebar |
| Scroll highlighting | No | No | Yes |
| Works on GitHub Pages | Yes | No* | Yes |
| Best for | Quick inline TOC | Layout-based TOC | Documentation, long posts |
*jekyll-toc requires GitHub Actions for deployment.
For most blogs: kramdown’s built-in {:toc} is the right choice — one line, zero dependencies.
For documentation or long technical posts: the JavaScript sidebar TOC with scroll highlighting is worth the extra setup.
Browse Jekyll themes on JekyllHub — themes like Just the Docs and Chirpy include TOC functionality built in.
<!DOCTYPE html>
Jekyll Data Files: The Complete Guide to _data
Master Jekyll data files — store structured content in YAML, JSON, and CSV, loop through it in Liquid templates, and build navigation, team pages, and more.
The _data folder is one of Jekyll’s most underused features. It lets you store structured content — navigation menus, team members, FAQs, pricing tables, social links — in clean YAML, JSON, or CSV files, then access them in any template with site.data. This guide covers everything.
What Are Data Files?
Data files live in the _data/ folder in your Jekyll site root. Jekyll reads them at build time and makes the data available globally via site.data.filename.
Supported formats:
- YAML (
.ymlor.yaml) — best for nested structures - JSON (
.json) — good if you’re pulling from an API or other tool - CSV (
.csv) — useful for tabular data, spreadsheet exports - TSV (
.tsv) — tab-separated, similar to CSV
Basic Usage
A Simple YAML Data File
Create _data/social.yml:
- name: Twitter
url: https://twitter.com/yourhandle
icon: twitter
- name: GitHub
url: https://github.com/yourusername
icon: github
- name: LinkedIn
url: https://linkedin.com/in/yourprofile
icon: linkedin
Access it in any template with site.data.social:
<ul class="social-links">
{% for link in site.data.social %}
<li>
<a href="{{ link.url }}" aria-label="{{ link.name }}" target="_blank" rel="noopener">
<span class="icon icon--{{ link.icon }}"></span>
{{ link.name }}
</a>
</li>
{% endfor %}
</ul>
Real-World Use Cases
1. Navigation Menu
The most common use — keeps nav out of layout HTML:
# _data/navigation.yml
main:
- title: Themes
url: /themes/
- title: Blog
url: /blog/
- title: About
url: /about/
- title: Contact
url: /contact/
footer:
- title: Privacy Policy
url: /privacy/
- title: Terms
url: /terms/
- title: FAQ
url: /faq/
<!-- Main nav -->
{% for item in site.data.navigation.main %}
<a href="{{ item.url | relative_url }}">{{ item.title }}</a>
{% endfor %}
<!-- Footer nav -->
{% for item in site.data.navigation.footer %}
<a href="{{ item.url | relative_url }}">{{ item.title }}</a>
{% endfor %}
2. Team Members
# _data/team.yml
- name: Sarah Jones
role: Lead Developer
bio: "10 years building Jekyll themes and static sites."
avatar: /assets/images/team/sarah.jpg
github: sarahjones
twitter: sarahjones
- name: James Park
role: Designer
bio: "UI/UX designer specialising in minimal, fast-loading designs."
avatar: /assets/images/team/james.jpg
github: jamespark
twitter: jamespark
<div class="team-grid">
{% for member in site.data.team %}
<div class="team-card">
<img src="{{ member.avatar | relative_url }}" alt="{{ member.name }}" loading="lazy">
<h3>{{ member.name }}</h3>
<p class="role">{{ member.role }}</p>
<p>{{ member.bio }}</p>
<div class="social">
{% if member.github %}
<a href="https://github.com/{{ member.github }}">GitHub</a>
{% endif %}
{% if member.twitter %}
<a href="https://twitter.com/{{ member.twitter }}">Twitter</a>
{% endif %}
</div>
</div>
{% endfor %}
</div>
3. FAQ with Structured Data
# _data/faq.yml
- question: "How do I install a Jekyll theme?"
answer: "Download or fork the theme repository, add the gem to your Gemfile if it's gem-based, run bundle install, and set the theme in _config.yml."
category: installation
- question: "Are Jekyll themes free?"
answer: "Many Jekyll themes are free and open-source on GitHub. Premium themes with extra features and support are also available."
category: themes
- question: "Can I use Jekyll with GitHub Pages?"
answer: "Yes. Jekyll has native GitHub Pages support — push your site to a GitHub repository and it builds and deploys automatically."
category: hosting
<!-- Group by category -->
{% assign faq_by_category = site.data.faq | group_by: "category" %}
{% for group in faq_by_category %}
<h2>{{ group.name | capitalize }}</h2>
{% for item in group.items %}
<details>
<summary>{{ item.question }}</summary>
<p>{{ item.answer }}</p>
</details>
{% endfor %}
{% endfor %}
4. Pricing Table
# _data/pricing.yml
- name: Free
price: 0
period: forever
features:
- Access to all free themes
- GitHub Pages compatible
- Community support
cta_text: Browse Free Themes
cta_url: /themes/?type=free
featured: false
- name: Premium
price: 49
period: one-time
features:
- Beautiful premium design
- Full source code
- 6 months support
- Commercial licence
- Updates included
cta_text: Browse Premium Themes
cta_url: /themes/?type=premium
featured: true
<div class="pricing-grid">
{% for plan in site.data.pricing %}
<div class="pricing-card {% if plan.featured %}pricing-card--featured{% endif %}">
<h3>{{ plan.name }}</h3>
<div class="price">
{% if plan.price == 0 %}
Free
{% else %}
${{ plan.price }}
<span class="period">{{ plan.period }}</span>
{% endif %}
</div>
<ul>
{% for feature in plan.features %}
<li>{{ feature }}</li>
{% endfor %}
</ul>
<a href="{{ plan.cta_url }}" class="btn {% if plan.featured %}btn--primary{% endif %}">
{{ plan.cta_text }}
</a>
</div>
{% endfor %}
</div>
5. Skills / Technologies List
# _data/skills.yml
- category: Frontend
items:
- name: HTML/CSS
level: 95
- name: JavaScript
level: 88
- name: React
level: 80
- category: Tools
items:
- name: Jekyll
level: 95
- name: Git
level: 90
- name: Figma
level: 75
{% for group in site.data.skills %}
<div class="skill-group">
<h3>{{ group.category }}</h3>
{% for skill in group.items %}
<div class="skill-bar">
<span class="skill-name">{{ skill.name }}</span>
<div class="skill-track">
<div class="skill-fill" style="width: {{ skill.level }}%"></div>
</div>
</div>
{% endfor %}
</div>
{% endfor %}
6. CSV Data (Spreadsheet-Friendly)
Jekyll reads CSV files too. Great for tabular data you manage in a spreadsheet:
# _data/themes.csv
name,stars,category,url
Minimal Mistakes,27000,Blog,/themes/minimal-mistakes/
Chirpy,7000,Blog,/themes/chirpy/
Just the Docs,8000,Documentation,/themes/just-the-docs/
{% for theme in site.data.themes %}
<tr>
<td><a href="{{ theme.url }}">{{ theme.name }}</a></td>
<td>{{ theme.stars | number_with_delimiter }}</td>
<td>{{ theme.category }}</td>
</tr>
{% endfor %}
Nested Data Files (Subdirectories)
You can organise data files in subdirectories. Access them with dot notation:
_data/
content/
homepage.yml
about.yml
settings/
theme.yml
social.yml
{{ site.data.content.homepage.hero_title }}
{{ site.data.settings.social.twitter }}
Filtering and Sorting Data in Liquid
<!-- Filter by a field value -->
{% assign free_themes = site.data.themes | where: "type", "free" %}
<!-- Filter with expression -->
{% assign featured = site.data.themes | where_exp: "item", "item.stars > 1000" %}
<!-- Sort by a field -->
{% assign by_stars = site.data.themes | sort: "stars" | reverse %}
<!-- Limit results -->
{% assign top_5 = by_stars | limit: 5 %}
<!-- Find a specific item -->
{% assign chirpy = site.data.themes | find: "name", "Chirpy" %}
Data Files vs Collections vs Front Matter
| Use case | Best approach |
|---|---|
| Site-wide config (author, title) | _config.yml |
| Repeated structured lists (nav, team, FAQs) | _data/ files |
| Content with its own pages | Collections (_themes/, _posts/) |
| Page-specific metadata | Front matter |
Rule of thumb: If the data is used across multiple pages and doesn’t need its own URL, put it in _data/. If it needs its own page, use a collection.
Keeping Data Files in Sync
Data files are just text files in your repository. You can:
- Edit them directly in VS Code or any text editor
- Generate them from a script (e.g. a Python script that pulls GitHub star counts and writes
_data/stars.yml) - Commit updates via GitHub’s web interface (useful for non-developers)
For example, a nightly GitHub Action that updates star counts:
# .github/workflows/update-stars.yml
on:
schedule:
- cron: '0 6 * * *' # Daily at 6am
jobs:
update:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Update star counts
run: python3 tools/update-stars.py
- name: Commit changes
run: |
git config user.name "github-actions"
git config user.email "actions@github.com"
git add _data/stars.yml
git diff --staged --quiet || git commit -m "Update star counts"
git push
Data files are one of Jekyll’s most powerful and underappreciated features. Once you start using them, you’ll find dozens of places to replace hard-coded content with clean, maintainable YAML.
Browse Jekyll themes on JekyllHub — many themes use data files for navigation, settings, and author information, giving you a practical example to learn from.
<!DOCTYPE html>
Jekyll vs WordPress: Should You Switch in 2026?
An honest comparison of Jekyll and WordPress — speed, cost, security, ease of use, and SEO. Who should switch, who shouldn't, and how to decide.
WordPress powers 43% of the web. Jekyll powers a fraction of that. So why would anyone switch? For the right kind of site, Jekyll is dramatically better — faster, cheaper, more secure, and easier to maintain. For the wrong kind of site, it’s an unnecessary headache. Here’s how to tell which camp you’re in.
The Fundamental Difference
WordPress is a dynamic CMS. When someone visits your site, a PHP server queries a MySQL database, builds the HTML, and sends it back. Every page view triggers this cycle.
Jekyll is a static site generator. You run a build command locally or in CI/CD, it generates plain HTML files, and those files are served directly to visitors. No PHP, no database, no server-side processing.
This difference drives almost everything else in this comparison.
Speed
WordPress
WordPress is inherently slower because every page view involves a PHP process and a database query. With caching plugins (WP Rocket, W3 Total Cache), WordPress can be fast — but you’re fighting the architecture.
A typical uncached WordPress page load: 1–3 seconds.
With good caching and a CDN: 300–800ms.
With expensive managed hosting and heavy optimisation: 200–400ms.
Jekyll
A Jekyll site served from Cloudflare Pages, Netlify, or Vercel is pure HTML from a global CDN. There is nothing to execute.
A typical Jekyll page load: 100–300ms.
With image optimisation: consistently under 200ms.
Winner: Jekyll — it’s not close. Google’s Core Web Vitals scores on Jekyll sites are almost always green with minimal effort.
Cost
WordPress
- Hosting: $5–$30/month (shared), $25–$100/month (managed like WP Engine or Kinsta)
- Domain: $10–$15/year
- Premium theme: $50–$200 one-time
- Plugins: $0–$500+/year (SEO, security, backup, forms, caching…)
- Developer time: Security updates, plugin conflicts, maintenance
Realistic annual cost for a serious WordPress site: $200–$1,500+
Jekyll
- Hosting: $0 (GitHub Pages, Netlify, Cloudflare Pages free tiers)
- Domain: $10–$15/year
- Premium theme: $0–$79 one-time
- Plugins: $0 (Jekyll plugins are open-source Ruby gems)
- Developer time: Near zero — no updates, no security patches, no database backups
Realistic annual cost for a Jekyll site: $10–$90 (domain + optional premium theme)
Winner: Jekyll — the hosting cost difference alone pays for a premium theme within one month.
Security
WordPress
WordPress is the most attacked CMS on the internet. Because it’s so popular, it’s worth building exploit toolkits for. Common attack vectors include plugin vulnerabilities, weak passwords, outdated WordPress core, and PHP injection.
Running a WordPress site means staying on top of core, theme, and plugin updates — not because you want to, but because a single unpatched vulnerability can result in a hacked site.
Jekyll
A Jekyll site is a folder of HTML files. There is no login page to brute-force, no database to inject, no PHP to exploit, and no admin panel to compromise.
The attack surface is essentially zero. The worst thing that can happen is someone compromises your GitHub account — which two-factor authentication prevents.
Winner: Jekyll — by a wide margin. “Static security” is a real advantage.
Ease of Use
WordPress
WordPress has a visual editor (Gutenberg or Classic), media library, user management, and a dashboard that non-technical users can navigate. Writing and publishing requires no technical knowledge. Installing plugins and themes takes a few clicks.
Jekyll
Jekyll requires comfort with the command line, Markdown, Git, and YAML front matter. Publishing a post means writing a .md file, running git commit, and pushing to GitHub. There is no admin panel.
Winner: WordPress — for non-technical users, WordPress is dramatically easier to use day-to-day.
SEO
WordPress
WordPress has excellent SEO plugins (Yoast, Rank Math) that handle meta tags, sitemaps, structured data, and more. The tools are good. The platform itself — slow page loads, bloated HTML — works against you.
Jekyll
Jekyll has jekyll-seo-tag, jekyll-sitemap, and the ability to add custom JSON-LD anywhere. The tools are slightly more manual, but the platform advantages (fast load times, clean HTML, excellent Core Web Vitals) are significant ranking factors.
Google’s Page Experience update made Core Web Vitals a ranking signal. Jekyll sites score better here structurally.
Winner: Slight edge to Jekyll — better platform performance outweighs WordPress’s more polished SEO tooling.
Content Management
WordPress
Full-featured CMS: media library, categories, tags, custom post types, user roles, editorial workflow, scheduled publishing, and revision history. Purpose-built for managing content at scale.
Jekyll
Posts are Markdown files. Images are in an assets/ folder. There’s no media library, no user management, no visual editor. For teams or non-technical editors, this is a real limitation.
Options to add a CMS-like interface to Jekyll:
- Decap CMS (formerly Netlify CMS) — open-source, free
- Forestry.io — visual editor for Jekyll files
- CloudCannon — the most polished Jekyll CMS, paid
Winner: WordPress — content management is what WordPress was built for.
When to Choose Jekyll
- Personal blog, portfolio, or documentation site
- Developer-built and developer-maintained
- Performance and cost are priorities
- You write in Markdown comfortably
- No need for user accounts, e-commerce, or complex content workflows
When to Stick with WordPress
- Non-technical editors need to publish content without developer help
- You need e-commerce (WooCommerce)
- You have complex content workflows with multiple roles
- You need plugins for booking, memberships, or LMS features
- The existing WordPress ecosystem (thousands of themes, plugins) solves your problems
The Switch: Is It Worth It?
If you run a personal blog, technical documentation, or a portfolio site on WordPress, switching to Jekyll will almost certainly make your site faster, cheaper to run, and easier to maintain. The migration takes a weekend and the ongoing benefits are real.
If you run a business site with non-technical editors, a WooCommerce store, or complex workflows — stay on WordPress. Jekyll won’t give you what you need.
The most honest answer: if you’re reading a Jekyll theme marketplace, you’re probably already in the Jekyll camp. The fact that you’re evaluating themes means you’re comfortable with the technical side, and the speed and cost advantages are likely worth it.
Ready to switch? Browse Jekyll themes on JekyllHub and read our complete WordPress to Jekyll migration guide to get started.
References
<!DOCTYPE html>
How to Add a Contact Form to Your Jekyll Site
Add a working contact form to Jekyll without a backend — using Formspree, Netlify Forms, or Getform. Setup guides for all three with spam protection tips.
Jekyll generates static HTML — there’s no server-side code to process form submissions. But you don’t need one. Three services handle form submissions for static sites, and all have free tiers that cover most personal and small business needs.
The Three Best Options
| Formspree | Netlify Forms | Getform | |
|---|---|---|---|
| Free submissions | 50/month | 100/month | 100/month |
| Setup difficulty | Very easy | Easy (Netlify only) | Very easy |
| Spam protection | reCAPTCHA, honeypot | Honeypot, Akismet | reCAPTCHA, honeypot |
| File uploads | Paid | Paid | Free |
| Webhooks | Paid | Yes | Yes |
| Works on any host | Yes | Netlify only | Yes |
Option 1: Formspree (Recommended for Most Sites)
Formspree is the simplest option — point your form’s action at a Formspree endpoint and submissions are emailed to you.
Setup
- Sign up at formspree.io (free)
- Click New Form, give it a name
- Copy your form endpoint URL (looks like
https://formspree.io/f/xpzgkwlr)
HTML
<!-- contact.md or _pages/contact.md -->
---
layout: page
title: Contact
permalink: /contact/
---
<form action="https://formspree.io/f/YOUR_FORM_ID" method="POST" class="contact-form">
<div class="form-group">
<label for="name">Name <span aria-hidden="true">*</span></label>
<input type="text" id="name" name="name" required autocomplete="name">
</div>
<div class="form-group">
<label for="email">Email <span aria-hidden="true">*</span></label>
<input type="email" id="email" name="email" required autocomplete="email">
</div>
<div class="form-group">
<label for="subject">Subject</label>
<input type="text" id="subject" name="subject">
</div>
<div class="form-group">
<label for="message">Message <span aria-hidden="true">*</span></label>
<textarea id="message" name="message" rows="6" required></textarea>
</div>
<!-- Honeypot spam protection -->
<input type="text" name="_gotcha" style="display:none">
<!-- Redirect after submission -->
<input type="hidden" name="_next" value="https://yourdomain.com/thank-you/">
<button type="submit" class="btn btn--primary">Send Message</button>
</form>
Create a Thank You Page
Create _pages/thank-you.md:
---
layout: page
title: Message Sent
permalink: /thank-you/
sitemap: false
---
Thanks for getting in touch — I'll reply within 1–2 business days.
AJAX Submission (No Page Redirect)
For a smoother experience, submit with JavaScript:
<form id="contact-form" action="https://formspree.io/f/YOUR_FORM_ID" method="POST">
<!-- form fields as above -->
<button type="submit" id="submit-btn">Send Message</button>
<p id="form-status" style="display:none"></p>
</form>
<script>
const form = document.getElementById('contact-form');
const status = document.getElementById('form-status');
const btn = document.getElementById('submit-btn');
form.addEventListener('submit', async function(e) {
e.preventDefault();
btn.disabled = true;
btn.textContent = 'Sending...';
const data = new FormData(form);
try {
const response = await fetch(form.action, {
method: 'POST',
body: data,
headers: { 'Accept': 'application/json' }
});
if (response.ok) {
form.reset();
status.textContent = "Thanks! I'll be in touch soon.";
status.style.color = 'green';
btn.textContent = 'Sent ✓';
} else {
throw new Error('Server error');
}
} catch (err) {
status.textContent = 'Something went wrong. Please try again.';
status.style.color = 'red';
btn.disabled = false;
btn.textContent = 'Send Message';
}
status.style.display = 'block';
});
</script>
Option 2: Netlify Forms (Best if Hosting on Netlify)
If your Jekyll site is hosted on Netlify, form handling is built in — no third-party service needed.
Setup
Add netlify attribute to your form tag. That’s it:
<form name="contact" method="POST" data-netlify="true" netlify-honeypot="bot-field">
<input type="hidden" name="form-name" value="contact">
<!-- Honeypot -->
<div style="display:none">
<label>Don't fill this out: <input name="bot-field"></label>
</div>
<div class="form-group">
<label for="name">Name</label>
<input type="text" id="name" name="name" required>
</div>
<div class="form-group">
<label for="email">Email</label>
<input type="email" id="email" name="email" required>
</div>
<div class="form-group">
<label for="message">Message</label>
<textarea id="message" name="message" rows="6" required></textarea>
</div>
<button type="submit">Send</button>
</form>
Netlify detects the data-netlify="true" attribute at build time and registers the form automatically. Submissions appear in your Netlify dashboard under Forms.
Email Notifications
In Netlify Dashboard → Forms → your form → Form notifications, add your email address. You’ll get an email for every submission.
Free Plan Limit
100 form submissions/month on Netlify’s free tier. Enough for most personal sites and small businesses.
Option 3: Getform
Getform is similar to Formspree with a generous free tier.
Setup
- Sign up at getform.io
- Create a form endpoint
- Copy the endpoint URL
<form action="https://getform.io/f/YOUR_ENDPOINT" method="POST">
<input type="text" name="name" placeholder="Name" required>
<input type="email" name="email" placeholder="Email" required>
<textarea name="message" placeholder="Message" required></textarea>
<!-- Honeypot -->
<input type="hidden" name="_gotcha" style="display:none">
<button type="submit">Send</button>
</form>
Styling the Contact Form
// _sass/components/_forms.scss
.contact-form {
max-width: 600px;
}
.form-group {
margin-bottom: 1.25rem;
label {
display: block;
font-weight: 600;
margin-bottom: 0.375rem;
font-size: 0.9rem;
color: var(--text-color);
}
input[type="text"],
input[type="email"],
textarea {
width: 100%;
padding: 0.625rem 0.875rem;
border: 1px solid var(--border-color);
border-radius: var(--radius-md);
background: var(--bg-color);
color: var(--text-color);
font-size: 1rem;
font-family: inherit;
transition: border-color 0.15s;
&:focus {
outline: none;
border-color: var(--color-primary);
box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}
}
textarea {
resize: vertical;
min-height: 140px;
}
}
Spam Protection
All three services include basic spam protection. For extra security:
Honeypot field — A hidden field bots fill in but humans don’t:
<input type="text" name="_gotcha" style="display:none" tabindex="-1" autocomplete="off">
Check for it if processing on your end — any submission where _gotcha is filled is a bot.
reCAPTCHA v3 (Formspree Pro) — Invisible challenge, no checkbox needed. Better UX than v2.
Rate limiting — All three services rate-limit submissions by IP automatically.
Which to Choose
- Formspree — best default choice, works on any host, cleanest setup
- Netlify Forms — best if you’re already on Netlify, no third-party account needed
- Getform — good Formspree alternative with file upload support on free tier
All three have free tiers that handle 50–100 submissions/month — more than enough for contact forms on most sites.
Browse Jekyll themes on JekyllHub — several themes include a pre-styled contact page ready to connect to your form service.
<!DOCTYPE html>
How to Add Google Analytics to Your Jekyll Site
Add Google Analytics 4 to Jekyll in under 5 minutes — with the tracking snippet, privacy-friendly loading, and how to verify it's working correctly.
Adding Google Analytics to Jekyll takes about 5 minutes. This guide covers Google Analytics 4 (GA4), the only version Google currently supports, plus tips for privacy-friendly loading and verifying it works.
What You Need
- A Google account
- Your Jekyll site’s URL
- Access to your Jekyll theme files
Step 1: Create a GA4 Property
- Go to analytics.google.com
- Click Admin (gear icon, bottom left)
- Click Create → Property
- Enter your property name and time zone, click Next
- Fill in your business details, click Create
- Choose Web as the platform
- Enter your website URL and stream name
- Click Create stream
You’ll see your Measurement ID — it looks like G-XXXXXXXXXX. Copy it.
Step 2: Add Your Measurement ID to _config.yml
Store the ID in your config so it’s easy to change and easy to disable:
# _config.yml
google_analytics: G-XXXXXXXXXX
Step 3: Create the Analytics Include
Create _includes/analytics.html:
{% if site.google_analytics %}
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id={{ site.google_analytics }}"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', '{{ site.google_analytics }}');
</script>
{% endif %}
The {% if site.google_analytics %} check means analytics only loads when the ID is set — remove the ID from _config.yml to disable tracking entirely.
Step 4: Add to Your Layout
In _layouts/default.html, add the include just before </head>:
<head>
<!-- your existing head content -->
{% include analytics.html %}
</head>
Step 5: Disable Analytics in Development
You don’t want to track your own visits while building locally. Jekyll sets JEKYLL_ENV to development by default locally and production on most hosts.
Update your include to only load in production:
{% if site.google_analytics and jekyll.environment == 'production' %}
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id={{ site.google_analytics }}"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', '{{ site.google_analytics }}');
</script>
{% endif %}
Make sure your deployment sets the environment variable:
# Netlify / Cloudflare Pages — add environment variable:
JEKYLL_ENV=production
GitHub Actions already sets this in the default Jekyll workflow.
Step 6: Verify It’s Working
Method A: Real-time report
- Open Google Analytics → Reports → Realtime
- Open your live site in another tab
- You should see yourself as an active user within 30 seconds
Method B: Browser Dev Tools
- Open your live site
- Open DevTools → Network tab
- Filter by
googleorgtag - Refresh the page — you should see requests to
googletagmanager.com
Method C: GA4 Debugger Install the Google Analytics Debugger Chrome extension. It logs all GA4 events to the console.
Privacy-Friendly Loading (Optional but Recommended)
GDPR requires user consent before setting analytics cookies in the EU. If your audience is European or you want to be safe:
Option A: Load Analytics Only After Consent
{% if site.google_analytics and jekyll.environment == 'production' %}
<script>
// Only load GA after user clicks "Accept"
function loadAnalytics() {
var s = document.createElement('script');
s.src = 'https://www.googletagmanager.com/gtag/js?id={{ site.google_analytics }}';
s.async = true;
document.head.appendChild(s);
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', '{{ site.google_analytics }}');
}
if (localStorage.getItem('analytics_consent') === 'true') {
loadAnalytics();
}
</script>
{% endif %}
Option B: Switch to a Privacy-First Alternative
If GDPR compliance is important, consider:
- Plausible Analytics — no cookies, GDPR compliant, $9/month. Add with one script tag.
- Fathom Analytics — similar to Plausible, privacy-first
- Cloudflare Web Analytics — free, no cookies, built into Cloudflare Pages
For Plausible:
{% if site.plausible_domain and jekyll.environment == 'production' %}
<script defer data-domain="{{ site.plausible_domain }}"
src="https://plausible.io/js/script.js"></script>
{% endif %}
# _config.yml
plausible_domain: yourdomain.com
Common Issues
Analytics not showing data
- Check that
JEKYLL_ENV=productionis set in your deployment environment - Verify the script is in the
<head>of your built HTML (view source on the live site) - Check browser console for errors
- Make sure you’re not running an ad blocker that blocks GA
Seeing your own visits in reports
- You’re either not using the
jekyll.environment == 'production'check, orJEKYLL_ENVisn’t being set correctly on your host - Install the Block Yourself from Analytics Chrome extension
Data appears in GA but with wrong URL
- Check
urlin_config.yml— it should be your full domain withhttps:// - In GA4, verify the data stream URL matches your live site URL
Once GA4 is tracking, wait 24–48 hours and then check Reports → Acquisition → Traffic acquisition to see where your visitors are coming from. For a new site, most traffic will be direct initially — organic search traffic grows over weeks as Google indexes your posts.
Browse Jekyll themes on JekyllHub — many themes include pre-configured analytics support in their _config.yml.
<!DOCTYPE html>
Jekyll Hosting Comparison: GitHub Pages vs Netlify vs Cloudflare Pages vs Vercel
Compare the four best Jekyll hosting platforms — GitHub Pages, Netlify, Cloudflare Pages, and Vercel. Free plans, build times, CDN speed, custom domains, and which to choose.
Choosing where to host your Jekyll site is one of the first decisions you’ll make — and all four major platforms are free for personal projects. The differences come down to build speed, CDN coverage, plugin support, and how much you want to configure. Here’s a plain-English breakdown.
At a Glance
| GitHub Pages | Netlify | Cloudflare Pages | Vercel | |
|---|---|---|---|---|
| Free plan | Yes | Yes | Yes | Yes |
| Custom domain | Yes | Yes | Yes | Yes |
| Free SSL | Yes | Yes | Yes | Yes |
| CDN locations | Limited | 100+ PoPs | 300+ PoPs | 100+ PoPs |
| Build time (typical) | 30–90s | 15–45s | 10–30s | 10–30s |
| Any Jekyll plugin | No | Yes | Yes | Yes |
| Preview deploys | No | Yes | Yes | Yes |
| Build minutes (free) | Unlimited | 300/month | Unlimited | 6,000/month |
| Bandwidth (free) | 100GB/month | 100GB/month | Unlimited | 100GB/month |
GitHub Pages
GitHub Pages is the default choice for Jekyll — it’s the only platform with native Jekyll support. Push to a repository and it builds and deploys automatically with zero configuration.
What makes it great
- Zero setup — no accounts beyond GitHub, no CI/CD, no config files
- Free forever — no build minute limits, no bandwidth caps (within reason)
- Tight GitHub integration — deployments show in your commit history, PR checks, and Actions tab
The catch: limited plugins
GitHub Pages only supports a specific list of plugins. Popular ones like jekyll-archives, jekyll-paginate-v2, and any custom gems won’t work.
Workaround: Use GitHub Actions to build Jekyll yourself and deploy the output. This removes the plugin restriction entirely:
# .github/workflows/deploy.yml
- name: Build with Jekyll
run: bundle exec jekyll build
# Now you can use any plugin
Best for
Beginners, simple blogs, open-source project documentation, anyone who wants zero infrastructure decisions.
Netlify
Netlify was the first platform to make static site deployment truly developer-friendly. It remains one of the best options for Jekyll.
What makes it great
- Any plugin — you control the build, so any gem works
- Preview deploys — every pull request gets its own preview URL (
https://deploy-preview-42--mysite.netlify.app) - Form handling — built-in form submissions without a backend (free up to 100/month)
- Split testing — A/B test different branches
- Netlify Functions — serverless functions if you ever need a backend endpoint
- Instant rollbacks — one click to revert to any previous deploy
Configuration
Create netlify.toml in your repo root:
[build]
command = "bundle exec jekyll build"
publish = "_site"
[build.environment]
JEKYLL_ENV = "production"
RUBY_VERSION = "3.3"
[[headers]]
for = "/assets/*"
[headers.values]
Cache-Control = "public, max-age=31536000, immutable"
[[redirects]]
from = "/old-url/"
to = "/new-url/"
status = 301
Free plan limits
300 build minutes/month. A typical Jekyll build takes 30–60 seconds, so you get roughly 300–600 deploys/month — more than enough for most projects.
Best for
Projects that need preview deploys, contact forms, redirects, or any plugin beyond the GitHub Pages whitelist.
Cloudflare Pages
Cloudflare Pages is the newest of the four and has quickly become the performance leader. Its CDN has 300+ locations worldwide — meaning files are served from close to every user on the planet.
What makes it great
- Fastest CDN — 300+ points of presence, best global coverage of any free tier
- Unlimited bandwidth — no caps, no overage charges, ever
- Unlimited build minutes — no monthly limits on the free plan
- Any plugin — full control over the build
- Preview deploys — every branch and PR gets a preview URL
- Web Analytics — free, privacy-friendly analytics built in (no cookie banner needed)
- Cloudflare Workers — edge functions for dynamic behaviour if needed
Configuration
Connect your GitHub/GitLab repo in the Cloudflare Pages dashboard and set:
- Build command:
bundle exec jekyll build - Build output directory:
_site - Environment variable:
JEKYLL_ENV=production
No config file needed — it’s all in the dashboard.
Redirects
Create a _redirects file in your site root (same format as Netlify):
/old-url/ /new-url/ 301
Best for
Sites where global performance matters — international audiences, high-traffic sites, anyone who wants the best CDN coverage for free.
Vercel
Vercel is best known for Next.js hosting, but it works well with Jekyll too. Its developer experience is excellent and its edge network is fast.
What makes it great
- Fast build infrastructure — builds often complete faster than Netlify
- Excellent CLI —
vercelcommand deploys from your terminal instantly - Preview deploys — every push and PR gets a preview URL with a comment on GitHub
- Analytics — paid add-on, but detailed
- Edge functions — Vercel Edge Functions if you need dynamic routes
Configuration
Create vercel.json:
{
"buildCommand": "bundle exec jekyll build",
"outputDirectory": "_site",
"installCommand": "bundle install"
}
Free plan limits
6,000 build minutes/month — more than GitHub Actions but less than Cloudflare’s unlimited.
Important: Vercel’s free plan is for personal/non-commercial use. Commercial sites require a paid plan ($20+/month). For a commercial theme marketplace, check the terms carefully.
Best for
Developer tools, open-source projects, teams already using Vercel for other projects.
Which Should You Choose?
Just starting out / personal blog: GitHub Pages — zero decisions, zero setup, free forever.
Need any Jekyll plugin: Netlify, Cloudflare Pages, or Vercel — all support custom builds.
Best global performance: Cloudflare Pages — 300+ CDN locations, unlimited bandwidth, unlimited builds.
Need contact forms built in: Netlify — form handling is a native feature, not a third-party integration.
Commercial project: Cloudflare Pages or Netlify — Vercel’s free tier restricts commercial use.
Our recommendation for most new JekyllHub users: Start with GitHub Pages for simplicity. If you outgrow its plugin restrictions or need better global performance, migrate to Cloudflare Pages — the unlimited bandwidth and build minutes make it the most generous free tier.
Migrating Between Platforms
All four platforms deploy from the same Git repository. Switching is as simple as:
- Sign up for the new platform
- Connect the same GitHub repo
- Set the build command (
bundle exec jekyll build) and output directory (_site) - Update your domain’s DNS to point to the new host
- Delete the old deployment
The whole process takes under 30 minutes and your Jekyll site code doesn’t change at all.
Browse Jekyll themes on JekyllHub — all themes are tested for compatibility with GitHub Pages, Netlify, and Cloudflare Pages.
<!DOCTYPE html>
How to Migrate from WordPress to Jekyll Without Losing SEO
Migrate your WordPress site to Jekyll while preserving rankings — keep URLs intact, set up 301 redirects, transfer authority, and resubmit your sitemap correctly.
Migrating from WordPress to Jekyll can destroy your search rankings if done carelessly — or preserve them completely if done right. The difference is almost entirely about URLs and redirects. This guide focuses specifically on the SEO side of migration.
Why Migrations Hurt Rankings (And How to Avoid It)
When you migrate a site, Google typically sees:
- Broken URLs — old pages return 404, Google drops them from the index
- Changed URLs without redirects — link equity built up over years evaporates
- Missing content signals — metadata, structured data, and canonicals vanish
- Crawl errors — Google Search Console fills with errors, trust drops
All of these are avoidable with the right preparation.
Step 1: Audit Your Current Rankings Before You Touch Anything
Before migrating, document what you have to protect.
Export your current rankings:
- Open Google Search Console
- Go to Performance → Search results
- Export the full report (all queries, all pages)
- Save it — this is your baseline
Identify your top pages: Sort by impressions or clicks. The top 20 pages drive the majority of your traffic. These are the pages that absolutely must have working redirects.
Check your backlinks: Use Ahrefs, Moz, or the free Google Search Console Links report to export pages with inbound links. Any URL with external links pointing to it must either be preserved or redirected.
Step 2: Decide on a URL Strategy
This is the single most important SEO decision in your migration.
Option A: Match Your WordPress URL Structure (Safest)
WordPress defaults to /YYYY/MM/DD/post-title/. Set your Jekyll permalink to match:
# _config.yml
permalink: /:year/:month/:day/:title/
With matching URLs, you need zero redirects. Google sees no change. This is the safest option if your WordPress URLs are already clean.
Option B: Improve Your URL Structure (Riskier but Better Long-Term)
WordPress date-based URLs are not ideal for SEO — they signal post age and add unnecessary path segments. Cleaner URLs like /blog/post-title/ perform better.
# _config.yml
permalink: /blog/:title/
If you change URL structure: every old URL must have a 301 redirect to the new one. Skipping this step will cause ranking drops.
Option C: Keep WordPress Slugs, Drop the Date
permalink: /:title/
This is a good middle ground — shorter URLs than WordPress default, but slugs are unchanged so most existing links still work.
Step 3: Set Up 301 Redirects
301 redirects tell Google: “this content has permanently moved to a new URL.” They pass ~90-99% of link equity to the new destination.
Method A: jekyll-redirect-from Plugin
Add old URLs to each post’s front matter:
---
title: "My Post Title"
redirect_from:
- /2024/03/15/my-post-title/
- /2024/03/my-post-title/
- /?p=1234
---
Jekyll generates redirect pages at those URLs that immediately redirect to the current post URL.
Limitation: jekyll-redirect-from creates HTML redirect pages, not true HTTP 301 redirects. Google handles these well, but HTTP 301s via your hosting platform are more reliable.
Method B: Netlify Redirects (Recommended)
Create _redirects in your site root:
/2024/03/15/my-post-title/ /blog/my-post-title/ 301
/2024/03/20/another-post/ /blog/another-post/ 301
/?p=1234 /blog/my-post-title/ 301
/?p=5678 /blog/another-post/ 301
Netlify processes these as real HTTP 301s — the gold standard.
Method C: Cloudflare Pages Redirects
Create _redirects (same format as Netlify) or use _headers for more complex rules. Cloudflare processes these as HTTP 301s at the CDN level.
Method D: Match URLs Exactly (No Redirects Needed)
As mentioned in Step 2, the cleanest approach is matching your Jekyll permalink structure to WordPress. Then there are no redirects to manage.
Step 4: Preserve Your Metadata
WordPress stores titles, descriptions, and OG images in plugins like Yoast SEO or Rank Math. You need to transfer this to Jekyll front matter.
Export Yoast data: Many Jekyll importers pull Yoast SEO data automatically. Check your imported posts for:
---
title: "Exact title from Yoast"
description: "Exact meta description from Yoast"
image: /assets/images/og-image.jpg
---
If the importer didn’t pull this data, open your WordPress admin, go to each top post, and manually copy the Yoast title and description into the post’s front matter.
Install jekyll-seo-tag:
gem "jekyll-seo-tag"
Add {% seo %} to your <head>. This auto-generates all SEO tags from your front matter.
Step 5: Handle WordPress-Specific URL Patterns
WordPress generates several URL types that need attention:
Category URLs: WordPress creates /category/tech/, Jekyll creates /tech/ by default. Set up redirects or configure Jekyll to match:
# jekyll-archives config
permalinks:
category: /category/:name/
Tag URLs: Same issue — match WordPress’s /tag/name/ pattern:
permalinks:
tag: /tag/:name/
Author archives: WordPress creates /author/username/. Unless you replicate this, set up redirects to the homepage or about page.
Feed URL: WordPress feeds live at /feed/ or /?feed=rss2. Jekyll’s jekyll-feed plugin creates /feed.xml. Set up a redirect:
/feed/ /feed.xml 301
/feed.xml /feed.xml 200
Page URLs: WordPress pages often have trailing slashes (/about/). Make sure your Jekyll pages have matching permalinks:
---
permalink: /about/
---
Step 6: Migrate Your Sitemap
Before going live, have your new sitemap ready to submit.
Install jekyll-sitemap:
gem "jekyll-sitemap"
Your sitemap auto-generates at /sitemap.xml.
After going live:
- Open Google Search Console
- Go to Sitemaps
- Remove your old WordPress sitemap URL
- Submit the new
/sitemap.xml - Request indexing on your most important pages via URL Inspection
Step 7: Verify Structured Data Is Intact
WordPress plugins like Yoast add structured data (JSON-LD) automatically. On Jekyll, you add it manually.
In your _layouts/post.html:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": {{ page.title | jsonify }},
"description": {{ page.description | jsonify }},
"datePublished": "{{ page.date | date_to_xmlschema }}",
"dateModified": "{{ page.last_modified_at | default: page.date | date_to_xmlschema }}",
"author": {
"@type": "Person",
"name": {{ page.author | default: site.author | jsonify }}
}
}
</script>
Test with Google’s Rich Results Test before and after migration to verify no structured data was lost.
Step 8: The Migration Go-Live Sequence
Order matters. Do this exactly:
- Build and test Jekyll site locally — verify all pages render, no broken links
- Set up redirects on your hosting platform — before pointing DNS
- Deploy to your hosting platform — but keep WordPress live
- Test the new site at its staging URL — check 5-10 key pages manually
- Point DNS to the new host — this is when migration goes live
- Verify redirects are working — check old URLs return 301, not 404
- Submit new sitemap to Google Search Console
- Monitor Search Console for the next 2 weeks — watch for crawl errors and ranking changes
Step 9: Post-Migration Monitoring
In the 4 weeks after migration, check weekly:
Google Search Console → Coverage: Should show no significant increase in 404 errors. If you see new 404s, find the URLs and add redirects immediately.
Search Console → Performance: Compare impressions and clicks week over week. A small drop is normal (Google is re-indexing). A large sustained drop means redirects are missing.
Core Web Vitals: Jekyll sites typically score significantly better than WordPress. Confirm your scores improved in PageSpeed Insights.
Expected Timeline
| Week | What to Expect |
|---|---|
| 0–1 | Google discovers changes, some ranking fluctuation |
| 1–2 | Re-indexing, potential minor dip |
| 2–4 | Stabilisation, rankings return to pre-migration levels |
| 4–8 | Rankings often improve — Jekyll’s speed benefits kick in |
A well-executed migration should recover fully within 4 weeks and often improve rankings within 2–3 months as Google rewards the faster, cleaner site.
Migrating to Jekyll? Browse themes on JekyllHub to find the right design before you start — picking your theme first makes the technical migration easier to plan.
References
<!DOCTYPE html>
Create Dynamic Navigation and Smart Sidebars in Jekyll
Build flexible navigation menus and context-aware sidebars in Jekyll — using data files, active state detection, dropdown menus, and collection-based sidebars.
Hard-coded navigation and static sidebars are the first thing that makes a Jekyll theme feel unpolished. This guide covers building dynamic navigation driven by data files, active state detection that actually works, dropdown menus, and sidebars that adapt to the current page.
Part 1: Dynamic Navigation with Data Files
Basic Data-Driven Nav
Store navigation items in _data/navigation.yml instead of hard-coding them in HTML:
# _data/navigation.yml
main:
- title: "Themes"
url: /themes/
- title: "Blog"
url: /blog/
- title: "About"
url: /about/
- title: "Contact"
url: /contact/
In _includes/nav.html:
<nav class="site-nav" aria-label="Main navigation">
<ul role="list">
{% for item in site.data.navigation.main %}
<li>
<a href="{{ item.url | relative_url }}"
{% if page.url == item.url %}aria-current="page"{% endif %}>
{{ item.title }}
</a>
</li>
{% endfor %}
</ul>
</nav>
Adding or removing nav items now only requires editing the YAML file — no touching HTML.
Active State Detection That Works
The tricky part is marking the current page. A simple page.url == item.url check fails for sub-pages. Here’s a robust approach:
{% assign current_url = page.url %}
{% assign nav_url = item.url %}
{% comment %}Exact match{% endcomment %}
{% assign is_active = false %}
{% if current_url == nav_url %}
{% assign is_active = true %}
{% endif %}
{% comment %}Parent match — e.g. /blog/ is active when on /blog/my-post/{% endcomment %}
{% if nav_url != '/' and current_url contains nav_url %}
{% assign is_active = true %}
{% endif %}
<a href="{{ nav_url | relative_url }}"
{% if is_active %}class="active" aria-current="page"{% endif %}>
{{ item.title }}
</a>
The / check prevents the homepage link from being active on every page.
Navigation with Sections and Dropdowns
For multi-level navigation, extend the data structure:
# _data/navigation.yml
main:
- title: "Themes"
url: /themes/
children:
- title: "Free Themes"
url: /themes/?type=free
- title: "Premium Themes"
url: /themes/?type=premium
- title: "Blog Themes"
url: /category/blog/
- title: "Portfolio Themes"
url: /category/portfolio/
- title: "Blog"
url: /blog/
- title: "About"
url: /about/
In your nav include:
<nav class="site-nav">
<ul role="list">
{% for item in site.data.navigation.main %}
<li class="{% if item.children %}has-dropdown{% endif %}">
<a href="{{ item.url | relative_url }}"
{% if item.children %}aria-haspopup="true" aria-expanded="false"{% endif %}
{% if page.url contains item.url and item.url != '/' %}class="active"{% endif %}>
{{ item.title }}
{% if item.children %}<span class="dropdown-arrow" aria-hidden="true">▾</span>{% endif %}
</a>
{% if item.children %}
<ul class="dropdown" role="list">
{% for child in item.children %}
<li>
<a href="{{ child.url | relative_url }}"
{% if page.url == child.url %}aria-current="page"{% endif %}>
{{ child.title }}
</a>
</li>
{% endfor %}
</ul>
{% endif %}
</li>
{% endfor %}
</ul>
</nav>
CSS for the dropdown:
.has-dropdown {
position: relative;
}
.dropdown {
position: absolute;
top: 100%;
left: 0;
min-width: 200px;
background: var(--card-bg);
border: 1px solid var(--border-color);
border-radius: var(--radius-md);
box-shadow: 0 4px 12px rgba(0,0,0,0.1);
opacity: 0;
visibility: hidden;
transform: translateY(-4px);
transition: opacity 0.2s, transform 0.2s, visibility 0.2s;
z-index: 100;
list-style: none;
padding: 0.5rem 0;
margin: 0;
a {
display: block;
padding: 0.5rem 1rem;
white-space: nowrap;
&:hover {
background: var(--bg-color);
}
}
}
.has-dropdown:hover .dropdown,
.has-dropdown:focus-within .dropdown {
opacity: 1;
visibility: visible;
transform: translateY(0);
}
The :focus-within selector makes it keyboard-accessible with no JavaScript.
Mobile Navigation Toggle
<!-- _includes/nav.html -->
<button class="nav-toggle"
aria-controls="main-menu"
aria-expanded="false"
aria-label="Open menu">
<span class="hamburger"></span>
</button>
<nav id="main-menu" class="site-nav" aria-label="Main navigation" hidden>
<!-- nav items -->
</nav>
// Toggle
const toggle = document.querySelector('.nav-toggle');
const menu = document.querySelector('#main-menu');
toggle.addEventListener('click', () => {
const isOpen = toggle.getAttribute('aria-expanded') === 'true';
toggle.setAttribute('aria-expanded', !isOpen);
menu.hidden = isOpen;
});
// Close on outside click
document.addEventListener('click', (e) => {
if (!menu.contains(e.target) && !toggle.contains(e.target)) {
toggle.setAttribute('aria-expanded', 'false');
menu.hidden = true;
}
});
Part 2: Smart Sidebars
The Context-Aware Sidebar Pattern
A sidebar that shows different content depending on the page type feels polished. Implement it with a single include that branches on layout:
<!-- _includes/sidebar.html -->
{% if page.layout == 'post' %}
{% include sidebar/post-sidebar.html %}
{% elsif page.layout == 'archive' %}
{% include sidebar/taxonomy-sidebar.html %}
{% elsif page.layout == 'theme' %}
{% include sidebar/theme-sidebar.html %}
{% else %}
{% include sidebar/default-sidebar.html %}
{% endif %}
Then in your layout:
<div class="page-wrapper">
<main class="page-content">{{ content }}</main>
<aside class="sidebar">{% include sidebar.html %}</aside>
</div>
Post Sidebar: Table of Contents + Related Posts
<!-- _includes/sidebar/post-sidebar.html -->
{% if page.toc %}
<div class="sidebar-widget">
<h3 class="sidebar-widget__title">On This Page</h3>
{{ content | toc_only }}
</div>
{% endif %}
<div class="sidebar-widget">
<h3 class="sidebar-widget__title">Related Posts</h3>
{% assign related = site.posts
| where_exp: "p", "p.url != page.url"
| where_exp: "p", "p.tags contains page.tags[0]"
| limit: 4 %}
{% if related.size == 0 %}
{% assign related = site.posts
| where_exp: "p", "p.url != page.url"
| limit: 4 %}
{% endif %}
<ul class="sidebar-post-list">
{% for post in related %}
<li>
<a href="{{ post.url }}">{{ post.title }}</a>
<time>{{ post.date | date: "%b %d" }}</time>
</li>
{% endfor %}
</ul>
</div>
Documentation Sidebar: Auto-Built from Collection
For documentation sites, generate the sidebar from a collection:
<!-- _includes/sidebar/docs-sidebar.html -->
<nav class="docs-nav" aria-label="Documentation">
{% assign sections = site.docs | group_by: "section" | sort: "name" %}
{% for section in sections %}
<div class="docs-nav__section">
<h4 class="docs-nav__heading">{{ section.name }}</h4>
<ul role="list">
{% assign section_pages = section.items | sort: "nav_order" %}
{% for doc in section_pages %}
<li>
<a href="{{ doc.url }}"
{% if page.url == doc.url %}
class="docs-nav__link--active" aria-current="page"
{% else %}
class="docs-nav__link"
{% endif %}>
{{ doc.title }}
</a>
</li>
{% endfor %}
</ul>
</div>
{% endfor %}
</nav>
Each doc in _docs/ has a section: and nav_order: front matter field:
---
title: Installation
section: Getting Started
nav_order: 1
---
The sidebar builds itself automatically as you add documentation pages.
Tag Cloud Sidebar
<!-- _includes/sidebar/tag-cloud.html -->
<div class="sidebar-widget">
<h3 class="sidebar-widget__title">Topics</h3>
<div class="tag-cloud">
{% assign sorted_tags = site.tags | sort %}
{% for tag in sorted_tags %}
{% assign count = tag[1].size %}
{% assign size_class = "tag--sm" %}
{% if count >= 5 %}{% assign size_class = "tag--md" %}{% endif %}
{% if count >= 10 %}{% assign size_class = "tag--lg" %}{% endif %}
<a href="/tag/{{ tag[0] | downcase | replace: ' ', '-' }}/"
class="tag {{ size_class }}"
title="{{ count }} posts">
{{ tag[0] }}
</a>
{% endfor %}
</div>
</div>
Sticky Sidebar
Keep the sidebar visible as the user scrolls through long content:
.sidebar {
@media (min-width: 1024px) {
position: sticky;
top: 1.5rem; // Distance from top of viewport
max-height: calc(100vh - 3rem);
overflow-y: auto;
scrollbar-width: thin;
}
}
This is pure CSS — no JavaScript needed. The sidebar scrolls independently when its content is taller than the viewport.
Putting It Together: Two-Column Layout
.page-wrapper {
display: grid;
grid-template-columns: 1fr;
gap: 2rem;
max-width: var(--container-width);
margin: 0 auto;
padding: 0 1rem;
@media (min-width: 1024px) {
grid-template-columns: 1fr 280px;
}
}
.page-content {
min-width: 0; // Prevents grid blowout
}
.sidebar {
@media (min-width: 1024px) {
position: sticky;
top: 1.5rem;
max-height: calc(100vh - 3rem);
overflow-y: auto;
}
}
min-width: 0 on the content column is critical — without it, wide content like code blocks can blow out the grid.
Well-designed navigation and sidebars make the difference between a site that feels like a polished product and one that feels like a template. Browse Jekyll themes on JekyllHub to see how the best themes handle navigation patterns.
<!DOCTYPE html>
Jekyll Theme Architecture: Best Practices for Clean & Scalable Code
How to structure a Jekyll theme for maintainability and scale — file organisation, Sass architecture, reusable includes, front matter conventions, and layout hierarchy.
Most Jekyll sites start as a quick setup and slowly become hard to maintain — styles scattered across files, layouts duplicating logic, includes tangled with page-specific code. This guide covers the structural decisions that keep a Jekyll theme clean as it grows.
The File Structure That Scales
A well-organised Jekyll theme separates concerns cleanly:
my-theme/
├── _layouts/
│ ├── default.html # Root wrapper — HTML shell only
│ ├── page.html # Static pages
│ ├── post.html # Blog posts
│ ├── home.html # Homepage
│ └── archive.html # Tag/category archive pages
│
├── _includes/
│ ├── head/
│ │ ├── meta.html # Core meta tags
│ │ ├── fonts.html # Font loading
│ │ └── analytics.html # Analytics (loaded conditionally)
│ ├── header.html
│ ├── footer.html
│ ├── nav.html
│ ├── post-card.html # Reusable post card component
│ ├── theme-card.html # Reusable theme card component
│ └── pagination.html
│
├── _sass/
│ ├── abstracts/
│ │ ├── _variables.scss # Design tokens
│ │ ├── _mixins.scss # Reusable mixins
│ │ └── _functions.scss # Sass functions
│ ├── base/
│ │ ├── _reset.scss # CSS reset
│ │ ├── _typography.scss
│ │ └── _base.scss # Element defaults
│ ├── components/
│ │ ├── _buttons.scss
│ │ ├── _cards.scss
│ │ ├── _badges.scss
│ │ └── _forms.scss
│ ├── layouts/
│ │ ├── _header.scss
│ │ ├── _footer.scss
│ │ ├── _nav.scss
│ │ ├── _homepage.scss
│ │ ├── _post.scss
│ │ └── _theme-detail.scss
│ └── main.scss # Import manifest only
│
├── assets/
│ ├── css/
│ │ └── main.scss # Entry point (front matter triggers Jekyll processing)
│ ├── js/
│ │ ├── main.js # Bundled JS
│ │ └── search.js # Optional — search functionality
│ └── images/
│
├── _data/
│ ├── navigation.yml # Nav items
│ └── settings.yml # Theme feature flags
│
└── _config.yml
Layout Hierarchy: Keep Nesting Shallow
Jekyll layouts nest — post.html wraps its content inside default.html. Keep this chain as short as possible:
default.html # HTML shell, head, body wrapper
└── page.html # Simple content wrapper
└── post.html # Post header + content + footer
└── home.html # Homepage sections
Avoid deep nesting like default → base → page → post. Each extra layer makes debugging harder and adds cognitive overhead.
Rule: If a layout only adds {{ content }} with no surrounding markup, it probably shouldn’t be a separate layout — merge it up.
The Default Layout: HTML Shell Only
_layouts/default.html should do one thing: provide the HTML skeleton. No design decisions, no conditional content:
<!DOCTYPE html>
<html lang="{{ page.lang | default: site.lang | default: 'en' }}"
data-theme="{{ site.theme_mode | default: 'light' }}">
<head>
{% include head/meta.html %}
{% include head/fonts.html %}
{% if site.analytics.google_id %}{% include head/analytics.html %}{% endif %}
<link rel="stylesheet" href="{{ '/assets/css/main.css' | relative_url }}">
</head>
<body class="page--{{ page.layout | default: 'default' }}">
{% include header.html %}
<main id="main-content" class="site-main">
{{ content }}
</main>
{% include footer.html %}
<script src="{{ '/assets/js/main.js' | relative_url }}" defer></script>
</body>
</html>
Notice class="page--{{ page.layout }}" — this adds a layout-specific class to <body>, letting you write targeted CSS like .page--home .hero without specificity fights.
Sass Architecture: The 7-1 Pattern (Simplified)
The 7-1 pattern organises Sass into 7 folders with 1 main file that imports them all. For Jekyll themes, a simplified 4-folder version works better:
// assets/css/main.scss
---
---
// 1. Abstracts — no output, just tools
@import "abstracts/variables";
@import "abstracts/mixins";
// 2. Base — element-level styles
@import "base/reset";
@import "base/typography";
@import "base/base";
// 3. Components — UI building blocks
@import "components/buttons";
@import "components/cards";
@import "components/badges";
@import "components/forms";
// 4. Layouts — page section styles
@import "layouts/header";
@import "layouts/footer";
@import "layouts/nav";
@import "layouts/homepage";
@import "layouts/post";
Rule: main.scss is a manifest only — never write actual styles there.
Design Tokens in Variables
Define all values as variables. Never hard-code colours, spacing, or font sizes in component files:
// _sass/abstracts/_variables.scss
// Colour palette — raw values
$color-blue-500: #3b82f6;
$color-blue-600: #2563eb;
$color-gray-50: #f9fafb;
$color-gray-900: #111827;
// Semantic tokens — map palette to purpose
$color-primary: $color-blue-600;
$color-text: $color-gray-900;
$color-background: #ffffff;
$color-border: #e5e7eb;
// Typography
$font-base: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
$font-mono: 'Fira Code', Consolas, monospace;
$font-size-base: 1rem;
$font-size-sm: 0.875rem;
$font-size-lg: 1.125rem;
$line-height-base: 1.7;
// Spacing scale
$space-1: 0.25rem;
$space-2: 0.5rem;
$space-3: 0.75rem;
$space-4: 1rem;
$space-6: 1.5rem;
$space-8: 2rem;
$space-12: 3rem;
$space-16: 4rem;
// Layout
$container-width: 1100px;
$content-width: 720px;
$sidebar-width: 280px;
$radius-sm: 4px;
$radius-md: 8px;
$radius-lg: 16px;
// Transitions
$transition-fast: 150ms ease;
$transition-base: 250ms ease;
When a designer asks you to “make the primary colour purple”, you change one line.
Reusable Includes with Parameters
Includes become powerful when they accept parameters. This prevents code duplication across layouts:
<!-- _includes/post-card.html -->
{% assign post = include.post %}
{% assign show_excerpt = include.show_excerpt | default: true %}
{% assign show_tags = include.show_tags | default: true %}
<article class="post-card">
{% if post.image %}
<a href="{{ post.url }}" class="post-card__image-link">
<img src="{{ post.image | relative_url }}"
alt="{{ post.title }}"
loading="lazy"
class="post-card__image">
</a>
{% endif %}
<div class="post-card__body">
<div class="post-card__meta">
<time datetime="{{ post.date | date_to_xmlschema }}">
{{ post.date | date: "%b %d, %Y" }}
</time>
{% if post.category %}
<span class="post-card__category">{{ post.category }}</span>
{% endif %}
</div>
<h2 class="post-card__title">
<a href="{{ post.url }}">{{ post.title }}</a>
</h2>
{% if show_excerpt %}
<p class="post-card__excerpt">
{{ post.description | default: post.excerpt | strip_html | truncatewords: 25 }}
</p>
{% endif %}
{% if show_tags and post.tags.size > 0 %}
<div class="post-card__tags">
{% for tag in post.tags limit: 3 %}
<a href="/tag/{{ tag | downcase }}/" class="tag">{{ tag }}</a>
{% endfor %}
</div>
{% endif %}
</div>
</article>
Usage in any layout:
{% include post-card.html post=post %}
{% include post-card.html post=post show_excerpt=false %}
{% include post-card.html post=post show_tags=false show_excerpt=true %}
One include, three variations, no duplication.
Front Matter Conventions
Consistent front matter across all content files makes templates simpler:
# Posts
---
layout: post
title: "" # Required — sentence case, include primary keyword
description: "" # Required — 150-160 chars, for meta description
date: YYYY-MM-DD # Required
author: # Optional — falls back to site.author
last_modified_at: YYYY-MM-DD # Optional — for SEO freshness
image: /assets/images/blog/filename.webp # Optional — OG + post header
category: "" # Single category string
featured: false # Controls homepage carousel
tags: [] # Array of lowercase strings
toc: false # Table of contents toggle
comments: true # Comments section toggle
---
Document these conventions in your theme’s README so contributors know what’s expected.
Feature Flags via Data Files
Instead of hardcoding feature toggles in layouts, use a data file:
# _data/settings.yml
features:
dark_mode: true
search: true
reading_time: true
copy_code: true
social_share: true
newsletter: false
comments: false
analytics:
google_id: ""
plausible_domain: ""
In your layouts:
{% if site.data.settings.features.dark_mode %}
{% include dark-mode-toggle.html %}
{% endif %}
{% if site.data.settings.features.comments and page.comments != false %}
{% include comments.html %}
{% endif %}
Users configure the theme by editing _data/settings.yml — not by hunting through layout files.
Avoiding the Most Common Architecture Mistakes
Putting styles in layouts — Never put <style> tags in layout files. All styles belong in _sass/.
God includes — An include that does 10 different things is hard to maintain. Split it into focused, single-purpose includes.
Magic numbers — padding: 37px with no explanation is a code smell. Use spacing variables and leave a comment if the value is non-obvious.
Overspecific selectors — .site-header nav ul li a:hover is fragile. .nav__link:hover is maintainable.
No mobile-first — Write your base styles for small screens, then use min-width media queries to enhance for larger screens. Retrofitting a desktop design for mobile is always harder.
Well-architected themes are easier to maintain, easier for users to customise, and faster to build on top of. Browse the best-structured open-source examples on JekyllHub — Minimal Mistakes and Chirpy are both worth studying for architecture ideas.
<!DOCTYPE html>
How to Build a Jekyll Theme from Scratch
A complete guide to building your own Jekyll theme — layouts, includes, Sass, front matter defaults, gem packaging, and what makes a theme production-ready.
Building a Jekyll theme from scratch is the fastest way to deeply understand Jekyll — and it’s more achievable than it sounds. This guide walks through building a complete, distributable theme, from the first file to a packaged gem.
What Makes a Jekyll Theme
A Jekyll theme is a set of files that define the appearance and structure of a Jekyll site:
_layouts/— page templates_includes/— reusable HTML fragments_sass/— stylesheetsassets/— static files (fonts, icons, JS)
When a user installs your theme, your files provide the defaults. Their site files override yours selectively.
Step 1: Scaffold the Theme
Use Jekyll’s built-in theme scaffold command:
jekyll new-theme my-theme-name
cd my-theme-name
This creates:
my-theme-name/
├── _includes/
├── _layouts/
│ ├── default.html
│ ├── page.html
│ └── post.html
├── _sass/
│ ├── my-theme-name/
│ │ ├── _base.scss
│ │ ├── _layout.scss
│ │ └── _syntax-highlighting.scss
│ └── my-theme-name.scss
├── assets/
│ └── main.scss
├── Gemspec
├── LICENSE.txt
└── README.md
Step 2: Design Your Layout System
Default Layout
_layouts/default.html is the outer wrapper for all pages:
<!DOCTYPE html>
<html lang="{{ page.lang | default: site.lang | default: 'en' }}">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{% if page.title %}{{ page.title }} | {% endif %}{{ site.title | escape }}</title>
{% seo %}
<link rel="stylesheet" href="{{ '/assets/main.css' | relative_url }}">
{% feed_meta %}
</head>
<body class="{% if page.layout %}layout--{{ page.layout }}{% endif %}">
{% include header.html %}
<main class="page-content" aria-label="Content">
<div class="container">
{{ content }}
</div>
</main>
{% include footer.html %}
<script src="{{ '/assets/js/main.js' | relative_url }}" defer></script>
</body>
</html>
Post Layout
_layouts/post.html wraps blog posts:
---
layout: default
---
<article class="post" itemscope itemtype="http://schema.org/BlogPosting">
<header class="post-header">
<h1 class="post-title" itemprop="name headline">{{ page.title | escape }}</h1>
<div class="post-meta">
<time class="dt-published" datetime="{{ page.date | date_to_xmlschema }}" itemprop="datePublished">
{{ page.date | date: "%B %-d, %Y" }}
</time>
{% if page.author %}
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
<span class="p-author h-card" itemprop="name">{{ page.author }}</span>
</span>
{% endif %}
{% if page.read_time %}
<span class="read-time">{{ content | number_of_words | divided_by: 200 | plus: 1 }} min read</span>
{% endif %}
</div>
{% if page.image %}
<div class="post-thumbnail">
<img src="{{ page.image | relative_url }}" alt="{{ page.title }}" loading="lazy">
</div>
{% endif %}
</header>
<div class="post-content e-content" itemprop="articleBody">
{{ content }}
</div>
{% if page.tags.size > 0 %}
<footer class="post-footer">
<div class="post-tags">
{% for tag in page.tags %}
<a href="/tag/{{ tag | downcase | replace: ' ', '-' }}/" class="tag">{{ tag }}</a>
{% endfor %}
</div>
</footer>
{% endif %}
</article>
Page Layout
_layouts/page.html for static pages:
---
layout: default
---
<article class="page">
<header class="page-header">
<h1 class="page-title">{{ page.title | escape }}</h1>
{% if page.description %}
<p class="page-description">{{ page.description }}</p>
{% endif %}
</header>
<div class="page-content">
{{ content }}
</div>
</article>
Step 3: Build the Includes
Header
_includes/header.html:
<header class="site-header">
<div class="container">
<a class="site-title" rel="author" href="{{ '/' | relative_url }}">
{{ site.title | escape }}
</a>
<nav class="site-nav" aria-label="Main navigation">
<button class="site-nav__toggle" aria-expanded="false" aria-controls="nav-menu">
<span class="sr-only">Menu</span>
<span class="hamburger"></span>
</button>
<ul class="site-nav__menu" id="nav-menu" role="list">
{% for item in site.data.navigation %}
<li>
<a href="{{ item.url | relative_url }}"
{% if page.url == item.url or page.url contains item.url and item.url != '/' %}
class="active" aria-current="page"
{% endif %}>
{{ item.title }}
</a>
</li>
{% endfor %}
</ul>
</nav>
</div>
</header>
Footer
_includes/footer.html:
<footer class="site-footer">
<div class="container">
<div class="site-footer__content">
<p class="site-footer__description">
{{ site.description | escape }}
</p>
{% if site.social %}
<ul class="social-links" role="list">
{% if site.social.twitter %}
<li><a href="https://twitter.com/{{ site.social.twitter }}" aria-label="Twitter">Twitter</a></li>
{% endif %}
{% if site.social.github %}
<li><a href="https://github.com/{{ site.social.github }}" aria-label="GitHub">GitHub</a></li>
{% endif %}
</ul>
{% endif %}
</div>
<p class="site-footer__copyright">
© {{ 'now' | date: "%Y" }} {{ site.title | escape }}.
Powered by <a href="https://jekyllrb.com">Jekyll</a>.
</p>
</div>
</footer>
Step 4: Write the Sass
Organise styles into logical partials under _sass/your-theme/:
_variables.scss — design tokens:
// Colours
$color-primary: #2563eb;
$color-text: #1f2937;
$color-text-muted: #6b7280;
$color-background: #ffffff;
$color-border: #e5e7eb;
$color-card: #f9fafb;
// Typography
$font-family-base: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
$font-family-mono: 'Fira Code', Consolas, 'Courier New', monospace;
$font-size-base: 1rem;
$line-height-base: 1.7;
// Spacing
$spacing-xs: 0.25rem;
$spacing-sm: 0.5rem;
$spacing-md: 1rem;
$spacing-lg: 2rem;
$spacing-xl: 4rem;
// Layout
$container-max-width: 1100px;
$content-max-width: 720px;
_base.scss — reset and base elements:
*, *::before, *::after {
box-sizing: border-box;
}
body {
font-family: $font-family-base;
font-size: $font-size-base;
line-height: $line-height-base;
color: $color-text;
background-color: $color-background;
-webkit-font-smoothing: antialiased;
}
a {
color: $color-primary;
text-decoration: none;
&:hover {
text-decoration: underline;
}
}
img {
max-width: 100%;
height: auto;
}
code {
font-family: $font-family-mono;
font-size: 0.9em;
background: $color-card;
padding: 0.15em 0.4em;
border-radius: 4px;
}
Step 5: Define Front Matter Defaults
In your theme’s _config.yml (or document in README for users to add):
# Recommended defaults for themes using this layout
defaults:
- scope:
path: ""
type: "posts"
values:
layout: "post"
author: ""
read_time: true
comments: true
share: true
- scope:
path: ""
type: "pages"
values:
layout: "page"
Step 6: Add Navigation Data
Create _data/navigation.yml with default navigation:
- title: Home
url: /
- title: Blog
url: /blog/
- title: About
url: /about/
Step 7: Package as a Gem
Edit the .gemspec file Jekyll created:
# my-theme-name.gemspec
Gem::Specification.new do |spec|
spec.name = "my-theme-name"
spec.version = "1.0.0"
spec.authors = ["Your Name"]
spec.email = ["your@email.com"]
spec.summary = "A clean, minimal Jekyll theme for blogs."
spec.homepage = "https://github.com/username/my-theme-name"
spec.license = "MIT"
spec.files = `git ls-files -z`.split("\x0").select do |f|
f.match(%r{^(assets|_data|_layouts|_includes|_sass|LICENSE|README)}i)
end
spec.add_runtime_dependency "jekyll", ">= 4.0", "< 5.0"
spec.add_runtime_dependency "jekyll-seo-tag", "~> 2.8"
spec.add_runtime_dependency "jekyll-feed", "~> 0.15"
end
Build the gem:
gem build my-theme-name.gemspec
Install locally to test:
gem install my-theme-name-1.0.0.gem
Step 8: What Makes a Theme Production-Ready
Before releasing or selling your theme, check these:
Responsive design — Test on mobile (360px), tablet (768px), and desktop (1440px).
Dark mode — Add CSS variables and a toggle. Expected in 2026.
Accessibility — Semantic HTML, ARIA labels on interactive elements, sufficient colour contrast (WCAG AA = 4.5:1 minimum).
SEO — Include jekyll-seo-tag. Document how to configure it.
Performance — Run PageSpeed Insights. Aim for 90+ on mobile.
Documentation — Write a clear README with installation, configuration, and customisation instructions. This is the most underrated part of a theme.
Demo site — A live demo is essential. No serious buyer evaluates a theme without seeing it live.
Publishing Your Theme
GitHub — Publish the source code as a public repository. Tag releases with semantic versions.
RubyGems — Run gem push my-theme-name-1.0.0.gem to list on rubygems.org.
Marketplaces — Submit to JekyllHub to reach Jekyll users actively looking for themes.
Building a theme from scratch gives you complete control over performance, accessibility, and design — and a deep understanding of how Jekyll works. Once you’ve built one, customising any other theme becomes trivial.
Browse existing Jekyll themes on JekyllHub to see what’s popular and understand what users are looking for before you build.
<!DOCTYPE html>
25 Best Jekyll Themes for Blogs and Portfolios in 2026
A curated list of the best Jekyll themes for blogs and portfolio sites in 2026 — with live demos, star counts, and who each theme is best for.
Looking for a Jekyll theme in 2026? There are thousands on GitHub, but most are outdated, poorly maintained, or just not that good. This list covers the 25 best — tested, actively maintained, and organised by use case.
Best Jekyll Blog Themes
1. Chirpy
Stars: 7,000+ · Best for: Developer blogs
Chirpy is one of the most polished blog themes available. It comes with dark/light mode, a sidebar with categories and tags, table of contents, reading time estimates, and strong SEO out of the box. The design is clean and modern.
2. Minimal Mistakes
Stars: 12,000+ · Best for: Everything
The most versatile Jekyll theme in existence. It supports blog posts, portfolio layouts, documentation, splash pages, and a dozen pre-built skins. The documentation is exceptional. A safe choice for almost any project.
View Minimal Mistakes on JekyllHub →
3. Beautiful Jekyll
Stars: 5,700+ · Best for: Quick personal blogs
Beautiful Jekyll is designed to get you publishing in minutes. Fork the repo, edit _config.yml, and your site is live. No local setup required. One of the easiest Jekyll themes to get started with.
View Beautiful Jekyll on JekyllHub →
4. So Simple
Stars: 1,800+ · Best for: Minimal personal sites
Clean, content-focused, and fast. So Simple strips away everything that’s not essential, leaving a beautiful reading experience. By the creator of Minimal Mistakes.
5. Type on Strap
Stars: 800+ · Best for: Medium-style reading experience
A theme focused on typography and readability. Clean headers, comfortable line length, and good colour contrast. Well-suited for long-form writing.
6. Huxpro
Stars: 5,400+ · Best for: Personal brands
A full-screen hero image layout with clean post typography. Originally created by a Alibaba engineer and widely adopted for personal sites and technical blogs.
7. Contrast
Stars: 900+ · Best for: Ultra-minimal design
Dark background, light content area, excellent readability. Contrast takes minimalism seriously — no images on the homepage, just clean post listings.
8. Cayman Blog
Stars: 500+ · Best for: Simple GitHub project blogs
Based on GitHub’s Cayman theme. Clean, lightweight, and great for project documentation blogs. Easy to deploy directly from GitHub.
Best Jekyll Portfolio Themes
9. Hacker Blog
Stars: 700+ · Best for: Developer / terminal aesthetic
A dark, terminal-inspired blog theme. Monospace fonts, green-on-dark colour scheme. Stands out from the crowd — perfect for developers who want something distinctive.
View Hacker Blog on JekyllHub →
10. al-folio
Stars: 11,000+ · Best for: Academic / research portfolios
The most popular academic Jekyll theme. Features publication lists, project showcases, a CV section, and a blog. Used by researchers and professors at universities worldwide.
11. Freelancer Theme (Jekyll port)
Stars: 2,000+ · Best for: Freelancer portfolios
A one-page portfolio with a project grid, skills section, and contact form. Based on Start Bootstrap’s Freelancer template, converted to Jekyll.
12. Creative Theme
Stars: 1,200+ · Best for: Agency / studio portfolios
Bold homepage with scroll animations, a full-screen hero, and a filterable portfolio grid. Suited for design studios and creative freelancers.
13. Researcher
Stars: 600+ · Best for: Academic researchers
Ultra-minimal single-page academic theme. Designed to showcase publications, education, and research interests without distractions.
View Researcher on JekyllHub →
Best Jekyll Documentation Themes
14. Just the Docs
Stars: 8,000+ · Best for: Product documentation
The best Jekyll documentation theme. Full-text search, nested sidebar navigation, callout blocks, and excellent accessibility. Used by thousands of open-source projects.
View Just the Docs on JekyllHub →
15. Docco
Best for: Code documentation with inline comments
Renders code and comments side by side in a two-column layout. Classic documentation style popularised by CoffeeScript docs.
16. Slate
Stars: 2,000+ · Best for: API documentation
Clean documentation with a dark left-hand navigation sidebar. Popular for REST API reference documentation.
Best Minimal Jekyll Themes
17. Minima
Best for: Absolute beginners
Jekyll’s official default theme. Not glamorous, but very clean and a great learning base. Every Jekyll installation starts with Minima.
18. Whiteglass
Stars: 400+ · Best for: Long-form writing
Inspired by Medium’s reading experience. Wide margins, large body text, excellent reading comfort. Great for writers.
19. Pixyll
Stars: 1,800+ · Best for: Photography and minimal portfolios
Designed to put images front and centre. Clean whitespace, big typography, and a focus on visual content.
20. Swiss
Best for: Type-focused minimalism
Based on the Swiss/International Typographic Style (think IKEA design language). Strong grid, clean typography, neutral palette.
Best Dark Jekyll Themes
21. Devlopr Jekyll
Stars: 2,500+ · Best for: Developer blogs with dark mode
Feature-rich developer blog theme with dark mode, reading time, newsletter signup, post categories, and Google Analytics. One of the most complete free themes available.
22. Klise
Stars: 1,300+ · Best for: Clean dark design
A dark, minimal blog theme with excellent typography. Auto dark/light mode based on system preference. Clean and fast.
23. Jasper2
Stars: 900+ · Best for: Magazine-style dark blogs
Inspired by Ghost’s Casper theme. Full-screen hero images, card-based post grid, and a polished magazine feel. Dark mode built in.
Best Jekyll Themes for Businesses
24. Agency Jekyll Theme
Stars: 1,000+ · Best for: Marketing agencies
Multi-section one-page theme with services, team, portfolio, and contact sections. Clean corporate design.
25. Massively
Stars: 700+ · Best for: Bold graphic design portfolios
Big typography, strong visual hierarchy, full-width background images. Makes a strong first impression. Ported from HTML5 UP.
How to Choose
For a personal blog: Start with Chirpy or Minimal Mistakes — both have excellent documentation and are actively maintained.
For a portfolio: al-folio (academic) or Freelancer (creative) depending on your field.
For documentation: Just the Docs, no contest.
For something distinctive: Hacker Blog or Massively — they stand out visually.
For the fastest start: Beautiful Jekyll — fork and go.
All themes listed here are available with live demos on JekyllHub. Filter by category, style, or features to find your perfect match.
<!DOCTYPE html>
Jekyll vs Hugo vs Eleventy: Which Static Site Generator in 2026?
An honest comparison of Jekyll, Hugo, and Eleventy — build speed, themes, ease of use, hosting, and which static site generator fits your project and skill level.
Jekyll, Hugo, and Eleventy are the three most popular static site generators in 2026. They all produce fast, secure static sites — but they make very different trade-offs. Here’s how to choose.
The Short Answer
- Jekyll — best for beginners, GitHub Pages users, and anyone who wants native hosting with zero setup
- Hugo — best for large sites (1,000+ pages) where build speed is critical
- Eleventy — best for developers who want full JavaScript control and maximum flexibility
Overview
| Jekyll | Hugo | Eleventy | |
|---|---|---|---|
| Language | Ruby | Go | JavaScript (Node.js) |
| First released | 2008 | 2013 | 2018 |
| Template language | Liquid | Go templates | Multiple (Nunjucks, Liquid, Handlebars, etc.) |
| GitHub stars | 48k | 74k | 17k |
| Build speed | Medium | Fastest | Fast |
| Theme ecosystem | Largest | Large | Small but growing |
| GitHub Pages native | Yes | No | No |
| Learning curve | Low | High | Medium |
Build Speed
This is Hugo’s biggest selling point:
| Site size | Jekyll | Hugo | Eleventy |
|---|---|---|---|
| 100 pages | ~5s | <1s | ~2s |
| 1,000 pages | ~60s | ~2s | ~10s |
| 10,000 pages | ~10min | ~10s | ~90s |
For personal blogs and small sites (under 300 pages), Jekyll’s speed is perfectly fine — a 10-second build is not a problem. For large documentation sites or content-heavy projects, Hugo’s speed advantage is significant.
Winner: Hugo for large sites; all are fine for small sites.
Theme and Design Ecosystem
Jekyll
Jekyll has the largest and most mature theme ecosystem. Thousands of free themes are available on GitHub, and curated marketplaces like JekyllHub offer free and premium themes with live demos.
The best free themes — Minimal Mistakes (27k stars), Chirpy (7k stars), Just the Docs (8k stars) — are actively maintained and production-proven.
Winner: Jekyll — most themes, best quality, easiest to find.
Hugo
Hugo has 400+ themes at themes.gohugo.io. Quality varies widely. Hugo themes can be harder to customise because Go templates are more complex than Jekyll’s Liquid.
Eleventy
Eleventy has fewer ready-made themes, but its ecosystem is growing. Many Eleventy starters include Tailwind CSS integration, making them more flexible from a design standpoint.
GitHub Pages Integration
Jekyll: Native support. Push to a GitHub repository and it builds and deploys automatically. No CI/CD pipeline, no configuration.
Hugo/Eleventy: Require a GitHub Actions workflow to build and deploy. More upfront setup, but works reliably once configured.
Winner: Jekyll — zero-configuration GitHub Pages deployment is a genuine advantage for beginners.
Template Language and Learning Curve
Jekyll — Liquid
Liquid is simple, readable, and well-documented. If you know HTML and CSS, you can write Jekyll templates in a day.
{% for post in site.posts limit: 5 %}
<h2><a href="{{ post.url }}">{{ post.title }}</a></h2>
<p>{{ post.excerpt | strip_html | truncatewords: 30 }}</p>
{% endfor %}
Hugo — Go Templates
Go templates are powerful but significantly harder to read. Simple things in Liquid require more syntax in Hugo:
{{ range first 5 .Site.RegularPages }}
<h2><a href="{{ .Permalink }}">{{ .Title }}</a></h2>
<p>{{ .Summary }}</p>
{{ end }}
The syntax works, but it’s unfamiliar unless you know Go.
Eleventy — Your Choice
Eleventy supports 10+ template languages: Nunjucks, Liquid, Handlebars, EJS, Pug, and more. You can even mix them in one project. For JavaScript developers, this is liberating. For beginners, the options are overwhelming.
Winner: Jekyll for beginners; Eleventy for experienced JS developers.
Plugin and Extension Ecosystem
Jekyll: A mature plugin ecosystem with well-maintained gems for SEO, pagination, archives, feeds, image processing, and more.
Hugo: Hugo is opinionated about doing more built-in (multilingual support, image processing, taxonomy) so fewer plugins are needed — but it’s less flexible when you need custom behaviour.
Eleventy: Very extensible via npm packages and custom JavaScript. The JS ecosystem is vast — anything not built in can be added with a few lines of JavaScript config.
Multilingual Support
| Jekyll | Hugo | Eleventy | |
|---|---|---|---|
| Built-in multilingual | No (plugins available) | Yes | No (plugin/config needed) |
If multilingual is a primary requirement, Hugo has the best built-in support.
Deployment Options
All three generate plain HTML files and deploy anywhere:
- GitHub Pages
- Netlify
- Vercel
- Cloudflare Pages
- Any static hosting
Jekyll gets a small bonus for GitHub Pages native support. Hugo gets a nod from Netlify (they maintain official Hugo support).
Who Should Use Each
Choose Jekyll if:
- You are new to static site generators
- You want native GitHub Pages deployment without any CI/CD setup
- You need a wide selection of polished themes
- Your site has under 500 pages
- You want the most beginner-friendly experience
Choose Hugo if:
- You are building a large documentation or content site (1,000+ pages)
- Build speed is a priority
- You need built-in multilingual support
- You’re comfortable with Go tooling and don’t mind a steeper learning curve
Choose Eleventy if:
- You are a JavaScript developer and prefer the npm ecosystem
- You need maximum flexibility in template languages and data pipelines
- You’re building a site that needs custom JavaScript-based transforms
- You want to use Tailwind CSS natively in your workflow
The Honest Bottom Line
For most developers starting a blog, portfolio, or documentation site, Jekyll remains the best starting point. GitHub Pages integration eliminates hosting complexity, the theme ecosystem is the deepest of the three, and Liquid templates are easy to learn.
Hugo wins at scale. Eleventy wins for JavaScript developers who want total control.
Don’t overthink the choice — all three produce excellent static sites. The theme and content matter more than the generator.
Ready to start? Browse Jekyll themes on JekyllHub →
References
<!DOCTYPE html>
How to Build a Portfolio Website with Jekyll
Build a professional Jekyll portfolio site — showcase projects, add a blog, set up contact forms, and deploy to GitHub Pages. Includes theme recommendations.
A Jekyll portfolio site is fast, free to host, and lives in a GitHub repository — which itself signals professionalism to employers and clients. This guide covers building a portfolio from the ground up.
Why Jekyll for a Portfolio?
- GitHub Pages hosting — free, reliable, with your custom domain
- Markdown writing — write project case studies in plain text
- No backend — nothing to hack, nothing to maintain, nothing to pay for
- Impressive to employers — a portfolio on GitHub shows you can use version control and static site tools
Choosing a Portfolio Theme
Rather than building from scratch, start with a theme. Here are the best Jekyll portfolio themes:
Minimal Mistakes — the most flexible option. Supports portfolio layouts, blog, and a huge range of customisation options. 27k+ GitHub stars.
Chirpy — beautiful and minimal, excellent for developer portfolios with a blog. Strong dark mode.
Huxpro — full-screen hero, clean typography. Popular for personal sites.
Browse all portfolio-ready themes at JekyllHub — filter by the Portfolio category.
Project Structure for a Portfolio
my-portfolio/
├── _config.yml
├── _layouts/
│ ├── default.html
│ ├── home.html
│ └── project.html
├── _includes/
│ ├── header.html
│ ├── footer.html
│ └── project-card.html
├── _projects/ # Collection of case studies
│ ├── my-web-app.md
│ ├── mobile-app.md
│ └── open-source-tool.md
├── _posts/ # Optional blog
├── _data/
│ ├── skills.yml # Your skills list
│ └── experience.yml # Work history
├── assets/
│ ├── images/projects/ # Screenshots and mockups
│ └── css/
├── index.md # Homepage
├── about.md # About page
└── contact.md # Contact page
Setting Up the Projects Collection
# _config.yml
collections:
projects:
output: true
permalink: /projects/:name/
sort_by: order
defaults:
- scope:
type: projects
values:
layout: project
A project file (_projects/my-web-app.md):
---
title: "Task Management App"
description: "A full-stack task manager built with React and Node.js. 2,000+ active users."
order: 1
year: 2025
tech:
- React
- Node.js
- PostgreSQL
- AWS
role: "Lead Developer"
image: /assets/images/projects/task-app-hero.jpg
screenshots:
- /assets/images/projects/task-app-1.jpg
- /assets/images/projects/task-app-2.jpg
github_url: https://github.com/username/task-app
live_url: https://taskapp.io
featured: true
---
## Overview
Task App is a collaborative task management tool I built to scratch my own itch — existing tools were either too complex or too simple.
## The Challenge
The main technical challenge was real-time synchronisation across multiple users without a WebSocket server...
## What I Built
- Real-time updates using server-sent events
- Drag-and-drop task ordering
- Team spaces with role-based permissions
- Mobile-first responsive design
## Results
- 2,000 active users within 3 months of launch
- 4.8/5 star rating on Product Hunt
The Project Layout
Create _layouts/project.html:
---
layout: default
---
<article class="project-detail">
<header class="project-header">
<h1>{{ page.title }}</h1>
<p class="project-description">{{ page.description }}</p>
<div class="project-meta">
{% if page.role %}<span><strong>Role:</strong> {{ page.role }}</span>{% endif %}
{% if page.year %}<span><strong>Year:</strong> {{ page.year }}</span>{% endif %}
</div>
<div class="project-tech">
{% for tech in page.tech %}
<span class="tech-badge">{{ tech }}</span>
{% endfor %}
</div>
<div class="project-links">
{% if page.live_url %}
<a href="{{ page.live_url }}" class="btn btn--primary" target="_blank">
View Live →
</a>
{% endif %}
{% if page.github_url %}
<a href="{{ page.github_url }}" class="btn btn--secondary" target="_blank">
GitHub →
</a>
{% endif %}
</div>
</header>
{% if page.image %}
<img src="{{ page.image | relative_url }}" alt="{{ page.title }}" class="project-hero-image">
{% endif %}
<div class="project-content">
{{ content }}
</div>
{% if page.screenshots.size > 0 %}
<div class="project-screenshots">
{% for screenshot in page.screenshots %}
<img src="{{ screenshot | relative_url }}" alt="{{ page.title }} screenshot" loading="lazy">
{% endfor %}
</div>
{% endif %}
</article>
The Homepage
<!-- _layouts/home.html -->
---
layout: default
---
<!-- Hero Section -->
<section class="hero">
<div class="container">
<h1>{{ site.author.name }}</h1>
<p class="hero-tagline">{{ site.author.bio }}</p>
<div class="hero-cta">
<a href="#projects" class="btn btn--primary">View Projects</a>
<a href="/contact/" class="btn btn--secondary">Get in Touch</a>
</div>
</div>
</section>
<!-- Featured Projects -->
<section class="projects" id="projects">
<div class="container">
<h2>Projects</h2>
<div class="projects-grid">
{% assign featured = site.projects | where: "featured", true | sort: "order" %}
{% for project in featured %}
{% include project-card.html project=project %}
{% endfor %}
</div>
<a href="/projects/" class="view-all">View all projects →</a>
</div>
</section>
<!-- Skills -->
<section class="skills">
<div class="container">
<h2>Skills</h2>
<div class="skills-grid">
{% for skill_group in site.data.skills %}
<div class="skill-group">
<h3>{{ skill_group.category }}</h3>
<ul>
{% for skill in skill_group.items %}
<li>{{ skill }}</li>
{% endfor %}
</ul>
</div>
{% endfor %}
</div>
</div>
</section>
{{ content }}
Skills Data File
Create _data/skills.yml:
- category: Frontend
items:
- HTML/CSS
- JavaScript
- React
- Vue.js
- Tailwind CSS
- category: Backend
items:
- Node.js
- Python
- Ruby on Rails
- PostgreSQL
- Redis
- category: Tools
items:
- Git
- Docker
- AWS
- Jekyll
- Figma
Adding a Contact Form
Jekyll is static, so you need a form service for contact forms. Formspree is the most popular — free for basic use, no backend required.
<!-- contact.md -->
---
layout: page
title: Contact
---
<form action="https://formspree.io/f/YOUR_FORM_ID" method="POST" class="contact-form">
<div class="form-group">
<label for="name">Name</label>
<input type="text" id="name" name="name" required>
</div>
<div class="form-group">
<label for="email">Email</label>
<input type="email" id="email" name="email" required>
</div>
<div class="form-group">
<label for="message">Message</label>
<textarea id="message" name="message" rows="6" required></textarea>
</div>
<button type="submit" class="btn btn--primary">Send Message</button>
</form>
Sign up at Formspree, create a form, and use the form ID in the action URL. Submissions are emailed to you.
Deploying to GitHub Pages
git init
git add .
git commit -m "Initial portfolio"
git remote add origin https://github.com/username/username.github.io
git push -u origin main
Go to repository Settings → Pages and enable GitHub Pages. Your portfolio is live at https://username.github.io.
For a custom domain, add CNAME with your domain and update your DNS.
Ready to find the right design? Browse Jekyll portfolio themes on JekyllHub with live demos to see them in action before you start.
<!DOCTYPE html>
How to Convert an HTML Template to a Jekyll Theme
A step-by-step guide to converting a static HTML template into a reusable Jekyll theme — with layouts, includes, front matter, and Sass integration.
You have an HTML template you like — clean design, good structure — but you want to run it as a Jekyll site so you can write in Markdown and deploy to GitHub Pages. Converting it is simpler than it sounds. This guide walks through the full process.
Step 1: Understand Jekyll’s File Structure
Before converting, know what Jekyll expects:
my-jekyll-theme/
├── _config.yml # Site configuration
├── _layouts/ # Page templates (wraps content)
├── _includes/ # Reusable HTML fragments
├── _sass/ # Sass partials
├── assets/
│ ├── css/ # Compiled CSS (or main.scss)
│ ├── js/
│ └── images/
├── _posts/ # Blog posts (dated Markdown files)
├── _pages/ # Static pages (optional)
└── index.md # Homepage (or index.html)
Step 2: Analyse Your HTML Template
Look at your HTML template and identify:
- The repeated wrapper — the
<html>,<head>,<header>,<footer>that appears on every page → becomes_layouts/default.html - Page-specific content — the main
<main>content area → becomes{{ content }}in the layout - Repeated components — navigation, sidebar, footer → become includes
- CSS files → move to
_sass/and convert to Sass (or keep as plain CSS inassets/css/)
Step 3: Create the Default Layout
Take your index.html and extract everything except the page-specific content. This becomes _layouts/default.html:
Before (index.html):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>My Site</title>
<link rel="stylesheet" href="assets/css/style.css">
</head>
<body>
<nav>
<a href="/">Home</a>
<a href="/about.html">About</a>
<a href="/blog.html">Blog</a>
</nav>
<main>
<h1>Welcome to My Site</h1>
<p>This is the homepage content...</p>
</main>
<footer>
<p>© 2026 My Site</p>
</footer>
<script src="assets/js/main.js"></script>
</body>
</html>
After (_layouts/default.html):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{% if page.title %}{{ page.title }} | {% endif %}{{ site.title }}</title>
<meta name="description" content="{{ page.description | default: site.description }}">
{% seo %}
<link rel="stylesheet" href="{{ '/assets/css/main.css' | relative_url }}">
</head>
<body>
{% include header.html %}
<main class="main-content">
{{ content }}
</main>
{% include footer.html %}
<script src="{{ '/assets/js/main.js' | relative_url }}" defer></script>
</body>
</html>
Key changes:
- Hard-coded title →
{{ page.title }} | {{ site.title }} - Hard-coded description →
{{ page.description | default: site.description }} - Asset paths →
relative_urlfilter for correct paths on project sites - Nav and footer → extracted to includes
- Added
{% seo %}for SEO tags
Step 4: Create Includes
Extract the navigation into _includes/header.html:
<header class="site-header">
<div class="container">
<a href="{{ '/' | relative_url }}" class="site-logo">
{{ site.title }}
</a>
<nav class="site-nav">
<a href="{{ '/' | relative_url }}"
{% if page.url == '/' %}class="active"{% endif %}>Home</a>
<a href="{{ '/about/' | relative_url }}"
{% if page.url contains '/about' %}class="active"{% endif %}>About</a>
<a href="{{ '/blog/' | relative_url }}"
{% if page.url contains '/blog' %}class="active"{% endif %}>Blog</a>
</nav>
</div>
</header>
Extract the footer into _includes/footer.html:
<footer class="site-footer">
<div class="container">
<p>© {{ 'now' | date: "%Y" }} {{ site.title }}.
Built with <a href="https://jekyllrb.com">Jekyll</a>.</p>
</div>
</footer>
Step 5: Convert CSS to Sass
Move your CSS to _sass/ and create a main entry point at assets/css/main.scss:
---
---
// assets/css/main.scss
// Front matter (two triple-dashes) tells Jekyll to process this file
@import "variables";
@import "base";
@import "layout";
@import "components";
@import "typography";
Split your CSS into logical partials in _sass/:
_variables.scss— colours, fonts, spacing variables_base.scss— reset and base element styles_layout.scss— grid, container, page structure_components.scss— buttons, cards, forms, tags_typography.scss— headings, body text, links
Add to _config.yml:
sass:
sass_dir: _sass
style: compressed
Step 6: Create the Homepage
Create index.md (or index.html):
---
layout: home
title: Home
---
Create _layouts/home.html for the homepage-specific content:
---
layout: default
---
<section class="hero">
<h1>{{ page.hero_title | default: site.title }}</h1>
<p>{{ page.hero_subtitle | default: site.description }}</p>
<a href="{{ page.hero_cta_url | default: '/themes/' }}" class="btn">
{{ page.hero_cta_text | default: "Browse Themes" }}
</a>
</section>
{{ content }}
{% if site.posts.size > 0 %}
<section class="recent-posts">
<h2>Recent Posts</h2>
{% for post in site.posts limit: 3 %}
<article class="post-card">
<a href="{{ post.url }}"><h3>{{ post.title }}</h3></a>
<time>{{ post.date | date: "%B %d, %Y" }}</time>
</article>
{% endfor %}
</section>
{% endif %}
Step 7: Create the Post Layout
For blog posts, create _layouts/post.html:
---
layout: default
---
<article class="post">
<header class="post-header">
<h1>{{ page.title }}</h1>
<div class="post-meta">
<time datetime="{{ page.date | date_to_xmlschema }}">
{{ page.date | date: "%B %d, %Y" }}
</time>
{% if page.author %}
<span class="post-author">by {{ page.author }}</span>
{% endif %}
</div>
{% if page.image %}
<img src="{{ page.image | relative_url }}" alt="{{ page.title }}" class="post-image">
{% endif %}
</header>
<div class="post-content">
{{ content }}
</div>
<footer class="post-footer">
{% if page.tags.size > 0 %}
<div class="post-tags">
{% for tag in page.tags %}
<a href="/tag/{{ tag | downcase }}/" class="tag">{{ tag }}</a>
{% endfor %}
</div>
{% endif %}
</footer>
</article>
Step 8: Update Asset Paths
All asset paths in your templates need to use Jekyll’s relative_url or absolute_url filters:
<!-- Before -->
<img src="assets/images/logo.png" alt="Logo">
<script src="assets/js/app.js"></script>
<!-- After -->
<img src="{{ '/assets/images/logo.png' | relative_url }}" alt="Logo">
<script src="{{ '/assets/js/app.js' | relative_url }}" defer></script>
This ensures paths work correctly on both root-level sites (/) and project sites (/my-project/).
Step 9: Set Up _config.yml
title: "My Site"
description: "A description of my Jekyll site."
url: "https://yourdomain.com"
baseurl: ""
author: "Your Name"
# Build settings
markdown: kramdown
highlighter: rouge
# Plugins
plugins:
- jekyll-seo-tag
- jekyll-sitemap
# Sass
sass:
style: compressed
Step 10: Test Locally
bundle exec jekyll serve --livereload
Open http://localhost:4000 and check:
- Layout renders correctly on all page types
- CSS is loading (check browser dev tools Network tab)
- Images load with correct paths
- Navigation links work
- Posts render with correct front matter
Once your conversion is complete, you have a fully functional Jekyll theme you can reuse across multiple sites — or share it on a marketplace like JekyllHub.
<!DOCTYPE html>
How to Auto-Generate Tag and Category Pages in Jekyll
Automatically create archive pages for every tag and category in your Jekyll blog using jekyll-archives — with custom layouts and SEO-friendly URLs.
If you click a tag on most Jekyll blogs, you get a 404. That’s because Jekyll doesn’t generate tag or category pages by default. The jekyll-archives plugin fixes this — here’s how to set it up.
The Problem: Links That Go Nowhere
When you add tags to posts:
tags:
- jekyll
- tutorial
Jekyll creates page.tags with those values, so you can display them in your theme. But it doesn’t automatically create a /tag/jekyll/ page — when a reader clicks the tag, they hit a 404.
The same applies to categories. The jekyll-archives plugin generates these pages automatically.
Installing jekyll-archives
# Gemfile
gem "jekyll-archives"
# _config.yml
plugins:
- jekyll-archives
Run bundle install.
GitHub Pages note: jekyll-archives is not on the GitHub Pages allowed list. Use GitHub Actions for your build to use it.
Configuration
# _config.yml
jekyll-archives:
enabled:
- categories
- tags
- year # optional — /2026/ archive pages
- month # optional — /2026/06/ archive pages
layouts:
category: archive-taxonomy
tag: archive-taxonomy
year: archive-year
month: archive-month
permalinks:
category: /category/:name/
tag: /tag/:name/
year: /:year/
month: /:year/:month/
With this configuration, Jekyll generates:
/tag/jekyll/— all posts tagged “jekyll”/tag/tutorial/— all posts tagged “tutorial”/category/blog/— all posts in “Blog” category- etc.
Creating the Archive Layout
Create _layouts/archive-taxonomy.html:
---
layout: default
---
<div class="archive-header">
<h1>
{% if page.type == "tag" %}
Posts tagged "{{ page.title }}"
{% elsif page.type == "category" %}
{{ page.title }}
{% endif %}
</h1>
<p class="archive-count">{{ page.posts | size }} posts</p>
</div>
<div class="post-list">
{% for post in page.posts %}
<article class="post-card">
<time datetime="{{ post.date | date_to_xmlschema }}">
{{ post.date | date: "%B %d, %Y" }}
</time>
<h2><a href="{{ post.url }}">{{ post.title }}</a></h2>
{% if post.description %}
<p>{{ post.description }}</p>
{% else %}
<p>{{ post.excerpt | strip_html | truncatewords: 30 }}</p>
{% endif %}
<div class="post-tags">
{% for tag in post.tags %}
<a href="{{ site.jekyll-archives.permalinks.tag | replace: ':name', tag | default: '/tag/' | append: tag | append: '/' }}">
{{ tag }}
</a>
{% endfor %}
</div>
</article>
{% endfor %}
</div>
Displaying Tags and Categories in Post Templates
In your _layouts/post.html, add tag links:
{% if page.tags.size > 0 %}
<div class="post-tags">
<span>Tags:</span>
{% for tag in page.tags %}
<a href="/tag/{{ tag | downcase | replace: ' ', '-' }}/" class="tag">{{ tag }}</a>
{% endfor %}
</div>
{% endif %}
{% if page.categories.size > 0 %}
<div class="post-categories">
<span>Categories:</span>
{% for category in page.categories %}
<a href="/category/{{ category | downcase | replace: ' ', '-' }}/" class="category-badge">
{{ category }}
</a>
{% endfor %}
</div>
{% endif %}
A Tag Cloud for Your Sidebar
Display all tags with a size proportional to post count:
{% assign max_count = 0 %}
{% for tag in site.tags %}
{% if tag[1].size > max_count %}
{% assign max_count = tag[1].size %}
{% endif %}
{% endfor %}
<div class="tag-cloud">
{% for tag in site.tags %}
{% assign weight = tag[1].size | times: 100 | divided_by: max_count %}
<a href="/tag/{{ tag[0] | downcase | replace: ' ', '-' }}/"
class="tag"
style="font-size: {{ weight | divided_by: 50 | plus: 0.8 }}em">
{{ tag[0] }} ({{ tag[1].size }})
</a>
{% endfor %}
</div>
SEO for Tag and Category Pages
Without care, tag/category pages can hurt your SEO by creating thin duplicate content.
Add descriptions to important category pages:
You can’t add front matter to dynamically-generated archive pages, but you can hardcode descriptions in the layout using a data file.
Create _data/taxonomy_descriptions.yml:
categories:
Tutorial: "Step-by-step guides for building and customising Jekyll sites."
SEO: "SEO tips and techniques for Jekyll and static sites."
tags:
jekyll: "All posts about Jekyll — the static site generator."
"github pages": "Guides for deploying Jekyll to GitHub Pages."
In your archive-taxonomy.html layout:
{% if page.type == "category" %}
{% assign desc = site.data.taxonomy_descriptions.categories[page.title] %}
{% elsif page.type == "tag" %}
{% assign desc = site.data.taxonomy_descriptions.tags[page.title] %}
{% endif %}
{% if desc %}
<p class="archive-description">{{ desc }}</p>
{% endif %}
Noindex small tag pages:
Tags with only 1–2 posts may not be worth indexing. Add conditional noindex:
{% if page.posts.size < 3 %}
<meta name="robots" content="noindex, follow">
{% endif %}
Without the Plugin (Manual Approach)
If you can’t use jekyll-archives (e.g. you’re restricted to GitHub Pages without Actions), you can create tag pages manually:
Create tag/jekyll.md:
---
layout: tag-page
title: jekyll
permalink: /tag/jekyll/
---
Create _layouts/tag-page.html:
---
layout: default
---
<h1>Posts tagged "{{ page.title }}"</h1>
{% assign tagged_posts = site.posts | where_exp: "post", "post.tags contains page.title" %}
{% for post in tagged_posts %}
<a href="{{ post.url }}">{{ post.title }}</a>
{% endfor %}
This works but requires a separate file for every tag. For sites with many tags, use the plugin.
Well-structured tag and category pages help users navigate your site and improve internal linking for SEO. Browse JekyllHub themes that include built-in archive page support.
<!DOCTYPE html>
How to Add Schema Markup to Your Jekyll Site
Add JSON-LD structured data to your Jekyll site — Article, BreadcrumbList, FAQPage, and WebSite schemas — to improve search appearance and rich snippets.
Schema markup tells search engines what your content is about — not just the words, but the type of content. It can earn your site rich snippets in Google’s results: star ratings, FAQ dropdowns, breadcrumbs, and sitelinks. This guide covers the schemas most relevant to Jekyll sites.
What Is Schema Markup?
Schema markup (structured data) is machine-readable metadata you add to your HTML. Google reads it to better understand your content and may display enhanced results (“rich snippets”) for it.
For Jekyll sites, the most useful schemas are:
- Article — for blog posts
- WebSite — sitewide search box in Google results
- BreadcrumbList — breadcrumb navigation in results
- FAQPage — accordion FAQ in results
- Person/Organization — about/author pages
The Right Format: JSON-LD
There are three formats for structured data: Microdata, RDFa, and JSON-LD. Always use JSON-LD — Google recommends it and it’s the easiest to add without touching your content markup.
Article Schema for Blog Posts
Add this to your _layouts/post.html inside <head> or before </body>:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": {{ page.title | jsonify }},
"description": {{ page.description | default: page.excerpt | strip_html | truncatewords: 30 | jsonify }},
"datePublished": "{{ page.date | date_to_xmlschema }}",
"dateModified": "{{ page.last_modified_at | default: page.date | date_to_xmlschema }}",
"author": {
"@type": "Person",
"name": {{ page.author | default: site.author | jsonify }},
"url": {{ site.url | jsonify }}
},
"publisher": {
"@type": "Organization",
"name": {{ site.title | jsonify }},
"logo": {
"@type": "ImageObject",
"url": "{{ site.url }}/assets/images/logo.png"
}
},
{% if page.image %}
"image": {
"@type": "ImageObject",
"url": "{{ site.url }}{{ page.image }}"
},
{% endif %}
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "{{ page.url | absolute_url }}"
}
}
</script>
WebSite Schema with Sitelinks Search Box
Add this to your _layouts/default.html to enable the sitelinks search box in Google results:
{% if page.url == '/' %}
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebSite",
"name": {{ site.title | jsonify }},
"url": {{ site.url | jsonify }},
"description": {{ site.description | jsonify }},
"potentialAction": {
"@type": "SearchAction",
"target": {
"@type": "EntryPoint",
"urlTemplate": "{{ site.url }}/search/?q={search_term_string}"
},
"query-input": "required name=search_term_string"
}
}
</script>
{% endif %}
BreadcrumbList Schema
Breadcrumbs in Google results look like: JekyllHub > Tutorials > How to Install a Jekyll Theme
For posts:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": {{ site.url | jsonify }}
},
{
"@type": "ListItem",
"position": 2,
"name": {{ page.category | jsonify }},
"item": "{{ site.url }}/category/{{ page.category | downcase | replace: ' ', '-' }}/"
},
{
"@type": "ListItem",
"position": 3,
"name": {{ page.title | jsonify }},
"item": {{ page.url | absolute_url | jsonify }}
}
]
}
</script>
FAQPage Schema
If you have a page with questions and answers (like a FAQ page), this schema can earn accordion dropdowns in Google results — prime real estate.
{% if page.layout == 'faq' %}
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{% for faq in page.faqs %}
{
"@type": "Question",
"name": {{ faq.question | jsonify }},
"acceptedAnswer": {
"@type": "Answer",
"text": {{ faq.answer | jsonify }}
}
}{% unless forloop.last %},{% endunless %}
{% endfor %}
]
}
</script>
{% endif %}
In your FAQ page front matter:
---
layout: faq
title: Frequently Asked Questions
faqs:
- question: "How do I install a Jekyll theme?"
answer: "Download the theme files, add them to your Jekyll project, update your Gemfile if it's a gem-based theme, and run bundle install."
- question: "Are Jekyll themes free?"
answer: "Many Jekyll themes are free and open-source. Premium themes are also available with additional features and support."
---
Person Schema for Author Pages
{% if page.layout == 'author' %}
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Person",
"name": {{ page.name | jsonify }},
"description": {{ page.bio | jsonify }},
"url": {{ page.url | absolute_url | jsonify }},
{% if page.avatar %}
"image": "{{ site.url }}{{ page.avatar }}",
{% endif %}
{% if page.twitter %}
"sameAs": [
"https://twitter.com/{{ page.twitter }}"
],
{% endif %}
"knowsAbout": ["Jekyll", "Static Sites", "Web Development"]
}
</script>
{% endif %}
Software Schema for Theme Pages
For a theme marketplace like JekyllHub, the SoftwareApplication schema is relevant:
{% if page.layout == 'theme' %}
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "SoftwareApplication",
"name": {{ page.title | jsonify }},
"description": {{ page.description | jsonify }},
"applicationCategory": "WebApplication",
"operatingSystem": "Any",
"offers": {
"@type": "Offer",
"price": "{{ page.price | default: '0' }}",
"priceCurrency": "USD"
},
{% if page.stars %}
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.5",
"reviewCount": {{ page.stars | jsonify }}
},
{% endif %}
"url": {{ page.url | absolute_url | jsonify }}
}
</script>
{% endif %}
Testing Your Structured Data
- Google Rich Results Test — search.google.com/test/rich-results — tests a URL or code snippet and shows which rich results are eligible
- Schema Markup Validator — validator.schema.org — validates syntax
- Google Search Console → Enhancements — shows any structured data errors across your whole site
Common Mistakes
Invalid dates — Use date_to_xmlschema in Liquid to generate the correct ISO 8601 format: 2026-06-25T00:00:00+00:00.
Mismatched content — Schema values must match the visible page content. Don’t claim a rating if you don’t show ratings on the page — Google will ignore it.
Missing required fields — Every schema type has required fields. Use the Rich Results Test to catch them.
Too much schema — Only add schema for content that genuinely matches the type. Don’t add FAQPage schema to a regular post.
With well-implemented schema markup, your Jekyll site’s search results can include breadcrumbs, FAQs, and article bylines — making your listings more clickable than plain blue links.
Looking for a Jekyll theme that makes SEO easy? Browse JekyllHub for themes with jekyll-seo-tag built in.
<!DOCTYPE html>
How to Make Your Jekyll Site Load Under 1 Second
Practical techniques to optimise Jekyll site performance — image compression, CSS/JS minification, lazy loading, caching headers, and Core Web Vitals improvements.
Jekyll sites are inherently fast — there’s no PHP, no database, no server-side rendering. But “fast” isn’t automatic. Poor image handling, unminified CSS, and render-blocking scripts can slow even a static site to a crawl. This guide covers practical techniques to get your Jekyll site loading in under a second.
Measure First
Before optimising, measure your current performance so you know what actually needs fixing.
Tools:
- PageSpeed Insights — Google’s official tool, shows Core Web Vitals scores
- GTmetrix — detailed waterfall charts showing exactly what’s slow
- WebPageTest — advanced testing from multiple locations
Run your homepage and a typical post through PageSpeed Insights. The report will highlight your biggest opportunities.
1. Choose a Fast Hosting Platform
The hosting provider has the biggest impact on time-to-first-byte (TTFB).
| Platform | Free Plan | CDN | TTFB |
|---|---|---|---|
| Cloudflare Pages | Yes | Global (300+ PoPs) | Excellent |
| Netlify | Yes | Global | Very good |
| GitHub Pages | Yes | Limited | Good |
| Vercel | Yes | Global | Very good |
For the fastest possible Jekyll hosting, use Cloudflare Pages. It has the most distributed CDN, meaning files are served from the closest location to each user worldwide.
2. Optimise Images (Biggest Win)
Images are the #1 cause of slow pages. A single unoptimised photo can be 3–5MB — more than all your HTML, CSS, and JS combined.
Convert to WebP
WebP images are 25–35% smaller than JPEG at the same quality.
# Convert a single image
cwebp -q 85 photo.jpg -o photo.webp
# Batch convert all JPEGs
for f in assets/images/*.jpg; do
cwebp -q 85 "$f" -o "${f%.jpg}.webp"
done
Serve WebP with a JPEG fallback:
<picture>
<source srcset="{{ image | replace: '.jpg', '.webp' }}" type="image/webp">
<img src="{{ image }}" alt="{{ alt }}" loading="lazy">
</picture>
Lazy Load Images
Add loading="lazy" to all images that are not in the initial viewport:
<img src="{{ post.image }}" alt="{{ post.title }}" loading="lazy" width="800" height="450">
Always include width and height to prevent Cumulative Layout Shift (CLS).
Responsive Images
Serve appropriately-sized images for each screen size:
<img
srcset="/assets/images/hero-400.webp 400w,
/assets/images/hero-800.webp 800w,
/assets/images/hero-1200.webp 1200w"
sizes="(max-width: 600px) 400px,
(max-width: 1000px) 800px,
1200px"
src="/assets/images/hero-800.webp"
alt="Hero image"
loading="lazy">
The jekyll-picture-tag plugin automates this.
3. Minify CSS and JavaScript
Minify Sass
Jekyll compiles Sass automatically. Set it to compressed output:
# _config.yml
sass:
style: compressed
sourcemap: never
This removes whitespace and comments from all CSS. Typically reduces CSS size by 20–30%.
Minify HTML
Add the jekyll-minifier plugin:
gem "jekyll-minifier"
# _config.yml
jekyll-minifier:
compress_javascript: true
compress_css: false # Already handled by Sass
remove_comments: true
remove_intertag_spaces: true
Defer JavaScript
Any script that doesn’t need to run before the page renders should be deferred:
<!-- In your layout's </body> or with defer -->
<script src="/assets/js/main.js" defer></script>
Never block rendering with scripts in <head> unless absolutely necessary.
4. Optimise Font Loading
Google Fonts are a common performance culprit. Each font family adds an extra DNS lookup and CSS request.
Self-Host Fonts
Download fonts and serve them from your own server:
- Download fonts from Google Fonts Helper
- Place in
assets/fonts/ - Define with
@font-facein your CSS
@font-face {
font-family: 'Inter';
src: url('/assets/fonts/inter-v13-latin-regular.woff2') format('woff2');
font-display: swap;
font-weight: 400;
}
Preload Critical Fonts
<link rel="preload" href="/assets/fonts/inter-regular.woff2"
as="font" type="font/woff2" crossorigin>
Use font-display: swap
This renders text in a fallback font while the custom font loads, preventing invisible text (FOIT):
@font-face {
font-display: swap; // Always include this
}
5. Reduce Render-Blocking Resources
Inline Critical CSS
For the fastest possible First Contentful Paint, inline the CSS needed to render above-the-fold content:
<!-- In your <head> -->
<style>
/* Critical CSS — only what's needed to render the visible part of the page */
body { margin: 0; font-family: sans-serif; }
.header { background: #fff; padding: 1rem 2rem; }
/* etc. */
</style>
<!-- Load the rest asynchronously -->
<link rel="stylesheet" href="/assets/css/main.css" media="print" onload="this.media='all'">
Tools like Critical can extract critical CSS automatically.
6. Set Caching Headers
Static files don’t change — tell browsers to cache them aggressively.
On Netlify (netlify.toml):
[[headers]]
for = "/assets/*"
[headers.values]
Cache-Control = "public, max-age=31536000, immutable"
[[headers]]
for = "/*.html"
[headers.values]
Cache-Control = "public, max-age=0, must-revalidate"
On Cloudflare Pages, caching is configured automatically — static assets get long cache lifetimes, HTML files are always fresh.
7. Enable Compression
All major hosts (Cloudflare, Netlify, Vercel) compress responses with Brotli or gzip automatically. If self-hosting with Nginx:
gzip on;
gzip_types text/html text/css application/javascript image/svg+xml;
brotli on;
brotli_types text/html text/css application/javascript image/svg+xml;
Compression reduces HTML/CSS/JS transfer size by 60–80%.
Core Web Vitals Targets
| Metric | Target | Common Cause of Failure |
|---|---|---|
| LCP (load) | < 2.5s | Unoptimised hero image |
| INP (interactivity) | < 200ms | Heavy JavaScript |
| CLS (stability) | < 0.1 | Images without dimensions, late-loading fonts |
With a Jekyll static site on Cloudflare Pages, hitting green on all three is achievable with the optimisations above.
Looking for a fast, well-optimised Jekyll theme? All themes on JekyllHub are tested for performance — browse the collection and filter by your use case.
<!DOCTYPE html>
How to Add Pagination to Your Jekyll Blog
Set up pagination in Jekyll — using jekyll-paginate-v2 to split posts across multiple pages, with page numbers, prev/next links, and category pagination.
By default, Jekyll lists all your posts on a single page. Once you have 20+ posts, that page becomes slow and hard to navigate. Pagination splits posts across multiple pages with numbered links — this guide shows you how to set it up properly.
Which Pagination Plugin to Use
Jekyll has two pagination plugins:
jekyll-paginate — the original, simple, but limited. Only works on index.html, only paginates posts. Officially deprecated but still available.
jekyll-paginate-v2 — the modern replacement. Works on any page, paginates posts, collections, or filtered sets. This is what you should use.
Setting Up jekyll-paginate-v2
Step 1: Install
# Gemfile
gem "jekyll-paginate-v2"
# _config.yml
plugins:
- jekyll-paginate-v2
pagination:
enabled: true
per_page: 10
permalink: '/page/:num/'
title: ':title - Page :num'
limit: 0 # 0 = no limit
sort_field: 'date'
sort_reverse: true
Run bundle install.
Step 2: Enable Pagination on Your Index Page
In your blog index page (e.g. index.html or blog.md), add pagination to the front matter:
---
layout: home
title: Blog
pagination:
enabled: true
---
Step 3: Update Your Template to Use paginator
In your home layout (_layouts/home.html):
{% if paginator.posts %}
{% assign posts = paginator.posts %}
{% else %}
{% assign posts = site.posts %}
{% endif %}
{% for post in posts %}
<article class="post-card">
<a href="{{ post.url }}">
<h2>{{ post.title }}</h2>
</a>
<time>{{ post.date | date: "%B %d, %Y" }}</time>
<p>{{ post.excerpt | strip_html | truncatewords: 30 }}</p>
<a href="{{ post.url }}">Read more →</a>
</article>
{% endfor %}
{% include pagination.html %}
Step 4: Create the Pagination Include
Create _includes/pagination.html:
{% if paginator.total_pages > 1 %}
<nav class="pagination" aria-label="Blog pagination">
{% if paginator.previous_page %}
<a href="{{ paginator.previous_page_path }}" class="pagination__prev" aria-label="Previous page">
← Newer
</a>
{% else %}
<span class="pagination__prev pagination__prev--disabled">← Newer</span>
{% endif %}
<span class="pagination__info">
Page {{ paginator.page }} of {{ paginator.total_pages }}
</span>
{% if paginator.next_page %}
<a href="{{ paginator.next_page_path }}" class="pagination__next" aria-label="Next page">
Older →
</a>
{% else %}
<span class="pagination__next pagination__next--disabled">Older →</span>
{% endif %}
</nav>
{% endif %}
Step 5: Style the Pagination
// _sass/_pagination.scss
.pagination {
display: flex;
align-items: center;
justify-content: center;
gap: 1rem;
margin: 2rem 0;
font-size: 0.95rem;
}
.pagination__prev,
.pagination__next {
display: inline-flex;
align-items: center;
padding: 0.5rem 1rem;
border: 1px solid var(--border-color);
border-radius: 6px;
color: var(--link-color);
text-decoration: none;
transition: background 0.2s;
&:hover {
background: var(--card-bg);
}
&--disabled {
color: var(--text-muted);
cursor: default;
pointer-events: none;
}
}
.pagination__info {
color: var(--text-muted);
font-size: 0.9rem;
}
Numbered Page Links
For a numbered pagination bar instead of just prev/next:
{% if paginator.total_pages > 1 %}
<nav class="pagination">
{% if paginator.previous_page %}
<a href="{{ paginator.previous_page_path }}">←</a>
{% endif %}
{% for i in (1..paginator.total_pages) %}
{% if i == paginator.page %}
<span class="pagination__current">{{ i }}</span>
{% elsif i == 1 %}
<a href="{{ paginator.first_page_path }}">{{ i }}</a>
{% else %}
<a href="{{ site.paginate_path | replace: ':num', i }}">{{ i }}</a>
{% endif %}
{% endfor %}
{% if paginator.next_page %}
<a href="{{ paginator.next_page_path }}">→</a>
{% endif %}
</nav>
{% endif %}
Paginating a Specific Category
With jekyll-paginate-v2 you can paginate filtered content:
---
layout: category
title: Tutorials
pagination:
enabled: true
category: Tutorial
per_page: 8
---
Now /tutorials/ shows only Tutorial category posts, paginated.
Paginating Collections
You can paginate any collection, not just posts:
---
layout: themes
title: All Themes
pagination:
enabled: true
collection: themes
per_page: 12
---
Common Pagination Problems
“Pagination does not work” on GitHub Pages
jekyll-paginate-v2 is not on GitHub Pages’ allowed plugin list. You need to use GitHub Actions for the build:
# .github/workflows/deploy.yml
- name: Build Jekyll
run: bundle exec jekyll build
env:
JEKYLL_ENV: production
Paginated pages 404
Check that your permalink in _config.yml matches what you expect. The default is /page/:num/, so page 2 is at /page/2/.
Only page 1 exists
Make sure pagination: enabled: true is in both _config.yml (global) and the page’s front matter.
Pagination is built into many Jekyll themes on JekyllHub — look for themes with “blog” in the features list.
<!DOCTYPE html>
Jekyll Collections: The Complete Guide
Learn how Jekyll collections work — create custom content types, configure output, use front matter defaults, and build filtered collection pages.
Collections are one of Jekyll’s most powerful features — and one of the most underused. They let you create custom content types beyond posts and pages: products, team members, themes, recipes, portfolio items, or anything you need. This guide covers everything.
What Are Collections?
Jekyll has three built-in content types: posts, pages, and data. Collections let you create your own.
A collection is a folder of Markdown files (prefixed with _) that Jekyll processes as a group. Each file in the collection becomes a document with its own URL and template.
Examples of what people build with collections:
_themes/— a theme marketplace (like this site)_products/— an e-commerce catalogue_team/— staff or contributor profiles_courses/— educational content modules_recipes/— a cookbook
Creating a Collection
Step 1: Declare the Collection in _config.yml
# _config.yml
collections:
projects:
output: true
permalink: /projects/:name/
output: true— generates a dedicated page for each documentpermalink— controls the URL structure
Step 2: Create the Collection Folder
Create a folder named with an underscore prefix: _projects/
Step 3: Add Documents
Create Markdown files in _projects/:
<!-- _projects/my-app.md -->
---
title: "My App"
description: "A mobile app for tracking habits."
year: 2026
status: "live"
url: "https://myapp.com"
image: /assets/images/projects/my-app.jpg
---
My App is a cross-platform habit tracker built with React Native...
Each file gets a URL based on your permalink setting: /projects/my-app/
Collection Configuration Options
collections:
projects:
output: true # Generate a page for each document
permalink: /projects/:name/ # URL pattern
sort_by: year # Default sort field
order: # Explicit ordering (optional)
- my-featured-project.md
- another-project.md
Permalink Variables
| Variable | Value |
|---|---|
:name |
Filename without extension |
:title |
title from front matter (falls back to :name) |
:path |
Path relative to collection folder |
:output_ext |
Output file extension (.html) |
:categories |
Front matter categories joined by / |
Front Matter Defaults for Collections
Avoid repeating common front matter in every document using defaults:
# _config.yml
defaults:
- scope:
path: ""
type: "projects"
values:
layout: "project"
author: Marcus Webb
published: true
Now every document in _projects/ automatically gets layout: project and author: Marcus Webb without you writing it in each file.
Accessing Collections in Templates
List All Documents in a Collection
{% for project in site.projects %}
<article>
<a href="{{ project.url }}">{{ project.title }}</a>
<p>{{ project.description }}</p>
</article>
{% endfor %}
Sort and Filter
<!-- Sort by year, newest first -->
{% assign sorted_projects = site.projects | sort: "year" | reverse %}
{% for project in sorted_projects %}
...
{% endfor %}
<!-- Filter by status -->
{% assign live_projects = site.projects | where: "status", "live" %}
{% for project in live_projects %}
...
{% endfor %}
<!-- Filter by multiple values -->
{% assign featured = site.projects | where_exp: "item", "item.featured == true" %}
Group by a Field
{% assign by_year = site.projects | group_by: "year" %}
{% for group in by_year %}
<h2>{{ group.name }}</h2>
{% for project in group.items %}
<p>{{ project.title }}</p>
{% endfor %}
{% endfor %}
Building a Collection Index Page
Create projects.md (or _pages/projects.md) with a layout that lists all projects:
---
layout: collection-index
title: Projects
permalink: /projects/
---
In _layouts/collection-index.html:
---
layout: default
---
<h1>{{ page.title }}</h1>
<div class="projects-grid">
{% assign projects = site.projects | sort: "year" | reverse %}
{% for project in projects %}
{% include project-card.html project=project %}
{% endfor %}
</div>
{{ content }}
Collection Document Templates
Create _layouts/project.html for individual project pages:
---
layout: default
---
<article class="project">
<header>
<h1>{{ page.title }}</h1>
{% if page.description %}
<p class="lead">{{ page.description }}</p>
{% endif %}
{% if page.url %}
<a href="{{ page.url }}" class="btn" target="_blank">Visit Project →</a>
{% endif %}
</header>
{% if page.image %}
<img src="{{ page.image }}" alt="{{ page.title }}" class="project-image">
{% endif %}
<div class="project-content">
{{ content }}
</div>
<footer class="project-meta">
<span>Year: {{ page.year }}</span>
<span>Status: {{ page.status }}</span>
</footer>
</article>
Collections Without Output Pages
Sometimes you want a collection just for data — not individual pages. Set output: false:
collections:
team:
output: false
Now site.team gives you access to all team members in your templates, but no individual URLs are generated. Great for team pages, testimonials, and similar content.
<!-- In your about page template -->
<div class="team-grid">
{% for member in site.team %}
<div class="team-card">
<img src="{{ member.avatar }}" alt="{{ member.name }}">
<h3>{{ member.name }}</h3>
<p>{{ member.role }}</p>
</div>
{% endfor %}
</div>
Collections vs Posts vs Data Files
| Feature | Posts | Collections | Data Files |
|---|---|---|---|
| Chronological ordering | Built-in | Manual | N/A |
| Individual pages | Yes | Optional | No |
| Liquid access | site.posts |
site.collection_name |
site.data.filename |
| Front matter | Yes | Yes | No (YAML/JSON/CSV) |
| Drafts | Yes | No | No |
| Best for | Blog posts | Custom content types | Configuration, simple lists |
Real-World Example: A Team Directory
# _config.yml
collections:
team:
output: false
defaults:
- scope:
type: "team"
values:
layout: "team-member"
<!-- _team/sarah-jones.md -->
---
name: Sarah Jones
role: Lead Developer
avatar: /assets/images/team/sarah.jpg
github: sarahjones
twitter: sarahjones
---
Sarah has 10 years of experience building Jekyll themes and static sites.
<!-- In _pages/about.md -->
{% for member in site.team %}
<div class="team-card">
<img src="{{ member.avatar }}" alt="{{ member.name }}">
<h3>{{ member.name }}</h3>
<p class="role">{{ member.role }}</p>
{{ member.content }}
{% if member.github %}
<a href="https://github.com/{{ member.github }}">GitHub</a>
{% endif %}
</div>
{% endfor %}
Collections are the building block behind theme directories (like this one), product catalogues, and any site that needs to manage structured content at scale.
Explore Jekyll themes on JekyllHub — our entire theme collection is built on Jekyll collections.
<!DOCTYPE html>
How to Add Search to a Jekyll Site (Lunr.js vs Algolia)
Add full-text search to your Jekyll site using Lunr.js (free, no backend) or Algolia (fast, scalable). Setup guides for both options with pros and cons.
Jekyll doesn’t include search out of the box — but adding it is simpler than you might think. This guide covers the two best options: Lunr.js for a free, no-backend solution and Algolia for a fast, scalable search service.
Option 1: Lunr.js (Free, No Backend Required)
Lunr.js is a client-side search library. Jekyll generates a JSON search index at build time, and Lunr searches it entirely in the browser.
Pros: Free, privacy-friendly, no external service required, works on GitHub Pages
Cons: Index grows with site size, can be slow on very large sites (500+ posts)
Step 1: Generate a Search Index
Create search-index.json at your site root. This file is regenerated on every build:
---
layout: null
---
[
{% for post in site.posts %}
{
"title": {{ post.title | jsonify }},
"url": {{ post.url | absolute_url | jsonify }},
"date": {{ post.date | date: "%B %d, %Y" | jsonify }},
"excerpt": {{ post.excerpt | strip_html | truncatewords: 50 | jsonify }},
"content": {{ post.content | strip_html | truncatewords: 300 | jsonify }},
"tags": {{ post.tags | jsonify }},
"categories": {{ post.categories | jsonify }}
}{% unless forloop.last %},{% endunless %}
{% endfor %}
{% if site.posts.size > 0 and site.pages.size > 0 %},{% endif %}
{% for page in site.pages %}
{% if page.title and page.layout != null %}
{
"title": {{ page.title | jsonify }},
"url": {{ page.url | absolute_url | jsonify }},
"excerpt": {{ page.content | strip_html | truncatewords: 50 | jsonify }},
"content": {{ page.content | strip_html | truncatewords: 300 | jsonify }}
}{% unless forloop.last %},{% endunless %}
{% endif %}
{% endfor %}
]
Save this as search-index.json in your site root.
Step 2: Create the Search Page
Create search.md:
---
layout: page
title: Search
permalink: /search/
---
<input type="search" id="search-input" placeholder="Search posts and pages..." autofocus>
<div id="search-results"></div>
<script src="https://unpkg.com/lunr/lunr.js"></script>
<script>
let searchIndex;
let documents = {};
fetch('/search-index.json')
.then(res => res.json())
.then(data => {
data.forEach(doc => { documents[doc.url] = doc; });
searchIndex = lunr(function () {
this.ref('url');
this.field('title', { boost: 10 });
this.field('tags', { boost: 5 });
this.field('content');
data.forEach(doc => { this.add(doc); });
});
});
document.getElementById('search-input').addEventListener('input', function () {
const query = this.value.trim();
const resultsDiv = document.getElementById('search-results');
if (!query || !searchIndex) {
resultsDiv.innerHTML = '';
return;
}
const results = searchIndex.search(query + '*');
if (results.length === 0) {
resultsDiv.innerHTML = '<p>No results found.</p>';
return;
}
resultsDiv.innerHTML = results.map(result => {
const doc = documents[result.ref];
return `<div class="search-result">
<a href="${doc.url}"><h3>${doc.title}</h3></a>
<p>${doc.excerpt}</p>
</div>`;
}).join('');
});
</script>
Step 3: Add Search to Your Navigation
Add a search link or a header search box that submits to /search/?q=query:
<form action="/search/" method="get">
<input type="search" name="q" placeholder="Search...">
<button type="submit">Search</button>
</form>
Then in your search page, pre-fill from the URL parameter:
const params = new URLSearchParams(window.location.search);
const q = params.get('q');
if (q) {
document.getElementById('search-input').value = q;
// Trigger search...
}
Option 2: Algolia (Fast, Scalable)
Algolia is a hosted search service. It’s significantly faster than Lunr for large sites and provides instant results as you type.
Free plan: 10,000 search requests/month and 10,000 records
Pros: Fast, typo-tolerant, instant search, great developer experience
Cons: Requires an Algolia account, data is stored externally
Step 1: Create an Algolia Account
- Sign up at algolia.com
- Create a new application
- Create an index (e.g.
jekyllhub_production) - Note your Application ID, Search-Only API Key, and Admin API Key
Step 2: Install jekyll-algolia
# Gemfile
gem "jekyll-algolia"
# _config.yml
algolia:
application_id: YOUR_APP_ID
index_name: YOUR_INDEX_NAME
search_only_api_key: YOUR_SEARCH_ONLY_KEY
Important: Your search-only key is safe to put in _config.yml. Never put your Admin API key in version control.
Set the Admin key as an environment variable:
export ALGOLIA_API_KEY='your-admin-key'
Step 3: Index Your Content
bundle exec jekyll algolia
This pushes all your posts and pages to Algolia. Run this whenever you add new content (or add it to your CI/CD pipeline).
Step 4: Add InstantSearch to Your Site
Algolia provides InstantSearch.js for the frontend:
<!-- search.html -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/instantsearch.css@7/themes/satellite-min.css">
<div id="searchbox"></div>
<div id="hits"></div>
<div id="pagination"></div>
<script src="https://cdn.jsdelivr.net/npm/algoliasearch@4/dist/algoliasearch-lite.umd.js"></script>
<script src="https://cdn.jsdelivr.net/npm/instantsearch.js@4"></script>
<script>
const searchClient = algoliasearch('YOUR_APP_ID', 'YOUR_SEARCH_ONLY_KEY');
const search = instantsearch({
indexName: 'YOUR_INDEX_NAME',
searchClient,
});
search.addWidgets([
instantsearch.widgets.searchBox({
container: '#searchbox',
placeholder: 'Search posts...',
}),
instantsearch.widgets.hits({
container: '#hits',
templates: {
item(hit) {
return `
<a href="${hit.url}">
<h3>${instantsearch.highlight({ hit, attribute: 'title' })}</h3>
<p>${instantsearch.snippet({ hit, attribute: 'content' })}</p>
</a>
`;
},
empty: '<p>No results found.</p>',
},
}),
instantsearch.widgets.pagination({
container: '#pagination',
}),
]);
search.start();
</script>
Which Should You Choose?
| Lunr.js | Algolia | |
|---|---|---|
| Cost | Free | Free up to 10k requests/month |
| Setup | Simple | Moderate |
| Speed | Good (small sites) | Excellent (any size) |
| Typo tolerance | Limited | Built-in |
| Works offline | Yes | No |
| GitHub Pages | Yes | Yes |
| Privacy | Full (no external service) | Data sent to Algolia |
Choose Lunr.js if: your site has under 200 posts, you want zero dependencies, or privacy is a priority.
Choose Algolia if: you have a large site, want instant-as-you-type results, or need typo-tolerant search.
Many Jekyll themes on JekyllHub include search functionality built in — check the theme’s feature list before building from scratch.
<!DOCTYPE html>
How to Automate Jekyll Builds with GitHub Actions
Set up GitHub Actions to automatically build and deploy your Jekyll site — with caching, HTML validation, link checking, and multi-environment deployments.
GitHub Actions can build, test, and deploy your Jekyll site automatically on every push. This guide covers everything from the basic setup to advanced workflows with caching, link checking, and staging environments.
Why Use GitHub Actions for Jekyll?
GitHub Pages has a built-in Jekyll build system, but it only supports a limited set of plugins. GitHub Actions removes this restriction — you can use any Jekyll plugin, any Ruby version, and any build configuration.
Additional benefits:
- Build once, deploy anywhere — deploy to GitHub Pages, Netlify, Cloudflare Pages, or AWS S3
- Run tests — validate HTML, check links, run linters before deploying
- Cache dependencies — fast builds by reusing installed gems between runs
- Preview branches — deploy PRs to a staging URL before merging
Basic Jekyll GitHub Actions Workflow
Create .github/workflows/deploy.yml in your repository:
name: Build and Deploy Jekyll
on:
push:
branches:
- main
pull_request:
branches:
- main
permissions:
contents: read
pages: write
id-token: write
concurrency:
group: "pages"
cancel-in-progress: false
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.3'
bundler-cache: true # Runs bundle install and caches gems
- name: Setup Pages
id: pages
uses: actions/configure-pages@v5
- name: Build Jekyll site
run: bundle exec jekyll build --baseurl "${{ steps.pages.outputs.base_path }}"
env:
JEKYLL_ENV: production
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
if: github.ref == 'refs/heads/main'
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
What This Does
- Triggers on every push to
mainand on pull requests - Sets up Ruby with the version specified in your
.ruby-versionfile - Caches gems so subsequent builds are faster (typically 2–3× speedup)
- Builds Jekyll with
JEKYLL_ENV: productionto enable production-only features - Deploys to GitHub Pages (only on pushes to
main, not PRs)
Adding Gem Caching (Faster Builds)
The bundler-cache: true option in ruby/setup-ruby handles caching automatically. But you can also cache explicitly for more control:
- name: Cache gems
uses: actions/cache@v4
with:
path: vendor/bundle
key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }}
restore-keys: |
${{ runner.os }}-gems-
- name: Install dependencies
run: |
bundle config path vendor/bundle
bundle install --jobs 4 --retry 3
Add vendor/ to your .gitignore:
vendor/
Adding HTML Validation
Validate your built HTML before deploying to catch issues like missing alt text and broken markup:
- name: Validate HTML
run: |
gem install html-proofer
htmlproofer ./_site \
--disable-external \
--checks Links,Images,Scripts \
--allow-missing-href true \
--ignore-urls "/localhost/"
Adding Link Checking
Check for broken internal and external links:
- name: Check links
run: |
bundle exec htmlproofer ./_site \
--checks Links \
--external-only \
--ignore-urls "https://twitter.com,https://linkedin.com"
Note: External link checking adds significant build time. Consider running it on a schedule rather than every push:
on:
push:
branches: [main]
schedule:
- cron: '0 6 * * 1' # Every Monday at 6am
Multi-Environment Deployment
Staging on Pull Requests
Deploy pull requests to a preview URL so you can review changes before merging:
name: Deploy Preview
on:
pull_request:
types: [opened, synchronize]
jobs:
deploy-preview:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: '3.3'
bundler-cache: true
- name: Build Jekyll
run: bundle exec jekyll build
env:
JEKYLL_ENV: staging
- name: Deploy to Netlify Preview
uses: nwtgck/actions-netlify@v3
with:
publish-dir: './_site'
github-token: ${{ secrets.GITHUB_TOKEN }}
deploy-message: "PR Preview: ${{ github.event.pull_request.title }}"
env:
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}
Production Deployment with Environment Protection
Add environment protection rules so deploys to production require manual approval:
- Go to repository Settings → Environments → New environment
- Name it
production - Add Required reviewers — only approved reviewers can trigger production deploys
Then reference the environment in your workflow:
deploy:
environment:
name: production
url: https://yourdomain.com
Deploying to Netlify Instead of GitHub Pages
If you prefer Netlify for its CDN and preview deploys:
- name: Deploy to Netlify
uses: nwtgck/actions-netlify@v3
with:
publish-dir: './_site'
production-branch: main
github-token: ${{ secrets.GITHUB_TOKEN }}
deploy-message: "Deployed from GitHub Actions"
env:
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}
Get your NETLIFY_AUTH_TOKEN from Netlify’s personal settings and add both secrets to your GitHub repository Settings → Secrets and variables → Actions.
Scheduled Builds
Useful for sites with content that updates from external sources (RSS feeds, APIs):
on:
schedule:
- cron: '0 6 * * *' # Daily at 6am UTC
push:
branches: [main]
Full Production Workflow
Here’s a complete, production-ready workflow combining everything above:
name: Jekyll CI/CD
on:
push:
branches: [main]
pull_request:
branches: [main]
schedule:
- cron: '0 6 * * 1' # Weekly link check
permissions:
contents: read
pages: write
id-token: write
jobs:
build-and-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: '3.3'
bundler-cache: true
- name: Build Jekyll
run: bundle exec jekyll build
env:
JEKYLL_ENV: production
- name: Validate HTML
run: |
bundle exec htmlproofer ./_site \
--disable-external \
--checks Links,Images
- name: Upload artifact
if: github.ref == 'refs/heads/main'
uses: actions/upload-pages-artifact@v3
deploy:
needs: build-and-test
if: github.ref == 'refs/heads/main'
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
Looking for Jekyll themes that are already configured for GitHub Actions deployment? Browse themes on JekyllHub →
<!DOCTYPE html>
How to Build a Documentation Site with Jekyll
Set up a professional documentation site with Jekyll — using Just the Docs or similar themes, with search, navigation, versioning, and GitHub Pages hosting.
Jekyll is one of the best tools for documentation sites. The result is fast, searchable, version-controllable, and free to host. This guide walks through building a professional documentation site from scratch.
Why Jekyll for Documentation?
Documentation sites have specific requirements that Jekyll handles exceptionally well:
- Version control — docs live in the same repository as your code
- Plain text — Markdown files that any developer can edit in a PR
- Free hosting — GitHub Pages deployment is built-in and free
- Search — Static search with Lunr.js works without a backend
- Navigation — Sidebar navigation with nested sections
The Best Jekyll Documentation Themes
Just the Docs
Just the Docs is the most popular Jekyll documentation theme with 8,000+ stars. It includes:
- Full-text search (Lunr.js)
- Nested navigation sidebar
- Responsive design
- Dark/light mode
- Code syntax highlighting
- Callout blocks (note, warning, tip)
- Table of contents generation
Minimal Mistakes
Minimal Mistakes is more flexible and works for both blogs and documentation. Good if you need a mix of docs and blog posts.
Docsy (Jekyll port)
A port of Google’s Docsy theme, suited for large documentation projects with versioning needs.
Setting Up Just the Docs
Installation
# Gemfile
gem "just-the-docs"
# _config.yml
theme: just-the-docs
Or use it as a remote theme (works with GitHub Pages):
# Gemfile
gem "github-pages"
# _config.yml
remote_theme: just-the-docs/just-the-docs
Basic Configuration
# _config.yml
title: My Project Docs
description: Documentation for My Project
baseurl: ""
url: "https://yourdomain.com"
# Just the Docs settings
search_enabled: true
search:
heading_level: 2
previews: 3
# Auxiliary links in top navigation
aux_links:
"GitHub":
- "https://github.com/username/repo"
# Footer content
footer_content: "Copyright © 2026 Your Company"
# Colour scheme
color_scheme: light
Structuring Your Documentation
File Organisation
my-docs/
├── _config.yml
├── index.md # Homepage
├── docs/
│ ├── getting-started/
│ │ ├── index.md # Section landing page
│ │ ├── installation.md
│ │ └── quickstart.md
│ ├── guides/
│ │ ├── index.md
│ │ └── advanced.md
│ └── api/
│ ├── index.md
│ └── reference.md
└── assets/
└── images/
Front Matter for Navigation
Just the Docs uses front matter to build the sidebar:
---
layout: default
title: Installation
parent: Getting Started
nav_order: 1
---
title— appears in the sidebarparent— nests this page under anothernav_order— controls ordering within a sectionhas_children: true— marks a page as a section parent
Section Landing Pages
---
layout: default
title: Getting Started
nav_order: 2
has_children: true
---
# Getting Started
A brief introduction to this section.
Adding Search
Just the Docs includes Lunr.js search out of the box. No configuration needed.
For large documentation sites (hundreds of pages), Lunr can become slow. Consider Algolia DocSearch — it’s free for open-source documentation:
# _config.yml
search_provider: algolia
algolia:
application_id: YOUR_APP_ID
index_name: YOUR_INDEX_NAME
search_only_api_key: YOUR_SEARCH_KEY
Navigation Best Practices
Callout Blocks
Just the Docs provides callout blocks for important information:
{: .note }
> This is a note.
{: .warning }
> This will break things if you do it wrong.
{: .tip }
> This will save you time.
Code Blocks with Syntax Highlighting
Jekyll uses Rouge for syntax highlighting:
```ruby
def hello
puts "Hello, world!"
end
```
Specify the language for correct highlighting.
Anchor Links for Headings
Just the Docs automatically adds anchor links to headings. Users can link to specific sections with URLs like /docs/installation/#step-2.
Setting Up Multiple Versions
For projects with multiple supported versions, create a version switcher using Jekyll collections.
Create version-specific collections:
# _config.yml
collections:
v1:
output: true
permalink: /v1/:name/
v2:
output: true
permalink: /v2/:name/
Add a version selector to your layout:
<select onchange="window.location.href=this.value">
<option value="/v2/">v2 (latest)</option>
<option value="/v1/">v1</option>
</select>
Deploying to GitHub Pages
Documentation sites are perfect for GitHub Pages — they can live in the same repo as the code they document.
Option A: Docs in the same repo
Keep docs in a /docs folder in your code repo:
# GitHub Actions workflow
- name: Build docs
run: bundle exec jekyll build --source docs --destination _site
Option B: Separate docs repo
Create a username/project-docs repo and deploy from there. Cleaner separation, easier to manage permissions.
Option C: GitHub Pages from /docs folder
In repository Settings → Pages, set source to Deploy from branch → /docs folder. Jekyll builds automatically.
Making Documentation Searchable by Google
- Add
jekyll-sitemapto generatesitemap.xml - Submit to Google Search Console
- Use descriptive titles with relevant keywords in front matter
- Use proper heading hierarchy (one H1 per page, logical H2/H3 structure)
- Add meta descriptions to important pages
Recommended Documentation Site Stack
| Component | Tool |
|---|---|
| Theme | Just the Docs |
| Search | Lunr.js (built-in) or Algolia |
| Hosting | GitHub Pages |
| Build | GitHub Actions |
| Comments | Giscus (for community feedback) |
| Analytics | Plausible or Google Analytics |
Browse documentation themes on JekyllHub — filter by the Documentation category to see themes designed specifically for docs sites.
References
<!DOCTYPE html>
How to Add Comments to Jekyll: Disqus vs Giscus vs Utterances
Compare the three best comment systems for Jekyll sites — Disqus, Giscus, and Utterances. Setup guides, pros and cons, and which to choose.
Jekyll doesn’t have a built-in comment system — it’s a static site generator. But you have three solid options that work well with static sites. Here’s how each one works and which to choose.
The Three Options at a Glance
| Disqus | Giscus | Utterances | |
|---|---|---|---|
| Backend | Disqus servers | GitHub Discussions | GitHub Issues |
| Free plan | Yes (with ads) | Yes (free) | Yes (free) |
| Requires GitHub | No | Yes | Yes |
| Privacy | Poor | Good | Good |
| Spam control | Built-in | GitHub moderation | GitHub moderation |
| Anonymity | Disqus account or guest | GitHub account required | GitHub account required |
| Setup difficulty | Easy | Medium | Easy |
Option 1: Disqus
Disqus is the most well-known comment system for static sites. It hosts all comments on its servers and loads them via a JavaScript embed.
Pros
- No GitHub account required for commenters
- Built-in spam filtering and moderation dashboard
- Comment count display on post lists
- Supports anonymous guest comments
Cons
- Ads on free plan — Disqus shows ads in the comment area unless you pay ($11+/month)
- Privacy concerns — Disqus tracks users across sites and shares data with advertisers
- Performance hit — The Disqus script adds ~300KB to page load
- Data lock-in — Your comments live on Disqus servers, not yours
Setup
- Create a free account at disqus.com
- Create a new site and note your shortname
- Add to
_config.yml:disqus: shortname: your-shortname - Create
_includes/comments-disqus.html: ```html
{% if page.comments != false %}
{% endif %}
5. Include in your post layout before `</article>`:
```liquid
{% include comments-disqus.html %}
Option 2: Giscus
Giscus uses GitHub Discussions as a comment backend. Comments appear both on your site and in your repo’s Discussions tab.
Pros
- Completely free — no ads, no paid plans
- Privacy-friendly — no tracking, no third-party data sharing
- Beautiful UI — light/dark mode, reactions (👍 ❤️ 🎉)
- Markdown support — commenters can use full GitHub Markdown
- You own the data — comments live in your GitHub repo
Cons
- Requires a GitHub account to comment — limits casual commenters
- Slightly more complex setup than Utterances
Setup
Step 1: Enable GitHub Discussions on your repository. Go to repo Settings → General → Features and check Discussions.
Step 2: Install the Giscus app on your repository.
Step 3: Go to giscus.app to generate your configuration. Fill in your repository name and choose a mapping (recommended: pathname).
You will get a script like:
<script src="https://giscus.app/client.js"
data-repo="username/repo"
data-repo-id="R_xxxxx"
data-category="Comments"
data-category-id="DIC_xxxxx"
data-mapping="pathname"
data-reactions-enabled="1"
data-theme="preferred_color_scheme"
crossorigin="anonymous"
async>
</script>
Step 4: Create _includes/comments-giscus.html with that script.
Step 5: For dark mode support, use the data-theme attribute dynamically:
<script>
const theme = localStorage.getItem('theme') === 'dark' ? 'dark' : 'light';
document.write(`<script src="https://giscus.app/client.js"
data-repo="username/repo"
data-repo-id="R_xxxxx"
data-category="Comments"
data-category-id="DIC_xxxxx"
data-mapping="pathname"
data-theme="${theme}"
crossorigin="anonymous"
async><\/script>`);
</script>
Step 6: Add to your post layout:
{% if page.comments != false %}
{% include comments-giscus.html %}
{% endif %}
Option 3: Utterances
Utterances uses GitHub Issues as its backend. Each page gets a GitHub Issue, and comments are issue replies.
Pros
- Free and ad-free
- Simplest setup — one script tag
- Good for developer-oriented blogs where commenters have GitHub accounts
Cons
- Requires GitHub account to comment
- Comments go into GitHub Issues — can look messy in your repo
- No reactions or rich UI (compared to Giscus)
- GitHub Issues was not designed for comments, and it shows
Setup
- Install the Utterances app on your repository
- Create
_includes/comments-utterances.html: ```html
{% if page.comments != false %} {% endif %}
3. Add to your post layout.
For dark mode:
```html
<script src="https://utteranc.es/client.js"
repo="username/repo-name"
issue-term="pathname"
theme="github-dark"
crossorigin="anonymous"
async>
</script>
Which Should You Choose?
Choose Giscus if:
- Your audience has GitHub accounts (developers, tech readers)
- You care about privacy and not having ads
- You want reactions and a modern UI
- You want the best long-term option
Choose Disqus if:
- Your audience is non-technical and won’t have GitHub accounts
- You need anonymous/guest commenting
- You don’t mind the free plan ads (or can afford the paid plan)
Choose Utterances if:
- You want the simplest possible setup
- Your site is developer-focused and GitHub Issues don’t bother you
- You are already using GitHub Issues for other tracking
Our recommendation: Giscus for most developer blogs. The UI is better than Utterances, it’s privacy-friendly, completely free, and requiring a GitHub account is not a drawback for a technical audience.
Making Comments Optional Per Post
For posts where you don’t want comments, add to front matter:
comments: false
This works with the {% if page.comments != false %} check in all the includes above.
Browse Jekyll themes on JekyllHub — several themes include pre-configured comment system support.
<!DOCTYPE html>
15 Must-Have Jekyll Plugins for 2026
The essential Jekyll plugins every site needs — from SEO and sitemaps to image optimisation, search, and performance. All compatible with the latest Jekyll versions.
Jekyll’s plugin ecosystem is smaller than WordPress’s, but it has everything you need. These 15 plugins cover SEO, performance, content management, and quality of life — and all are compatible with the latest Jekyll 4.x releases.
How to Install Jekyll Plugins
Add plugins to your Gemfile:
group :jekyll_plugins do
gem "jekyll-seo-tag"
gem "jekyll-sitemap"
end
And to _config.yml:
plugins:
- jekyll-seo-tag
- jekyll-sitemap
Then run bundle install.
GitHub Pages note: GitHub Pages only supports a specific list of plugins. If you use GitHub Actions for deployment, you can use any plugin.
SEO Plugins
1. jekyll-seo-tag
What it does: Generates all the SEO meta tags you need — <title>, meta description, Open Graph, Twitter Cards, and JSON-LD structured data — automatically from your page’s front matter.
gem "jekyll-seo-tag"
Add {% seo %} to your <head>. That’s it. Essential for every Jekyll site.
2. jekyll-sitemap
What it does: Automatically generates a sitemap.xml at your site root. Submit it to Google Search Console to ensure all pages are indexed.
gem "jekyll-sitemap"
No configuration needed. Exclude pages with sitemap: false in front matter.
3. jekyll-feed
What it does: Generates an Atom feed at /feed.xml. Useful for RSS readers, and some search engines use feeds to discover new content faster.
gem "jekyll-feed"
4. jekyll-redirect-from
What it does: Creates 301 redirect pages for URLs that have changed. Essential when you rename posts or change your permalink structure.
gem "jekyll-redirect-from"
Usage in front matter:
redirect_from:
- /old/url/
- /another/old/url/
Content and Organisation Plugins
5. jekyll-archives
What it does: Automatically generates archive pages for categories, tags, and dates. Without this plugin, your tag links go nowhere.
gem "jekyll-archives"
# _config.yml
jekyll-archives:
enabled:
- categories
- tags
layouts:
category: archive-taxonomy
tag: archive-taxonomy
permalinks:
category: /category/:name/
tag: /tag/:name/
6. jekyll-paginate-v2
What it does: Pagination for posts, collections, or any data source. The v2 version is significantly more powerful than the deprecated jekyll-paginate.
gem "jekyll-paginate-v2"
# _config.yml
pagination:
enabled: true
per_page: 10
permalink: '/page/:num/'
title: ':title - page :num'
7. jekyll-toc
What it does: Generates a table of contents from your post’s headings automatically.
gem "jekyll-toc"
Usage in layout:
{{ content | toc_only }}
{{ content | inject_anchors }}
8. jekyll-last-modified-at
What it does: Reads a file’s Git commit history to set an accurate last_modified_at date. Useful for structured data and SEO freshness signals.
gem "jekyll-last-modified-at"
In templates:
Last updated: {{ page.last_modified_at | date: "%B %d, %Y" }}
Performance Plugins
9. jekyll-minifier
What it does: Minifies HTML, CSS, and JavaScript in your built site — reducing page size and improving load times.
gem "jekyll-minifier"
# _config.yml
jekyll-minifier:
compress_javascript: true
compress_css: true
remove_comments: true
10. jekyll-assets (or sassc)
What it does: For advanced CSS processing — Sass compiling, autoprefixing, and asset fingerprinting for cache-busting.
Built-in Sass support is usually sufficient for most sites:
# _config.yml
sass:
style: compressed
sourcemap: never
Images and Media
11. jekyll-picture-tag
What it does: Generates responsive <picture> elements with multiple image sizes and WebP conversion automatically.
gem "jekyll-picture-tag"
Usage in templates:
{% picture assets/images/hero.jpg alt="Hero image" %}
This generates a <picture> element with WebP sources, multiple sizes, and a fallback — everything Google PageSpeed loves.
12. jekyll-cloudinary
What it does: Integrates with Cloudinary for on-the-fly image resizing, format conversion, and CDN delivery.
Good choice if you have many images and want to optimise without managing them locally.
Development Quality of Life
13. jekyll-compose
What it does: Adds draft, post, and page commands to the Jekyll CLI for creating new content without manually typing front matter.
gem "jekyll-compose"
# Create a new post with pre-filled front matter
bundle exec jekyll post "My New Post"
# Create a draft
bundle exec jekyll draft "My Draft"
# Publish a draft
bundle exec jekyll publish _drafts/my-draft.md
14. jekyll-include-cache
What it does: Caches Liquid includes that don’t change between pages (navigation, sidebar, footer). Can dramatically speed up builds on large sites.
gem "jekyll-include-cache"
Replace {% include navigation.html %} with {% include_cached navigation.html %} for includes that don’t use page-specific variables.
15. html-proofer
What it does: Validates your built HTML — checks for broken links, missing alt text, invalid HTML, and missing images. Run it as part of your CI pipeline.
gem "html-proofer", group: :test
bundle exec htmlproofer ./_site --disable-external
Add to your GitHub Actions workflow to catch broken links before they go live.
Recommended Starter Set
For a new Jekyll site, install these five to get the most value immediately:
group :jekyll_plugins do
gem "jekyll-seo-tag"
gem "jekyll-sitemap"
gem "jekyll-feed"
gem "jekyll-paginate-v2"
gem "jekyll-redirect-from"
end
That covers SEO, content discovery, pagination, and URL management — the foundations of any real site.
Browse Jekyll themes on JekyllHub — all themes in our collection are tested with these plugins for compatibility.
References
<!DOCTYPE html>
How to Add Dark Mode to Your Jekyll Site
Add a dark mode toggle to any Jekyll site — using CSS variables, a JavaScript toggle, and localStorage to remember the user's preference.
Dark mode is no longer optional — it’s expected. This guide shows you how to add a proper dark mode toggle to any Jekyll site, with the user’s preference saved across visits.
The Approach
We will use three techniques together:
- CSS custom properties (variables) — define colours once, swap them all at once
- JavaScript toggle — switch modes on button click
- localStorage — remember the user’s choice on return visits
prefers-color-schememedia query — respect the OS-level dark mode preference on first visit
Step 1: Restructure Your CSS with Variables
Instead of hard-coding colours, define them as CSS custom properties:
/* _sass/_variables.scss */
:root {
--bg-color: #ffffff;
--text-color: #1a1a1a;
--text-muted: #6b7280;
--border-color: #e5e7eb;
--card-bg: #f9fafb;
--link-color: #2563eb;
--heading-color: #111827;
--code-bg: #f3f4f6;
}
[data-theme="dark"] {
--bg-color: #0f172a;
--text-color: #e2e8f0;
--text-muted: #94a3b8;
--border-color: #334155;
--card-bg: #1e293b;
--link-color: #60a5fa;
--heading-color: #f1f5f9;
--code-bg: #1e293b;
}
Now use these variables throughout your stylesheets:
body {
background-color: var(--bg-color);
color: var(--text-color);
}
a {
color: var(--link-color);
}
h1, h2, h3 {
color: var(--heading-color);
}
When you switch from [data-theme="light"] to [data-theme="dark"] on the <html> element, every colour updates instantly with no additional CSS.
Step 2: Respect the System Preference
Users who have set their OS to dark mode expect your site to default to dark. Use the prefers-color-scheme media query:
@media (prefers-color-scheme: dark) {
:root:not([data-theme="light"]) {
--bg-color: #0f172a;
--text-color: #e2e8f0;
--text-muted: #94a3b8;
--border-color: #334155;
--card-bg: #1e293b;
--link-color: #60a5fa;
--heading-color: #f1f5f9;
--code-bg: #1e293b;
}
}
The :not([data-theme="light"]) selector means: use dark colours unless the user has explicitly chosen light mode via the toggle.
Step 3: Add the Toggle Button
In your header HTML (e.g. _includes/header.html):
<button id="theme-toggle" aria-label="Toggle dark mode" class="theme-toggle">
<span class="theme-toggle__sun">☀️</span>
<span class="theme-toggle__moon">🌙</span>
</button>
Style it to show the sun in dark mode and the moon in light mode:
.theme-toggle {
background: none;
border: 1px solid var(--border-color);
border-radius: 50%;
width: 36px;
height: 36px;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
font-size: 1rem;
transition: border-color 0.2s;
&:hover {
border-color: var(--link-color);
}
}
/* Show sun in dark mode (to switch to light), moon in light mode (to switch to dark) */
[data-theme="dark"] .theme-toggle__moon { display: none; }
[data-theme="dark"] .theme-toggle__sun { display: inline; }
.theme-toggle__sun { display: none; }
.theme-toggle__moon { display: inline; }
Step 4: Write the JavaScript
Create assets/js/theme-toggle.js:
(function() {
const STORAGE_KEY = 'theme';
const DARK = 'dark';
const LIGHT = 'light';
function getPreferredTheme() {
// Check localStorage first
const stored = localStorage.getItem(STORAGE_KEY);
if (stored) return stored;
// Fall back to OS preference
return window.matchMedia('(prefers-color-scheme: dark)').matches ? DARK : LIGHT;
}
function applyTheme(theme) {
document.documentElement.setAttribute('data-theme', theme);
}
// Apply theme immediately (before page renders) to prevent flash
applyTheme(getPreferredTheme());
// Set up toggle button after DOM loads
document.addEventListener('DOMContentLoaded', function() {
const button = document.getElementById('theme-toggle');
if (!button) return;
button.addEventListener('click', function() {
const current = document.documentElement.getAttribute('data-theme');
const next = current === DARK ? LIGHT : DARK;
applyTheme(next);
localStorage.setItem(STORAGE_KEY, next);
});
});
})();
Important: Load this script in <head> to prevent a flash of the wrong theme:
<!-- _includes/head.html -->
<script src="{{ '/assets/js/theme-toggle.js' | relative_url }}"></script>
Loading it in <head> (not deferred) means the theme is applied before the page renders — no white flash before dark mode kicks in.
Step 5: Handle Images in Dark Mode
Light-background images can look jarring in dark mode. Options:
Option A: Reduce opacity for images in dark mode:
[data-theme="dark"] img:not([src*=".svg"]) {
opacity: 0.9;
}
Option B: Use the <picture> element to serve different images per mode:
<picture>
<source srcset="/assets/images/logo-dark.png" media="(prefers-color-scheme: dark)">
<img src="/assets/images/logo-light.png" alt="Logo">
</picture>
Option C: Use SVGs with currentColor for icons and logos — they automatically adapt to the text colour.
Step 6: Dark Mode for Syntax Highlighting
Jekyll uses Rouge or Pygments for syntax highlighting. You need a dark colour scheme.
Add to your _config.yml:
highlighter: rouge
Then download a dark theme for Rouge. The Base16 Ocean Dark theme is a popular choice. Add it to _sass/:
/* _sass/_syntax-dark.scss */
[data-theme="dark"] .highlight {
background: #2b303b;
color: #c0c5ce;
}
[data-theme="dark"] .highlight .k { color: #b48ead; } /* keyword */
[data-theme="dark"] .highlight .s { color: #a3be8c; } /* string */
[data-theme="dark"] .highlight .c { color: #65737e; } /* comment */
[data-theme="dark"] .highlight .n { color: #c0c5ce; } /* name */
[data-theme="dark"] .highlight .o { color: #8fa1b3; } /* operator */
Testing Your Dark Mode
- Open your site, toggle dark mode — all colours should switch cleanly
- Refresh the page — dark mode should persist (localStorage is working)
- Open DevTools → Application → Local Storage — you should see
theme: dark - Set your OS to dark mode and visit the site for the first time in an incognito window — it should default to dark
Dark Mode in Jekyll Themes
Many modern Jekyll themes already include dark mode. If you would rather use a theme that has it built in, check out Chirpy (seamless dark/light toggle) or browse all themes with dark mode support on JekyllHub.
<!DOCTYPE html>
Deploy Jekyll to GitHub Pages in 10 Minutes
Step-by-step guide to deploying a Jekyll site to GitHub Pages — from a new site to live URL in under 10 minutes, with a custom domain walkthrough.
GitHub Pages is the fastest way to get a Jekyll site online — and it’s completely free. This guide gets you from zero to a live site in 10 minutes.
What You Need
- A GitHub account (free at github.com)
- Git installed on your computer
- Jekyll installed locally (optional, but useful for testing)
Option A: Deploy in 3 Minutes (Theme Chooser — No Local Setup)
If you just want something live quickly:
- Create a new GitHub repository named
username.github.io(replaceusernamewith your actual GitHub username) - Go to Settings → Pages
- Under Source, select Deploy from a branch
- Select the
mainbranch and click Save - Go to Settings → Pages → Choose a theme to pick a basic theme
Your site is live at https://username.github.io within 2 minutes.
Limitation: The theme chooser only offers 12 basic GitHub-provided themes. For a real site, use Option B.
Option B: Deploy a Full Jekyll Site (Recommended)
Step 1: Create Your Jekyll Site Locally
gem install bundler jekyll
jekyll new my-site
cd my-site
bundle exec jekyll serve
Open http://localhost:4000 to see your site. Once happy with it, move to the next step.
Step 2: Create a GitHub Repository
Create a new repository on GitHub. For a personal/organisation site, name it username.github.io. For a project site, any name works.
Do not initialise the repository with a README — you’ll push from your local machine.
Step 3: Push to GitHub
In your local site directory:
git init
git add .
git commit -m "Initial Jekyll site"
git remote add origin https://github.com/username/repo-name.git
git push -u origin main
Step 4: Enable GitHub Pages
In your repository on GitHub:
- Go to Settings → Pages
- Under Source, select GitHub Actions
- GitHub will detect your Jekyll site and suggest the Jekyll workflow — click Configure
- Review the workflow file (the defaults work perfectly for most sites)
- Click Commit changes
GitHub Actions will run your build and deploy automatically. Check the Actions tab to watch the build. In 1–2 minutes, your site is live.
Understanding GitHub Pages Site Types
| Type | Repository Name | Live URL |
|---|---|---|
| User site | username.github.io |
https://username.github.io |
| Organisation site | orgname.github.io |
https://orgname.github.io |
| Project site | Any name | https://username.github.io/repo-name |
For a project site, you need to set baseurl in _config.yml:
baseurl: "/repo-name"
url: "https://username.github.io"
For a user or organisation site, leave baseurl empty:
baseurl: ""
url: "https://username.github.io"
Setting Up a Custom Domain
To use yourdomain.com instead of username.github.io:
Step 1: In your repository, create a file called CNAME in the root with your domain:
yourdomain.com
Step 2: In your domain registrar’s DNS settings, add:
- An
Arecord pointing to GitHub’s IP addresses:185.199.108.153185.199.109.153185.199.110.153185.199.111.153
- A
CNAMErecord:wwwpointing tousername.github.io
Step 3: In GitHub repository Settings → Pages, enter your custom domain and check Enforce HTTPS.
DNS changes take 5 minutes to 48 hours to propagate. Once they do, your site is live at your custom domain with a free SSL certificate.
The GitHub Actions Workflow Explained
When you choose the GitHub Actions source, GitHub creates a .github/workflows/jekyll.yml file like this:
name: Deploy Jekyll to GitHub Pages
on:
push:
branches: ["main"]
workflow_dispatch:
permissions:
contents: read
pages: write
id-token: write
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Pages
uses: actions/configure-pages@v5
- name: Build with Jekyll
uses: actions/jekyll-build-pages@v1
with:
source: ./
destination: ./_site
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
Every push to main triggers a build and deploy. You never have to run anything manually.
Troubleshooting Common Deployment Issues
Build fails with “Could not find gem”
Your Gemfile.lock references a gem version not available in the GitHub Actions environment. Run bundle update locally and push the updated Gemfile.lock.
CSS/JS not loading on live site
Check your baseurl setting in _config.yml. If you have a project site at username.github.io/repo, your baseurl must be /repo.
Site shows README instead of Jekyll site You are deploying from a branch, not via GitHub Actions. Go to Settings → Pages and switch the source to GitHub Actions.
Custom domain not working
DNS propagation can take up to 48 hours. Check propagation at dnschecker.org. Make sure the CNAME file exists in your repo root.
Keeping Your Site Updated
Every time you push a commit to main, GitHub Actions rebuilds and deploys your site. The typical cycle:
- Edit files locally
- Test with
bundle exec jekyll serve - Commit and push
- GitHub deploys automatically in ~60 seconds
That’s it. No FTP, no SSH, no server management.
Looking for a great theme to deploy? Browse Jekyll themes on JekyllHub →
<!DOCTYPE html>
Free vs Premium Jekyll Themes: What's Actually Worth Paying For?
Thinking about buying a premium Jekyll theme? Here's an honest comparison of free vs paid Jekyll themes — what you get, what you don't, and when it's worth it.
There are thousands of free Jekyll themes on GitHub. So why would anyone pay for one? The honest answer: it depends on what you need. This post breaks down what free themes give you, what premium themes add, and when the cost is worth it.
What Free Jekyll Themes Include
Free Jekyll themes on GitHub are genuinely good. The best ones — Minimal Mistakes, Chirpy, Just the Docs — have tens of thousands of stars, active maintainers, and comprehensive documentation.
What you typically get:
- Clean, responsive design
- Basic layouts (post, page, home)
- Dark/light mode toggle (on modern themes)
- SEO basics (jekyll-seo-tag compatible)
- Community support via GitHub Issues
- MIT licence — use on any project
The real cost of “free”:
- Setup time — Most free themes require manual configuration. Expect 1–3 hours to get everything looking right.
- Ongoing maintenance — When the theme author pushes updates, merging them into your customised fork is your responsibility.
- No support — GitHub Issues is community help. If you’re stuck, you wait.
- Generic design — Popular free themes are used by thousands of sites. Your site won’t stand out.
What Premium Jekyll Themes Add
A good premium theme isn’t just a better design — it’s a different service model.
Design quality: Premium themes are typically designed by professional UI/UX designers, not developers who design on the side. You get better typography, more consistent spacing, and details that make the site feel polished from day one.
Out-of-the-box functionality: Premium themes often include features that would take days to build yourself:
- Advanced search (Lunr.js or Algolia integration)
- Newsletter signup forms
- Portfolio grids with filtering
- E-commerce or paid content support
- Multiple pre-built demo layouts
Documentation: Premium themes come with detailed setup guides, video walkthroughs, and often a dedicated FAQ. You don’t have to reverse-engineer someone else’s code.
Support: Most premium themes include some form of direct support — either email, a support forum, or a ticketing system. If something breaks, there’s someone to ask.
Licence: Premium themes typically include a commercial licence that allows you to use the theme on client projects or commercial sites without attribution.
Side-by-Side Comparison
| Feature | Free Theme | Premium Theme |
|---|---|---|
| Price | $0 | $19–$79 typically |
| Design quality | Good | Professional |
| Setup time | 1–3 hours | 30–60 minutes |
| Documentation | README only | Full docs + guides |
| Support | Community (GitHub) | Direct support included |
| Updates | Sporadic | Regular |
| Commercial use | MIT (check licence) | Explicit commercial licence |
| Uniqueness | Thousands of sites use it | Limited distribution |
When to Choose a Free Theme
Free themes are the right choice when:
- You are learning Jekyll for the first time
- You need a documentation site (Just the Docs is excellent and free)
- You want the most customisable possible base (Minimal Mistakes is nearly infinitely configurable)
- You are building for open source — the community recognises these themes and trusts them
- Budget is a constraint
Best free themes to consider:
- Minimal Mistakes — Best all-around free theme, 27k+ stars
- Chirpy — Beautiful dark/light blog theme, excellent SEO
- Just the Docs — Best free documentation theme
When to Pay for a Premium Theme
Premium themes are worth it when:
- You are building a client site and your time is worth more than $49
- First impressions matter (portfolio, agency, product site)
- You need a specific feature set that free themes don’t include
- You want a distinct look that doesn’t scream “I use the same theme as 10,000 other sites”
- You value support — knowing there’s someone to ask questions is worth real money
What to Look for in a Premium Jekyll Theme
Before you buy, check these things:
Live demo — Every legitimate premium theme has a live demo. If there’s no demo, don’t buy it.
Last updated date — A theme that hasn’t been updated in 2+ years may have compatibility issues with newer versions of Jekyll and Ruby.
Documentation quality — Read the docs before you buy. Thin documentation often means the theme is harder to use than it looks.
Support policy — Is support included? For how long? What’s the response time?
Refund policy — Digital products sometimes have no-refund policies. Understand what you’re agreeing to.
Licence terms — Does the theme allow use on client sites? Multiple projects? Check before you purchase.
Is There a Middle Ground?
Yes. Some of the best Jekyll themes are free but have a paid “Pro” version with extra features. This model lets you try before you buy and upgrade when you need more.
At JekyllHub, you can browse both free and premium themes side by side with live demos — so you can see exactly what you are getting before making a decision.
The Honest Bottom Line
For personal blogs, learning projects, and open-source documentation: free themes are excellent and there’s no reason to pay.
For client work, commercial sites, or anywhere that presentation and time savings matter: a $39–$59 premium theme pays for itself in the first hour you don’t spend debugging layout issues.
The mistake is not paying for a premium theme. The mistake is overpaying for a premium theme that doesn’t deliver on its promise. That’s why live demos matter.
<!DOCTYPE html>
Jekyll SEO Guide: How to Rank Higher on Google
A practical SEO guide for Jekyll sites — from jekyll-seo-tag setup to structured data, sitemaps, canonical URLs, Core Web Vitals, and content strategy.
Jekyll gives you a significant SEO head start over WordPress — no bloated plugins, no slow database queries, and near-perfect Core Web Vitals out of the box. But there are still specific things you need to configure to rank well. This guide covers everything.
Why Jekyll Is Already Good for SEO
Before diving into configuration, it helps to understand what you already have:
- Fast load times — Static HTML is served directly from a CDN with no server-side processing
- Clean HTML — No WordPress bloat, no unnecessary
<div>nesting - HTTPS by default — GitHub Pages, Netlify, and Cloudflare Pages all provide free SSL
- Mobile-friendly — Most Jekyll themes are responsive out of the box
These factors directly influence Google’s Core Web Vitals scores, which became a ranking factor in 2021.
Step 1: Install jekyll-seo-tag
jekyll-seo-tag is the foundation of Jekyll SEO. It automatically generates:
<title>tags- Meta descriptions
- Open Graph tags (for social sharing)
- Twitter Card tags
- JSON-LD structured data
Install:
# Gemfile
gem "jekyll-seo-tag"
# _config.yml
plugins:
- jekyll-seo-tag
Add to your layout (before </head>):
{% seo %}
Run bundle install, then bundle exec jekyll build. View source on any page — you should see a block of SEO meta tags generated automatically.
Step 2: Configure _config.yml for SEO
These settings feed jekyll-seo-tag:
# _config.yml
title: "Your Site Name"
description: "A clear, 150-character description of what your site is about."
url: "https://yourdomain.com"
baseurl: ""
author: "Your Name"
twitter:
username: yourhandle
card: summary_large_image
logo: /assets/images/logo.png
social:
name: Your Site Name
links:
- https://twitter.com/yourhandle
- https://github.com/yourusername
The url field is critical — it is used to build absolute URLs for canonical tags and Open Graph URLs.
Step 3: Optimise Every Post’s Front Matter
Each post should have these fields:
---
title: "How to Do X: A Complete Guide for 2026"
description: "A 150–160 character description that includes your target keyword and gives users a reason to click."
date: 2026-06-13
author: "Your Name"
last_modified_at: 2026-06-13
image: /assets/images/blog/your-post-image.jpg
tags:
- primary keyword
- secondary keyword
---
Title tips:
- Include your target keyword near the start
- Keep under 60 characters
- Add the year for freshness signals
- Use power words: “Complete”, “Guide”, “Fast”, “Free”
Description tips:
- 150–160 characters max
- Include your primary keyword naturally
- Write for humans, not bots — the description shows in search results
Step 4: Add a Sitemap
A sitemap tells Google about all the pages on your site.
# Gemfile
gem "jekyll-sitemap"
# _config.yml
plugins:
- jekyll-sitemap
Your sitemap is automatically generated at /sitemap.xml. Submit it to Google Search Console.
To exclude pages from the sitemap, add to their front matter:
sitemap: false
Step 5: Set Up Canonical URLs
Duplicate content confuses Google. Canonical URLs tell Google which version of a page is the authoritative one.
jekyll-seo-tag handles canonicals automatically using your url setting. Verify by checking the source of a built page for:
<link rel="canonical" href="https://yourdomain.com/your-post/" />
Step 6: Optimise for Core Web Vitals
Google uses Core Web Vitals as a ranking signal. The three metrics are:
- LCP (Largest Contentful Paint) — How fast the main content loads. Target: under 2.5 seconds.
- FID/INP (Interaction to Next Paint) — How responsive the page is to clicks. Target: under 200ms.
- CLS (Cumulative Layout Shift) — How much the layout shifts during load. Target: under 0.1.
Jekyll-specific improvements:
Preload fonts:
<link rel="preload" href="/assets/fonts/your-font.woff2" as="font" type="font/woff2" crossorigin>
Lazy load images:
<img src="image.jpg" loading="lazy" alt="Description" width="800" height="400">
Always include width and height attributes to prevent CLS.
Minify CSS: Add to _config.yml:
sass:
style: compressed
Defer JavaScript:
<script src="/assets/js/main.js" defer></script>
Step 7: Add Structured Data (Schema Markup)
Structured data helps Google understand your content and can earn rich snippets in search results.
jekyll-seo-tag adds basic Article schema. For more control, add JSON-LD directly to your post layout:
{% if page.layout == "post" %}
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "{{ page.title | escape }}",
"description": "{{ page.description | escape }}",
"datePublished": "{{ page.date | date_to_xmlschema }}",
"dateModified": "{{ page.last_modified_at | default: page.date | date_to_xmlschema }}",
"author": {
"@type": "Person",
"name": "{{ page.author | default: site.author }}"
},
"publisher": {
"@type": "Organization",
"name": "{{ site.title }}",
"logo": {
"@type": "ImageObject",
"url": "{{ site.url }}{{ site.logo }}"
}
}
}
</script>
{% endif %}
Step 8: Optimise Your Permalink Structure
Shorter, keyword-rich URLs rank better than long, dated ones.
Recommended:
# _config.yml
permalink: /blog/:title/
This gives you URLs like /blog/how-to-install-jekyll-theme/ instead of /2026/06/01/how-to-install-jekyll-theme/.
Avoid changing permalink structure on an existing site without setting up 301 redirects — changing URLs resets the SEO value those pages have accumulated.
Step 9: Internal Linking Strategy
Internal links distribute “link equity” across your site and help Google discover content.
Best practices:
- Link to related posts within your content using descriptive anchor text
- Add a “Related posts” section at the bottom of each post
- Link from high-traffic pages (homepage, popular posts) to newer content
In Jekyll, you can link to other posts using post_url:
[How to Install a Jekyll Theme]({% post_url 2026-06-01-how-to-install-jekyll-theme %})
This will throw a build error if the post doesn’t exist, which is helpful for catching broken links.
Step 10: Set Up Google Search Console
- Go to Google Search Console
- Add your property (use the URL prefix method)
- Verify ownership by adding a meta tag to your
<head>or uploading an HTML file - Submit your sitemap at
yourdomain.com/sitemap.xml - Wait 1–3 days for Google to crawl and index your site
Once indexed, use the Coverage report to find crawl errors and the Performance report to see which queries drive traffic.
Jekyll SEO Plugins Worth Using
| Plugin | Purpose |
|---|---|
jekyll-seo-tag |
Meta tags, Open Graph, Twitter Cards, JSON-LD |
jekyll-sitemap |
Auto-generated sitemap.xml |
jekyll-feed |
RSS feed for subscribers and search engines |
jekyll-redirect-from |
301 redirects when you change URLs |
jekyll-last-modified-at |
Accurate last_modified_at dates for structured data |
Content Strategy for Jekyll Sites
Technical SEO only gets you so far. Content quality is what drives rankings in 2026.
Target long-tail keywords — Instead of “Jekyll theme”, target “best Jekyll theme for portfolio 2026”. Lower competition, higher intent.
Answer questions completely — Google rewards comprehensive answers. If a topic has 5 sub-questions, answer all 5 in one post.
Update existing posts — Refreshing content with last_modified_at dates signals freshness to Google.
Build backlinks — Share posts in relevant communities (Reddit’s r/webdev, HackerNews, dev.to) to earn inbound links.
Jekyll’s clean HTML and fast load times give you a technical SEO advantage from day one. With the right configuration, you can outrank WordPress sites with far fewer resources.
Ready to start with a well-optimised Jekyll theme? Browse themes on JekyllHub →
References
<!DOCTYPE html>
How to Migrate from WordPress to Jekyll (Complete Guide)
Step-by-step guide to migrating your WordPress blog or site to Jekyll — export your content, convert posts, set up redirects, and deploy to GitHub Pages.
Moving from WordPress to Jekyll is one of the most common migrations in the static site world — and for good reason. Jekyll sites are faster, cheaper to host, more secure, and far simpler to maintain. This guide walks through every step of the migration.
Why Migrate from WordPress to Jekyll?
WordPress powers 43% of the web, but it comes with real costs:
- Hosting: WordPress needs a PHP/MySQL server — minimum $5–15/month
- Maintenance: Core, theme, and plugin updates are constant
- Security: WordPress is the most targeted CMS on the internet
- Performance: Even with caching, WordPress is slower than a static site
Jekyll produces plain HTML files that you can host free on GitHub Pages, Netlify, or Cloudflare Pages. There are no databases, no PHP, and nothing to patch.
Before You Start: What You Need
- Your WordPress admin credentials
- Basic comfort with the command line
- Git installed locally
- Ruby and Jekyll installed (see how to install Jekyll)
Step 1: Export Your WordPress Content
In WordPress Admin, go to Tools → Export.
Select All Content and click Download Export File. You will get an .xml file — this contains all your posts, pages, categories, tags, and metadata.
Step 2: Convert WordPress Export to Jekyll Posts
Use the official Jekyll importer:
gem install jekyll-import hpricot open_uri_redirections
Then run:
ruby -r rubygems -e 'require "jekyll-import";
JekyllImport::Importers::WordpressDotCom.run({
"source" => "wordpress-export.xml",
"no_fetch_images" => false,
"assets_folder" => "assets/images"
})'
This creates a _posts/ folder with all your WordPress posts converted to Markdown files, preserving titles, dates, categories, and tags.
Step 3: Review and Clean Up the Imported Posts
The importer does a good job but you will need to review:
Front matter — Posts will have front matter like:
---
layout: post
title: "My Post Title"
date: 2024-03-15 12:00:00 +0000
categories:
- Tech
tags:
- jekyll
---
This is correct. You may want to add a description: field for SEO.
Images — If you set no_fetch_images: false, images will be downloaded to assets/images/. Check that the paths in your posts match where the files landed.
HTML vs Markdown — The importer converts to HTML, not Markdown. Posts will still render correctly, but you may want to clean them up for readability. Tools like Pandoc can convert HTML to Markdown:
pandoc -f html -t markdown post.html -o post.md
Shortcodes — WordPress shortcodes like [gallery] or [caption] will not convert automatically. Search your posts for [ and fix them manually.
Step 4: Set Up Your Jekyll Site
Create a new Jekyll site or pick a theme from JekyllHub:
jekyll new my-site
cd my-site
Copy your converted _posts/ folder into the new site:
cp -r /path/to/imported/_posts/* _posts/
Step 5: Migrate Your Categories and Tags
Jekyll handles categories and tags in front matter. If the importer created a _categories/ or _tags/ folder, check that the naming matches your post front matter.
To generate tag and category archive pages, add the jekyll-archives plugin:
# Gemfile
gem "jekyll-archives"
# _config.yml
jekyll-archives:
enabled:
- categories
- tags
layouts:
category: archive-taxonomy
tag: archive-taxonomy
Step 6: Set Up Redirects From Old WordPress URLs
WordPress uses URLs like /2024/03/my-post/ or /?p=123. Jekyll’s default URL structure is /year/month/day/title/. You need redirects so old links and search rankings don’t break.
Option A: Jekyll redirect-from plugin
gem "jekyll-redirect-from"
Add the old URL to each post’s front matter:
redirect_from:
- /2024/03/15/my-post/
- /?p=1234
Option B: Netlify redirects
If deploying to Netlify, create a _redirects file:
/2024/03/15/my-post/ /blog/my-post/ 301
/?p=1234 /blog/my-post/ 301
Option C: Match WordPress URL structure
Set your Jekyll permalink to match WordPress:
# _config.yml
permalink: /:year/:month/:day/:title/
This preserves your old URLs with no redirects needed.
Step 7: Migrate Your WordPress Pages
The importer also creates pages in a _pages/ folder (or at the root level). Review:
about.mdcontact.md- Any custom pages
Make sure each has correct front matter and a layout assigned.
Step 8: Handle WordPress Comments
Jekyll does not have a built-in comment system. Your options:
- Disqus — easiest to migrate (Disqus can import WordPress comment exports)
- Giscus — uses GitHub Discussions, free and privacy-friendly
- Utterances — GitHub Issues-based, simple to set up
- No comments — many blogs that migrate to Jekyll simply drop comments
For Giscus, add to your post layout:
<script src="https://giscus.app/client.js"
data-repo="username/repo"
data-repo-id="YOUR_REPO_ID"
data-category="Comments"
data-category-id="YOUR_CATEGORY_ID"
data-mapping="pathname"
data-theme="light"
crossorigin="anonymous"
async>
</script>
Step 9: Migrate Your WordPress Menu
WordPress menus become simple YAML in Jekyll. In _data/navigation.yml:
main:
- title: "Home"
url: /
- title: "Blog"
url: /blog/
- title: "About"
url: /about/
- title: "Contact"
url: /contact/
Then in your header template:
{% for item in site.data.navigation.main %}
<a href="{{ item.url }}">{{ item.title }}</a>
{% endfor %}
Step 10: Deploy to GitHub Pages
- Create a new GitHub repository
- Push your Jekyll site to the
mainbranch - In the repo Settings → Pages, set Source to GitHub Actions
- GitHub will detect your Jekyll site and deploy automatically
Your site is now live at https://username.github.io/repo-name/.
For a custom domain, add a CNAME file to your repo root:
yourdomain.com
Then point your domain’s DNS to GitHub Pages.
After Migration: SEO Checklist
- Submit new sitemap to Google Search Console:
yourdomain.com/sitemap.xml(generated byjekyll-sitemapplugin) - Remove WordPress site from Google’s index only after confirming redirects are working
- Check 301 redirects — verify old URLs redirect to new URLs with a tool like httpstatus.io
- Update internal links — search posts for your old domain name and update to relative links
- Add structured data — use
jekyll-seo-tagfor automatic Open Graph and Twitter Card meta tags
Common Migration Pitfalls
Encoding issues — WordPress content sometimes contains smart quotes and em dashes in Windows-1252 encoding. If you see garbled characters, open affected files and save as UTF-8.
Broken image paths — Double-check all image paths after migration. Use bundle exec jekyll build and check the output for 404s.
Date format — Jekyll requires YYYY-MM-DD dates. WordPress exports use a different format — the importer handles this, but check a few posts to be sure.
Ready to Pick a Jekyll Theme?
One of the best parts of migrating to Jekyll is choosing a clean, modern theme. Browse the collection at JekyllHub — filter by blog, portfolio, or documentation themes with live demos.
<!DOCTYPE html>
25 Common Jekyll Errors and How to Fix Them Fast
Running into Jekyll build errors? This guide covers the 25 most common Jekyll errors with exact fixes — from dependency issues to Liquid syntax crashes.
Jekyll errors can stop your build dead in its tracks. Whether you are setting up for the first time or have been running Jekyll for years, these errors show up repeatedly. This guide covers the 25 most common ones — with exact error messages and step-by-step fixes.
Dependency and Installation Errors
1. bundler: command not found
Full error:
bundler: command not found: jekyll
Fix: Jekyll runs through Bundler. You need both installed:
gem install bundler jekyll
If you already have them and still see this, run:
bundle exec jekyll serve
Always use bundle exec to ensure Jekyll runs in the context of your project’s gems.
2. Could not find gem 'jekyll (~> 4.0)'
Fix: Run bundle install in your project directory:
bundle install
If the error persists, check your Gemfile includes:
gem "jekyll", "~> 4.0"
3. Gem::FilePermissionError
Full error:
You don't have write permissions for the /usr/bin directory.
Fix: Never install gems with sudo. Instead, use a user-level gem path:
echo 'export GEM_HOME="$HOME/.gem"' >> ~/.bashrc
echo 'export PATH="$HOME/.gem/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
gem install bundler jekyll
4. LoadError: cannot load such file -- webrick
This happens in Ruby 3.0+ where WEBrick was removed from the standard library.
Fix: Add WEBrick to your Gemfile:
gem "webrick"
Then run bundle install.
5. Liquid Exception: No such file or directory @ rb_sysopen
Fix: Check that all files referenced in your _config.yml (like favicon, logo, or custom include files) actually exist at the paths you specified.
Build and Configuration Errors
6. Configuration file: none
Jekyll cannot find _config.yml. This usually means you are running Jekyll from the wrong directory.
Fix: cd into your project’s root folder (where _config.yml lives) before running:
cd my-jekyll-site
bundle exec jekyll serve
7. Invalid date '': (Post)
A post has an empty or malformed date: field in its front matter.
Fix: Check your post’s front matter:
---
date: 2026-06-11
---
Also make sure your filename follows the YYYY-MM-DD-title.md pattern.
8. 'layout' key in front matter defaults is not a string
Fix: Ensure layout values in _config.yml are quoted strings:
defaults:
- scope:
path: ""
type: "posts"
values:
layout: "post" # must be a quoted string
9. Build Warning: Layout 'post' requested in _posts/... does not exist
Fix: Make sure you have a _layouts/post.html file. If you are using a gem-based theme, run:
bundle info --path your-theme-name
This shows you all the files the theme provides. If post.html is missing from your local _layouts/ folder, the theme should provide it.
10. Conflict: The following destination is shared by multiple files
Two files are trying to write to the same output path.
Fix: Check for duplicate slugs — for example, about.md and about/index.md both produce /about/. Remove or rename one of them.
Liquid Template Errors
11. Liquid Exception: Liquid syntax error: Unknown tag 'xyz'
An unrecognised Liquid tag is in your template.
Fix: Either you have a typo, the plugin providing that tag is not installed, or it is not listed in your Gemfile. Check the plugin documentation and add it:
gem "jekyll-plugin-name"
Then add it to _config.yml:
plugins:
- jekyll-plugin-name
12. Liquid Warning: Liquid syntax error (line X): Variable '{{' was not properly terminated
A Liquid tag is malformed — often a missing }} or %}.
Fix: Find line X in the file mentioned and check for unclosed tags. A common mistake:
# Wrong
{{ page.title }
# Right
{{ page.title }}
13. Liquid Exception: undefined method 'to_liquid'
An object is being passed to Liquid that it cannot serialise.
Fix: This often happens with custom plugins. Check that your plugin’s return values are standard Ruby types (strings, arrays, hashes) that Liquid can handle.
14. Liquid::ArgumentError: wrong number of arguments
A Liquid filter is being called with the wrong number of arguments.
Fix: Check the filter documentation. For example, slice takes two arguments:
{{ "Jekyll" | slice: 0, 3 }} # correct
Front Matter Errors
15. YAML Exception reading _posts/...: did not find expected key
Invalid YAML in your post’s front matter.
Fix: YAML is whitespace-sensitive. Common mistakes:
# Wrong — tab indentation
tags:
- jekyll
# Right — space indentation
tags:
- jekyll
Use a YAML validator like yaml-online-parser.appspot.com to check your front matter.
16. Error: invalid byte sequence in UTF-8
A file contains characters that are not valid UTF-8.
Fix: Open the file in a text editor that shows encoding (VS Code, Sublime Text). Save the file as UTF-8. You can also run:
file -i your-file.md
to check the detected encoding.
17. Front matter not being parsed (content appearing as raw ---)
Jekyll only parses front matter if the file starts with --- on the very first line, with no space or BOM character before it.
Fix: Open the file and delete any blank lines before the opening ---. If the file was created on Windows, check for a BOM character using:
hexdump -C your-file.md | head
GitHub Pages Specific Errors
18. Page build failed: unknown tag 'some_tag'
GitHub Pages only supports a subset of Jekyll plugins. A plugin you are using locally is not allowed on GitHub Pages.
Fix: Either use only the allowed plugins, or switch to deploying via GitHub Actions where you can use any plugin.
19. GitHub Pages: Your site is having problems building: The value 'X' was passed to a date filter that cannot be parsed as a date
A date field in your content is malformed.
Fix: Find the file and fix the date:
date: 2026-06-11 # ISO format only, no quotes needed
20. Site deploys but shows old content
GitHub Pages can cache aggressively.
Fix: Hard refresh (Ctrl+Shift+R or Cmd+Shift+R). If the problem persists for more than 10 minutes, check the Actions tab in your GitHub repo for build errors.
Asset and URL Errors
21. CSS/JS not loading on live site (works locally)
Usually a baseurl misconfiguration.
Fix: In _config.yml, set:
url: "https://yourdomain.com"
baseurl: "" # leave empty unless site lives in a subdirectory
For a GitHub Pages project site (e.g. username.github.io/project), set:
baseurl: "/project"
22. Images 404 on live site
Fix: Always use {{ site.baseurl }}/assets/images/photo.jpg in your templates rather than /assets/images/photo.jpg. The baseurl prefix is needed for project sites.
23. Error: ENOENT: no such file or directory, scandir '...'
A directory referenced in _config.yml (like collections_dir) does not exist.
Fix: Create the missing directory:
mkdir -p _collections
Or correct the path in _config.yml.
Server and Watch Errors
24. Address already in use - bind(2) for 127.0.0.1:4000
Another process is using port 4000 (usually a previous Jekyll instance that didn’t shut down cleanly).
Fix: Kill the other process:
lsof -ti:4000 | xargs kill -9
Or run Jekyll on a different port:
bundle exec jekyll serve --port 4001
25. --watch not detecting changes
Jekyll’s file watcher sometimes misses changes, especially on case-insensitive filesystems (macOS) or inside Docker containers.
Fix: Use the --force-polling flag:
bundle exec jekyll serve --livereload --force-polling
Quick Reference: Most Common Fixes
| Symptom | Most likely fix |
|---|---|
command not found |
gem install bundler jekyll |
| Build fails silently | Run bundle exec jekyll build --trace for full error output |
| Local works, GitHub Pages fails | Check allowed plugins list |
| CSS not loading | Fix baseurl in _config.yml |
| YAML errors | Validate front matter with a YAML linter |
| Port 4000 in use | lsof -ti:4000 | xargs kill -9 |
Still stuck?
Run Jekyll with full trace output to get the most helpful error message:
bundle exec jekyll build --trace
This prints the complete stack trace and usually points directly to the file and line causing the problem.
Browse Jekyll themes on JekyllHub to start fresh with a well-tested, error-free base.
<!DOCTYPE html>
Jekyll Theme Setup Tutorial: Complete Walkthrough (2026)
A complete Jekyll theme setup tutorial — from installing Jekyll and picking a theme to configuring your site, adding content, and going live on GitHub Pages.
This tutorial walks you through the complete process of setting up a Jekyll theme — from a blank machine to a fully configured, live website. No prior Jekyll experience needed.
What You Will Need
- A computer running macOS, Windows, or Linux
- A GitHub account (free)
- Basic comfort with the terminal/command prompt
- About 30 minutes
Part 1: Install Jekyll
Jekyll runs on Ruby. Install it first.
macOS
Apple ships an old version of Ruby — use rbenv for a proper install:
# Install Homebrew if you don't have it
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Install rbenv and Ruby
brew install rbenv ruby-build
rbenv install 3.2.0
rbenv global 3.2.0
# Add rbenv to your shell
echo 'eval "$(rbenv init -)"' >> ~/.zshrc
source ~/.zshrc
# Install Jekyll
gem install jekyll bundler
Windows
- Download RubyInstaller (Ruby+Devkit version)
- Run the installer and follow the prompts
- Open a new command prompt and run:
gem install jekyll bundler
Linux (Ubuntu/Debian)
sudo apt-get update
sudo apt-get install ruby-full build-essential zlib1g-dev
echo '# Install Ruby Gems to ~/gems' >> ~/.bashrc
echo 'export GEM_HOME="$HOME/gems"' >> ~/.bashrc
echo 'export PATH="$HOME/gems/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
gem install jekyll bundler
Verify your install:
jekyll -v
ruby -v
For detailed platform-specific instructions, see the official Jekyll installation guide.
Part 2: Choose a Jekyll Theme
Before creating your site, pick a theme that matches your goals. Browse JekyllHub’s full theme collection or use these quick picks:
| Use Case | Theme | Stars |
|---|---|---|
| Tech / developer blog | Chirpy | 7,000+ |
| Personal blog / portfolio | Hydejack | 8,000+ |
| All-purpose blog | Minimal Mistakes | 12,000+ |
| Academic / research | al-folio | 10,000+ |
| Documentation | Just the Docs | 7,000+ |
| Beginner-friendly | Jekyll Now | 8,400+ |
Part 3: Set Up Your Site
There are two main approaches depending on the theme you chose.
Approach A: Gem-based themes (Minimal Mistakes, etc.)
# Create a new Jekyll site
jekyll new my-site
cd my-site
Open Gemfile and replace the default theme:
# Remove this line:
# gem "minima"
# Add your theme:
gem "minimal-mistakes-jekyll"
Open _config.yml and set the theme:
theme: minimal-mistakes-jekyll
Install and run:
bundle install
bundle exec jekyll serve
Approach B: Fork-based themes (Chirpy, al-folio, etc.)
Most modern themes recommend starting from their template:
# Example: Chirpy
git clone https://github.com/cotes2020/chirpy-starter my-site
cd my-site
bundle install
bundle exec jekyll serve
Visit http://localhost:4000 to preview your site.
Part 4: Configure Your Site
Open _config.yml — this is the control centre for your Jekyll site. Update these essential fields:
# Site identity
title: "Your Site Name"
tagline: "A short description"
description: >-
A longer description of your site used in meta tags and search results.
Keep it between 120–160 characters.
# Your URL (critical for SEO and social sharing)
url: "https://yourusername.github.io"
baseurl: ""
# Author information
author:
name: "Your Name"
email: "you@example.com"
bio: "A short bio"
avatar: "/assets/images/avatar.jpg"
# Social profiles
github_username: yourusername
twitter_username: yourusername
linkedin_username: yourusername
# Timezone and language
timezone: America/New_York
lang: en
# Build settings
permalink: /:year/:month/:day/:title/
paginate: 10
# Plugins
plugins:
- jekyll-feed
- jekyll-sitemap
- jekyll-seo-tag
SEO tip: The
urlfield must be set correctly forjekyll-seo-tagto generate proper canonical URLs and Open Graph tags. Never leave it ashttp://localhost:4000in production.
Part 5: Customise the Look
Change colours
Most themes expose SCSS variables. Create assets/css/main.scss:
---
---
// Override variables before importing the theme
$primary-color: #2563eb;
$link-color: #2563eb;
$background-color: #ffffff;
@import "your-theme-name";
Override a layout
# Find where the theme gem is installed
bundle info --path your-theme-gem
# Copy the layout you want to change
cp /path/to/theme/_layouts/post.html _layouts/post.html
# Edit your local copy freely
Part 6: Add Your First Post
Create a file in _posts/ named YYYY-MM-DD-your-title.md:
---
title: "My First Post"
date: 2026-06-10 10:00:00 +0000
categories: [Blog]
tags: [jekyll, first-post]
description: "A brief description for SEO and social sharing"
---
This is my first Jekyll post. Write your content here in Markdown.
## A Section Heading
Your content goes here.
```code
echo "Code blocks work too"
Jekyll renders this into HTML automatically when you save.
---
## Part 7: Deploy to GitHub Pages
### Step 1: Create a GitHub repository
Go to [github.com/new](https://github.com/new).
- Name it `yourusername.github.io` for a personal site
- Leave it public
- Do not add a README (you already have files)
### Step 2: Push your site
```bash
git init
git add .
git commit -m "Initial site setup with Jekyll theme"
git branch -M main
git remote add origin https://github.com/yourusername/yourusername.github.io.git
git push -u origin main
Step 3: Enable GitHub Pages
In your repository, go to Settings → Pages:
- Source: Deploy from a branch
- Branch: main / root
- Click Save
Your site goes live at https://yourusername.github.io within 2 minutes.
Part 8: Verify Everything Works
After deployment, check:
- Site loads at
https://yourusername.github.io - Posts appear on the homepage
- Images load correctly
- Navigation links work
- Site looks correct on mobile (use browser DevTools)
- View source and confirm
<meta name="description">is populated
Submit to Google Search Console
Register your site at Google Search Console and submit your sitemap:
https://yourusername.github.io/sitemap.xml
This tells Google your site exists and accelerates indexing.
Troubleshooting Common Setup Issues
| Problem | Solution |
|---|---|
Liquid Exception on build |
Check front matter YAML syntax — indentation must be consistent |
| CSS not loading | Verify baseurl in _config.yml matches your repository setup |
| Theme not applying | Run bundle update and restart jekyll serve |
| Posts not showing | Confirm filename format: YYYY-MM-DD-title.md and date is not in the future |
| Build fails on GitHub Pages | Check the Actions tab — the error message shows exactly what failed |
What to Do Next
Your site is live. Here is what experienced Jekyll users do next:
- Write 3–5 posts before promoting — gives visitors something to read
- Add a custom domain — set up in GitHub Pages settings and your DNS provider
- Enable comments — Giscus uses GitHub Discussions for free
- Set up Google Analytics — add your measurement ID to
_config.yml - Check your Lighthouse score — run Chrome DevTools → Lighthouse for a performance and SEO audit
Browse More Jekyll Themes
Not happy with your current theme? Browse 70+ Jekyll themes on JekyllHub — with real screenshots, live demos, and GitHub star counts to help you find the perfect fit.
References
<!DOCTYPE html>
Jekyll Blog Setup Guide: From Zero to Live in 30 Minutes (2026)
A complete beginner's guide to setting up a Jekyll blog — installing Jekyll, choosing a theme, writing your first post, and deploying to GitHub Pages for free.
Jekyll is the most popular static site generator for personal blogs — and for good reason. It’s free to host on GitHub Pages, blazing fast, and once set up, publishing a new post takes under a minute. This guide takes you from zero to a live blog in 30 minutes.
What You’ll Build
By the end of this guide you will have:
- A Jekyll blog running locally
- A chosen theme applied
- Your first post published
- The site live on GitHub Pages at
yourusername.github.io
Step 1: Install Ruby and Jekyll (5 minutes)
Jekyll is a Ruby gem, so you need Ruby installed first.
macOS
macOS ships with an old Ruby version. Use rbenv instead:
brew install rbenv ruby-build
rbenv install 3.2.0
rbenv global 3.2.0
gem install jekyll bundler
Windows
Download and install RubyInstaller. Then:
gem install jekyll bundler
Linux (Ubuntu/Debian)
sudo apt-get install ruby-full build-essential
gem install jekyll bundler
Verify your installation:
jekyll -v
# jekyll 4.3.x
Step 2: Create a New Jekyll Site (2 minutes)
jekyll new my-blog
cd my-blog
bundle exec jekyll serve
Visit http://localhost:4000 — you’ll see your new blog with the default Minima theme.
Step 3: Choose and Install a Theme (5 minutes)
The default Minima theme is fine to start, but here are better options depending on your goals:
| Goal | Recommended Theme |
|---|---|
| Developer tech blog | Chirpy |
| Minimal writing focus | Lanyon or Hyde |
| Feature-rich blog | Minimal Mistakes |
| Beautiful cover images | Huxpro |
| Beginner-friendly | Jekyll Now |
Installing Chirpy (example)
# Option 1: Use the Chirpy starter template
git clone https://github.com/cotes2020/chirpy-starter my-blog
cd my-blog
bundle install
bundle exec jekyll serve
Step 4: Configure Your Blog (5 minutes)
Open _config.yml and update the key settings:
title: "My Blog"
tagline: "Writing about code, design, and ideas"
description: "A personal blog by Your Name"
url: "https://yourusername.github.io"
baseurl: ""
author:
name: "Your Name"
email: "you@example.com"
# Social links
github_username: yourusername
twitter_username: yourusername
# Build settings
lang: en
timezone: America/New_York
Save the file and your local preview updates automatically.
Step 5: Write Your First Post (5 minutes)
Jekyll posts live in the _posts/ directory. Create a new file named YYYY-MM-DD-your-post-title.md:
touch _posts/2026-06-01-my-first-post.md
Open the file and add:
---
title: "My First Jekyll Post"
date: 2026-06-01
categories: [Blogging]
tags: [jekyll, first-post]
---
Welcome to my blog! This is my first post written in Markdown.
## Why I Started This Blog
Here's my story...
## What I'll Write About
- Code and development
- Design tips
- Things I'm learning
Save it — your post appears at http://localhost:4000 immediately.
Step 6: Add Pages (2 minutes)
Create an About page:
touch _pages/about.md
---
title: "About"
permalink: /about/
---
Hi, I'm Your Name. I write about code, design, and ideas.
Step 7: Deploy to GitHub Pages (5 minutes)
Step 7a: Create a GitHub repository
Go to github.com/new and create a repository named yourusername.github.io.
Step 7b: Push your blog
cd my-blog
git init
git add .
git commit -m "Initial commit"
git branch -M main
git remote add origin https://github.com/yourusername/yourusername.github.io.git
git push -u origin main
Step 7c: Enable GitHub Pages
Go to your repository → Settings → Pages → set source to Deploy from branch → select main → save.
Your blog is live at https://yourusername.github.io within 2 minutes.
Publishing New Posts
From now on, publishing is simple:
- Create a new file in
_posts/with today’s date in the filename - Write in Markdown
- Commit and push:
git add _posts/2026-06-02-my-second-post.md
git commit -m "Add second post"
git push
GitHub Pages rebuilds your site automatically. Your post is live within 60 seconds.
Recommended Next Steps
Once your blog is live:
- Add Google Analytics — track your traffic from day one
- Set up a custom domain —
yourblog.cominstead ofyourusername.github.io - Add comments — Giscus (GitHub Discussions) is the most popular free option for Jekyll
- Submit your sitemap — go to Google Search Console and submit
https://yourusername.github.io/sitemap.xml - Write consistently — even one post per week compounds significantly over a year
Browse Jekyll Blog Themes
Need a better theme for your blog? Browse our full collection of Jekyll blog themes — with live demos, GitHub star counts, and free vs premium filters.
References
<!DOCTYPE html>
Best Jekyll Themes for a Portfolio Website (2026)
The best Jekyll portfolio themes for designers, developers, photographers, and academics — with live demos, feature breakdowns, and setup guidance.
A portfolio is one of the best use cases for Jekyll. Static files load instantly, hosting is free on GitHub Pages, and the result looks as good as any dynamic site — without the maintenance overhead. Here are the best Jekyll portfolio themes available in 2026.
What Makes a Great Jekyll Portfolio Theme?
Before picking a theme, consider what your portfolio needs:
- Image-forward layout — your work should be the hero
- Responsive design — looks great on mobile and desktop
- Fast loading — first impressions matter
- Easy content updates — adding new projects should take minutes
- GitHub Pages compatibility — for free, zero-maintenance hosting
Best Jekyll Portfolio Themes
1. al-folio — Best for Academics and Researchers
al-folio is the most popular academic portfolio theme on GitHub. It renders publications, projects, CV, and blog posts from simple Markdown and YAML files — with BibTeX citation support built in.
Best for: Researchers, PhD students, professors, academics
Stars: 10,000+
Price: Free (MIT)
Demo: academicpages.github.io
Features:
- Publication list with BibTeX auto-rendering
- Projects grid with tags
- CV page generated from YAML data
- News/updates feed
- Google Scholar integration
2. Hydejack — Best for Developer Portfolios
Hydejack is a premium-quality free Jekyll theme built specifically for developers who want a portfolio and a blog in one. The signature sidebar, smooth page transitions, and dark mode make it one of the most visually distinctive Jekyll themes.
Best for: Developers, designers, tech professionals
Stars: 8,000+
Price: Free (basic) / PRO $99
Demo: hydejack.com
Features:
- Projects showcase with case study pages
- Resume/CV page built from YAML
- Dark mode
- Offline support (PRO)
- Beautiful typography
3. Modern Resume Theme — Best Single-Page Portfolio
Modern Resume Theme is a clean, single-page portfolio and resume Jekyll theme. Everything lives on one page — your bio, skills, experience, education, and projects — making it ideal for a concise professional introduction.
Best for: Job seekers, freelancers, early-career professionals
Stars: 2,000+
Price: Free
Demo: sproogen.github.io/modern-resume-theme
4. Minimal Mistakes — Best All-Purpose Portfolio
Minimal Mistakes is the most flexible Jekyll theme available. Its portfolio layout (collection) lets you showcase projects with full case study pages, categories, and tags. The 9 available skins mean you can achieve very different looks without touching CSS.
Best for: Developers and writers who want a blog + portfolio
Stars: 12,000+
Price: Free
5. Huxpro — Best Cover Image Portfolio Blog
Huxpro brings Ghost’s Casper aesthetic to Jekyll. Each post or project has its own full-screen cover image, creating a magazine-quality portfolio-blog hybrid that stands out from typical developer sites.
Best for: Creatives, writers, developers with strong visual content
Stars: 5,400+
Price: Free
Demo: huxpro.github.io
6. Online CV — Best Minimal Resume Portfolio
Online CV is a single-page Jekyll CV theme that is clean, readable, and completely content-focused. No distractions — just your skills, experience, and contact information presented professionally.
Best for: Job seekers, consultants
Stars: 2,200+
Price: Free
How to Set Up a Jekyll Portfolio on GitHub Pages
Step 1: Fork the theme repository
Go to your chosen theme’s GitHub repository and click Fork.
Step 2: Rename the repository
Rename it to yourusername.github.io to get a free custom domain.
Step 3: Edit _config.yml
title: "Your Name"
tagline: "Designer & Developer"
description: "Portfolio and blog of Your Name"
url: "https://yourusername.github.io"
author:
name: "Your Name"
email: "you@example.com"
github: yourusername
linkedin: yourusername
Step 4: Add your projects
Most portfolio themes store projects in _projects/ or _portfolio/:
---
title: "My Project"
date: 2026-01-01
image: /assets/images/project.jpg
tags: [React, Node.js, PostgreSQL]
link: https://myproject.com
---
Description of the project and what you built.
Step 5: Deploy
Push your changes — GitHub Pages builds and deploys automatically within 2 minutes.
Tips for a High-Converting Portfolio
- Lead with your best work — put your 3 strongest projects first
- Write case studies, not just screenshots — explain the problem you solved
- Keep contact info visible — don’t make visitors search for it
- Use real screenshots — avoid mockups that don’t show actual work
- Keep it fast — compress images, avoid heavy JS libraries
Browse All Jekyll Portfolio Themes
See the full collection of Jekyll portfolio themes on JekyllHub, including both free and premium options with live demos and GitHub star counts.
References
<!DOCTYPE html>
Jekyll vs Hugo: Full Comparison for 2026 (Themes, Speed, Hosting)
A complete comparison of Jekyll and Hugo — build speed, theme ecosystems, GitHub Pages support, customisation ease, and which static site generator wins for your use case.
Jekyll and Hugo are the two most popular static site generators. Both produce fast, secure static websites — but they approach it differently. This comparison focuses specifically on themes: quality, variety, customisation, and which ecosystem better fits your workflow.
The Core Difference
Jekyll is built on Ruby and uses the Liquid templating language. It’s the oldest major static site generator and has native GitHub Pages support — push a repository and your site is live with no build configuration.
Hugo is built on Go and uses Go templates. It is dramatically faster than Jekyll — a site with 10,000 pages builds in seconds. But it requires more setup for deployment and has a steeper learning curve.
Theme Ecosystems
Jekyll Themes
Jekyll has a mature theme ecosystem built around:
- GitHub repositories — fork or clone to get started
- Ruby gems — install via Bundler, override files as needed
- GitHub Pages themes — 12 official themes hosted by GitHub
Notable Jekyll themes include Minimal Mistakes (27k stars), Chirpy (7k+ stars), and Just the Docs for documentation.
Browse the complete collection at JekyllHub.
Hugo Themes
Hugo’s theme directory at themes.gohugo.io lists 400+ themes. They are installed via Hugo modules or Git submodules:
git submodule add https://github.com/adityatelange/hugo-PaperMod themes/PaperMod
Hugo themes tend to have more polished designs for business and portfolio sites, but the Jekyll ecosystem has deeper tooling for documentation and academic sites.
Build Speed
This is Hugo’s biggest advantage:
| Site Size | Jekyll Build Time | Hugo Build Time |
|---|---|---|
| 100 posts | ~5 seconds | <1 second |
| 1,000 posts | ~60 seconds | ~2 seconds |
| 10,000 posts | ~10 minutes | ~10 seconds |
For personal blogs and small sites (under 500 pages), Jekyll’s speed is perfectly acceptable. For large content sites, Hugo’s speed advantage becomes significant.
Ease of Theme Customisation
Jekyll
Jekyll’s override system is intuitive for Ruby developers:
# Copy any theme file to override it
bundle info --path your-theme
cp /path/to/theme/_layouts/post.html _layouts/post.html
Edit the copy — Jekyll uses it automatically. No need to fork the theme.
Hugo
Hugo uses a similar override concept. Place files in layouts/ to override theme templates:
my-site/
layouts/
_default/
single.html # Overrides theme's single.html
Hugo’s Go templates are more powerful but harder to learn than Liquid. Features like pipes, partials, and shortcodes require reading documentation carefully.
GitHub Pages Support
Jekyll: Native support. Push your repository, GitHub Pages builds it automatically with no configuration needed.
Hugo: Requires GitHub Actions. You need to set up a workflow file to build Hugo and deploy the output. More setup upfront, but it works reliably once configured.
If you want zero-configuration deployment, Jekyll is the clear winner.
SEO and Performance
Both generators produce clean, fast HTML. The performance of the final site depends more on the theme than the generator.
- Jekyll’s
jekyll-seo-tagprovides structured data, Open Graph, and Twitter Card support automatically. - Hugo has built-in SEO features in most popular themes, with no plugin required.
Neither has a meaningful SEO advantage over the other.
Which Should You Choose?
Choose Jekyll if:
- You want GitHub Pages native deployment
- You are building a blog, portfolio, or documentation site
- You prefer a large existing theme library
- You are new to static site generators
- You want the largest community support
Choose Hugo if:
- Your site will have 1,000+ pages
- Build speed is critical to your workflow
- You prefer Go/JavaScript tooling
- You want more polished business/portfolio themes
- You are comfortable with a steeper learning curve
The Honest Verdict
For most personal sites, blogs, and portfolios — Jekyll is the better starting point. The GitHub Pages integration eliminates hosting complexity, and the theme ecosystem is deep enough for almost any use case.
Hugo becomes the better choice at scale, or if you need the performance headroom for a large content site.
Whatever you choose, the most important decision is picking a theme that fits your content. Browse our Jekyll theme collection to find the right starting point.
References
<!DOCTYPE html>
Best Static Site Themes in 2026 (Jekyll, Hugo & Eleventy)
A curated list of the best static site themes across Jekyll, Hugo, and Eleventy — covering blogs, portfolios, documentation, and business sites.
Static site generators have matured into a serious alternative to WordPress and other CMS platforms. Jekyll, Hugo, and Eleventy each have strong theme ecosystems — here are the best themes available in 2026 across all three platforms.
Best Jekyll Themes
Jekyll remains the most GitHub-native static site generator, with deep integration into GitHub Pages and a large library of community themes.
Best Jekyll Blog Themes
Chirpy — The most popular Jekyll blog theme in active development. Features dark mode, full-text search, categories, tags, table of contents, and PWA support. Free and MIT licensed.
Minimal Mistakes — The most-starred Jekyll theme on GitHub. Flexible two-column layout with 9 skins, extensive documentation, and support for dozens of layouts. Free.
Hydejack — A premium Jekyll blog theme with a signature sidebar, smooth page transitions, and exceptional typography. The PRO version adds offline support and a project showcase. Free/Premium.
Clean Blog — Ported from Start Bootstrap, this is a clean, distraction-free blog theme with beautiful cover images per post. Free.
Best Jekyll Portfolio Themes
al-folio — The leading Jekyll portfolio theme for academics and researchers. Supports publications, projects, CV, and BibTeX citations. Free.
Hydejack — Doubles as an excellent portfolio theme with its projects section and full-screen card layouts.
Modern Resume Theme — A single-page resume and portfolio theme. Clean, professional, and GitHub Pages compatible. Free.
Best Jekyll Documentation Themes
Just the Docs — The definitive Jekyll documentation theme. Instant search, nested navigation, customisable colour schemes, and accessible design. Used by hundreds of open-source projects. Free.
Best Hugo Themes
Hugo is the fastest static site generator — build times are measured in milliseconds. Its theme ecosystem is extensive.
PaperMod
One of the most popular Hugo themes for blogs. Minimal, fast, and featureful — supporting dark mode, social cards, search, and multilingual content. Free on GitHub.
Docsy
Google’s official Hugo theme for technical documentation. Used by Kubernetes, gRPC, and other major projects. Feature-rich with versioned docs support. Free.
Congo
A modern Hugo theme inspired by Tailwind CSS. Beautiful typography, dark mode, and an excellent authoring experience. Free.
Blowfish
A highly customisable Hugo blog theme with multiple homepage layouts, rich taxonomies, and excellent Lighthouse scores. Free.
Best Eleventy (11ty) Themes
Eleventy is the most flexible static site generator — it supports multiple templating languages and has no opinion on your data layer.
Eleventy Base Blog
The official Eleventy starter template. Minimal, fast, and a great foundation for customisation. Free.
Slinkity
Combines Eleventy with component frameworks (React, Vue, Svelte). For developers who want the speed of static sites with the interactivity of modern JS frameworks.
Hylia
A clean, accessible Eleventy blog starter with a focus on web performance and progressive enhancement. Free.
Static Site Theme Comparison
| Generator | Build Speed | Theme Variety | Learning Curve | GitHub Pages |
|---|---|---|---|---|
| Jekyll | Moderate | Large | Low–Medium | Native ✓ |
| Hugo | Very fast | Large | Medium | Via Actions |
| Eleventy | Fast | Growing | Medium–High | Via Actions |
How to Choose the Right Theme
Choose Jekyll if:
- You want GitHub Pages native hosting
- You prefer Ruby/Liquid templating
- You want the largest community support
Choose Hugo if:
- Build speed matters (large sites with 1,000+ pages)
- You prefer Go templating
- You want the widest choice of premium themes
Choose Eleventy if:
- You want maximum flexibility
- You prefer JavaScript/Node.js tooling
- You want to mix templating languages
Browse Jekyll Themes on JekyllHub
JekyllHub is the most comprehensive Jekyll theme directory — with 70+ curated themes across every category, real screenshots, and GitHub star counts.
- All Jekyll Themes
- Free Jekyll Themes
- Jekyll Blog Themes
- Jekyll Portfolio Themes
- Jekyll Documentation Themes
References
<!DOCTYPE html>
Jekyll Theme vs WordPress Theme: Which Should You Choose in 2026?
An honest comparison of Jekyll themes vs WordPress themes — covering speed, cost, ease of use, SEO, and security to help you make the right choice for your project.
Choosing between Jekyll and WordPress is one of the most common decisions developers and bloggers face. Both power millions of websites — but they are fundamentally different tools suited to different needs. This comparison will help you decide which is right for your project.
At a Glance
| Jekyll | WordPress | |
|---|---|---|
| Type | Static site generator | Dynamic CMS |
| Hosting | GitHub Pages (free), Netlify, Cloudflare | Requires PHP server |
| Cost | Free to near-free | Hosting + plugins + themes add up |
| Speed | Extremely fast (static files) | Slower (database queries) |
| Security | No server-side attack surface | Regular patching required |
| Learning curve | Moderate (requires terminal comfort) | Low (visual editor) |
| Theme ecosystem | Hundreds of free themes | Thousands of themes |
| Plugins | Limited | 60,000+ plugins |
Speed
Jekyll wins decisively on speed. A Jekyll site serves pre-built HTML files with no database queries, no PHP execution, and no plugin overhead. A typical Jekyll page loads in under 200ms.
WordPress serves pages dynamically — every request hits the database, runs PHP, and executes plugins. Even with caching plugins like WP Rocket or W3 Total Cache, a WordPress site rarely matches a Jekyll site’s raw speed.
Google Core Web Vitals increasingly factor into search rankings. Jekyll sites typically score 95–100 on Lighthouse performance out of the box. WordPress sites often require significant optimisation to reach the same scores.
According to HTTP Archive, the median WordPress page is 2.5× heavier than the median static site page.
Security
Jekyll has no server-side code, no database, and no admin login page. There is nothing for attackers to exploit. Once deployed, a Jekyll site is essentially immune to SQL injection, plugin vulnerabilities, and brute-force login attacks.
WordPress is the most attacked CMS on the internet. According to Sucuri’s 2023 Website Threat Research Report, WordPress accounted for 96.2% of infected CMS websites. Regular core updates, plugin updates, and security plugins are mandatory maintenance tasks.
Cost
Jekyll:
- GitHub Pages hosting: free
- Netlify/Cloudflare Pages: free for personal projects
- Premium themes: $0–$79 one-time
- No recurring hosting costs for most projects
WordPress:
- Managed hosting (WP Engine, Kinsta): $25–$100/month
- Premium theme: $30–$80 one-time or annual
- Essential plugins (SEO, caching, security, backups): $100–$300/year
- Developer maintenance: variable
For a personal blog or portfolio, Jekyll can cost you nothing. A comparable WordPress setup typically runs $400–$1,200 per year.
Ease of Use
WordPress wins here. Its block editor (Gutenberg) lets non-technical users publish content without touching code. The admin dashboard handles everything from media uploads to plugin configuration through a visual interface.
Jekyll requires comfort with:
- The terminal (command line)
- Markdown for writing posts
- YAML for configuration
- Git for version control
If you can handle these, Jekyll is extremely pleasant to work with. If you cannot, WordPress is the better choice.
SEO
Both platforms can achieve excellent SEO results. The advantage lies in execution:
Jekyll SEO advantages:
- Faster page speed → better Core Web Vitals
- Cleaner HTML output
jekyll-seo-taghandles meta tags, Open Graph, and structured data automatically- No bloated plugin conflicts
WordPress SEO advantages:
- Yoast SEO and Rank Math provide visual guidance for non-developers
- Easier to manage large sites with hundreds of pages
- Built-in redirect management
For developers comfortable with configuration files, Jekyll’s SEO setup is cleaner and more maintainable.
Content Management
WordPress’s database-driven CMS makes it genuinely better for:
- Large editorial teams
- Scheduled publishing
- Custom post types and taxonomies
- E-commerce (WooCommerce)
- Membership sites
Jekyll stores all content as Markdown files in a Git repository. This is perfect for developer blogs and documentation but awkward for a team of non-technical writers.
When to Choose Jekyll
- Personal blog or portfolio
- Developer documentation
- Project landing page
- GitHub Pages deployment
- Sites where speed and security are priorities
- You are comfortable with Git and Markdown
When to Choose WordPress
- Large editorial team
- E-commerce site
- You need a visual content editor
- Extensive plugin requirements
- Client sites where non-technical users manage content
Jekyll Themes vs WordPress Themes
Jekyll themes are typically:
- Distributed as Ruby gems or GitHub repositories
- Modified through SCSS and Liquid templates
- Smaller and faster by default
- Less visual to customise
WordPress themes:
- Available through the WordPress theme directory (10,000+) or marketplaces
- Customised through the Theme Customiser or page builders like Elementor
- More polished out of the box for non-developers
- Can become bloated with page builder dependencies
Browse our Jekyll theme collection to see what’s available — many rival the quality of premium WordPress themes at a fraction of the cost.
The Verdict
Choose Jekyll if you value speed, security, and low cost — and you are comfortable with developer tooling.
Choose WordPress if you need a visual editor, a large plugin ecosystem, or a non-technical team managing content.
There is no wrong answer. The best platform is the one that matches your workflow and technical comfort level.
References
<!DOCTYPE html>
How to Change Your Jekyll Theme (Without Losing Content)
A safe, step-by-step guide to switching Jekyll themes — including how to migrate your posts, preserve your SEO, and avoid common pitfalls when changing themes.
Changing a Jekyll theme is straightforward if you follow the right steps. The key is understanding what belongs to the theme and what belongs to your content — so you can swap one without touching the other.
Before You Start: Back Up Your Site
Always create a git commit (or branch) before changing themes:
git checkout -b backup-before-theme-change
git add .
git commit -m "Backup before switching theme"
git checkout main
This gives you a safe rollback point.
Step 1: Audit Your Current Content
Identify what will need to migrate:
ls _posts/ # Your blog posts — always portable
ls _pages/ # Static pages — usually portable
ls _data/ # Data files — check if theme-specific
ls _includes/ # Custom includes — may need rewriting
ls _layouts/ # Custom layouts — may need rewriting
Your _posts/ content is always safe — Jekyll’s post format is universal. The files most likely to break are custom layouts and includes that reference theme-specific variables.
Step 2: Note Your Front Matter Defaults
Check _config.yml for any theme-specific settings:
# These are Minimal Mistakes specific — won't work in other themes
defaults:
- scope:
path: ""
type: posts
values:
layout: "single" # Theme-specific layout name
author_profile: true # Theme-specific variable
sidebar:
nav: "docs" # Theme-specific sidebar
Write down any settings like these — you will need to find the equivalent in your new theme.
Step 3: Choose Your New Theme
Browse all Jekyll themes and pick one that matches your content type:
- Blog → Chirpy, Minimal Mistakes, Clean Blog
- Portfolio → al-folio, Hydejack
- Documentation → Just the Docs
- Personal → Hyde, Lanyon, Huxpro
Check that the new theme supports the layouts your posts use.
Step 4: Install the New Theme
For gem-based themes
Update Gemfile:
# Remove old theme
# gem "minima"
# Add new theme
gem "jekyll-theme-chirpy"
Update _config.yml:
# Remove old theme
# theme: minima
# Add new theme
theme: jekyll-theme-chirpy
Run:
bundle update
bundle exec jekyll serve
For GitHub-hosted themes
# _config.yml
remote_theme: cotes2020/jekyll-theme-chirpy
Step 5: Fix Broken Layouts
After switching, some posts may show errors like Layout 'single' does not exist. This means your posts use a layout name from the old theme.
Update the layout: field in affected posts, or set a default in _config.yml:
defaults:
- scope:
path: ""
type: posts
values:
layout: "post" # Use the new theme's post layout name
Step 6: Migrate Custom Pages
Static pages in _pages/ may reference old theme layouts. Check each one and update the layout: front matter to match the new theme’s available layouts.
Step 7: Preserve Your SEO
When changing themes, protect your existing SEO signals:
Keep the same URLs. Your post URLs are controlled by permalink in _config.yml, not the theme. Make sure this doesn’t change:
permalink: /:year/:month/:day/:title/
Keep your meta descriptions. Make sure the new theme uses jekyll-seo-tag or equivalent to render your post description fields.
Keep your sitemap. Add jekyll-sitemap to your Gemfile if the new theme doesn’t include it:
gem "jekyll-sitemap"
Step 8: Rebuild and Review
bundle exec jekyll clean
bundle exec jekyll serve --livereload
Check:
- Homepage renders correctly
- All posts are accessible
- Images load properly
- Navigation works
- Mobile layout looks correct
Common Issues When Changing Themes
| Issue | Cause | Fix |
|---|---|---|
| Posts show wrong layout | Old layout name in front matter | Update layout: or set defaults in _config.yml |
| Images broken | Different asset path convention | Check baseurl and image paths |
| Styles look wrong | Old SCSS overrides conflict | Remove or update assets/css/main.scss |
| Navigation missing | Old _data/navigation.yml format |
Check new theme’s navigation format |
References
<!DOCTYPE html>
GitHub Pages Jekyll Theme: Complete Setup Guide (2026)
Everything you need to know about using Jekyll themes on GitHub Pages — supported themes, remote themes, deployment, and troubleshooting common issues.
GitHub Pages is the most popular way to host a Jekyll site — it’s free, integrates directly with your repository, and rebuilds automatically on every push. This guide covers everything you need to set up a Jekyll theme on GitHub Pages correctly.
How GitHub Pages Builds Jekyll Sites
When you push to a GitHub Pages repository, GitHub runs Jekyll automatically on their servers. This means:
- No build command needed
- No server to manage
- Free HTTPS via GitHub’s CDN
- Automatic rebuilds on every commit
The limitation: GitHub Pages only supports a specific set of plugins. Themes that require unsupported plugins won’t build on GitHub Pages directly — you’ll need to use GitHub Actions instead.
Option 1: Use an Official GitHub Pages Theme
GitHub maintains 12 official themes that work on GitHub Pages without any plugin setup:
To use one, add to _config.yml:
theme: jekyll-theme-minimal
That’s it — no Gemfile changes needed for GitHub Pages.
Option 2: Use Any Theme via remote_theme
The jekyll-remote-theme plugin (supported by GitHub Pages) lets you use any public GitHub repository as a theme:
Step 1: Update _config.yml
remote_theme: mmistakes/minimal-mistakes
plugins:
- jekyll-remote-theme
Step 2: Update Gemfile
source "https://rubygems.org"
gem "github-pages", group: :jekyll_plugins
gem "jekyll-remote-theme"
Step 3: Push to GitHub
git add .
git commit -m "Set up Jekyll theme"
git push
GitHub Pages builds your site automatically. Check the Actions tab in your repository to monitor the build.
Option 3: Deploy with GitHub Actions (Recommended for Advanced Themes)
For themes like Chirpy, Hydejack, or Just the Docs that use unsupported plugins, use GitHub Actions to build and deploy:
Step 1: Create .github/workflows/pages.yml
name: Deploy Jekyll site to Pages
on:
push:
branches: ["main"]
workflow_dispatch:
permissions:
contents: read
pages: write
id-token: write
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.1'
bundler-cache: true
- name: Build with Jekyll
run: bundle exec jekyll build
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
Step 2: Enable GitHub Pages via Actions
Go to Settings → Pages → Source and select GitHub Actions.
Setting Up Your Repository
Repository naming
| Goal | Repository name |
|---|---|
| User/org site | yourusername.github.io |
| Project site | Any name (served at yourusername.github.io/repo-name) |
Essential _config.yml settings for GitHub Pages
url: "https://yourusername.github.io"
baseurl: "" # Leave empty for user sites, "/repo-name" for project sites
title: "My Site"
author:
name: "Your Name"
email: "you@example.com"
Common mistake: Setting
baseurlincorrectly causes broken asset links. For user sites (yourusername.github.io), always setbaseurl: "".
Popular Jekyll Themes That Work on GitHub Pages
| Theme | Type | GitHub Pages Compatible |
|---|---|---|
| Minimal Mistakes | Blog/Portfolio | ✓ via remote_theme |
| Chirpy | Blog | ✓ via Actions |
| Just the Docs | Documentation | ✓ via Actions |
| Beautiful Jekyll | Blog | ✓ via remote_theme |
| Jekyll Now | Blog | ✓ direct fork |
| Hacker | Developer | ✓ official theme |
| Minimal | Personal | ✓ official theme |
Troubleshooting Common GitHub Pages Issues
Build fails with “Dependency Error”
The theme uses a plugin not supported by GitHub Pages. Switch to GitHub Actions deployment.
Site builds but CSS is broken
Check your baseurl setting. For project sites it must be /repo-name, for user sites it must be "".
Changes not appearing
GitHub Pages can take 1–2 minutes to rebuild. Check the Actions tab for build status.
remote_theme not loading
Make sure jekyll-remote-theme is listed under plugins: in _config.yml and in your Gemfile.
References
<!DOCTYPE html>
How to Customize a Jekyll Theme (Complete Guide 2026)
Learn how to customize any Jekyll theme — override layouts, change colours and fonts, modify SCSS, and add custom functionality without breaking your theme.
Customizing a Jekyll theme doesn’t mean editing the theme files directly — that approach breaks every time you update the theme. The right way is to use Jekyll’s override system: copy only the files you want to change into your project, and Jekyll will use your version instead.
This guide covers everything from changing colours to overriding layouts to adding completely new features.
How Jekyll Theme Overrides Work
Jekyll loads files in this priority order:
- Your project files (highest priority)
- Theme gem files
- Jekyll defaults
This means if you create _layouts/post.html in your project, Jekyll uses it instead of the theme’s version — without touching the original.
1. Change Colours and Fonts (SCSS Override)
Most modern themes expose SCSS variables you can override. Here is the standard approach:
Step 1: Find the theme’s variable file
bundle info --path minimal-mistakes-jekyll
This shows the gem path. Look for _sass/minimal-mistakes/_variables.scss.
Step 2: Create your override file
Create assets/css/main.scss in your project:
---
---
// Override theme variables BEFORE importing the theme
$primary-color: #2563eb;
$font-family-sans-serif: "Inter", sans-serif;
$border-radius: 8px;
// Then import the theme
@import "minimal-mistakes";
Step 3: Rebuild
bundle exec jekyll serve
Your colour and font changes apply site-wide instantly.
2. Override a Layout
To modify a theme’s layout without editing the gem:
Step 1: Copy the layout file
cp $(bundle info --path minimal-mistakes-jekyll)/_layouts/post.html _layouts/post.html
Step 2: Edit your local copy
Open _layouts/post.html and make your changes. Jekyll will use this file automatically.
3. Override an Include
Includes work the same way as layouts:
cp $(bundle info --path your-theme)/_includes/header.html _includes/header.html
Edit _includes/header.html freely — your version takes precedence.
4. Customize _config.yml
Most themes expose configuration options in _config.yml. This is the safest place to make changes since it never conflicts with theme updates:
# Minimal Mistakes example
minimal_mistakes_skin: "dark"
author:
name: "Your Name"
bio: "Your bio here"
avatar: "/assets/images/avatar.jpg"
# Typography
title_separator: "—"
words_per_minute: 200
Consult your theme’s documentation for available options.
5. Add Custom CSS Without Overriding SCSS
For small tweaks, create a custom CSS file and include it in your layout:
/* assets/css/custom.css */
.site-header {
border-bottom: 2px solid #2563eb;
}
.post-title {
font-size: 2.5rem;
}
Then reference it in your _includes/head.html override:
<link rel="stylesheet" href="{{ '/assets/css/custom.css' | relative_url }}">
6. Add Google Fonts
Override _includes/head.html and add:
<link rel="preconnect" href="https://fonts.googleapis.com">
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700&display=swap" rel="stylesheet">
Then set the font in your SCSS override:
$font-family-sans-serif: "Inter", system-ui, sans-serif;
7. Add a Custom Navigation Menu
Most themes read navigation from _data/navigation.yml:
main:
- title: "Blog"
url: /blog/
- title: "Themes"
url: /themes/
- title: "About"
url: /about/
8. Modify the Home Page
To customise the homepage, create index.html or index.md in your project root. Most themes support front matter options to configure sections:
---
layout: home
hero_title: "My Jekyll Site"
hero_subtitle: "Writing about code and design"
show_posts: true
posts_limit: 6
---
Best Practices for Customizing Jekyll Themes
- Never edit gem files directly — changes are lost on
bundle update - Override only what you need — fewer overrides = easier theme updates
- Use
_config.ymloptions first — most themes expose more than you expect - Keep a
_sass/custom.scss— a single file for all your tweaks is easier to maintain - Test with
bundle exec jekyll serve --livereload— see changes instantly
Popular Themes and Their Customization Docs
| Theme | Customization Guide |
|---|---|
| Minimal Mistakes | Docs |
| Chirpy | Docs |
| Just the Docs | Docs |
| Hydejack | Docs |
References
<!DOCTYPE html>
How to Install a Jekyll Theme (Step-by-Step Guide for 2026)
Learn exactly how to install a Jekyll theme from scratch — covering gem-based themes, GitHub Pages themes, and manual installation with clear step-by-step instructions.
Installing a Jekyll theme is one of the first things you will do when building a static site. Whether you are using GitHub Pages, a local Jekyll setup, or deploying to Netlify, this guide walks you through every method clearly and completely.
Prerequisites
Before installing a theme, make sure you have Jekyll installed on your machine:
gem install jekyll bundler
jekyll -v
If you need a full setup guide, see the official Jekyll installation docs.
Method 1: Install a Gem-Based Jekyll Theme
Most modern Jekyll themes are distributed as Ruby gems. This is the recommended approach for new projects.
Step 1: Create a new Jekyll site
jekyll new my-site
cd my-site
Step 2: Add the theme gem to your Gemfile
Open Gemfile and replace or add the theme gem. For example, to install Minimal Mistakes:
gem "minimal-mistakes-jekyll"
Step 3: Update _config.yml
theme: minimal-mistakes-jekyll
Step 4: Install dependencies
bundle install
Step 5: Preview your site
bundle exec jekyll serve
Visit http://localhost:4000 to see your new theme in action.
Method 2: Install a Jekyll Theme from GitHub
Many popular themes — including Chirpy, Hydejack, and al-folio — are not gem-based. You install them by forking or cloning the repository.
Option A: Fork the repository (recommended for GitHub Pages)
- Go to the theme’s GitHub repository
- Click Fork in the top-right corner
- Rename the fork to
yourusername.github.io - Edit
_config.ymlto update your site details
Your site will be live at https://yourusername.github.io within minutes.
Option B: Clone and copy files
git clone https://github.com/cotes2020/jekyll-theme-chirpy.git
cd jekyll-theme-chirpy
bundle install
bundle exec jekyll serve
Method 3: Install a Jekyll Theme on GitHub Pages
GitHub Pages supports a limited set of officially supported themes natively. To use one:
Step 1: Open _config.yml
remote_theme: pages-themes/minimal@v0.2.0
plugins:
- jekyll-remote-theme
Step 2: Add the plugin to your Gemfile
gem "jekyll-remote-theme"
Step 3: Push to GitHub
git add .
git commit -m "Add Jekyll theme"
git push
GitHub Pages will build your site automatically.
Note: GitHub Pages only supports a specific list of plugins. If your theme requires unsupported plugins, deploy via Netlify or Cloudflare Pages instead.
Method 4: Install a Remote Theme on GitHub Pages
The jekyll-remote-theme plugin lets you use any public GitHub repository as a theme:
remote_theme: mmistakes/minimal-mistakes
plugins:
- jekyll-remote-theme
This is the most flexible approach for GitHub Pages users.
Common Installation Errors and Fixes
Bundler could not find compatible versions
Run bundle update to resolve dependency conflicts.
Invalid theme folder
Make sure the theme name in _config.yml exactly matches the gem name in Gemfile.
No such file or directory — jekyll
Jekyll is not installed. Run gem install jekyll bundler first.
Theme shows default Minima styles
Clear the Jekyll cache and rebuild:
bundle exec jekyll clean
bundle exec jekyll serve
Which Installation Method Should You Use?
| Method | Best For |
|---|---|
| Gem-based | Local development, full control |
| Fork from GitHub | GitHub Pages, theme-specific setup |
remote_theme |
GitHub Pages with any public theme |
| Clone manually | Customising the theme source |
Next Steps
Once your theme is installed, you will want to:
- Update
_config.ymlwith your site name, URL, and author details - Add your first post to
_posts/ - Customise colours and fonts in the theme’s SCSS files
Browse our full collection of Jekyll themes to find the perfect starting point for your project.
References
<!DOCTYPE html>
Best Free Jekyll Themes for GitHub Pages (2026)
The best free Jekyll themes that work seamlessly with GitHub Pages — no build step, no plugins, just push and deploy.
GitHub Pages is the easiest way to host a Jekyll site — free, reliable, and zero configuration. The catch is that it only supports a whitelist of plugins and runs Jekyll in safe mode. That means not every theme works out of the box.
This list covers only themes that are fully compatible with GitHub Pages — no workarounds, no GitHub Actions required. Push to your repo and your site is live in minutes.
What “GitHub Pages Compatible” Means
A theme is GitHub Pages compatible if it:
- Uses only whitelisted plugins (
jekyll-feed,jekyll-sitemap,jekyll-seo-tag, etc.) - Does not require a custom build step
- Works with the Jekyll version GitHub Pages currently runs (Jekyll 3.10)
The Best Free GitHub Pages Themes
Minimal Mistakes
The most popular free Jekyll theme in existence, and for good reason. Nine colour skins, multiple layout options, built-in SEO, six comment systems, and support for 35+ languages. Minimal Mistakes is completely GitHub Pages compatible and has some of the best documentation of any open source theme.
| Best for: Blogs, personal sites, documentation | View on JekyllHub |
Chirpy
A modern blog theme with a sidebar, dark mode, full-text search (powered by Algolia or local JSON), categories, tags, and a table of contents on every post. Actively maintained with regular updates.
| Best for: Developer blogs, technical writing | View on JekyllHub |
Minima
The official default Jekyll theme — minimal, clean, and completely frictionless. Not the most feature-rich, but if you want to focus entirely on writing with zero distraction, Minima delivers.
| Best for: Simple blogs, getting started quickly | View on JekyllHub |
Just the Docs
If you need to document a project, tool, or API, Just the Docs is the clear choice. Three-column layout, instant search, nested navigation, and colour schemes. Used by hundreds of open source projects.
| Best for: Documentation sites, developer tools | View on JekyllHub |
Hydejack
A boutique portfolio-blog hybrid with a fixed sidebar, offline support via Service Worker, blur-up image loading, and smooth page transitions. The free version is genuinely complete — the premium version adds extra layouts.
| Best for: Developer portfolios, personal sites | View on JekyllHub |
Cayman
GitHub’s own official theme — the clean, green-accented theme you have seen on countless project pages. Simple, fast, and perfectly suited for project landing pages.
| Best for: Project pages, open source repos | View on JekyllHub |
Getting Started
All of the themes above can be installed in under five minutes. Our installation guide walks through every step — from cloning the repo to going live on GitHub Pages with a custom domain.
Want More Options?
Browse the full collection of free themes on JekyllHub — filter by category, dark mode support, and more.
<!DOCTYPE html>
35 Best Jekyll Themes for 2026 (Free + Premium)
A hand-picked collection of the best Jekyll themes available in 2026 — covering blogs, portfolios, documentation, e-commerce, and landing pages.
Jekyll remains one of the most reliable static site generators in 2026 — fast, GitHub Pages native, and backed by a thriving theme ecosystem. Whether you are starting a personal blog, a developer portfolio, or a documentation site, there is a Jekyll theme built exactly for your use case.
We have reviewed hundreds of themes and hand-picked the best ones across every category. Here is the definitive list for 2026.
What Makes a Great Jekyll Theme?
Before diving in, here is what we looked for:
- Active maintenance — updated within the last 12 months
- Responsive design — works on every screen size
- Clean code — readable, well-structured Liquid and SCSS
- Good documentation — easy to install and customise
- Performance — fast load times and good Lighthouse scores
Best Jekyll Blog Themes
1. Minimal Blog
A clean, typographic theme built for writers. Generous whitespace, beautiful typography, and a reading experience that puts your words first. Supports dark mode, RSS, and SEO out of the box.
| Price: Premium — $19 | View Theme |
2. Chirpy
One of the most popular free Jekyll themes on GitHub, Chirpy is a feature-rich blog theme with categories, tags, search, dark mode, and a clean sidebar layout. Perfect for developer blogs.
| Price: Free | View Theme |
3. Minimal Mistakes
The Swiss Army knife of Jekyll themes — 9 skins, multiple layouts, Algolia search, six comment systems, and i18n support for 35+ languages. Arguably the best-documented free theme in existence.
| Price: Free | View Theme |
Best Jekyll Portfolio Themes
4. Portfolio Noir
A bold, dark portfolio theme for designers and developers. High-contrast layouts, smooth transitions, and a projects grid that makes your work the centrepiece.
| Price: Premium — $29 | View Theme |
5. Folio Light
A clean, minimal portfolio with a light aesthetic. Great for photographers and illustrators who want their images to breathe.
| Price: Premium — $24 | View Theme |
6. Hydejack
The most visually distinctive Jekyll portfolio-blog hybrid available. A fixed sidebar, offline support via Service Worker, blur-up image loading, and fast page transitions. Free and premium versions available.
| Price: Free | View Theme |
Best Jekyll Documentation Themes
7. Just the Docs
The gold standard for Jekyll documentation. Clean three-column layout, instant search, colour schemes, and deep navigation support. Used by hundreds of open source projects.
| Price: Free | View Theme |
8. DevDocs Pro
A premium documentation theme with versioned docs, an API reference layout, a command palette, and dark mode. Built for developer tools and SaaS products.
| Price: Premium — $39 | View Theme |
Best Jekyll Landing Page Themes
9. Launch Pad
A conversion-optimised landing page theme for SaaS products and apps. Includes a hero, features grid, pricing table, testimonials, and a CTA section — all driven by front matter.
| Price: Premium — $34 | View Theme |
Best Jekyll E-Commerce Themes
10. ShopFront
A modern e-commerce landing page theme for product showcases, with Gumroad and LemonSqueezy integration built in. Conversion-optimised layouts and a clean checkout flow.
| Price: Premium — $29 | View Theme |
How to Install a Jekyll Theme
Installing any theme from this list takes about five minutes. Check our full installation guide for step-by-step instructions covering GitHub Pages, Netlify, and custom domains.
Find Your Theme
Browse the full collection at JekyllHub — filter by category, price, dark mode support, and more. New themes are added regularly.
— all posts Academic Pages is the most widely used academic personal website template on GitHub, with over 12,000 stars and hundreds of thousands of researchers using it worldwide. It's a fork of Minimal Mistakes, extended specifically for academic use cases: publications with BibTeX citations, conference talks with slides and video links, course teaching pages, a project portfolio, and a CV that generates itself from structured YAML files.
The fork-to-publish model is particularly popular in academia — researchers can have a live personal website on GitHub Pages within minutes, with no server, no CMS, and no ongoing cost.
Who is it for? Researchers, academics, PhD students, and scientists who want a professional web presence that highlights publications, talks, and research without complex web development. Advance is the theme for teams and businesses that have outgrown a simple blog and need a full website — one that can handle services, a project portfolio, staff pages, and a content blog, all from a single Jekyll installation.
More Than a Blog
Most Jekyll themes give you a blog and a few static pages. Advance ships with dedicated content types for Services, Projects, and Team — each with its own listing page and individual detail pages, all driven by markdown files and front-matter. Add a new team member, service offering, or case study the same way you’d add a blog post: create a markdown file and fill in the front-matter.
The Configurable Hero
Every page in Advance can have a unique hero section. Adjust the background image, colour overlay, blend effects, text alignment, and call-to-action — all from front-matter. No CSS editing required. The result is a site that feels custom-designed without custom development.
Performance by Default
Advance uses Bootstrap 5.2 for layout but strips jQuery entirely, keeping JavaScript to a minimum. Combined with automatic SEO meta tags, Open Graph data, and semantic HTML, the theme achieves strong Lighthouse scores out of the box. Dark mode is built in — automatic via system preference or manual toggle — so the design holds up in any context.
Deploy Anywhere
Advance is fully compatible with GitHub Pages (no custom plugins that break Pages builds) and ships with a netlify.toml for one-click Netlify deployment. Formspree and Netlify Forms are supported for contact forms; Disqus handles comments.
Who is it for? Agencies, freelancers, and small businesses that want a professional multi-page Jekyll site — not just a blog — and need the flexibility to grow it over time. Agency is a bold, dark-themed Jekyll portfolio theme inspired by the best creative agency sites on the web. It makes a strong first impression with a full-screen hero, then guides visitors through your work, services, and team in a single scrolling page.
Built for designers, developers, and studios who want their portfolio to look as professional as the work inside it.
Who is it for? Freelancers, agencies, and creative studios who want a striking, one-page portfolio site. al-folio is the go-to Jekyll theme for academics, researchers, and students who need a polished personal website. It handles everything specific to academic publishing — BibTeX citations, publication lists, project pages — with a clean, distraction-free design.
Originally created for a Princeton researcher, it has grown into one of the most starred academic Jekyll themes on GitHub with over 11,000 stars.
Who is it for? PhD students, professors, researchers, and academics who want a professional online presence with proper support for publications and projects. Alembic is a clean, gem-based Jekyll theme that works beautifully as a starting point for blogs, personal sites, and small business pages. It prioritises great typography and readable layouts over flashy design.
Being gem-based means you can install and update it like any Ruby gem, keeping your content separate from your theme.
Who is it for? Bloggers and developers who want a clean, maintainable theme that installs as a gem. Almace Scaffolding is a statement theme — bold typography, strong visual personality, and an obsessive focus on performance. Pages load in milliseconds thanks to a lean build pipeline that strips out everything unnecessary.
The Grunt-powered build system gives developers full control over the asset pipeline.
Who is it for? Developers and designers who want a high-performance, visually distinctive blog that makes a strong typographic impression. Architect is GitHub’s documentation-oriented official theme. Its fixed sidebar and clearly delineated content area create an organised, easy-to-navigate layout that works well for project READMEs, API docs, and any site with multiple sections.
The theme’s structured visual hierarchy gives your content immediate credibility, and its lightweight implementation means fast page loads even for large documentation sites.
Who is it for? Developers building open-source project documentation or any structured informational site that benefits from persistent sidebar navigation. Aura Pro is the premium evolution of the Aura Jekyll theme — everything in the free version, extended with features that content-focused sites demand.
The headline addition is two distinct blog post layout options, letting you vary the presentation of long-form content, tutorials, and short-form posts without theme customisation. Each post also shows a read-time estimate, which has become standard on quality editorial sites. The testimonials section now supports star ratings, making social proof more visually compelling for freelancers and small businesses.
Newsletter support is expanded with Sendy.co — a self-hosted alternative to MailChimp that keeps your subscriber list yours. Both Sendy and MailChimp are supported simultaneously.
Who is it for? Writers, developers, and freelancers who started with Aura and need the next level — or anyone building a personal site that doubles as a professional presence from day one.
Upcoming features include price boxes, additional home page layouts, animated sections, and a dark theme variant. All future updates are included free with your purchase. Aura is a versatile Jekyll theme built for content creators, writers, and developers who need more than just a blog. It ships with dedicated sections for blog posts, projects, and testimonials — everything you need to build a personal site that represents you fully.
The theme is a fork of CloudCannon’s Vonge template, extended with GitHub Pages compatibility and a richer feature set. Blog posts support code highlighting, image galleries, embedded YouTube videos, and a full table of contents — making it equally at home for technical writers and creative bloggers.
Who is it for? Developers and creators who want a single theme that handles a personal site, portfolio, and blog without switching between multiple themes. If you want to show off projects, collect testimonials, and write posts — all in one clean package — Aura is built for exactly that.
AuraPro — a premium version with additional layouts and components — is also available at jekyll-theme-aura-pro. Basically Basic is Michael Rose’s answer to the question: what if Minima was actually good? It keeps the simplicity and GitHub Pages compatibility of Jekyll’s default theme, but adds six colour skins, an off-canvas navigation menu, a dedicated resume layout, and the overall polish you’d expect from the author of Minimal Mistakes.
It’s the theme to recommend when someone asks for something simple but not boring, and it works straight out of the box with GitHub Pages.
Who is it for? Developers and writers who want a step up from Minima without jumping into the full complexity of Minimal Mistakes — a clean, modern blog with useful extras and zero setup friction. Beautiful Jekyll is one of the most widely-used Jekyll themes on GitHub. Its combination of ease of setup, clean design, and deep customisability has made it the go-to choice for thousands of developers building personal blogs and project sites.
You can go from zero to a live blog on GitHub Pages in minutes — fork the repo, update _config.yml, and you’re done.
Who is it for? Anyone who wants a polished blog on GitHub Pages with minimal setup and maximum flexibility. Bulma Clean Theme leverages the Bulma CSS framework to deliver a modern, component-rich Jekyll theme. Beyond a standard blog layout, it includes portfolio pages, product showcases, and documentation-style layouts.
The theme is actively maintained and comes with thorough documentation, making it approachable for developers of all experience levels.
Who is it for? Developers who want a modern Bulma-based theme with more layout variety than a typical blog theme. Cayman is the classic GitHub Pages documentation theme, recognisable by its signature teal gradient header. It’s the cleanest way to turn a repository’s README into a polished project page.
Built and maintained by GitHub itself, it’s always up to date with the latest GitHub Pages Jekyll version.
Who is it for? Open source projects, GitHub Pages documentation sites, and anyone who wants the classic, trusted project page look. Centrarium balances a clean, classy aesthetic with a generous feature set. The large header image gives each page a visual anchor, while the well-structured navigation makes it easy to explore categories and tags.
Featured posts can be pinned to highlight important content, and the comment system integrates cleanly with Disqus.
Who is it for? Bloggers who want a polished, feature-complete theme without the complexity of larger frameworks like Minimal Mistakes. Chalk stands out in the crowded minimal blog space by adding just enough polish to feel premium without feeling heavy. The sidebar layout makes good use of horizontal space on desktop, and the subtle CSS animations — hover states, transitions, loading effects — give the whole site a crafted, alive feeling.
The built-in Lunr.js search and category filtering are genuinely useful, and the theme’s careful attention to cross-browser consistency means it looks right everywhere.
Who is it for? Developers and bloggers who want a minimal aesthetic with a bit more visual refinement and user-friendly features like search and category browsing. Chirpy has emerged as one of the most beloved Jekyll themes of the last few years. Where many themes offer either good looks or good features, Chirpy delivers both. Its clean, modern design prioritises readability — comfortable line lengths, generous whitespace, and a typographic hierarchy that guides your reader through even the longest technical articles.
The dark mode implementation is among the best in the Jekyll ecosystem: it respects the operating system preference by default, remembers the user’s manual override, and transitions smoothly without a flash of unstyled content.
Who is it for? Technical bloggers, developers writing tutorials, and anyone publishing long-form content who wants their readers to have a genuinely great experience. Clean Blog is a straightforward, polished blog theme built on Bootstrap 5. Its signature feature is the full-width header image on every post — it gives each article its own visual identity without requiring any special setup.
Ported from Start Bootstrap’s original HTML template, it’s one of the most forked Jekyll themes on GitHub.
Who is it for? Bloggers who want a classic, reader-friendly blog layout with strong visual post headers. Contrast lives up to its name — bold, high-contrast typography makes every post immediately legible. The design is stripped back to the bare essentials: a post list, individual post pages, and tag archives.
With no JavaScript dependencies, pages load nearly instantly.
Who is it for? Writers who prioritise readability above all else and want a featherweight theme with zero bloat. Creative is a Jekyll adaptation of Start Bootstrap’s Creative theme — a bold, fullscreen one-pager built for agencies, studios, and freelancers making a strong first impression.
A large hero image commands attention above the fold, while smooth-scroll navigation guides visitors through portfolio, services, and contact sections below.
Who is it for? Agencies and freelancers who need a striking one-page landing site that showcases their portfolio and services. Devlopr stands out from every other Jekyll theme in one important way: it ships with built-in CMS support. You can write and publish blog posts through a browser-based admin interface — no terminal, no text editor, no git commits. This makes it genuinely practical for developers who want the speed and security of a static site but the convenience of a CMS for day-to-day content updates.
Beyond the CMS integration, it’s a well-rounded developer portfolio theme with sections for projects, skills, timeline, and a blog — all with dark mode support.
Who is it for? Developers who want a personal portfolio and blog with CMS-based content editing, so they can write posts from anywhere without a local development environment. Dinky is a compact, sidebar-based GitHub Pages official theme well suited to small-to-medium project documentation sites. Its bright blue accents and tidy layout feel modern and approachable, and the sidebar keeps navigation visible without consuming too much page space.
Like all official GitHub Pages themes, it activates with a single theme: line in your config — no gem management, no local installation.
Who is it for? Developers who want a structured sidebar layout for project documentation without the complexity of full documentation frameworks like Just the Docs. Documentation is a clean, professional Jekyll theme from CloudCannon designed specifically for technical documentation and help systems.
A collapsible sidebar handles deep navigation hierarchies, while built-in search lets users find content instantly. Code blocks are syntax-highlighted throughout.
Who is it for? Developers and teams who need to publish product documentation, API references, or technical guides as a static site. Feeling Responsive is one of the most feature-rich free Jekyll themes available, built on Zurb’s Foundation framework. It offers a wide range of layouts — from full-width magazine-style pages to narrow reading columns.
The theme ships with widgets, gallery support, video embedding, and multilingual capabilities. Its extensive documentation makes customisation straightforward even for less experienced developers.
Who is it for? Bloggers and small publishers who want a flexible, feature-rich theme without paying for a premium option. Flexible Jekyll is a clean, versatile theme with a two-column layout — posts on the left, author sidebar on the right. It ships with both light and dark modes, letting readers choose their preferred reading environment.
The design is deliberately understated, keeping the focus entirely on content. Tag archive pages make it easy to navigate a large back-catalogue of posts.
Who is it for? Bloggers who want a clean, readable two-column layout with dark mode support out of the box. Forty is a Jekyll port of the popular HTML5 UP design of the same name. Its bold tile-based layout creates a striking visual grid where each tile can show off a project, case study, or article.
The alternating dark and light tiles create visual rhythm and make each piece of work feel intentional.
Who is it for? Designers, photographers, and creatives who want a visually bold portfolio site that showcases work in large format. Freelancer is a Jekyll port of Start Bootstrap’s popular Freelancer theme — a one-page scrolling layout built for designers and developers showcasing their work.
The portfolio grid opens each project in a modal overlay, keeping the visitor on the same page. A flat design aesthetic with bold colours makes it stand out without being cluttered.
Who is it for? Freelancers and designers who want a polished single-page portfolio to showcase their work and attract clients. Hacker Blog is a no-frills, terminal-inspired Jekyll blog theme for developers who want their writing space to feel like their workspace. Black background, monospace font, green or white text — that’s it.
No images, no social buttons, no distractions. Just your words, formatted like a terminal.
Who is it for? Developers and hackers who want a minimal, dark, CLI-aesthetic blog. Hacker is GitHub’s terminal-aesthetic official theme — green text on a black background, monospace type throughout, and the unmistakable look of a classic command-line interface. It’s the most distinctive of the official themes and immediately signals a technical, developer identity.
As an official GitHub Pages theme, setup is a single line in _config.yml. It’s a popular choice for security researchers, CTF writeups, developer portfolios, and any project that wants to wear its technical credentials visually.
Who is it for? Developers, security researchers, and technical writers who want their site to look like it was built by someone who knows their way around a terminal. Hitchens is named after Christopher Hitchens and designed for writers who share his devotion to the written word. The design is austere by intention — every pixel either serves the text or stays out of the way.
Dark mode is built in and toggleable, and the theme runs without a single line of JavaScript on the reader’s device.
Who is it for? Essayists, journalists, and serious writers who want a sophisticated, literary reading experience. HPSTR (pronounced “hipster”) is one of Michael Rose’s earlier Jekyll themes and remains one of the most visually striking options in the ecosystem. Its defining feature is the large full-width header image on each post — combined with smooth CSS animations, it creates a reading experience that feels polished and intentional.
The sliding navigation menu and responsive layout were ahead of their time when the theme launched, and the overall design has aged well. Rose is the author of Minimal Mistakes and So Simple, so the code quality and documentation are characteristically excellent.
Who is it for? Bloggers who want a visually bold, image-forward theme with smooth animations and a strong sense of style — particularly those publishing photography, design, or creative work alongside writing. Huxpro is one of the most-starred personal Jekyll blog themes on GitHub, built by Huasheng Luo as his own personal site and open-sourced for the community. Inspired by Ghost’s iconic Casper theme, it brings full-screen cover images and a magazine-quality reading experience to Jekyll.
Each post supports its own hero image, creating a visually rich archive page that immediately communicates the personality of a blog. The typography is clean and generous, making long-form writing genuinely pleasant to read.
Who is it for? Writers, developers, and creatives who want a personal blog with a strong visual identity and cover-image-driven design. Hyde is one of Jekyll’s most iconic themes — a two-column layout with a bold dark sidebar and clean reading area. Built on Poole by Mark Otto (co-creator of Bootstrap), it sets the standard for elegant simplicity.
Eight built-in colour themes let you swap the sidebar accent colour with a single config change.
Who is it for? Writers and developers who want a classic, timeless Jekyll blog with a distinctive sidebar presence. Hydejack is the boutique evolution of Hyde — taking the two-column sidebar layout and elevating it with smooth page transitions, a polished profile sidebar, and full portfolio support.
One of the most feature-rich free Jekyll themes available, it includes everything from KaTeX math rendering to offline PWA support. A paid PRO version adds extra layouts and features.
Who is it for? Developers and technical writers who want a beautiful, full-featured blog and portfolio in one, with a distinctive aesthetic. Hydra is a product marketing theme from CloudCannon, built for SaaS products, apps, and services that need a professional landing page. Hero, features, pricing, and testimonials sections are all pre-built and easy to customise.
A blog is included so you can publish content marketing articles alongside your product pages.
Who is it for? Founders and teams launching SaaS products or apps who need a polished marketing site fast. Jasper brings the polished editorial aesthetic of Ghost’s default Casper theme to the Jekyll ecosystem. If you admire the clean, image-led layout of Ghost blogs but want to stay on a static site, Jasper is the natural choice.
Cover images dominate the header of each post, creating a visual impact that draws readers in before they’ve read a word.
Who is it for? Bloggers who love Ghost’s editorial aesthetic but prefer or require a static Jekyll workflow.
Jekyll Now is the most-forked Jekyll theme on GitHub and the go-to starting point for anyone who wants a blog without touching the command line. The setup is genuinely three steps: fork the repository, rename it to username.github.io, and your blog is live.
Barry Clark built Jekyll Now to lower the barrier to entry as far as it could go. The theme is intentionally minimal — clean typography, a responsive single-column layout, and just enough configuration to feel personal without overwhelming a new user.
Who is it for? Beginners, writers, and developers who want a quick personal blog on GitHub Pages with no local setup required. TeXt is one of the most feature-complete free Jekyll themes available. Its iOS 11-inspired design is clean and modern, and the depth of built-in functionality is remarkable for a free theme — you get multiple colour skins, dark mode, reading progress, multiple comment systems, maths rendering, diagram support, and full internationalisation all out of the box.
The theme works equally well for personal blogs, team sites, and documentation. Its YAML-driven configuration keeps customisation accessible without requiring deep Jekyll knowledge.
Who is it for? Bloggers, developers, and teams who want a polished, professional site with broad feature coverage and don’t want to piece together plugins manually. Just the Docs is the undisputed standard for Jekyll documentation sites. Thousands of open source projects use it to ship clean, searchable documentation — from small libraries to major frameworks.
Its sidebar navigation supports multiple levels of nesting, its search is fast and client-side, and the whole thing is deeply customisable through SCSS variables.
Who is it for? Open source projects, developer tools, APIs, and anyone building a documentation site that needs to look professional and be easy to navigate. Klisé (pronounced “cliché”) is the modern minimalist’s Jekyll theme. Its defining feature is a light/dark mode toggle that’s smooth, instant, and remembers your preference — implemented with care rather than as an afterthought.
The overall design is clean and contemporary: generous whitespace, careful typographic choices, and a colour palette that works equally well in both modes. It’s the theme you’d reach for if you want something that looks like it was built this year, not five years ago.
Who is it for? Developers and writers who want a modern minimal blog with a polished dark mode implementation and a design that feels current. Lanyon is Hyde’s sibling from the Poole family — sharing the same clean foundation but hiding its sidebar until the reader needs it. A small toggle button reveals a smooth slide-out navigation drawer, keeping the reading area completely clean by default.
The result is one of the most spacious and focused reading experiences in the Jekyll theme ecosystem.
Who is it for? Writers who want maximum reading space and a navigation drawer that stays out of the way. Leonids is a two-column Jekyll theme that gets the balance right between sidebar utility and content space. The fixed sidebar keeps your author bio, avatar, and social links persistently visible, while the main column gives posts the room they need to breathe.
The design is clean and timeless — no trendy flourishes that will date it, just solid typography and a layout that works equally well for technical writing, personal essays, or mixed-content blogs.
Who is it for? Bloggers who want a classic two-column layout with a persistent author sidebar, without the complexity of heavier themes like Minimal Mistakes. Livvic keeps things focused: one strong homepage layout, clean typography, and a set of unique interactive effects that make the design feel alive without being distracting. For designers and agencies who want their portfolio site to reflect the same restraint and craft they apply to client work, that focus is exactly the point.
Design Philosophy
The flat, modern aesthetic means Livvic ages well — there are no trendy gradients or animation gimmicks that date the design after twelve months. What you get instead is clean grid structure, thoughtful whitespace, and the kind of pixel-perfect spacing that signals professional attention to detail to the clients visiting your portfolio.
Built to Customise
The Bootstrap 4 base and W3C-valid HTML5/CSS3 code mean any frontend developer can extend or restyle Livvic without fighting proprietary conventions. The well-commented codebase and extended documentation make onboarding quick whether you’re the theme buyer or a developer handed the project.
Who is it for? Freelance designers, creative agencies, consultants, and personal portfolio builders who want a distinctive, minimal presentation for their work — without the weight of a feature-heavy multipurpose theme. Long Haul is built for writers who take their craft seriously. Every design decision favours the text — generous line height, carefully chosen typefaces, and a layout that disappears behind the words.
Navigation is minimal, distractions are absent, and pages load almost instantly with no JavaScript dependencies.
Who is it for? Serious writers and essayists who want a distraction-free reading experience that puts content first. Massively is unlike anything else in the Jekyll ecosystem. Ported from HTML5 UP’s popular Massively template, it opens with a dramatic full-screen background image and bold typography that immediately signals a strong visual identity. The post listing uses large featured images that make even text-heavy content feel visual and inviting.
If most Jekyll themes are quiet and minimal, Massively is loud — in the best possible way. It’s the choice when you want your site to make an impression the moment someone arrives.
Who is it for? Bloggers, photographers, journalists, and creatives who want a visually dramatic, image-led site that stands out from the typical minimal developer blog. Mediator is a Jekyll theme inspired by Medium’s clean reading experience. Large full-width featured images set the tone for each post, while generous line spacing and careful typography keep readers comfortable through long articles.
The author bio section at the bottom of each post adds a personal touch — great for building a connection with your readership.
Who is it for? Writers publishing long-form content who want a reading-first experience similar to Medium. Mediumish brings the clean, readable aesthetic of Medium to your self-hosted Jekyll blog. Card-based post listings, full author profile pages, and a spacious reading layout combine to create a blog that feels serious and editorial.
Who is it for? Bloggers and content creators who want a Medium-quality reading experience on their own domain. Merlot is the warmest of GitHub’s official themes. Its deep burgundy header creates an immediately distinctive look that feels more personal and elegant than the typical developer site. The white content area keeps reading comfortable, and the overall impression is polished without being corporate.
As an official GitHub Pages theme, enabling it is a single line — making it a popular choice for personal project pages that need to look good quickly.
Who is it for? Anyone who wants a warmer, more personal aesthetic on GitHub Pages, with a distinctive look that stands out from the default blue-and-white developer site template. Midnight is the dark-mode option among GitHub’s official supported themes. Its deep charcoal background and carefully chosen accent colours create a striking, high-contrast aesthetic that feels at home for developer portfolios, open-source project pages, and creative personal sites.
Like all GitHub Pages official themes, it requires only a line in _config.yml to activate — making it the fastest way to get a good-looking dark site onto GitHub Pages.
Who is it for? Developers and creatives who want a polished dark-themed site on GitHub Pages with zero configuration overhead. Miles is built for creative professionals who need a portfolio or agency site that makes an immediate impression. The headline stat — 12+ homepage layouts — means you can pick the mood and structure that fits your work, from bold full-screen hero layouts to editorial multi-column arrangements, without touching layout code.
Layout Variety That Matters
Six portfolio styles means your work can be presented the way it deserves: masonry grids for photography, clean single-column for case studies, filtered galleries for multi-discipline agencies. The four blog layouts and three service page styles give the same flexibility to supporting content, so every section of the site feels considered rather than templated.
Designed for Agencies and Freelancers
The 1170px grid, clean typography, smooth effects, and dark-capable design palette make Miles appropriate for the kinds of clients who judge a supplier by their own website. The theme is built on Bootstrap 4 with Font Awesome icons and Google Fonts — a stable, familiar stack that any developer can extend without learning proprietary conventions.
Who is it for? Creative agencies, freelance designers and developers, consultants, and personal portfolio builders who want a professional result fast — and a theme that presents their work rather than competing with it. Millennial is a clean, straightforward Jekyll blog theme designed for writers who want a no-nonsense publishing platform. The layout is minimal by design — no sidebars, no clutter, just posts.
Tag archive pages organise content for readers, and pagination handles large archives gracefully.
Who is it for? Bloggers who want a lean, focused reading experience without any distracting design elements. Minima is Jekyll’s official default theme — the one that ships with every new Jekyll install. It’s deliberately minimal: clean white background, sensible typography, and just enough structure to get a blog running without getting in the way.
Version 3.x adds dark mode support and social link icons, making it a surprisingly capable foundation despite its simplicity.
Who is it for? Anyone just starting with Jekyll who wants a reliable, clean foundation they can customise or grow from. Minimal Mistakes is the undisputed king of Jekyll themes — with over 13,000 GitHub stars it is the most-starred and most-used Jekyll theme ever created. Built by Michael Rose over more than a decade of active development, it strikes the perfect balance between simplicity and power.
Twelve built-in colour skins let you switch the visual tone of your site with a single config change. Its documentation covers every feature in detail.
Who is it for? Developers, technical writers, and bloggers who want a battle-tested, feature-complete Jekyll theme they can deploy today and customise for years. Minimal is exactly what its name promises — GitHub’s most stripped-back official theme. A clean white page, a simple header, and nothing to get in the way of your content. It’s the choice when you want a professional online presence as quickly as possible.
As an official GitHub Pages theme, it can be activated with a single theme: line in _config.yml, making it one of the fastest paths from a GitHub repository to a live website.
Who is it for? Anyone who wants a simple, professional-looking GitHub Pages site with minimal fuss and maximum speed.
Modern Resume Theme turns a YAML configuration file into a polished, single-page CV. You fill in your experience, education, and skills in _config.yml — the theme handles all the layout and styling.
The dark header with avatar creates a professional first impression, and the clean timeline makes career history easy to scan.
Who is it for? Developers, designers, and professionals who want a clean, online CV hosted on GitHub Pages. Moonwalk is a dark, minimal Jekyll blog theme that puts your words first. No sidebars, no carousels, no social widgets cluttering the margins — just clean typography on a deep background that makes reading a pleasure at any hour.
Who is it for? Writers, thinkers, and bloggers who want a dark, distraction-free writing environment that readers will appreciate. Mundana is a modern, publication-style Jekyll theme from WowThemes.net. The homepage features a large hero post followed by a clean card grid — giving it the feel of a professional editorial site.
Category pages, author profiles, and newsletter signup sections are all built in, making it one of the most complete free blogging themes for Jekyll.
Who is it for? Bloggers and content creators who want a professional editorial look without the complexity of a premium theme. Online CV is a clean two-column resume theme with a dark sidebar for your profile photo and contact details, and a light content area for your experience, education, and skills.
All content is configured through data/data.yml — no HTML editing required.
Who is it for? Job seekers and professionals who want a clean, printable online resume hosted on GitHub Pages. Origin is a modern, fully featured Jekyll blog theme built for writers, developers, and content creators who want a polished, high-performance site without trade-offs.
Why Origin Stands Out
The headline achievement is a perfect 100/100 Google Lighthouse score for both speed and SEO — achieved through minimal JavaScript (no jQuery), tiny CSS/JS bundles, and semantic HTML with auto-generated meta tags. Visitors get fast page loads; you get better search rankings by default.
Content Management
All content is managed through markdown files and YAML configuration — no hardcoded HTML to hunt down. Configure your logo, colour scheme, fonts, navigation menus, header, and footer entirely from _config.yml. The fully featured blog supports categories, named authors, Disqus comments, and paginated archive pages, giving your site professional editorial structure from day one.
Design & Customisation
Origin ships with SCSS + Bootstrap 5.2 for a responsive, mobile-first layout that looks polished on every screen size. Dark mode is built in with both automatic (system preference) and manual toggle options. The navigation supports nested dropdown menus and a responsive mobile overlay with an animated hamburger icon — no third-party libraries required.
Integrations
Out of the box: Google Analytics, Mailchimp newsletter signup, Formspree and Netlify Forms for contact, Disqus comments, Google Fonts, Font Awesome 6, and Open Graph / Twitter card metadata. Ready to deploy to GitHub Pages or Netlify with a netlify.toml already included.
Who is it for? Writers and developers who want a beautiful, fast, SEO-ready blog — without spending time on configuration or performance tuning. Phantom is a clean, minimal portfolio theme built for designers and developers who want to present their work with style. Projects are displayed in a responsive grid, with each item opening in a full modal lightbox on click.
Subtle hover animations add polish without distracting from the work itself.
Who is it for? Designers, illustrators, and developers who want a minimal portfolio with a lightbox-style project viewer. Pixyll is the minimalist’s Jekyll theme. Created by John Otander, it strips away every non-essential element and focuses entirely on making text beautiful. The result is a theme that feels effortless to read — wide margins, comfortable line height, and a typographic hierarchy that works at every screen size.
The mobile-first approach means it looks just as good on a phone as a widescreen monitor. And because it carries so little visual weight, pages load instantly.
Who is it for? Writers, essayists, and developers who believe design should get out of the way and let the words do the work. Primer is the official GitHub Pages theme built on GitHub’s own design system — the same CSS framework that powers GitHub.com. The result is a site that feels immediately familiar and credible to developers: clean, neutral, readable, and professional without being flashy.
For open-source projects that want their documentation site to feel like a natural extension of GitHub itself, Primer is the natural choice. Its single-line setup makes it one of the easiest ways to put a well-designed page on GitHub Pages.
Who is it for? Open-source maintainers and developers who want documentation that looks authoritative and professional, with the familiar GitHub design language users already trust. Researcher is the no-nonsense option for academics who want a clean, single-page CV on the web. Where Academic Pages gives you an entire multi-page website, Researcher keeps everything on one page — education, experience, publications, skills, and contact — in a clean, minimal layout that loads instantly and looks professional everywhere.
The monospace typography gives it a subtle technical identity without being gimmicky, and the straightforward YAML configuration means you can have it set up and deployed in under an hour.
Who is it for? Academics, researchers, and PhD students who want a simple, fast, single-page CV site without the complexity of a full academic website. Reverie is a fork of the classic Poole theme, polished into an elegant blogging experience by Amit Merchant. It retains Poole’s clean, spacious feel while adding practical features like category/tag pages, Disqus integration, and pagination.
The setup is deliberately simple — fork the repo, update _config.yml, and you’re live on GitHub Pages in minutes.
Who is it for? Writers who want an elegant, low-maintenance blog that deploys straight to GitHub Pages. Sandbox is the most comprehensive Jekyll theme in this collection. With 27 home pages, 130+ UI blocks, and 250+ individual elements, it is less a theme and more a complete design system — one that can produce any type of website from the same codebase.
Built for Every Use Case
The 27 pre-built home pages cover the full spectrum of modern website types: SaaS platforms, startup landing pages, creative agency sites, personal portfolios, photography showcases, eCommerce storefronts, blog/journal sites, wedding pages, and travel sites. Each is production-ready and fully customisable through SCSS variables and config files.
Block-Based Building
The 130+ block library is where Sandbox earns its “Sandbox” name. Every block — hero, features, pricing, testimonials, portfolio grid, CTA, contact — is a standalone, droppable section. Combine them to create custom page layouts without writing HTML. The 250+ UI elements include buttons, cards, badges, tabs, accordions, progress bars, and more.
Modern Technical Foundation
Built on Bootstrap 5 with Gulp and SASS, and containing zero jQuery, Sandbox loads fast and scores well on Core Web Vitals. Interactive features come from purpose-built libraries: Swiper.js for sliders, Isotope.js for filterable galleries, scrollCue.js for scroll animations, and Plyr for video backgrounds and embedded media (YouTube and Vimeo supported).
Who is it for? Agencies or developers who need one theme that can build anything — and who want to stop buying a new theme for every new client project. Scriptor is a minimal Jekyll theme from JustGoodThemes built around clean typography and distraction-free reading. Its simple single-column layout keeps the focus entirely on the writing, while featured images give each post a visual anchor without overwhelming the content.
The theme is lightweight, fast, and easy to customise — a solid starting point for writers who want something polished without the complexity of heavier themes.
Who is it for? Writers, bloggers, and journalists who want a clean, typographically focused blog that’s easy to set up and fast to load. Serif is a polished small business theme from CloudCannon that pairs warm tones with elegant serif typography to create a trustworthy, professional presence. It ships with everything a small business site needs — services pages, team bios, a blog, and a contact form.
The CloudCannon compatibility means non-technical users can edit content through a visual CMS without touching any code.
Who is it for? Small businesses, consultants, agencies, and professional services firms who want a warm, professional web presence.
Slate is one of the twelve official themes supported natively by GitHub Pages, meaning you can enable it with a single line in your _config.yml — no gem installs, no local setup. Its dark slate sidebar paired with a white content area creates an immediately recognisable, professional look suited to open-source project documentation.
The code-friendly typography and syntax highlighting make it a natural fit for developer tools and API documentation pages.
Who is it for? Developers who want a fast, reliable documentation theme they can enable on any GitHub Pages project in seconds. Snowlake is a fully-featured Jekyll multipurpose theme that covers the full range of modern website types in a single purchase. The headline numbers — 27 demos, 17 color schemes, 4 icon sets — give you the raw material to build a polished, differentiated site for almost any brief.
The Slider Revolution Advantage
One of Snowlake’s standout inclusions is Slider Revolution, a premium animated slider plugin that normally costs $16 separately. With it you get animated hero banners, parallax scrolling effects, and full video background support (HTML5, image, and video backgrounds) without any extra purchase or setup. Combined with the parallax sections and smooth-scroll single-page option, the theme handles the kind of rich visual storytelling that premium agency and SaaS landing pages need.
Branding Flexibility at Scale
Seventeen color schemes means you are not locked into the theme’s out-of-the-box appearance. Swap the palette to match your brand in minutes via CSS variables, then choose one of five font options to tune the typography. The result is a site that looks custom-designed rather than theme-purchased. Each of the 27 demos is fully production-ready, covering business, startup, agency, portfolio, photographer, SaaS, digital studio, and creative industry use cases.
Technical Foundation
Built on Jekyll 4.3+ with Bootstrap 5, the codebase is modern and maintainable. The four icon sets totalling 2300+ icons cover every UI need without reaching for external libraries. Retina-ready throughout, with responsive layouts that adapt across mobile, tablet, and desktop.
Who is it for? Business owners, creative agencies, digital studios, SaaS founders, and freelancers who need a complete, high-quality website with visual flexibility — and who want it running quickly rather than designed from scratch. So Simple is a clean, minimal Jekyll theme from Michael Rose — the same creator behind Minimal Mistakes. True to its name, it strips away everything non-essential and focuses on typography and readability.
The theme supports author profiles with avatars and social links, making it ideal for personal blogs where the writer’s identity is front and centre.
Who is it for? Writers and bloggers who want a clean, no-fuss reading experience without sacrificing flexibility. Swiss is a love letter to the International Typographic Style — the design movement behind some of the most influential graphic design of the 20th century. Diana Mounter (GitHub’s Head of Design at the time) brought that aesthetic to Jekyll: strong grid, oversized Helvetica-inspired headings, and a restrained black-and-white palette that lets typography do all the work.
The result is a theme that feels confidently editorial. Nothing is decorative; everything is intentional.
Who is it for? Designers, writers, and developers who appreciate typographic rigour and want a site that looks like it was designed, not just assembled. Tactile is the most characterful of GitHub’s official themes. Its wood-grain-textured sidebar and green accent colour palette give it a warm, handcrafted feel that’s quite unlike the clean minimalism of the other official themes. The result is a site that feels personal and approachable — like something built with care.
It’s particularly effective for open-source projects that want to stand out, personal portfolios with a creative bent, or any project that wants its page to have a real identity.
Who is it for? Developers and creators who want a GitHub Pages site with distinct visual personality and warmth, as an alternative to the more minimal official themes. Tale is a minimal Jekyll theme built around the idea that nothing should compete with your writing. Its single-column layout, careful typographic choices, and complete absence of visual clutter create a reading experience that feels calm and focused.
The theme handles the basics well — pagination, tags, syntax highlighting, comments — without adding anything unnecessary. If you’ve ever felt that most blog themes have too much going on, Tale is the answer.
Who is it for? Writers, journalists, and developers who want their words to be the centrepiece of every page with no distracting chrome around them. Type Theme is built on a single conviction: typography is everything. Rohan Chandra stripped away everything that wasn’t essential to reading and writing, leaving a theme that loads fast, renders beautifully, and gets out of the author’s way.
The Google Fonts integration gives it more typographic flexibility than most minimal themes, and the clean header with social links strikes a good balance between personality and restraint. It’s also the base for the popular Type on Strap fork, which extends it with additional features.
Who is it for? Writers and bloggers who want a typography-focused, distraction-free reading experience and a theme that’s fast, simple, and easy to customise. YAT (Yet Another Theme) lives up to its understated name by quietly being one of the best-looking modern Jekyll blog themes available. Its flat design aesthetic feels fresh without being trendy, and the night mode implementation — with a smooth toggle that remembers your preference — is genuinely pleasant to use.
What sets YAT apart is the attention to detail: per-post full-width banner images, careful typographic spacing, and a colour palette that works equally well in light and dark modes. The multi-language support makes it a strong choice for bloggers writing in more than one language.
Who is it for? Writers and developers who want a modern-feeling blog with dark mode and polished visual design, without the complexity of heavier themes. — all items in the themes collection
**`layout` variables** — front matter from the layout file itself:
```liquid
Conditional content in layouts
Use Liquid conditionals to show or hide layout sections based on page front matter:
<!-- _layouts/post.html -->
---
layout: default
---
<article>
{{ content }}
{% if page.toc %}
{% include toc.html %}
{% endif %}
{% if page.show_author != false %}
{% include author-bio.html %}
{% endif %}
{% if page.related_posts != false %}
{% include related-posts.html %}
{% endif %}
</article>
Now individual posts can opt out of sections without modifying the layout:
---
layout: post
title: "My Post"
toc: false # hide table of contents
related_posts: false # hide related posts
---
Passing data from pages to layouts
Any front matter variable in the page is accessible in the layout. Use this to customise layout behaviour per page:
---
layout: page
title: "Homepage"
hero_image: /assets/images/hero.webp
hero_title: "Find Your Perfect Jekyll Theme"
hero_cta: "Browse Themes"
hero_cta_url: /themes/
body_class: "homepage"
---
<!-- _layouts/page.html -->
---
layout: default
---
{% if page.hero_image %}
<section class="hero" style="background-image: url('{{ page.hero_image | relative_url }}')">
<h1>{{ page.hero_title | default: page.title }}</h1>
{% if page.hero_cta %}
<a href="{{ page.hero_cta_url }}" class="btn">{{ page.hero_cta }}</a>
{% endif %}
</section>
{% endif %}
<main class="{{ page.body_class }}">
{{ content }}
</main>
Layout-level front matter
Layouts can have their own front matter, accessible via {"layout"=>"default"} in includes:
<!-- _layouts/post.html -->
---
layout: default
sidebar: true
show_comments: true
---
This is useful for setting defaults that applies to all pages using a layout, which individual pages can override.
The none layout
To render a file with no layout at all — just raw content — set:
---
layout: none
---
Or use an empty string:
---
layout: ""
---
Useful for: JSON data files, XML sitemaps, text files, or any output that should not be wrapped in HTML.
Example: Building a complete layout system
Here is a complete, practical layout hierarchy for a Jekyll blog:
_layouts/default.html — the shell:
---
# no layout — this is the base
---
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
{% seo %}
<link rel="stylesheet" href="{{ '/assets/css/main.css' | relative_url }}">
</head>
<body>
{% include nav.html %}
{{ content }}
{% include footer.html %}
<script src="{{ '/assets/js/main.js' | relative_url }}" defer></script>
</body>
</html>
_layouts/page.html — for standard pages:
---
layout: default
---
<main class="container page-container">
<h1>Jekyll Layouts Explained: How to Structure Your Site Templates</h1>
<div class="read-progress" id="read-progress"></div>
<article class="post" itemscope itemtype="https://schema.org/BlogPosting">
<header class="post-hero">
<div class="container">
<div class="post-hero__breadcrumb">
<a href="/">Home</a>
<span class="breadcrumb-sep">›</span>
<a href="/blog/">Blog</a>
<span class="breadcrumb-sep">›</span>
<span>Jekyll Front Matter: The Complete Guide</span>
</div>
<div class="post-hero__inner">
<span class="post-hero__cat">Tutorial</span>
<h1 class="post-hero__title" itemprop="name">Jekyll Front Matter: The Complete Guide</h1>
<p class="post-hero__desc" itemprop="description">Everything you need to know about Jekyll front matter — YAML syntax, built-in variables, custom fields, defaults, and real-world examples for posts, pages, and collections.</p>
<div class="post-hero__meta">
<span class="post-meta-item">
<svg width="15" height="15" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"/></svg>
Updated <time itemprop="dateModified" datetime="2026-07-29T00:00:00+00:00">July 29, 2026</time>
</span>
<span class="post-meta-item">
<svg width="15" height="15" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"/></svg>
13 min read
</span>
</div>
</div>
</div>
</header>
<div class="post-cover">
<div class="container">
<img src="/assets/images/blog/jekyll-front-matter-guide.webp" alt="Jekyll Front Matter: The Complete Guide" class="post-cover__img" itemprop="image">
</div>
</div>
<div class="container">
<div class="post-body">
<div class="post-body__main">
<div class="post-toc" id="post-toc" data-collapsed="false" style="display:none">
<button class="post-toc__label" id="toc-toggle" aria-expanded="false" aria-controls="toc-body">
<span class="post-toc__label-left">
<svg width="14" height="14" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 10h16M4 14h10"/></svg>
Table of Contents
</span>
<svg class="post-toc__chevron" width="14" height="14" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"/></svg>
</button>
<nav id="toc-body" class="toc"></nav>
</div>
<div class="prose" itemprop="articleBody">
<p>Front matter is how Jekyll knows what to do with a file. Without it, Jekyll treats a file as a static asset and copies it unchanged. With it, Jekyll processes the file through its template engine, applies a layout, and builds a page with all the data you specified.</p>
<p>Understanding front matter is foundational to using Jekyll effectively. This guide covers everything from basic syntax to advanced defaults.</p>
<h2 id="what-is-front-matter">What is front matter?</h2>
<p>Front matter is a block of YAML at the top of a file, enclosed between triple-dashed lines:</p>
<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nn">---</span>
<span class="na">layout</span><span class="pi">:</span> <span class="s">post</span>
<span class="na">title</span><span class="pi">:</span> <span class="s2">"</span><span class="s">My</span><span class="nv"> </span><span class="s">First</span><span class="nv"> </span><span class="s">Post"</span>
<span class="na">date</span><span class="pi">:</span> <span class="s">2026-07-29</span>
<span class="nn">---</span>
<span class="s">Content goes here.</span>
</code></pre></div></div>
<p>The triple dashes are required — both opening and closing. Jekyll strips the front matter block before rendering the content and makes all the variables available in your Liquid templates.</p>
<p>Any file in a Jekyll site that has front matter (even empty front matter <code class="language-plaintext highlighter-rouge">---
---</code>) is processed by Jekyll. Files without front matter are copied as-is.</p>
<h2 id="yaml-basics">YAML basics</h2>
<p>Front matter uses YAML (YAML Ain’t Markup Language). You only need to know a handful of YAML patterns to write effective front matter.</p>
<p><strong>Strings:</strong></p>
<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="na">title</span><span class="pi">:</span> <span class="s2">"</span><span class="s">My</span><span class="nv"> </span><span class="s">Post</span><span class="nv"> </span><span class="s">Title"</span>
<span class="na">title</span><span class="pi">:</span> <span class="s">My Post Title</span> <span class="c1"># quotes are optional for simple strings</span>
<span class="na">description</span><span class="pi">:</span> <span class="s2">"</span><span class="s">A</span><span class="nv"> </span><span class="s">post</span><span class="nv"> </span><span class="s">about</span><span class="nv"> </span><span class="s">Jekyll</span><span class="nv"> </span><span class="s">front</span><span class="nv"> </span><span class="s">matter</span><span class="nv"> </span><span class="s">—</span><span class="nv"> </span><span class="s">the</span><span class="nv"> </span><span class="s">basics</span><span class="nv"> </span><span class="s">and</span><span class="nv"> </span><span class="s">beyond."</span>
</code></pre></div></div>
<p><strong>Numbers:</strong></p>
<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="na">nav_order</span><span class="pi">:</span> <span class="m">3</span>
<span class="na">weight</span><span class="pi">:</span> <span class="m">10</span>
</code></pre></div></div>
<p><strong>Booleans:</strong></p>
<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="na">published</span><span class="pi">:</span> <span class="no">true</span>
<span class="na">featured</span><span class="pi">:</span> <span class="no">false</span>
<span class="na">toc</span><span class="pi">:</span> <span class="no">true</span>
</code></pre></div></div>
<p><strong>Lists (arrays):</strong></p>
<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="na">tags</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">jekyll</span>
<span class="pi">-</span> <span class="s">tutorial</span>
<span class="pi">-</span> <span class="s">yaml</span>
<span class="c1"># Or inline:</span>
<span class="na">tags</span><span class="pi">:</span> <span class="pi">[</span><span class="nv">jekyll</span><span class="pi">,</span> <span class="nv">tutorial</span><span class="pi">,</span> <span class="nv">yaml</span><span class="pi">]</span>
</code></pre></div></div>
<p><strong>Nested objects:</strong></p>
<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="na">author</span><span class="pi">:</span>
<span class="na">name</span><span class="pi">:</span> <span class="s">Marcus Webb</span>
<span class="na">email</span><span class="pi">:</span> <span class="s">marcus@example.com</span>
<span class="na">twitter</span><span class="pi">:</span> <span class="s">marcuswebb</span>
</code></pre></div></div>
<p><strong>Multiline strings:</strong></p>
<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="na">description</span><span class="pi">:</span> <span class="pi">></span>
<span class="s">This is a long description that spans</span>
<span class="s">multiple lines but will be joined into</span>
<span class="s">a single paragraph.</span>
<span class="na">excerpt</span><span class="pi">:</span> <span class="pi">|</span>
<span class="s">This preserves</span>
<span class="s">line breaks</span>
<span class="s">exactly.</span>
</code></pre></div></div>
<h2 id="built-in-jekyll-front-matter-variables">Built-in Jekyll front matter variables</h2>
<p>Jekyll recognises several variable names and uses them specially:</p>
<h3 id="layout">layout</h3>
<p>Specifies which layout file from <code class="language-plaintext highlighter-rouge">_layouts/</code> to use:</p>
<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="na">layout</span><span class="pi">:</span> <span class="s">post</span> <span class="c1"># uses _layouts/post.html</span>
<span class="na">layout</span><span class="pi">:</span> <span class="s">page</span> <span class="c1"># uses _layouts/page.html</span>
<span class="na">layout</span><span class="pi">:</span> <span class="s">default</span> <span class="c1"># uses _layouts/default.html</span>
<span class="na">layout</span><span class="pi">:</span> <span class="s">none</span> <span class="c1"># no layout — render content only</span>
</code></pre></div></div>
<p>If omitted, Jekyll uses no layout (renders content only). Most files should specify a layout.</p>
<h3 id="title">title</h3>
<p>The page title. Available as <code class="language-plaintext highlighter-rouge">Jekyll Front Matter: The Complete Guide</code> in templates and used by <code class="language-plaintext highlighter-rouge">jekyll-seo-tag</code> for the <code class="language-plaintext highlighter-rouge"><title></code> element:</p>
<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="na">title</span><span class="pi">:</span> <span class="s2">"</span><span class="s">Jekyll</span><span class="nv"> </span><span class="s">Front</span><span class="nv"> </span><span class="s">Matter:</span><span class="nv"> </span><span class="s">The</span><span class="nv"> </span><span class="s">Complete</span><span class="nv"> </span><span class="s">Guide"</span>
</code></pre></div></div>
<h3 id="date">date</h3>
<p>For posts in <code class="language-plaintext highlighter-rouge">_posts/</code>, the date is normally part of the filename (<code class="language-plaintext highlighter-rouge">2026-07-29-my-post.md</code>). You can override or supplement it with a front matter date:</p>
<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="na">date</span><span class="pi">:</span> <span class="s">2026-07-29</span>
<span class="na">date</span><span class="pi">:</span> <span class="s">2026-07-29 14:30:00 +0100</span> <span class="c1"># with time and timezone</span>
</code></pre></div></div>
<p>The <code class="language-plaintext highlighter-rouge">date</code> variable sets <code class="language-plaintext highlighter-rouge">page.date</code>, which is used for sorting posts and for display in templates.</p>
<h3 id="published">published</h3>
<p>Controls whether Jekyll includes the page in the build output:</p>
<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="na">published</span><span class="pi">:</span> <span class="no">false</span> <span class="c1"># page is excluded from build</span>
<span class="na">published</span><span class="pi">:</span> <span class="no">true</span> <span class="c1"># page is included (default)</span>
</code></pre></div></div>
<p>Drafts in <code class="language-plaintext highlighter-rouge">_drafts/</code> are automatically excluded unless you run <code class="language-plaintext highlighter-rouge">jekyll serve --drafts</code>.</p>
<h3 id="permalink">permalink</h3>
<p>Overrides Jekyll’s default URL for the page:</p>
<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="na">permalink</span><span class="pi">:</span> <span class="s">/about/</span>
<span class="na">permalink</span><span class="pi">:</span> <span class="s">/blog/:year/:month/:title/</span>
<span class="na">permalink</span><span class="pi">:</span> <span class="s">/themes/minimal/</span>
</code></pre></div></div>
<p>Available <code class="language-plaintext highlighter-rouge">:placeholders</code> for posts: <code class="language-plaintext highlighter-rouge">:year</code>, <code class="language-plaintext highlighter-rouge">:month</code>, <code class="language-plaintext highlighter-rouge">:day</code>, <code class="language-plaintext highlighter-rouge">:title</code>, <code class="language-plaintext highlighter-rouge">:categories</code>, <code class="language-plaintext highlighter-rouge">:slug</code>.</p>
<h3 id="categories-and-tags">categories and tags</h3>
<p>Categorise and tag your content:</p>
<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="na">categories</span><span class="pi">:</span> <span class="s">Tutorial</span>
<span class="na">categories</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">Tutorial</span>
<span class="pi">-</span> <span class="s">Jekyll</span>
<span class="na">tags</span><span class="pi">:</span> <span class="pi">[</span><span class="nv">front-matter</span><span class="pi">,</span> <span class="nv">yaml</span><span class="pi">,</span> <span class="nv">jekyll</span><span class="pi">]</span>
</code></pre></div></div>
<p><code class="language-plaintext highlighter-rouge">categories</code> affects the default URL of posts (<code class="language-plaintext highlighter-rouge">/tutorial/2026/07/29/my-post/</code>). <code class="language-plaintext highlighter-rouge">tags</code> do not affect URLs.</p>
<h3 id="excerpt">excerpt</h3>
<p>By default, Jekyll uses the first paragraph of a post as its excerpt. Override with:</p>
<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="na">excerpt</span><span class="pi">:</span> <span class="s2">"</span><span class="s">A</span><span class="nv"> </span><span class="s">short</span><span class="nv"> </span><span class="s">custom</span><span class="nv"> </span><span class="s">summary</span><span class="nv"> </span><span class="s">for</span><span class="nv"> </span><span class="s">use</span><span class="nv"> </span><span class="s">in</span><span class="nv"> </span><span class="s">post</span><span class="nv"> </span><span class="s">listings</span><span class="nv"> </span><span class="s">and</span><span class="nv"> </span><span class="s">meta</span><span class="nv"> </span><span class="s">descriptions."</span>
</code></pre></div></div>
<h3 id="last_modified_at">last_modified_at</h3>
<p>Used by <code class="language-plaintext highlighter-rouge">jekyll-seo-tag</code> and <code class="language-plaintext highlighter-rouge">jekyll-sitemap</code> to set the <code class="language-plaintext highlighter-rouge"><lastmod></code> value:</p>
<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="na">last_modified_at</span><span class="pi">:</span> <span class="s">2026-07-29</span>
</code></pre></div></div>
<h2 id="custom-front-matter-variables">Custom front matter variables</h2>
<p>Any variable you add to front matter becomes available in your templates as <code class="language-plaintext highlighter-rouge">page.variable_name</code>:</p>
<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nn">---</span>
<span class="na">layout</span><span class="pi">:</span> <span class="s">post</span>
<span class="na">title</span><span class="pi">:</span> <span class="s2">"</span><span class="s">My</span><span class="nv"> </span><span class="s">Post"</span>
<span class="na">author</span><span class="pi">:</span> <span class="s">Marcus Webb</span>
<span class="na">reading_time</span><span class="pi">:</span> <span class="m">8</span>
<span class="na">featured_image</span><span class="pi">:</span> <span class="s">/assets/images/hero.webp</span>
<span class="na">show_newsletter</span><span class="pi">:</span> <span class="no">true</span>
<span class="na">difficulty</span><span class="pi">:</span> <span class="s">beginner</span>
<span class="nn">---</span>
</code></pre></div></div>
<p>In your templates:</p>
<div class="language-liquid highlighter-rouge"><div class="highlight"><pre class="highlight"><code>
<p>By <span class="p">{{</span><span class="w"> </span><span class="nv">page</span><span class="p">.</span><span class="nv">author</span><span class="w"> </span><span class="p">}}</span> · <span class="p">{{</span><span class="w"> </span><span class="nv">page</span><span class="p">.</span><span class="nv">reading_time</span><span class="w"> </span><span class="p">}}</span> min read</p>
<span class="p">{%</span><span class="w"> </span><span class="kr">if</span><span class="w"> </span><span class="nv">page</span><span class="p">.</span><span class="nv">featured_image</span><span class="w"> </span><span class="p">%}</span>
<img src="<span class="p">{{</span><span class="w"> </span><span class="nv">page</span><span class="p">.</span><span class="nv">featured_image</span><span class="w"> </span><span class="p">}}</span>" alt="<span class="p">{{</span><span class="w"> </span><span class="nv">page</span><span class="p">.</span><span class="nv">title</span><span class="w"> </span><span class="p">}}</span>">
<span class="p">{%</span><span class="w"> </span><span class="kr">endif</span><span class="w"> </span><span class="p">%}</span>
<span class="p">{%</span><span class="w"> </span><span class="kr">if</span><span class="w"> </span><span class="nv">page</span><span class="p">.</span><span class="nv">show_newsletter</span><span class="w"> </span><span class="p">%}</span>
<span class="p">{%</span><span class="w"> </span><span class="nt">include</span><span class="w"> </span>newsletter-form.html<span class="w"> </span><span class="p">%}</span>
<span class="p">{%</span><span class="w"> </span><span class="kr">endif</span><span class="w"> </span><span class="p">%}</span>
</code></pre></div></div>
<p>This pattern is powerful — you can add any metadata to a page and use it anywhere in your templates without touching layout files.</p>
<h2 id="front-matter-in-different-file-types">Front matter in different file types</h2>
<h3 id="posts-_posts">Posts (<code class="language-plaintext highlighter-rouge">_posts/</code>)</h3>
<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nn">---</span>
<span class="na">layout</span><span class="pi">:</span> <span class="s">post</span>
<span class="na">title</span><span class="pi">:</span> <span class="s2">"</span><span class="s">How</span><span class="nv"> </span><span class="s">to</span><span class="nv"> </span><span class="s">Install</span><span class="nv"> </span><span class="s">a</span><span class="nv"> </span><span class="s">Jekyll</span><span class="nv"> </span><span class="s">Theme"</span>
<span class="na">description</span><span class="pi">:</span> <span class="s2">"</span><span class="s">Step-by-step</span><span class="nv"> </span><span class="s">guide</span><span class="nv"> </span><span class="s">to</span><span class="nv"> </span><span class="s">installing</span><span class="nv"> </span><span class="s">any</span><span class="nv"> </span><span class="s">Jekyll</span><span class="nv"> </span><span class="s">theme</span><span class="nv"> </span><span class="s">in</span><span class="nv"> </span><span class="s">under</span><span class="nv"> </span><span class="s">10</span><span class="nv"> </span><span class="s">minutes."</span>
<span class="na">date</span><span class="pi">:</span> <span class="s">2026-07-29</span>
<span class="na">last_modified_at</span><span class="pi">:</span> <span class="s">2026-07-29</span>
<span class="na">image</span><span class="pi">:</span> <span class="s">/assets/images/blog/install-jekyll-theme.webp</span>
<span class="na">author</span><span class="pi">:</span> <span class="s">Marcus Webb</span>
<span class="na">category</span><span class="pi">:</span> <span class="s">Tutorial</span>
<span class="na">tags</span><span class="pi">:</span> <span class="pi">[</span><span class="nv">jekyll</span><span class="pi">,</span> <span class="nv">themes</span><span class="pi">,</span> <span class="nv">tutorial</span><span class="pi">]</span>
<span class="na">featured</span><span class="pi">:</span> <span class="no">false</span>
<span class="na">toc</span><span class="pi">:</span> <span class="no">true</span>
<span class="nn">---</span>
</code></pre></div></div>
<h3 id="pages-_pages-or-root">Pages (<code class="language-plaintext highlighter-rouge">_pages/</code> or root)</h3>
<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nn">---</span>
<span class="na">layout</span><span class="pi">:</span> <span class="s">page</span>
<span class="na">title</span><span class="pi">:</span> <span class="s2">"</span><span class="s">About</span><span class="nv"> </span><span class="s">JekyllHub"</span>
<span class="na">description</span><span class="pi">:</span> <span class="s2">"</span><span class="s">The</span><span class="nv"> </span><span class="s">story</span><span class="nv"> </span><span class="s">behind</span><span class="nv"> </span><span class="s">JekyllHub</span><span class="nv"> </span><span class="s">—</span><span class="nv"> </span><span class="s">a</span><span class="nv"> </span><span class="s">marketplace</span><span class="nv"> </span><span class="s">for</span><span class="nv"> </span><span class="s">Jekyll</span><span class="nv"> </span><span class="s">themes."</span>
<span class="na">permalink</span><span class="pi">:</span> <span class="s">/about/</span>
<span class="na">nav_order</span><span class="pi">:</span> <span class="m">4</span>
<span class="nn">---</span>
</code></pre></div></div>
<h3 id="collection-items-_themes-_authors-etc">Collection items (<code class="language-plaintext highlighter-rouge">_themes/</code>, <code class="language-plaintext highlighter-rouge">_authors/</code>, etc.)</h3>
<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nn">---</span>
<span class="na">layout</span><span class="pi">:</span> <span class="s">theme</span>
<span class="na">title</span><span class="pi">:</span> <span class="s2">"</span><span class="s">Minimal</span><span class="nv"> </span><span class="s">Mistakes"</span>
<span class="na">github_url</span><span class="pi">:</span> <span class="s">https://github.com/mmistakes/minimal-mistakes</span>
<span class="na">stars</span><span class="pi">:</span> <span class="m">12800</span>
<span class="na">price</span><span class="pi">:</span> <span class="m">0</span>
<span class="na">category</span><span class="pi">:</span> <span class="s">Blog</span>
<span class="na">tags</span><span class="pi">:</span> <span class="pi">[</span><span class="nv">responsive</span><span class="pi">,</span> <span class="nv">dark-mode</span><span class="pi">,</span> <span class="nv">sidebar</span><span class="pi">]</span>
<span class="nn">---</span>
</code></pre></div></div>
<h3 id="layouts-and-includes">Layouts and includes</h3>
<p>Layouts and includes can also have front matter, but it is rarely used. One exception: layout inheritance.</p>
<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nn">---</span>
<span class="na">layout</span><span class="pi">:</span> <span class="s">default</span> <span class="c1"># This layout itself uses another layout</span>
<span class="nn">---</span>
</code></pre></div></div>
<h2 id="front-matter-defaults">Front matter defaults</h2>
<p>Repeating the same front matter on every post is tedious. Jekyll’s defaults feature lets you set front matter values globally in <code class="language-plaintext highlighter-rouge">_config.yml</code>:</p>
<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1"># _config.yml</span>
<span class="na">defaults</span><span class="pi">:</span>
<span class="c1"># Default for all posts</span>
<span class="pi">-</span> <span class="na">scope</span><span class="pi">:</span>
<span class="na">path</span><span class="pi">:</span> <span class="s2">"</span><span class="s">"</span>
<span class="na">type</span><span class="pi">:</span> <span class="s">posts</span>
<span class="na">values</span><span class="pi">:</span>
<span class="na">layout</span><span class="pi">:</span> <span class="s">post</span>
<span class="na">author</span><span class="pi">:</span> <span class="s">Marcus Webb</span>
<span class="na">toc</span><span class="pi">:</span> <span class="no">true</span>
<span class="na">featured</span><span class="pi">:</span> <span class="no">false</span>
<span class="c1"># Default for all pages</span>
<span class="pi">-</span> <span class="na">scope</span><span class="pi">:</span>
<span class="na">path</span><span class="pi">:</span> <span class="s2">"</span><span class="s">"</span>
<span class="na">type</span><span class="pi">:</span> <span class="s">pages</span>
<span class="na">values</span><span class="pi">:</span>
<span class="na">layout</span><span class="pi">:</span> <span class="s">page</span>
<span class="c1"># Default for a specific directory</span>
<span class="pi">-</span> <span class="na">scope</span><span class="pi">:</span>
<span class="na">path</span><span class="pi">:</span> <span class="s2">"</span><span class="s">_themes"</span>
<span class="na">type</span><span class="pi">:</span> <span class="s">themes</span>
<span class="na">values</span><span class="pi">:</span>
<span class="na">layout</span><span class="pi">:</span> <span class="s">theme</span>
<span class="c1"># Default for files matching a path pattern</span>
<span class="pi">-</span> <span class="na">scope</span><span class="pi">:</span>
<span class="na">path</span><span class="pi">:</span> <span class="s2">"</span><span class="s">guides/**"</span>
<span class="na">values</span><span class="pi">:</span>
<span class="na">layout</span><span class="pi">:</span> <span class="s">guide</span>
<span class="na">show_sidebar</span><span class="pi">:</span> <span class="no">true</span>
</code></pre></div></div>
<p>With these defaults set, you do not need to specify <code class="language-plaintext highlighter-rouge">layout: post</code> or <code class="language-plaintext highlighter-rouge">author: Marcus Webb</code> on every post — Jekyll applies them automatically. Front matter in the file still overrides defaults.</p>
<p><strong>Specificity:</strong> More specific scopes override less specific ones. A post-level default overrides a site-wide default. Front matter in the file overrides both.</p>
<h2 id="accessing-front-matter-in-templates">Accessing front matter in templates</h2>
<p>All front matter variables are available in Liquid templates:</p>
<div class="language-liquid highlighter-rouge"><div class="highlight"><pre class="highlight"><code>
<!-- In the layout file -->
<h1><span class="p">{{</span><span class="w"> </span><span class="nv">page</span><span class="p">.</span><span class="nv">title</span><span class="w"> </span><span class="p">}}</span></h1>
<p><span class="p">{{</span><span class="w"> </span><span class="nv">page</span><span class="p">.</span><span class="nv">description</span><span class="w"> </span><span class="p">}}</span></p>
<time><span class="p">{{</span><span class="w"> </span><span class="nv">page</span><span class="p">.</span><span class="nv">date</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">date</span><span class="p">:</span><span class="w"> </span><span class="s2">"%B %-d, %Y"</span><span class="w"> </span><span class="p">}}</span></time>
<!-- Conditional display -->
<span class="p">{%</span><span class="w"> </span><span class="kr">if</span><span class="w"> </span><span class="nv">page</span><span class="p">.</span><span class="nv">toc</span><span class="w"> </span><span class="p">%}</span>
<span class="p">{%</span><span class="w"> </span><span class="nt">include</span><span class="w"> </span>toc.html<span class="w"> </span><span class="p">%}</span>
<span class="p">{%</span><span class="w"> </span><span class="kr">endif</span><span class="w"> </span><span class="p">%}</span>
<!-- Iteration over arrays -->
<span class="p">{%</span><span class="w"> </span><span class="nt">for</span><span class="w"> </span><span class="nv">tag</span><span class="w"> </span><span class="nt">in</span><span class="w"> </span><span class="nv">page.tags</span><span class="w"> </span><span class="p">%}</span>
<span class="tag"><span class="p">{{</span><span class="w"> </span><span class="nv">tag</span><span class="w"> </span><span class="p">}}</span></span>
<span class="p">{%</span><span class="w"> </span><span class="nt">endfor</span><span class="w"> </span><span class="p">%}</span>
<!-- Nested objects -->
<span class="p">{{</span><span class="w"> </span><span class="nv">page</span><span class="p">.</span><span class="nv">author</span><span class="p">.</span><span class="nv">name</span><span class="w"> </span><span class="p">}}</span>
<span class="p">{{</span><span class="w"> </span><span class="nv">page</span><span class="p">.</span><span class="nv">author</span><span class="p">.</span><span class="nv">twitter</span><span class="w"> </span><span class="p">}}</span>
</code></pre></div></div>
<h2 id="accessing-front-matter-from-other-pages">Accessing front matter from other pages</h2>
<p>You can loop through all pages or posts and access their front matter:</p>
<div class="language-liquid highlighter-rouge"><div class="highlight"><pre class="highlight"><code>
<!-- List all posts with their metadata -->
<span class="p">{%</span><span class="w"> </span><span class="nt">for</span><span class="w"> </span><span class="nv">post</span><span class="w"> </span><span class="nt">in</span><span class="w"> </span><span class="nv">site.posts</span><span class="w"> </span><span class="p">%}</span>
<article>
<h2><a href="<span class="p">{{</span><span class="w"> </span><span class="nv">post</span><span class="p">.</span><span class="nv">url</span><span class="w"> </span><span class="p">}}</span>"><span class="p">{{</span><span class="w"> </span><span class="nv">post</span><span class="p">.</span><span class="nv">title</span><span class="w"> </span><span class="p">}}</span></a></h2>
<p><span class="p">{{</span><span class="w"> </span><span class="nv">post</span><span class="p">.</span><span class="nv">description</span><span class="w"> </span><span class="p">}}</span></p>
<span class="p">{%</span><span class="w"> </span><span class="kr">if</span><span class="w"> </span><span class="nv">post</span><span class="p">.</span><span class="nv">featured</span><span class="w"> </span><span class="p">%}</span>
<span class="badge">Featured</span>
<span class="p">{%</span><span class="w"> </span><span class="kr">endif</span><span class="w"> </span><span class="p">%}</span>
</article>
<span class="p">{%</span><span class="w"> </span><span class="nt">endfor</span><span class="w"> </span><span class="p">%}</span>
<!-- Filter by front matter value -->
<span class="p">{%</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">featured_posts</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">posts</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">where</span><span class="p">:</span><span class="w"> </span><span class="s2">"featured"</span><span class="p">,</span><span class="w"> </span><span class="kc">true</span><span class="w"> </span><span class="p">%}</span>
<span class="p">{%</span><span class="w"> </span><span class="nt">for</span><span class="w"> </span><span class="nv">post</span><span class="w"> </span><span class="nt">in</span><span class="w"> </span><span class="nv">featured_posts</span><span class="w"> </span><span class="p">%}</span>
<a href="<span class="p">{{</span><span class="w"> </span><span class="nv">post</span><span class="p">.</span><span class="nv">url</span><span class="w"> </span><span class="p">}}</span>"><span class="p">{{</span><span class="w"> </span><span class="nv">post</span><span class="p">.</span><span class="nv">title</span><span class="w"> </span><span class="p">}}</span></a>
<span class="p">{%</span><span class="w"> </span><span class="nt">endfor</span><span class="w"> </span><span class="p">%}</span>
</code></pre></div></div>
<h2 id="common-front-matter-patterns">Common front matter patterns</h2>
<h3 id="hiding-a-page-from-navigation-while-keeping-it-live">Hiding a page from navigation while keeping it live</h3>
<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nn">---</span>
<span class="na">layout</span><span class="pi">:</span> <span class="s">page</span>
<span class="na">title</span><span class="pi">:</span> <span class="s2">"</span><span class="s">Thank</span><span class="nv"> </span><span class="s">You"</span>
<span class="na">permalink</span><span class="pi">:</span> <span class="s">/thank-you/</span>
<span class="na">sitemap</span><span class="pi">:</span> <span class="no">false</span>
<span class="nn">---</span>
</code></pre></div></div>
<h3 id="overriding-the-excerpt">Overriding the excerpt</h3>
<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nn">---</span>
<span class="na">layout</span><span class="pi">:</span> <span class="s">post</span>
<span class="na">title</span><span class="pi">:</span> <span class="s2">"</span><span class="s">My</span><span class="nv"> </span><span class="s">Post"</span>
<span class="na">excerpt</span><span class="pi">:</span> <span class="s2">"</span><span class="s">This</span><span class="nv"> </span><span class="s">custom</span><span class="nv"> </span><span class="s">excerpt</span><span class="nv"> </span><span class="s">appears</span><span class="nv"> </span><span class="s">in</span><span class="nv"> </span><span class="s">post</span><span class="nv"> </span><span class="s">listings</span><span class="nv"> </span><span class="s">and</span><span class="nv"> </span><span class="s">meta</span><span class="nv"> </span><span class="s">descriptions</span><span class="nv"> </span><span class="s">instead</span><span class="nv"> </span><span class="s">of</span><span class="nv"> </span><span class="s">the</span><span class="nv"> </span><span class="s">first</span><span class="nv"> </span><span class="s">paragraph."</span>
<span class="nn">---</span>
</code></pre></div></div>
<h3 id="specifying-an-og-image-for-social-sharing">Specifying an OG image for social sharing</h3>
<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nn">---</span>
<span class="na">layout</span><span class="pi">:</span> <span class="s">post</span>
<span class="na">title</span><span class="pi">:</span> <span class="s2">"</span><span class="s">My</span><span class="nv"> </span><span class="s">Post"</span>
<span class="na">image</span><span class="pi">:</span> <span class="s">/assets/images/blog/my-post.webp</span>
<span class="nn">---</span>
</code></pre></div></div>
<p>With <code class="language-plaintext highlighter-rouge">jekyll-seo-tag</code>, <code class="language-plaintext highlighter-rouge">image</code> is automatically used as the Open Graph image.</p>
<h3 id="controlling-the-canonical-url">Controlling the canonical URL</h3>
<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nn">---</span>
<span class="na">layout</span><span class="pi">:</span> <span class="s">post</span>
<span class="na">title</span><span class="pi">:</span> <span class="s2">"</span><span class="s">My</span><span class="nv"> </span><span class="s">Post"</span>
<span class="na">canonical_url</span><span class="pi">:</span> <span class="s2">"</span><span class="s">https://original-source.com/my-post/"</span>
<span class="nn">---</span>
</code></pre></div></div>
<p>Useful if you are syndicating content from another site.</p>
<h2 id="validating-front-matter">Validating front matter</h2>
<p>YAML syntax errors in front matter cause Jekyll build errors. Common mistakes:</p>
<p><strong>Unquoted colons:</strong> A colon in a value must be quoted.</p>
<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1"># Bad</span>
<span class="na">title</span><span class="pi">:</span> <span class="na">Jekyll</span><span class="pi">:</span> <span class="s">The Complete Guide</span>
<span class="c1"># Good</span>
<span class="na">title</span><span class="pi">:</span> <span class="s2">"</span><span class="s">Jekyll:</span><span class="nv"> </span><span class="s">The</span><span class="nv"> </span><span class="s">Complete</span><span class="nv"> </span><span class="s">Guide"</span>
</code></pre></div></div>
<p><strong>Tab characters:</strong> YAML uses spaces, not tabs. Always indent with spaces.</p>
<p><strong>Inconsistent list formatting:</strong></p>
<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1"># Bad — mixing inline and block style</span>
<span class="na">tags</span><span class="pi">:</span> <span class="pi">[</span><span class="nv">jekyll</span>
<span class="nv">tutorial</span><span class="pi">]</span>
<span class="c1"># Good</span>
<span class="na">tags</span><span class="pi">:</span> <span class="pi">[</span><span class="nv">jekyll</span><span class="pi">,</span> <span class="nv">tutorial</span><span class="pi">]</span>
<span class="c1"># Or</span>
<span class="na">tags</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">jekyll</span>
<span class="pi">-</span> <span class="s">tutorial</span>
</code></pre></div></div>
<p>Run <code class="language-plaintext highlighter-rouge">bundle exec jekyll build --verbose</code> to see detailed error output when front matter parsing fails.</p>
<p>Front matter is the connective tissue of a Jekyll site — it is how content communicates with templates. Mastering it unlocks the full power of Jekyll’s data-driven architecture.</p>
</div>
<div class="post-tags">
</div>
<div class="post-share">
<span class="post-share__label">Share</span>
<a href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fjekyllhub.com%2Ftutorial%2F2026%2F06%2F18%2Fjekyll-front-matter-guide%2F&text=Jekyll+Front+Matter%3A+The+Complete+Guide" target="_blank" rel="noopener" class="post-share__btn post-share__btn--twitter">
<svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor"><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-4.714-6.231-5.401 6.231H2.746l7.73-8.835L1.254 2.25H8.08l4.253 5.622zm-1.161 17.52h1.833L7.084 4.126H5.117z"/></svg>
X / Twitter
</a>
<a href="https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fjekyllhub.com%2Ftutorial%2F2026%2F06%2F18%2Fjekyll-front-matter-guide%2F&title=Jekyll+Front+Matter%3A+The+Complete+Guide" target="_blank" rel="noopener" class="post-share__btn post-share__btn--linkedin">
<svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor"><path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 01-2.063-2.065 2.064 2.064 0 112.063 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"/></svg>
LinkedIn
</a>
<button class="post-share__btn post-share__btn--copy" onclick="JekyllHub.copyPostLink(this)">
<svg width="14" height="14" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"/></svg>
<span>Copy Link</span>
</button>
</div>
<nav class="post-nav" aria-label="Post navigation">
<div class="post-nav__prev">
<a href="/tutorial/2026/06/17/deploy-jekyll-firebase/" class="post-nav__link">
<span class="post-nav__label">← Previous</span>
<span class="post-nav__title">How to Deploy a Jekyll Site to Firebase Hosting (2026 Guide)</span>
</a>
</div>
<div class="post-nav__center">
<a href="/blog/" class="btn btn--secondary btn--sm">All Posts</a>
</div>
<div class="post-nav__next">
<a href="/tutorial/2026/06/19/jekyll-layouts-explained/" class="post-nav__link post-nav__link--next">
<span class="post-nav__label">Next →</span>
<span class="post-nav__title">Jekyll Layouts Explained: How to Structure Your Site Templates</span>
</a>
</div>
</nav>
</div>
<aside class="post-body__sidebar">
<div class="sidebar-card">
<h3 class="sidebar-card__title">Browse Themes</h3>
<ul class="post-sidebar__links">
<li><a href="/jekyll-academic-themes/">🎓 Academic Themes</a></li>
<li><a href="/jekyll-blog-themes/">✍️ Blog Themes</a></li>
<li><a href="/jekyll-business-themes/">💼 Business Themes</a></li>
<li><a href="/jekyll-documentation-themes/">📚 Documentation Themes</a></li>
<li><a href="/jekyll-e-commerce-themes/">🛒 E-commerce Themes</a></li>
<li><a href="/jekyll-landing-page-themes/">🚀 Landing Page Themes</a></li>
<li><a href="/jekyll-personal-themes/">👤 Personal Themes</a></li>
<li><a href="/jekyll-portfolio-themes/">🎨 Portfolio Themes</a></li>
<li><a href="/jekyll-resume-cv-themes/">📄 Resume/CV Themes</a></li>
<li><a href="/jekyll-github-pages-themes/"><svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor" style="display:inline;vertical-align:middle;margin-right:4px"><path d="M12 0C5.374 0 0 5.373 0 12c0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23A11.509 11.509 0 0 1 12 5.803c1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576C20.566 21.797 24 17.3 24 12c0-6.627-5.373-12-12-12z"/></svg>GitHub Pages Themes</a></li>
</ul>
<a href="/themes/" class="btn btn--primary btn--full" style="margin-top:var(--space-5)">Browse All Themes →</a>
</div>
<div class="sidebar-card" style="margin-top:var(--space-6)">
<h3 class="sidebar-card__title">Submit Your Theme</h3>
<p style="font-size:0.875rem;color:var(--text-3);line-height:1.6;margin-bottom:var(--space-4)">Built a Jekyll theme? Share it with thousands of developers.</p>
<a href="/submit/" class="btn btn--secondary btn--full">Submit a Theme →</a>
</div>
</aside>
</div>
</div>
<!-- Related Themes — rendered by JS from SITE_DATA, shuffled per page load -->
<section class="post-related-themes" style="display:none">
<div class="container">
<h2 class="post-related-themes__title">Themes You Might Like</h2>
<div class="themes-grid themes-grid--4" id="post-related-themes-grid"
data-tags="[]"
data-related-category="Blog"></div>
</div>
</section>
</article>
<!-- Back to top -->
<button class="back-to-top" id="back-to-top" aria-label="Back to top" onclick="window.scrollTo({top:0,behavior:'smooth'})">
<svg fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5" d="M5 15l7-7 7 7"/>
</svg>
</button>
<script src="/assets/js/post.js" defer></script>
</main>
_layouts/post.html — for blog posts:
---
layout: default
---
<main class="container">
<article class="post">
<h1>{{ page.title }}</h1>
<time>{{ page.date | date: "%B %-d, %Y" }}</time>
{{ content }}
</article>
{% include related-posts.html %}
</main>
_layouts/home.html — for the homepage only:
---
layout: default
---
{% include home-hero.html %}
{% include featured-themes.html %}
{{ content }}
{% include home-newsletter.html %}
This structure is clear, maintainable, and easy to extend. Adding a new page type means adding one layout file — not editing a monolithic template.
Tips for clean layouts
Keep layouts thin. Layouts should structure content — not contain it. Move repeating blocks to _includes/.
Use meaningful layout names. post, page, theme, author are clear. layout1, template_v2 are not.
Default to default. Most child layouts should inherit from default.html, not from each other. Deep chains (default → page → section → content) become hard to follow.
Test with no layout. If a layout-related bug appears, temporarily set layout: none on the affected page to isolate whether the issue is in the content or the layout.
Understanding Jekyll’s layout system is what separates a collection of Markdown files from a real, maintainable website. Once the hierarchy is in place, adding new page types or changing the global structure becomes a matter of editing one file.