Jekyll
Jekyll still runs a great many documentation sites and blogs, usually because GitHub Pages made it the default years ago. The guides below are written for teams living with that choice: working within or around the GitHub Pages plugin allowlist, making Ruby toolchains reproducible, speeding up builds that grew slow, and upgrading Jekyll and Ruby without breaking output.
For teams ready to leave, the migration guides cover the two common destinations — Eleventy, which keeps Liquid templates familiar, and Hugo — including how to replace each plugin and keep every URL working.
Choosing the Right Static Site Generator for Production
- Eleventy vs Jekyll for Markdown-Heavy BlogsComparisonFor thousands of Markdown files, compare Eleventy and Jekyll on parser config, data cascade, incremental-build reliability, and real build numbers from a 5,000-post corpus.
- Picking an SSG for a Multi-Language Docs SiteConceptCompare i18n in Astro, Hugo, Eleventy, and Jekyll for multi-language documentation — routing, content organization, and build cost — with measured numbers across locales.
- Scoring SSG Long-Term Maintenance RiskConceptScore a static site generator’s five-year maintenance risk: project health, upgrade history, dependency surface, plugin ecosystem and your exit cost.
- Custom Domains and HTTPS for Jekyll on GitHub PagesHow-toPoint a custom domain at a Jekyll site on GitHub Pages, get HTTPS enforced, fix certificate and DNS errors, and keep url and baseurl correct in _config.yml.
- Deploying Jekyll with GitHub ActionsHow-toReplace the classic GitHub Pages Jekyll builder with a GitHub Actions workflow: any plugin, any Jekyll version, caching, previews and Pages deployment.
- Migrating a Docs Site From Jekyll to HugoHow-toConvert Jekyll collections, Liquid includes and permalinks to Hugo sections, partials and URL config — with a build that drops from 96 s to 3.4 s on 1,200 pages.
- Porting Shortcodes and Includes Between GeneratorsHow-toMap Jekyll includes, Hugo shortcodes, Eleventy shortcodes and MDX components onto each other — with a census-first strategy, stub-then-port order, and a rendering test per component.
- Replacing Jekyll Plugins When Migrating to EleventyHow-toMap common Jekyll plugins — jekyll-seo-tag, jekyll-feed, jekyll-paginate, jekyll-picture-tag — to their Eleventy equivalents, with config and measured build impact.
- Running Jekyll in Docker for Reproducible BuildsHow-toBuild a Jekyll site in a pinned Docker image so writers, CI and production use the same Ruby, gems and native extensions, with fast cached rebuilds.
- Running Jekyll on GitHub Pages Without PluginsHow-toThe allowlist blocks most gems. Replace plugin behaviour with Liquid, data files and a build step — or take the Actions route and keep the plugins you actually need.
- Upgrading Jekyll and Ruby Versions SafelyHow-toMove an old Jekyll 3 site to Jekyll 4 and a supported Ruby without breaking pages: pin versions, upgrade in steps, diff the built output and fix what changes.
- Fixing Jekyll Builds That Break After a Ruby UpgradeFixFix the errors Jekyll sites hit on new Ruby versions, from missing webrick and stdlib gems to native extensions and date changes, then pin Ruby.
- Speeding Up Slow Jekyll BuildsFixProfile a slow Jekyll build, find the Liquid loops and plugins that dominate it, and apply caching and template fixes that cut build time by over 80%.
Production-Ready Deployment & CI/CD for SSGs
- Vercel ISR vs Static Generation for SSGsComparisonISR rebuilds pages on demand; static generation builds everything upfront. Astro, Eleventy, Hugo, and Jekyll have no ISR — they rebuild and purge at the CDN.
Often used with Jekyll
- Eleventy5 shared guidesIncremental builds, image pipelines and the data cascade.
- Hugo5 shared guidesBuild time at scale, image caches, modules and multilingual sites.
- GitHub Pages3 shared guidesPublishing from Actions and custom domains.
- Astro3 shared guidesIslands, content collections, astro:assets and deployment.
- GitHub Actions1 shared guidesCaching, matrix builds, reusable workflows and pinning.
- Next.js1 shared guidesStatic export for content sites, its limits and alternatives.