JekyllBlog

blogtheme — Jekyll Blog Template

By nathanjessen

A minimalist blog theme built on Jekyll and TailwindCSS, with homepage content configured through _config.yml and _data files, plus a Docker-based local development workflow and a Gulp build process.

Explore the design

Compare the page layouts and mobile experience. Open any screenshot for a closer look.

3 previews
Desktop homepage1 / 3
Desktop captureTop of page

Actual screenshot captured by the server browser.

All pages & views 3

Screenshots show visual appearance; interactive behavior may differ.

Recorded 2026-10-03View source

What stands out

A quick read of the recorded project description.

01

Jekyll blog theme styled with TailwindCSS

02

Distributed as a Ruby gem, integrated via the Gemfile and the theme field in _config.yml

03

Homepage content driven by _data/featured.yml, services.yml, and testimonials.yml

04

Built-in post, tag, category, and 404 pages, with layouts and components organized into separate directories

05

Docker + Gulp development workflow, including Browsersync live reload and production build commands

Template Details

blogtheme is a minimalist blog theme for Jekyll, with TailwindCSS used for styling. The theme is distributed as a Ruby gem: add gem "blogtheme" to a Jekyll site's Gemfile, set theme: blogtheme in _config.yml, and run bundle install to integrate it.

Site information and the copy for each homepage section are configured centrally in _config.yml, including the title, description, author, footer content, and the titles and descriptions for sections such as recent posts, featured works, and services. The homepage's featured items, services, and testimonials come from _data/featured.yml, _data/services.yml, and _data/testimonials.yml respectively. The theme also reserves configuration entries for Google Analytics 4 via ga_tracking_id and for social links including Twitter, GitHub, LinkedIn, Medium, Instagram, Dribbble, CodePen, and AngelList, provided as comments by default.

The theme structure follows Jekyll conventions: _layouts holds page layouts, _includes holds reusable components, _styles holds TailwindCSS source files, _pages provides built-in pages such as the post list, tags, categories, and 404, _data carries homepage content, and assets stores images and compiled CSS.

