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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Analyzing the feasibility of merging a technical blog and resume site into a unified Jekyll website, exploring architectural challenges and integration strategies.
How to handle sitemap.xml generation when running multiple Jekyll sites under a single custom domain on GitHub Pages — and why it matters for AdSense approval.
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.
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.
After another AdSense rejection, I shifted focus from technical fixes to E-E-A-T — Experience, Expertise, Authoritativeness, and Trustworthiness. Here's what I changed and why.
Another AdSense rejection with no specific details. Documenting the debugging process, fixes implemented, and the frustration of opaque rejection messages.
In Part 1 of this series, we covered the foundational optimizations for Jekyll sites on GitHub Pages. Part 2 dives into advanced analytics, performance monitoring, and the lessons learned from running a technical blog with 100+ posts.
I’m happy to announce a batch of new features that enhance the functionality and user experience of this blog. These improvements make the content more interactive, organized, and user-friendly. Hopefully, you like the changes.
How to run Github Pages locally in my Microsoft Windows 10 Pro WSLv2Ubuntu 22.04 LTS environment and using Visual Studio Code to modify the contents. I’m not a Ruby or Jekyll expert by any means but just wanted a quick guide on running my Github Pages website locally to review them before pushing to this website. Seemed like an easy enough thing but there were a couple of hiccups to sort out so thought I’d write them down for future me when I try this again.
This should also lets me test out new plugins, new versions and changes to templates without breaking the public website. I’m still sorting out how to do the abstracts and formatting of the archive pages correctly.
So it’s been quite awhile since I posted anything to any blog. I did post a couple updates as I did projects in grad school. The Wordpress site I used for this earlier died and was hosted on a VMware ESXi server in my homelab. I didn’t have time to fix it while in school so no postings since mid-2016.
🇪🇺 This site uses cookies to improve your experience and for analytics. As an EU visitor, you can control your privacy preferences. Read our Privacy Policy