Type on Strap is an open-source Jekyll theme created by Sylhare for building blogs, portfolio sites, and photo galleries, and it can be installed as a remote theme for GitHub Pages, a Ruby gem, or a Docker image. It consumes standard Jekyll content — posts in _posts, portfolio entries in _portfolio, pages in pages — and produces a responsive static site with light and dark themes, full-text search, math rendering, diagram support, and multiple comment backends.
What is Type on Strap?
Type on Strap is an open-source, MIT-licensed Jekyll theme developed by Sylhare that turns standard Jekyll content into a responsive blog or portfolio site. It takes blog posts, portfolio items, and static pages as input, and outputs a static HTML site with features like dark mode, search, KaTeX math typesetting, Mermaid diagrams, and comment integration. The theme is distributed through GitHub (as a remote theme), RubyGems (as the type-on-strap gem), and Docker Hub, and it is based on Rohan Chandra's type-theme.
Key Features
- Responsive design — The layout adapts to desktop, laptop, tablet, and phone screens, and supports responsive header images with
-smalland-mediumvariants. - Auto light/dark theme — Setting
color_theme: autoadds a manual toggle icon in the navbar;darkandlightare also available. - Full-text search — Uses Simple-Jekyll-Search to index posts, pages, and portfolio items; add
exclude: truein front matter to omit content. - KaTeX math typesetting — Enable
katex: trueto render LaTeX math inline with$$...$$or on its own line. - Mermaid diagrams — Set
mermaid: defaultto load Mermaid and render diagrams from fencedmermaidcode blocks. - Multiple comment systems — Configure Disqus, Giscus, Utterances, or Cusdis in
_data/comments.yml; Giscus stores comments as GitHub discussions, Utterances as GitHub issues. - Portfolio and gallery pages — The
_portfoliocollection produces a 3-column portfolio grid; a gallery include builds an image column layout from a specified folder. - SEO and analytics — Includes jekyll-seo-tag for meta tags and supports Google Analytics GA4 with a GDPR cookie-consent banner.
- Bootstrap compatibility — Set
bootstrap: trueon a page to include Bootstrap for custom HTML content. - Localization — Edit
_data/language.ymlto translate UI strings and choose date formats such as%B %-d, %Yor%Y-%m-%d.
Who is it for?
- Bloggers and writers — Publish posts with tags, categories, and an archive page, using
excerpt_separatorto control preview text on the blog list. - Developers — Integrate the theme via
remote_themeor as a gem; use the included npm scriptnpm run post 'Title'to scaffold a dated post file. - Designers and photographers — Showcase projects in the
_portfoliocollection with feature images, and build photo galleries with the gallery include andaligner.htmlfor side-by-side captioned images.
What can you do with Type on Strap?
- Publish a technical blog — Write posts containing KaTeX equations and Mermaid sequence diagrams, all rendered statically with no client-side build step beyond Jekyll.
- Offer multiple commenting options — Let readers comment via Disqus, Cusdis, GitHub issues (Utterances), or GitHub discussions (Giscus) by editing one data file.
- Customize navigation and branding — Control header text, footer text, avatars, favicons, and navigation menu through
_config.ymland_data/menu.yml; hide pages from the navbar withhide: true.
How does Type on Strap work?
To use it on GitHub Pages, add remote_theme: sylhare/Type-on-Strap to _config.yml and push. For local development, fork the repository, run bundle install to install dependencies, then bundle exec jekyll serve. Content is organized in _posts, _portfolio, and pages, while theme behavior is configured through _config.yml and data files in _data.
Alternatives
- Minimal Mistakes — another Jekyll theme with a different layout and feature set.
- Chirpy — a Jekyll theme focused on blogging with GitHub Pages support.
FAQ
Is Type on Strap free to use?
Type on Strap is open source under the MIT License, so it is free to use, modify, and redistribute. Bundled images from Pexels are CC0, and fonts use the SIL Open Font License.
Does Type on Strap work on GitHub Pages?
Yes, it can be used as a remote theme by adding remote_theme: sylhare/Type-on-Strap to _config.yml. Its default plugins — jekyll-paginate, jekyll-seo-tag, and jekyll-feed — are all validated by GitHub Pages.
How do I enable comments?
Open _data/comments.yml and fill in the credentials for one of the four supported services: Disqus (shortname), Cusdis (app ID), Utterances (repo and issue term), or Giscus (repo, category, and mapping). Comments appear below each post after the service is installed on your repository.
Can I write math in my posts?
Set katex: true in _config.yml, and then wrap inline math in $$ on the same line or display math on its own line using $$. The theme loads KaTeX automatically, so no extra plugins are needed.
How do I create a portfolio item?
Add a markdown file to the _portfolio folder with front matter that includes feature-img for the post page and img for the portfolio grid. If using the theme as a gem, add the portfolio collection configuration to _config.yml.