The development workflow relies on Docker and Docker Compose, and runs npm commands through Node.js. For first-time use, run npm install and npm run docker:rebuild; for day-to-day development, use npm start to launch a local server with live reload (default http://localhost:4000), and npm run docker:stop to stop the container. After modifying the Dockerfile, Gemfile, or package.json, docker:rebuild must be run again. For builds, npm run build:dev is used for development builds, and npm run build produces a production build with minified assets. To release a theme update, update the version number in both package.json and blogtheme.gemspec, then publish to RubyGems with gem build and gem push.

Limitations and notes: the repository does not provide detailed styling documentation or browser compatibility ranges for the theme, so it is advisable to check the demo site first. The licenses for third-party assets such as demo images, fonts, and icons must be verified separately and cannot be determined solely from the code's MIT license.

JekyllBlog

Is it right for your project?

Use Cases

  • Building an article-focused personal blog or portfolio site with Jekyll
  • Sites that need to maintain homepage featured works, services, and testimonials content through data files
  • Projects that want a unified Jekyll and TailwindCSS development environment in Docker containers
  • Scenarios that need to introduce the theme as a gem into an existing Jekyll site

Suitable For

  • Front-end or full-stack developers familiar with Jekyll and YAML configuration
  • Bloggers who prefer minimalist typography and content-first layouts
  • Teams or individuals comfortable with a Docker and npm workflow

Getting started & customization

Use these recorded setup notes alongside the repository instructions for your chosen version.

  1. 1

    Add gem "blogtheme" to the Jekyll site's Gemfile, set theme: blogtheme in _config.yml, then run bundle install.

  2. 2

    Configure the site title, description, author, footer, and homepage section copy in _config.yml; maintain featured works, services, and testimonials content in the corresponding YAML files under _data/.

  3. 3

    Local development requires Docker, Docker Compose, and Node.js. Run npm install and npm run docker:rebuild the first time, then use npm start to launch the local server.

  4. 4

    After modifying the Dockerfile, Gemfile, or package.json, run npm run docker:rebuild again.

  5. 5

    Use npm run build for production builds; to release a theme update, update the version number in both package.json and blogtheme.gemspec, then run gem build and gem push.

Read repository instructions

License & source material

Usage conditions & limitations

Free to use · keep license notice

This entry covers the free version in the public repository under the MIT license; the free scope is the code of this version and does not mean that external services or third-party assets are free.

Must comply with when using

  • The code of this version may be used, modified, used commercially, and distributed free of charge.
  • When distributing copies or substantial portions of the code, retain the original author's copyright notice and the full MIT license notice.
  • The code is provided as is; warranties and limitations of liability are governed by the original license and applicable law.

Additional costs & items to verify

  • Local development requires Docker, Docker Compose, and Node.js; otherwise development commands such as npm start cannot run.
  • To enable Google Analytics 4 tracking, you must provide your own GA tracking ID, which is an external service configuration.
  • Demo images, fonts, icons, and other third-party assets must be checked against their respective licenses and cannot be determined solely from the code's MIT license.
  • External services such as domains, hosting, databases, payments, or AI may incur separate charges.
View Original Text Basis

Permission is hereby granted, free of charge

Original License Text

* [Docker](https://www.docker.com/) * [Docker Compose](https://docs.docker.com/compose/) * [Node.js](https://nodejs.org/) (for running npm commands)

Original README

# Google Analytics 4 # ga_tracking_id: G-XXXXXXXXXX

Original README
https://github.com/nathanjessen/blogtheme/blob/main/LICENSE.txthttps://github.com/nathanjessen/blogtheme/blob/main/README.md

Compiled by DeepSeek based on repository license and README ·2026-10-03. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.

Project checks & description sources

Template Information

Source platforms
GitHub
Documentation and maintenance reference score
More documented · 80 / 100
Technologies
Jekyll
Website type
Blog
How this score is calculated

Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.

What to verify for this project

Repository update recorded
2026-04-15
Screenshot last checked
2026-10-03

A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.

The catalog identifies Jekyll as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.

Use a selection guide →

How this description was prepared

AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.

Review declaration: [email protected] · 2026-10-04

Inspect the recorded source material

SHA-256: 253fc70aebfe13285f6596e132f396e0ff34543190c08ecd302654021fb31544

2026-10-03T18:11:36.805Z

Source file / repository
# blogtheme

A clean minimalist theme for [Jekyll](https://jekyllrb.com/) using [TailwindCSS](https://tailwindcss.com) that includes:

* A Jekyll blog theme
* A Gulpfile that does the following:
  * Compiles Jekyll
  * Runs [Browsersync](https://www.browsersync.io/) for local development
  * Compiles TailwindCSS

## Using this theme

Add this line to your Jekyll site's `Gemfile`:

```ruby
gem "blogtheme"
```

Add this line to your Jekyll site's `_config.yml`:

```yaml
theme: blogtheme
```

Then install dependencies:

```bash
bundle install
```

## Customization

All theme settings are configured in `_config.yml`. Key options:

```yaml
title: Your Site Title
description: Your site description
author: Your Name

# Google Analytics 4
# ga_tracking_id: G-XXXXXXXXXX

# Social links — uncomment and add your username
# twitter_url: https://twitter.com/username
# github_url: https://github.com/username
# linkedin_url: https://www.linkedin.com/in/username
# medium_url: https://medium.com/username
# instagram_url: https://www.instagram.com/username
# dribbble_url: https://dribbble.com/username
# codepen_url: https://codepen.io/username
# angellist_url: https://angel.co/username

# Homepage section content
recent_posts_title: Recent Posts
recent_posts_content: A short description for your recent posts section.
featured_title: Featured Works
featured_content: A short description for your featured works section.
services_title: Services
services_content: A short description for your services section.

footer_content: "© 2025 Your Name"
```

### Data files

Customize homepage content by editing the files in `_data/`:

| File | Purpose |
|---|---|
| `_data/featured.yml` | Featured projects shown on the homepage |
| `_data/services.yml` | Services section on the homepage |
| `_data/testimonials.yml` | Testimonial shown on the homepage |

### Theme structure

| Directory | Purpose |
|---|---|
| `_layouts/` | Page layout templates |
| `_includes/` | Reusable components |
| `_styles/` | CSS source files (TailwindCSS) |
| `_pages/` | Built-in pages (posts, tags, categories, 404) |
| `_data/` | Homepage content (featured, services, testimonials) |
| `assets/` | Static assets (images, compiled CSS) |

## Development Requirements

* [Docker](https://www.docker.com/)
* [Docker Compose](https://docs.docker.com/compose/)
* [Node.js](https://nodejs.org/) (for running npm commands)

## Local Development

The theme uses Docker for development to ensure a consistent environment across different machines.

### First Time Setup

```bash
npm install
npm run docker:rebuild
```

### Day-to-Day Development

Start the dev server with live reload at http://localhost:4000:

```bash
npm start
```

Stop the container:

```bash
npm run docker:stop
```

> **Note:** Run `npm run docker:rebuild` again any time you change the `Dockerfile`, `Gemfile`, or `package.json`.

## Building

* Build for development:
  ```bash
  npm run build:dev
  ```

* Build for production:
  ```bash
  npm run build
  ```
  This will create an optimized production build with minified assets.

## Publishing Theme Updates

1. Update the version number in both `package.json` and `blogtheme.gemspec`
2. Build the gem:
   ```bash
   gem build blogtheme.gemspec
   ```
3. Push the gem to RubyGems:
   ```bash
   gem push blogtheme-x.x.x.gem
   ```
4. Commit, tag, and push:
   ```bash
   git add package.json blogtheme.gemspec
   git commit -m "Release version x.x.x"
   git tag vx.x.x
   git push origin main --tags
   ```

## Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/nathanjessen/blogtheme.
Report a correction

Explore similar templates

Compare previews and descriptions within the same stack and category.