A minimal, high-performance Jekyll theme for personal websites and blogs. Designed for readability and elegance.
- 🎨 Two Beautiful Themes: Choose between Paper (Clean Ivory/Slate) and Flexoki (Warm Earthy).
- 📱 Responsive & Mobile-First: Optimized layout for all devices.
- 🌙 Dark Mode Support: Automatic and manual toggle.
- ✍️ Typography Focused: Optimized for long-form reading.
- 🎯 Syntax Highlighting: Beautiful code blocks with language support.
- 🔍 SEO Optimized: Built-in metadata and social tags.
Apollo comes with two pre-configured color themes. The default is Paper.
To switch to Flexoki, edit assets/css/styles.scss:
// @use "themes/paper"; <-- Comment this out
@use "themes/flexoki"; // <-- Uncomment thisFor working on Apollo itself:
# Prerequisites
brew install fswatch # File watcher for live reload
brew install vips # Image processing for OG images
bundle install # Ruby dependencies
# Run locally
bash scripts/compose.sh serveOpen http://localhost:4000 - edits to _sass/, _layouts/, etc. auto-reload.
mkdir my-site && cd my-site
git initgit remote add apollo https://github.com/defaults/apollo.git
git fetch apollo
git subtree add --prefix=apollo apollo master --squashbash apollo/scripts/setup-site.shThis creates:
my-site/
├── apollo/ # Theme (git subtree - don't edit directly)
├── content/ # Your markdown files (edit this!)
│ ├── _essays/ # Blog posts
│ ├── home/index.md # Homepage
│ └── about.md # About page
├── overrides/ # Optional theme overrides
├── scripts/
│ └── compose.sh # Build script (delegates to apollo)
├── _config.local.yml # Your site config
├── app.yaml # GCP App Engine config
└── .github/workflows/
└── deploy.yml # CI/CD workflow
Edit _config.local.yml:
title: "Your Name"
description: "Your tagline"
url: "https://yoursite.com"
author:
name: "Your Name"
# SEO & Social
twitter:
username: "yourhandle"
social:
links:
- https://twitter.com/yourhandle
- https://github.com/yourhandle- SEO: Handled automatically by
jekyll-seo-tag. Ensuretitle,description,url, andlogoare set in_config.local.yml. - LLM SEO: A
/llms.txtfile is automatically generated for AI indexing.
Edit files in content/:
# content/_essays/2024-01-01-my-first-post.md
---
title: "My First Post"
date: 2024-01-01
---
Write your content here in markdown.# Install dependencies (once)
BUNDLE_GEMFILE=apollo/Gemfile bundle install
brew install fswatch
# Serve with live reload
bash scripts/compose.sh servePush to GitHub. The included workflow deploys to GCP App Engine.
Required secret: GCP_SERVICE_ACCOUNT_KEY (your GCP service account JSON)
git fetch apollo
git subtree pull --prefix=apollo apollo master --squashCopy any file from apollo/ to overrides/ with the same path and modify it:
# Example: customize the header
cp apollo/_includes/header.html overrides/_includes/header.html
# Edit overrides/_includes/header.htmlThe theme uses CSS custom properties. Override in overrides/assets/css/custom.scss:
:root {
--color-action: #your-color;
}| Directory | Purpose | Edit? |
|---|---|---|
apollo/ |
Theme (subtree) | ❌ No |
content/ |
Your markdown | ✅ Yes |
overrides/ |
Theme overrides | ✅ Yes |
_config.local.yml |
Site config | ✅ Yes |
| Command | Description |
|---|---|
bash scripts/compose.sh serve |
Build and serve with live reload |
bash scripts/compose.sh build |
Build site (for CI/manual builds) |
bash scripts/compose.sh clean |
Remove build directory |
MIT