Blogging with Jekyll

A 6-part series on building and running a Jekyll blog hosted on GitHub Pages — from automating posts with AI to adding offline search, comments, live PR previews, ads, and faster CI builds. Each part is a standalone deep-dive you can apply to your own site.


Level 1 — Writing & Automation

Before you optimise anything, you need a fast, frictionless way to write and publish. This post shows how to go from a prompt on your phone to a live blog post in minutes — no laptop, no manual deployments.

1
How I Auto-Generate Blog Posts with GitHub Copilot, PRs, and GitHub Pages
Write posts on your phone with GitHub Copilot and have them live in minutes without ever touching a laptop. Teaches: GitHub Copilot as editor, PRs as a publishing pipeline, GitHub Pages automation.

Level 2 — Reader Features

A static site doesn't have to feel static to readers. These two posts add a fully-featured comment section and instant full-text search — both running entirely in the browser with zero backend or cloud subscription required.

2
Ditching Disqus for giscus — and I Should Have Done It Sooner
Replace a slow, ad-heavy comment system with GitHub Discussions — zero backend, zero cost. Teaches: giscus setup, GitHub Apps, data ownership.
3
This Blog Has Fully Offline Search — Here's How It Works
Add fully offline full-text search to your static site — no server, no API, no subscription. Teaches: Orama, JSON search indexes, offline-first JavaScript.

Level 3 — Dev Workflow & Operations

The finishing touches that turn a hobby blog into a well-oiled publishing platform. Live PR previews so you can review every post before it goes live, controlled ad placement instead of Google putting ads wherever it likes, and a custom Docker image that cuts CI build times dramatically.

Advertisement

4
How I Set Up Live PR Previews for This Jekyll Site on GitHub Pages
Get a live preview URL for every pull request so you can review posts exactly as readers will see them. Teaches: GitHub Actions, GitHub Pages environments, PR automation.
5
AdSense Auto Ads vs. Custom Placement: Why I Chose to Control Every Ad on This Site
Control exactly where ads appear instead of letting Google inject them anywhere. Teaches: Google AdSense custom placement, Jekyll includes for ads, reader-friendly ad strategy.
6
Using a Custom Docker Image to Speed Up GitHub Actions Builds
Pre-bake your entire build toolchain into a Docker image and cut CI build times dramatically. Teaches: custom Docker base images, GitHub Container Registry, GitHub Actions optimisation.