{rawfeed} — A raw source of minimal web themes.

rawfeed-jekyll

rawfeed-jekyll

A raw Jekyll theme for minimalists
Gem Version

Theme Preview

Requirements

RequiredVersionHow to verifyHow to install
Git>= 2git -vGit
Ruby>= 3.0.0ruby -vRuby
Gem>= 3.0gem -vRuby contains Gem
Bundler>= 2.0bundler -vgem install bundler

Features

  • One-command installation via Ruby gem;
  • A terminal emulator on the home page with interactive commands;
  • Full CLI (rawfeed) for managing posts, pages, pixels, and site settings;
  • Smart floating TOC in posts;
  • Theme change: light/dark;
  • Chart in posts using Chart.js;
  • Stylized Markdown;
  • Avatar with flip animation and modal preview for each theme (light/dark);
  • Enable/disable weblog with one command;
  • Home page with about or blog — you decide with one command;
  • Quick search on weblog using keyword (powered by Fuse.js);
  • Weblog pagination (using jekyll-paginate-v2);
  • YouTube video embedding in posts;
  • Social network links on the home page or via terminal command;
  • Feed in weblog;
  • SEO-rich website;
  • Entire site minified in build: html, images, css and javascript;
  • Maintenance page;
  • Comments on blog posts with Giscus or Disqus (only in production mode);
  • Google Analytics (only in production mode);
  • Pixels page (image gallery);
  • Resume page with print support;
  • Donation page with QR codes;
  • Contact page with Google Apps Script integration and reCAPTCHA support;
  • Backup your entire site with one command;
  • and more here

Quick Start

sh -c "$(curl -fsSL https://rawfeed.github.io/rawfeed-jekyll/setup.sh)"

The script asks you:

  1. Local [1] or Docker [2] — choose how to run the project
  2. Project name — directory name for your site (default: my-site)

Then it checks all prerequisites, clones the repo, removes .git, and installs dependencies — all automatically.

Manual installation (Local)

Requires: Git, Ruby >= 3.2, RubyGems, Node.js, npm, and Bundler.

git clone --depth=1 https://github.com/rawfeed/rawfeed-jekyll-starter.git "my-site";
cd my-site;
rm -rf .git;
npm install

Manual installation (Docker)

Requires: Git and Docker (with Compose).

git clone --depth=1 https://github.com/rawfeed/rawfeed-jekyll-starter.git "my-site";
cd my-site;
rm -rf .git;
docker compose up --build

Note: Dependencies (npm + bundler) are installed during the Docker build. If you add new packages later, rebuild with docker compose build.

Open http://localhost:4000 in your browser.

Useful Docker commands

# Run a one-off command (e.g. create a draft)
docker compose run --rm app npm run create:draft

# Build the site without serving
docker compose run --rm app npm run build

# Stop the server
docker compose down

# Rebuild image and reinstall deps after adding gems/packages
docker compose build

# Full reset (delete volumes and rebuild)
docker compose down -v && docker compose up --build

Usage

After installation, see all available commands:

npm run help

Some common commands

CommandDescription
npm run serveStart the development server
npm run buildBuild the site for production
npm run create:draftCreate a new draft post
npm run create:pageCreate a new page
npm run create:pixelCreate a new pixel post
npm run post:draftPromote a draft to a published post
npm run home:aboutSet home page to about
npm run home:blogSet home page to weblog
npm run blog:enable / npm run blog:disableEnable or disable the weblog
npm run pixels:enable / npm run pixels:disableEnable or disable pixels
npm run minifyMinify HTML, images and JS in _site/
npm run backupCreate a backup of your site
npm run clean --cache / npm run clean --allClean Jekyll cache or entire project

Settings

Configuration is organized in YAML files under _data/. General settings are in _data/generic.yml, and page-specific settings are in _data/screen/ (e.g. navbar.yml, blog.yml, footer.yml, home.yml, etc.).

Avatar and Favicon

(1) - Create the folder directory: assets/images.

(2) - Place your website’s images (.jpg or .png) inside this assets/images directory.

Recommendation: Use a 4x4 image.

(3) - In the _data/screen/navbar.yml file, configure the avatar images:

avatar:
  open: true
  flip: true
  # note: the image (.jpg|.png) will be searched in the directory: assets/images/
  image:
    front:
      light: your_image_light.png
      dark: your_image_dark.png
    back: your_image_back.png

For the favicon, place your favicon (.png) in the assets/images directory.

Style

If you want to change the MAIN colors of rawfeed-jekyll, you can also do that by simply creating the assets/css/custom.css file and adding the structure below for the light and dark themes:

:root[data-theme="light"] {
  --bg-color: #c2c2c2 !important;
  --primary-color: blue !important;
  --text-color: black !important;
}

:root[data-theme="dark"] {
  --bg-color: #222222 !important;
  --primary-color: cyan !important;
  --text-color: white !important;
}

Note: Don’t forget the !important

Posts

Creating a blog post is very easy, first you create a draft using the CLI:

npm run create:draft

After you finish writing, promote it to a published post:

npm run post:draft

Note: If you start the server (npm run serve), drafts will appear in posts, but they will not go into production mode (npm run build).

Comments:

Post comments use Giscus or Disqus, configurable in the _data/screen/blog.yml file under the comments section. Whichever one you choose, you must set the appropriate provider and credentials there, and each post must have comments: true in its front matter.

To learn more about both, such as how to set them up, visit Giscus or Disqus.

Vendors

[ Technologies and Services Used ]

This Jekyll theme was developed using the following services and technologies, to whom we would like to thank for their work and availability:

VendorLinkUse in Theme
Bootstrap 5https://getbootstrap.comFramework for responsive design and base components
Font Awesomehttps://fontawesome.comProviding vector icons
Google Fontshttps://fonts.google.comStyling and appearance of texts (custom fonts)
Google Apps Scripthttps://developers.google.com/apps-scriptEmail sending and form processing functionality (Contact page).
Google reCAPTCHAhttps://www.google.com/recaptcha/about/Form spam protection (if implemented).
Giscushttps://giscus.appGitHub Discussions-based commenting system option
Disqushttps://disqus.comComment system option

Donation

Click on the image below to be redirected the donation forms:

Changelog

See all version changes here

License

The theme is available as open source under the terms of this License.