McGarrah Technical Blog

Posts in category "web-development"

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.

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.

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.

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.

New Features: Copy Buttons, Comments, Tags, and More!

A batch of new features for the blog: clipboard copy buttons on code blocks, Giscus GitHub Discussions comments, a full tags and categories system, reading time estimates, and a round of security and SASS modernization fixes.

Running Github Pages locally

Getting Jekyll and GitHub Pages running locally in WSL2 Ubuntu, including the missing webrick fix for Ruby 3.0+ and using VS Code for markdown editing.

A long time between posts

Resurrecting a technical blog after seven years away — migrating old WordPress archives, Google Blogger posts, and 1990s DarkMagic.org content into a new Jekyll site on GitHub Pages.