
Template details
So Simple
A simple Jekyll theme for words and pictures, featuring microformats markup, Disqus comments, Google Analytics, and SEO via jekyll-seo-tag.
About this template
So Simple is an MIT-licensed Jekyll theme by Michael Rose (mmistakes) for publishing words and pictures as a static blog — it turns Markdown posts and YAML front matter into a complete site with post layouts, year/category/tag archives, Lunr search, and author sidebars, installed as a Ruby gem, a GitHub Pages remote theme, or a direct copy of theme files.
What is the So Simple theme?
So Simple is a Jekyll theme (requires Jekyll 3.6 or newer) designed for readable blog and photo sites. It takes Markdown posts, pages, collections, and _config.yml settings as input and outputs static HTML, CSS, and JavaScript with no database or server-side processing. Michael Rose (mademistakes.com) maintains the theme; the live demo runs at https://mmistakes.github.io/so-simple-theme/.
Key Features
So Simple's feature set spans SEO, comments, analytics, search, and archive layouts, all configured from _config.yml and front matter.
- Microformats2 markup — post content carries h-entry microformats so it is machine-readable and discoverable by parsers.
- SEO via Jekyll SEO Tag — replaces a custom Open Graph include and feeds Twitter cards and site feed metadata.
- Disqus comments and Google Analytics — enabled via Disqus shortname or
UA-tracking ID in_config.yml; both render only withJEKYLL_ENV=production. - Lunr search —
layout: searchgenerates a Lunr.js-backed search form;search_full_content: trueindexes full bodies, otherwise only the first 50 words per document. - Three color skins — default, light, and dark CSS skins in
/assets/css/skins/, selected with theskinkey, plus a documented custom-skin workflow. - Taxonomy layouts —
posts(grouped by year),categories,tags,category,tag, andcollectionlayouts, switchable to grid view viaentries_layout: grid. - Opt-in MathJax — math rendering with configurable
combo(defaulttex-svg) and equation-numberingtags(none,ams,all). - Pagination and helpers — home layout works with
jekyll-paginate(paginate,paginate_path) andposts_limit; includes add responsive video embeds and an auto-generated table of contents.
Who is it for?
So Simple targets bloggers, GitHub Pages hosts, and Jekyll developers who want a theme they can override file-by-file.
- Writers and bloggers — publish Markdown posts with hero images, captions, per-post authors, and share links, with archives grouped by year, category, or tag.
- GitHub Pages users — install with
remote_theme: "mmistakes/so-simple-theme@3.2.0"and agithub-pagesGemfile group, with no fork to maintain. - Developers who customize themes — override individual
_includesand_layouts, inject markup viahead-custom.htmlandfooter-custom.html, and rebuild minified JS withnpm run build:js.
What can you do with it?
The README documents workflows for blogs, photo sites, collections, and multilingual content.
- Personal blogs: configure
locale,title,url,logo, and author data in_config.yml, then use image front matter (path,thumbnail,caption) for hero images, Open Graph, and Twitter cards. - Photo and portfolio sites: pair the grid entries layout with the
collectionlayout for image-heavy documents; documented sizes include 1600 x 600 hero, 400 x 200 thumbnail, 150 x 150 author picture. - Recipe or documentation sites: build a page like
/recipes/withlayout: collectionand control ordering withsort_by: titleorsort_order: reverse. - Multilingual sites: declare hyphenated locales such as
en-USand supply translated strings in_data/text.ymlper locale key.
How does it work?
Three installation paths are documented. The Ruby gem method adds gem "jekyll-theme-so-simple" to the Gemfile and theme: jekyll-theme-so-simple to _config.yml, then runs bundle install. The GitHub Pages method uses gem "github-pages" and sets remote_theme: "mmistakes/so-simple-theme@3.2.0". The fork method copies _layouts, _includes, _sass, and assets into the project and updates via git pull upstream master.
Pros and cons
The README states the following benefits and limitations.
- Free for personal and commercial use under the MIT license.
- No custom Jekyll plugins needed — core features use includes plus standard plugins (jekyll-seo-tag, jekyll-feed, jekyll-paginate, jekyll-sitemap) that work on GitHub Pages.
- Stated limitations: overriding a single Sass partial is not supported (copy the whole
_sassdirectory); settingfooter_scriptsdisables the bundledmain.min.js; andsearch_full_content: trueenlarges the search index and slows page loads.
Pricing
So Simple is free and open source under the MIT license; the theme's build comment states it is "free for personal and commercial use under the MIT license," and no paid tiers are mentioned.
Alternatives
Comparable Jekyll themes include:
- Minimal Mistakes, another Jekyll theme by Michael Rose with a larger set of layout and presentation options.
FAQ
Is So Simple free?
Yes. So Simple is released under the MIT license, and the theme's build comment explicitly states it is free for personal and commercial use. No paid tiers or premium versions are mentioned in the documentation.
Does So Simple work with GitHub Pages?
Yes. GitHub Pages supports any GitHub-hosted theme, so you add remote_theme: "mmistakes/so-simple-theme@3.2.0" to _config.yml after switching the Gemfile to the github-pages gem. The documentation recommends locking to a version tag to avoid inheriting breaking changes from master.
How do I add search to my site?
Create a page with layout: search in its front matter, and Jekyll generates a Lunr.js-backed search form. By default only the first 50 words of each document are indexed; setting search_full_content: true indexes full content, at the cost of a larger search index and slower page loads.
How do I enable Disqus comments?
Add your Disqus shortname under the disqus.shortname key in _config.yml and build with JEKYLL_ENV=production, since comments are suppressed in local builds to avoid polluting the account. To disable comments on a single post, add comments: false to its front matter.
How do I change the fonts?
Set google_fonts in _config.yml with font names and weights, for example "Source Sans Pro" and "Lora" at 400, 400i, 700, and 700i. Then override the SCSS variables $serif-font-family, $sans-serif-font-family, and $monospace-font-family in /assets/css/main.scss.














