From Publish to Reader: The Content Distribution Pipeline Behind This Blog
Writing a blog post is half the work. The other half is making sure it reaches people — through RSS feeds, sitemaps, search engines, newsletters, and social sharing. Here's the full distribution pipeline for a Jekyll blog, from git push to a reader's screen.
Rebuilding My Resume Site From the Ground Up
I gutted a 2017 Bootstrap template and rebuilt my resume site with modern CSS, four purpose-built views, a Jinja2/XeLaTeX PDF pipeline, company logos, and machine-readable structured data. Here is what I kept, what I dropped, and why.
Visual Indicators for Draft and Future Posts in Jekyll
When previewing a Jekyll site locally with --drafts and --future, it's hard to tell which posts are live and which are still unpublished. I added Font Awesome icons and italic styling to the archive and home pages so drafts get a pencil and future posts get a robot — visible only during local development.
Jekyll Run Plugin: Local Development Settings That Actually Work
The Jekyll Run VS Code extension is convenient for local development, but its settings live in four different places and the defaults won't show your future-dated posts. Here's how to configure it properly, where the settings actually come from, and the _config.yml trap that silently overrides your CLI flags.
Upgrading from a Basic Favicon to a Modern Device Set in Jekyll
A single favicon.ico is no longer enough. Here is how I upgraded my Jekyll site to support high-resolution Apple Touch icons, Android manifests, and modern browser standards using ImageMagick and a few lines of HTML.
The CI/CD Pipeline Behind This Jekyll Blog
Three GitHub Actions workflows, Dependabot, and a Lighthouse config — here's the full CI/CD pipeline that builds, deploys, secures, and monitors this Jekyll blog. Including the bugs I shipped along the way.
Adding Comments to a Static Site: Why I Chose Giscus for Jekyll
Jekyll has no database. So where do comments live? I evaluated six approaches — from hosted services to custom Lambda functions — before landing on Giscus. Here's the decision process and the implementation.
Building a Custom Tag and Category Generator Plugin for Jekyll
GitHub Pages doesn't support tag or category pages out of the box. Here's how I built a custom Jekyll generator plugin that creates them automatically — and the SEO lessons learned along the way.
Jekyll's Invisible Bug: When Code Fences Don't Protect Your Liquid Examples
If you write Jekyll posts about Jekyll, your Liquid code examples will silently vanish — or crash the build. Markdown code fences don't protect Liquid tags from execution. Here's how to find every affected post, why it sneaks up on you, and the fix that actually works.
The Small Things: Polish Features That Make a Jekyll Blog Feel Professional
Dark mode, print stylesheets, haiku error pages, author bios, and the archive page — none of these are glamorous features. Each one took less than a day. Together they're the difference between a blog that looks like a default template and one that feels like someone cares about it.
Jekyll Content Plumbing: Permalinks, Reading Time, Excerpts, and Redirects
The invisible infrastructure behind a Jekyll blog — how permalink structure, reading time estimates, custom excerpt separators, pagination, and redirect handling all work together. These aren't glamorous features, but getting them wrong breaks SEO, confuses readers, and creates maintenance headaches.
Upgrading Jekyll: Two Years of Cascading Breakage
Every Jekyll upgrade broke something downstream. Ruby 3.0 dropped webrick. Jekyll 4.3 broke SASS imports. Dart Sass 3.0 deprecated color functions. Node.js 24 forced all GitHub Actions to update. Here's the full upgrade timeline and what each one taught me.
How the Sausage Is Made: Every Feature Powering This Jekyll Blog
After 130+ posts and two years of Jekyll customization, here's the complete feature set behind this blog — from Mermaid diagrams and KaTeX math to GDPR compliance, Pandoc exports, and the SEO pipeline. A look behind the curtain at what it takes to run a technical blog on GitHub Pages.
Building This Blog: Jekyll on GitHub Pages from Zero to 130+ Posts
I've been writing about technology since 2004. This blog has lived on WordPress, Blogger, and now Jekyll on GitHub Pages. Here's how I set it up, what I added along the way, and what I'd do differently if I started over.
Integrating Jekyll-Pandoc-Exports Into a Real Project - Part 3: Bugs, Fixes, and HTML Cleanup
What happens when you integrate your own Jekyll plugin into a real project: three patch releases, a Ruby language gotcha, and the surprising difficulty of converting themed HTML into clean documents.
Building a Jekyll Plugin for Automated Document Exports - Part 2: Technical Implementation
Technical deep-dive into Jekyll plugin development: hooks system, Pandoc integration, and document generation features. Part 2 of building a professional Ruby gem.
Merging Two Jekyll Websites: Architectural Analysis and Integration Strategies
Analyzing the feasibility of merging a technical blog and resume site into a unified Jekyll website, exploring architectural challenges and integration strategies.
Your Jekyll Theme Is Probably Missing head and body Tags
Many Jekyll themes — especially minimal forks — ship without proper head and body tags. Browsers don't care. Bots do. Here's how to check and fix it in five minutes.
Your Jekyll Sitemap Is 60% Garbage
I audited my Jekyll sitemap and found that 262 of 434 URLs were auto-generated tag pages, category pages, and pagination — most with a single post. Here's how to clean it up without losing anything.
Fixing AdSense Verification Without Breaking GDPR: The Script Loading Mistake
My GDPR implementation was too aggressive — it hid the AdSense script from Google's verification bot. Here's how I separated verification from ad serving while keeping GDPR compliance intact.
Jekyll Mermaid Diagram Rendering: Why Client-Side Beats Plugins
How Jekyll 4.4's Rouge syntax highlighter interferes with Mermaid diagram rendering and why client-side rendering with Mermaid 11 is better than plugins.
Implementing GDPR Compliance for Jekyll Sites: A Real-World AdSense Integration Story
A detailed walkthrough of implementing GDPR cookie consent for Jekyll sites with Google AdSense and Analytics, including debugging challenges and solutions.