Jekyll blog theme styled with TailwindCSS
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.
Actual screenshot captured by the server browser.
All pages & views 3
Screenshots show visual appearance; interactive behavior may differ.
What stands out
A quick read of the recorded project description.
Distributed as a Ruby gem, integrated via the Gemfile and the theme field in _config.yml
Homepage content driven by _data/featured.yml, services.yml, and testimonials.yml
Built-in post, tag, category, and 404 pages, with layouts and components organized into separate directories
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.
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
Add gem "blogtheme" to the Jekyll site's Gemfile, set theme: blogtheme in _config.yml, then run bundle install.
- 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
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
After modifying the Dockerfile, Gemfile, or package.json, run npm run docker:rebuild again.
- 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.
License & source material
Usage conditions & limitations
Free to use · keep license noticeThis 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
https://github.com/nathanjessen/blogtheme/blob/main/LICENSE.txthttps://github.com/nathanjessen/blogtheme/blob/main/README.md# Google Analytics 4 # ga_tracking_id: G-XXXXXXXXXX
Original README
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.
Explore similar templates
Compare previews and descriptions within the same stack and category.

al-folio
A Jekyll academic homepage theme for scholars and researchers, with a clean responsive design and out-of-the-box support for publication lists, project showcases, CVs, and blogs.
Jekyll · Portfolio

minimal-mistakes
Minimal Mistakes is a two-column Jekyll theme for personal sites, blogs, project documentation, or portfolios.
Jekyll · Portfolio

Beautiful Jekyll
Beautiful Jekyll is a mature, easy-to-use Jekyll blog theme maintained by Dean Attali since 2015, with over 50,000 users.
Jekyll · Blog

jekyll-TeXt-theme
A customizable Jekyll theme for personal sites, team sites, blogs, projects, and documentation.
Jekyll · Blog

startbootstrap-clean-blog-jekyll
The official Jekyll version of Start Bootstrap's Clean Blog theme, offering a blog home page, about page, contact page, and sample post pages, with a Formspree-powered contact form.
Jekyll · Blog

So Simple
A minimal reading-oriented Jekyll theme by Michael Rose for personal blogs, portfolios, and long-form reading. It offers multiple layouts, microformat markup, Disqus comments, Google Analytics, Jekyll SEO Tag, three skins, and aggregation by year, category, and tag with a grid view.
Jekyll · Blog
