[{"data":1,"prerenderedAt":232},["ShallowReactive",2],{"hub:tools-eleventy":3},{"path":4,"key":5,"title":6,"h1":7,"description":8,"crumbs":9,"blocks":17},"\u002Ftools\u002Feleventy\u002F","tools-eleventy","Eleventy (11ty) in Production: Guides","Eleventy","Guides that use Eleventy in depth: incremental builds, eleventy-img pipelines, the data cascade, Shiki highlighting and Astro comparisons.",[10,13,16],[11,12],"Home","\u002F",[14,15],"Tools","\u002Ftools\u002F",[7,4],[18,21,23,26,130,132,171,198,200],{"k":19,"text":20},"p","Eleventy is the generator that does least by default and hides least when you add to it. It writes the HTML your templates produce and nothing else, which makes it predictable at scale and means many production concerns — minification, image processing, highlighting, sitemaps — are small pieces of configuration you own. The guides below are mostly those pieces, each measured on real sites from a few hundred to 10,000 pages.",{"k":19,"text":22},"Build speed runs through many of them: incremental mode, caching processed images between CI runs, and where Eleventy is faster or slower than Astro on the same documentation corpus. If you are choosing between the two, start with the comparisons at the top.",{"k":24,"html":25},"fig","\u003Cfigure>\n\u003Csvg viewBox=\"0 0 760 213\" role=\"img\" aria-labelledby=\"hub-eleventy-hero-title hub-eleventy-hero-desc\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\">\n  \u003Ctitle id=\"hub-eleventy-hero-title\">Built-in behaviour compared with what Eleventy sites configure themselves\u003C\u002Ftitle>\n  \u003Cdesc id=\"hub-eleventy-hero-desc\">Two panels. Built in: templates to HTML, the data cascade, pagination, passthrough copy and incremental mode. Configured yourself, with guides below: image processing, minification, syntax highlighting, sitemaps and feeds, and search indexes.\u003C\u002Fdesc>\n  \u003Crect x=\"0\" y=\"0\" width=\"760\" height=\"213\" fill=\"#ffffff\"\u002F>\n  \u003Cg style=\"font-family:system-ui, sans-serif;font-size:12px\">\n    \u003Crect x=\"20.0\" y=\"58.0\" width=\"350.0\" height=\"139.4\" rx=\"10\" fill=\"#1982c4\" opacity=\"0.14\" stroke=\"#1982c4\" style=\"stroke-width:1.5px\"\u002F>\n    \u003Ccircle cx=\"40.0\" cy=\"103.0\" r=\"2.5\" fill=\"#1982c4\" stroke=\"#1982c4\" style=\"stroke-width:1.5px\"\u002F>\n    \u003Ccircle cx=\"40.0\" cy=\"125.0\" r=\"2.5\" fill=\"#1982c4\" stroke=\"#1982c4\" style=\"stroke-width:1.5px\"\u002F>\n    \u003Ccircle cx=\"40.0\" cy=\"146.9\" r=\"2.5\" fill=\"#1982c4\" stroke=\"#1982c4\" style=\"stroke-width:1.5px\"\u002F>\n    \u003Ccircle cx=\"40.0\" cy=\"168.9\" r=\"2.5\" fill=\"#1982c4\" stroke=\"#1982c4\" style=\"stroke-width:1.5px\"\u002F>\n    \u003Crect x=\"390.0\" y=\"58.0\" width=\"350.0\" height=\"139.4\" rx=\"10\" fill=\"#8ac926\" opacity=\"0.2\" stroke=\"#5a8a16\" style=\"stroke-width:1.5px\"\u002F>\n    \u003Ccircle cx=\"410.0\" cy=\"103.0\" r=\"2.5\" fill=\"#8ac926\" stroke=\"#5a8a16\" style=\"stroke-width:1.5px\"\u002F>\n    \u003Ccircle cx=\"410.0\" cy=\"125.0\" r=\"2.5\" fill=\"#8ac926\" stroke=\"#5a8a16\" style=\"stroke-width:1.5px\"\u002F>\n    \u003Ccircle cx=\"410.0\" cy=\"146.9\" r=\"2.5\" fill=\"#8ac926\" stroke=\"#5a8a16\" style=\"stroke-width:1.5px\"\u002F>\n    \u003Ccircle cx=\"410.0\" cy=\"168.9\" r=\"2.5\" fill=\"#8ac926\" stroke=\"#5a8a16\" style=\"stroke-width:1.5px\"\u002F>\n    \u003Ctext x=\"380.0\" y=\"30.0\" fill=\"#1f2937\" style=\"font-size:16px;text-anchor:middle;font-weight:700\">What Eleventy leaves to you\u003C\u002Ftext>\n    \u003Ctext x=\"34.0\" y=\"83.5\" fill=\"#166a9e\" style=\"font-size:13.5px;text-anchor:start;font-weight:700\">Built in\u003C\u002Ftext>\n    \u003Ctext x=\"50.0\" y=\"107.0\" fill=\"#1f2937\" style=\"font-size:11.5px;text-anchor:start\">templates to HTML\u003C\u002Ftext>\n    \u003Ctext x=\"50.0\" y=\"129.0\" fill=\"#1f2937\" style=\"font-size:11.5px;text-anchor:start\">data cascade\u003C\u002Ftext>\n    \u003Ctext x=\"50.0\" y=\"150.9\" fill=\"#1f2937\" style=\"font-size:11.5px;text-anchor:start\">pagination\u003C\u002Ftext>\n    \u003Ctext x=\"50.0\" y=\"172.9\" fill=\"#1f2937\" style=\"font-size:11.5px;text-anchor:start\">incremental mode\u003C\u002Ftext>\n    \u003Ctext x=\"404.0\" y=\"83.5\" fill=\"#3f6410\" style=\"font-size:13.5px;text-anchor:start;font-weight:700\">You configure\u003C\u002Ftext>\n    \u003Ctext x=\"420.0\" y=\"107.0\" fill=\"#1f2937\" style=\"font-size:11.5px;text-anchor:start\">eleventy-img pipelines\u003C\u002Ftext>\n    \u003Ctext x=\"420.0\" y=\"129.0\" fill=\"#1f2937\" style=\"font-size:11.5px;text-anchor:start\">minification\u003C\u002Ftext>\n    \u003Ctext x=\"420.0\" y=\"150.9\" fill=\"#1f2937\" style=\"font-size:11.5px;text-anchor:start\">Shiki highlighting\u003C\u002Ftext>\n    \u003Ctext x=\"420.0\" y=\"172.9\" fill=\"#1f2937\" style=\"font-size:11.5px;text-anchor:start\">sitemaps, feeds, search\u003C\u002Ftext>\n  \u003C\u002Fg>\n\u003C\u002Fsvg>\n\u003Cfigcaption>The right panel is where most of the Eleventy guides on this site live.\u003C\u002Ffigcaption>\n\u003C\u002Ffigure>",{"k":27,"h":28,"items":29},"group","Choosing the Right Static Site Generator for Production",[30,35,39,43,47,51,55,59,64,68,72,77,81,85,89,93,97,101,105,109,113,117,121,126],{"t":31,"u":32,"d":33,"y":34},"Astro vs Eleventy Build Times at 10,000 Pages","\u002Fchoosing-the-right-static-site-generator-for-production\u002Fastro-vs-eleventy-for-documentation-sites\u002Fastro-vs-eleventy-build-times-at-10000-pages\u002F","Astro and Eleventy benchmarked on the same docs corpus from 1,000 to 10,000 pages: cold, warm and one-page-edit builds, memory, and where each scales badly.","Comparison",{"t":36,"u":37,"d":38,"y":34},"Astro vs Eleventy for Large Docs (1000+ Pages)","\u002Fchoosing-the-right-static-site-generator-for-production\u002Fastro-vs-eleventy-for-documentation-sites\u002Fchoosing-between-astro-and-eleventy-for-large-docs\u002F","A decision guide for documentation sites of 1000+ pages — comparing Astro and Eleventy on build scaling, search, MDX\u002Fcomponents, and authoring ergonomics with measured numbers.",{"t":40,"u":41,"d":42,"y":34},"Content Collections vs the Eleventy Data Cascade","\u002Fchoosing-the-right-static-site-generator-for-production\u002Fastro-vs-eleventy-for-documentation-sites\u002Fcontent-collections-vs-eleventy-data-cascade\u002F","Two ways to model documentation content: a typed schema that fails the build, or a layered cascade that resolves at render. What each buys, and how to get validation in both.",{"t":44,"u":45,"d":46,"y":34},"Dev Server Performance: Astro vs Eleventy","\u002Fchoosing-the-right-static-site-generator-for-production\u002Fastro-vs-eleventy-for-documentation-sites\u002Fdev-server-performance-astro-vs-eleventy\u002F","Measure cold start, hot reload and memory for Astro and Eleventy dev servers on a 1,300-page docs site, and the settings that keep writers’ previews fast.",{"t":48,"u":49,"d":50,"y":34},"Eleventy vs Jekyll for Markdown-Heavy Blogs","\u002Fchoosing-the-right-static-site-generator-for-production\u002Fjekyll-plugin-ecosystem\u002Feleventy-vs-jekyll-for-markdown-heavy-blogs\u002F","For 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.",{"t":52,"u":53,"d":54,"y":34},"Markdown Pipelines: remark vs markdown-it","\u002Fchoosing-the-right-static-site-generator-for-production\u002Fastro-vs-eleventy-for-documentation-sites\u002Fmarkdown-pipelines-remark-vs-markdown-it\u002F","Compare the remark and rehype pipeline in Astro with markdown-it in Eleventy: plugin models, speed, custom syntax, heading anchors and link rewriting.",{"t":56,"u":57,"d":58,"y":34},"Shortcodes vs Components for Docs Authors","\u002Fchoosing-the-right-static-site-generator-for-production\u002Fastro-vs-eleventy-for-documentation-sites\u002Fshortcodes-vs-components-for-docs-authors\u002F","Eleventy shortcodes and Astro components compared from the writer's chair: syntax, error messages, reuse, JavaScript cost and how to keep the vocabulary small.",{"t":60,"u":61,"d":62,"y":63},"Choosing an SSG for API Reference Documentation","\u002Fchoosing-the-right-static-site-generator-for-production\u002Fssg-framework-selection-matrix\u002Fchoosing-an-ssg-for-api-reference-documentation\u002F","API docs are generated, versioned and enormous. Compare Hugo, Astro, Eleventy and Next export on build scale, schema-driven pages, versioning and search.","Concept",{"t":65,"u":66,"d":67,"y":63},"Picking an SSG for a Multi-Language Docs Site","\u002Fchoosing-the-right-static-site-generator-for-production\u002Fssg-framework-selection-matrix\u002Fpicking-an-ssg-for-a-multi-language-documentation-site\u002F","Compare i18n in Astro, Hugo, Eleventy, and Jekyll for multi-language documentation — routing, content organization, and build cost — with measured numbers across locales.",{"t":69,"u":70,"d":71,"y":63},"Total Cost of Ownership for Static Site Generators","\u002Fchoosing-the-right-static-site-generator-for-production\u002Fssg-framework-selection-matrix\u002Ftotal-cost-of-ownership-for-static-site-generators\u002F","Estimate the three-year cost of running a static site on Hugo, Eleventy, Astro, Next.js export or a docs framework: people time, builds, hosting, upgrades.",{"t":73,"u":74,"d":75,"y":76},"Adding JSON-LD Structured Data at Build Time","\u002Fchoosing-the-right-static-site-generator-for-production\u002Ftechnical-seo-for-static-sites\u002Fadding-json-ld-structured-data-at-build-time\u002F","Emit valid JSON-LD from frontmatter in Astro, Eleventy and Hugo: build objects not strings, pick the right schema.org types, and validate every page in CI.","How-to",{"t":78,"u":79,"d":80,"y":76},"Building a Lunr Index at Build Time in Eleventy","\u002Fchoosing-the-right-static-site-generator-for-production\u002Fsearch-for-static-sites\u002Fbuilding-a-lunr-index-at-build-time-in-eleventy\u002F","Generate a prebuilt Lunr search index from Eleventy collections, keep it small with field boosts and stop words, and load it only when readers search.",{"t":82,"u":83,"d":84,"y":76},"Migrating a WordPress Export to Eleventy","\u002Fchoosing-the-right-static-site-generator-for-production\u002Fmigrating-between-static-site-generators\u002Fmigrating-a-wordpress-export-to-eleventy\u002F","Convert a WordPress XML export into Eleventy Markdown with front matter, images, categories and comments, keep every URL with redirects and verify parity.",{"t":86,"u":87,"d":88,"y":76},"Multilingual Eleventy Sites With the i18n Plugin","\u002Fchoosing-the-right-static-site-generator-for-production\u002Finternationalization-for-static-sites\u002Fmultilingual-eleventy-sites-with-the-i18n-plugin\u002F","Build a multilingual Eleventy site with the official i18n plugin: per-language folders, locale-aware links and dates, translated strings and a switcher.",{"t":90,"u":91,"d":92,"y":76},"Porting Shortcodes and Includes Between Generators","\u002Fchoosing-the-right-static-site-generator-for-production\u002Fmigrating-between-static-site-generators\u002Fporting-shortcodes-and-includes-between-generators\u002F","Map 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.",{"t":94,"u":95,"d":96,"y":76},"RSS and Atom Feeds for Static Blogs","\u002Fchoosing-the-right-static-site-generator-for-production\u002Ftechnical-seo-for-static-sites\u002Frss-and-atom-feeds-for-static-blogs\u002F","Publish valid RSS and Atom feeds from Eleventy, Astro or Hugo with full content, absolute URLs, stable IDs and correct headers, then check them in CI.",{"t":98,"u":99,"d":100,"y":76},"Replacing Jekyll Plugins When Migrating to Eleventy","\u002Fchoosing-the-right-static-site-generator-for-production\u002Fjekyll-plugin-ecosystem\u002Freplacing-jekyll-plugins-when-migrating-to-eleventy\u002F","Map common Jekyll plugins — jekyll-seo-tag, jekyll-feed, jekyll-paginate, jekyll-picture-tag — to their Eleventy equivalents, with config and measured build impact.",{"t":102,"u":103,"d":104,"y":76},"SEO-Safe Pagination and Tag Pages","\u002Fchoosing-the-right-static-site-generator-for-production\u002Ftechnical-seo-for-static-sites\u002Fseo-safe-pagination-and-tag-pages\u002F","Generate crawlable pagination and useful tag archives in Eleventy and Hugo: plain links, self canonicals, a minimum tag size and no thin date archives.",{"t":106,"u":107,"d":108,"y":76},"Sidebar Navigation in Astro and Eleventy","\u002Fchoosing-the-right-static-site-generator-for-production\u002Fastro-vs-eleventy-for-documentation-sites\u002Fsidebar-navigation-in-astro-and-eleventy\u002F","Build a docs sidebar from content in Astro and Eleventy: ordering, nesting, active state, collapsed sections, page weight, and keeping incremental builds fast.",{"t":110,"u":111,"d":112,"y":76},"Syntax Highlighting with Shiki in Astro and Eleventy","\u002Fchoosing-the-right-static-site-generator-for-production\u002Fastro-vs-eleventy-for-documentation-sites\u002Fsyntax-highlighting-with-shiki-in-astro-and-eleventy\u002F","Highlight code at build time with Shiki in Astro and Eleventy: dual light and dark themes, line annotations, build-time cost and zero runtime JavaScript.",{"t":114,"u":115,"d":116,"y":76},"Upgrading Eleventy 2 to 3 With ESM Configuration","\u002Fchoosing-the-right-static-site-generator-for-production\u002Fastro-vs-eleventy-for-documentation-sites\u002Fupgrading-eleventy-2-to-3-with-esm-configuration\u002F","Upgrade an Eleventy 2 site to Eleventy 3, convert config and data files to ESM, fix plugin and filter breakage, and diff the output against the old build.",{"t":118,"u":119,"d":120,"y":76},"hreflang and Language Alternates on Static Sites","\u002Fchoosing-the-right-static-site-generator-for-production\u002Finternationalization-for-static-sites\u002Fhreflang-and-language-alternates-on-static-sites\u002F","Generate reciprocal hreflang alternates from a translation key at build time in Hugo, Astro or Eleventy, and validate every language group in CI.",{"t":122,"u":123,"d":124,"y":125},"Fixing Duplicate Permalink Errors in Eleventy","\u002Fchoosing-the-right-static-site-generator-for-production\u002Fastro-vs-eleventy-for-documentation-sites\u002Ffixing-duplicate-permalink-errors-in-eleventy\u002F","Find which templates produce the same output path in Eleventy, fix the usual causes in pagination, slugs and data files, and catch collisions in CI.","Fix",{"t":127,"u":128,"d":129,"y":125},"Fixing Eleventy Out-of-Memory Errors on Large Collections","\u002Fchoosing-the-right-static-site-generator-for-production\u002Fastro-vs-eleventy-for-documentation-sites\u002Ffixing-eleventy-out-of-memory-errors-on-large-collections\u002F","Diagnose \"JavaScript heap out of memory\" in Eleventy builds of large collections, cut peak memory with data and template fixes, and size the Node heap safely.",{"k":24,"html":131},"\u003Cfigure>\n\u003Csvg viewBox=\"0 0 760 295\" role=\"img\" aria-labelledby=\"hub-eleventy-kinds-title hub-eleventy-kinds-desc\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\">\n  \u003Ctitle id=\"hub-eleventy-kinds-title\">Number of Eleventy guides of each kind\u003C\u002Ftitle>\n  \u003Cdesc id=\"hub-eleventy-kinds-desc\">Vertical bars: How-tos 25, Fixes 2, Comparisons 9 and Concepts 3.\u003C\u002Fdesc>\n  \u003Crect x=\"0\" y=\"0\" width=\"760\" height=\"295\" fill=\"#ffffff\"\u002F>\n  \u003Cg style=\"font-family:system-ui, sans-serif;font-size:12px\">\n    \u003Crect x=\"80.0\" y=\"76.0\" width=\"90.0\" height=\"170.0\" rx=\"3\" fill=\"#1982c4\" opacity=\"0.3\" stroke=\"#1982c4\" style=\"stroke-width:1px\"\u002F>\n    \u003Crect x=\"250.0\" y=\"232.4\" width=\"90.0\" height=\"13.6\" rx=\"3\" fill=\"#ff595e\" opacity=\"0.3\" stroke=\"#d83b41\" style=\"stroke-width:1px\"\u002F>\n    \u003Crect x=\"420.0\" y=\"184.8\" width=\"90.0\" height=\"61.2\" rx=\"3\" fill=\"#ffca3a\" opacity=\"0.45\" stroke=\"#a97b00\" style=\"stroke-width:1px\"\u002F>\n    \u003Crect x=\"590.0\" y=\"225.6\" width=\"90.0\" height=\"20.4\" rx=\"3\" fill=\"#6a4c93\" opacity=\"0.3\" stroke=\"#6a4c93\" style=\"stroke-width:1px\"\u002F>\n    \u003Cpath d=\"M30.0 246.0 L730.0 246.0\" fill=\"none\" stroke=\"#556071\" style=\"stroke-width:1.5px\"\u002F>\n    \u003Ctext x=\"380.0\" y=\"30.0\" fill=\"#1f2937\" style=\"font-size:16px;text-anchor:middle;font-weight:700\">Eleventy guides by kind\u003C\u002Ftext>\n    \u003Ctext x=\"125.0\" y=\"69.0\" fill=\"#1f2937\" style=\"font-size:12px;text-anchor:middle;font-weight:700\">25\u003C\u002Ftext>\n    \u003Ctext x=\"125.0\" y=\"264.0\" fill=\"#556071\" style=\"font-size:11.5px;text-anchor:middle\">How-tos\u003C\u002Ftext>\n    \u003Ctext x=\"295.0\" y=\"225.4\" fill=\"#b32b30\" style=\"font-size:12px;text-anchor:middle;font-weight:700\">2\u003C\u002Ftext>\n    \u003Ctext x=\"295.0\" y=\"264.0\" fill=\"#556071\" style=\"font-size:11.5px;text-anchor:middle\">Fixes\u003C\u002Ftext>\n    \u003Ctext x=\"465.0\" y=\"177.8\" fill=\"#1f2937\" style=\"font-size:12px;text-anchor:middle;font-weight:700\">9\u003C\u002Ftext>\n    \u003Ctext x=\"465.0\" y=\"264.0\" fill=\"#556071\" style=\"font-size:11.5px;text-anchor:middle\">Comparisons\u003C\u002Ftext>\n    \u003Ctext x=\"635.0\" y=\"218.6\" fill=\"#1f2937\" style=\"font-size:12px;text-anchor:middle;font-weight:700\">3\u003C\u002Ftext>\n    \u003Ctext x=\"635.0\" y=\"264.0\" fill=\"#556071\" style=\"font-size:11.5px;text-anchor:middle\">Concepts\u003C\u002Ftext>\n  \u003C\u002Fg>\n\u003C\u002Fsvg>\n\u003Cfigcaption>39 guides use Eleventy in depth; each is listed below under the section it belongs to.\u003C\u002Ffigcaption>\n\u003C\u002Ffigure>",{"k":27,"h":133,"items":134},"Core Web Vitals Optimization for SSGs",[135,139,143,147,151,155,159,163,167],{"t":136,"u":137,"d":138,"y":76},"Art Direction with the Picture Element","\u002Fperformance-optimization-core-web-vitals-for-ssgs\u002Fimage-optimization-pipelines-in-astro\u002Fart-direction-with-the-picture-element\u002F","Serve different crops of a hero image to mobile and desktop with picture and media queries in Astro, Eleventy and Hugo, without hurting LCP or causing layout shift.",{"t":140,"u":141,"d":142,"y":76},"Blur-Up Placeholders with LQIP","\u002Fperformance-optimization-core-web-vitals-for-ssgs\u002Fimage-optimization-pipelines-in-astro\u002Fblur-up-placeholders-with-lqip\u002F","Generate tiny blurred placeholders for images at build time in Astro or Eleventy, inline them without slowing LCP, and decide when a solid colour is better.",{"t":144,"u":145,"d":146,"y":76},"Caching Processed Images Between Builds","\u002Fperformance-optimization-core-web-vitals-for-ssgs\u002Fimage-optimization-pipelines-in-astro\u002Fcaching-processed-images-between-builds\u002F","Persist Astro and Eleventy image caches between CI builds so AVIF and WebP variants are generated once, with correct cache keys, pruning and measured build times.",{"t":148,"u":149,"d":150,"y":76},"Generating Open Graph Images at Build Time","\u002Fperformance-optimization-core-web-vitals-for-ssgs\u002Fimage-optimization-pipelines-in-astro\u002Fgenerating-open-graph-images-at-build-time\u002F","Render a unique social preview image for every page at build time with Satori and resvg, cache the output, and wire og:image tags into Astro, Hugo or Eleventy.",{"t":152,"u":153,"d":154,"y":76},"How to Reduce Bundle Size in Eleventy Builds","\u002Fperformance-optimization-core-web-vitals-for-ssgs\u002Fjavascript-hydration-partial-rendering\u002Fhow-to-reduce-bundle-size-in-eleventy-builds\u002F","Cut JavaScript in Eleventy builds — scope scripts per route, tree-shake and bundle with esbuild, and defer third-party code. Concrete before\u002Fafter KB numbers.",{"t":156,"u":157,"d":158,"y":76},"Lazy-Loading Images Without Hurting LCP","\u002Fperformance-optimization-core-web-vitals-for-ssgs\u002Fimage-optimization-pipelines-in-astro\u002Flazy-loading-images-without-hurting-lcp\u002F","loading=\"lazy\" saves bytes below the fold but delays the LCP image when applied to it. How to decide per image, per template, in Astro, Hugo and Eleventy.",{"t":160,"u":161,"d":162,"y":76},"Minifying HTML, CSS and JS in Eleventy","\u002Fperformance-optimization-core-web-vitals-for-ssgs\u002Fcss-and-javascript-asset-optimization\u002Fminifying-html-css-and-js-in-eleventy\u002F","Minify Eleventy output safely with html-minifier-terser, Lightning CSS and esbuild, keep code blocks intact, and measure what minification saves after brotli.",{"t":164,"u":165,"d":166,"y":76},"Precompressing Assets with Brotli and Zstd","\u002Fperformance-optimization-core-web-vitals-for-ssgs\u002Fcss-and-javascript-asset-optimization\u002Fprecompressing-assets-with-brotli-and-zstd\u002F","Precompress static site output at build time with brotli 11 and zstd 19, serve the variants from Caddy, nginx or Cloudflare, and measure the transfer saving.",{"t":168,"u":169,"d":170,"y":76},"Responsive Images with srcset in Eleventy","\u002Fperformance-optimization-core-web-vitals-for-ssgs\u002Fimage-optimization-pipelines-in-astro\u002Fresponsive-images-with-srcset-in-eleventy\u002F","Generate AVIF, WebP and JPEG widths with @11ty\u002Feleventy-img, emit srcset and sizes that match your layout, and cache the output so builds stay fast.",{"k":27,"h":172,"items":173},"Production-Ready Deployment & CI\u002FCD for SSGs",[174,178,182,186,190,194],{"t":175,"u":176,"d":177,"y":34},"Incremental Rebuild Times Across Astro, Eleventy and Hugo","\u002Fproduction-ready-deployment-cicd-workflows\u002Fincremental-builds-and-build-caching-for-ssgs\u002Fincremental-rebuild-times-across-astro-eleventy-and-hugo\u002F","Astro, Eleventy and Hugo measured on the same 5,000-page site for full, cached and single-page rebuilds, in CI and the dev server, with what each skips.",{"t":179,"u":180,"d":181,"y":34},"Vercel ISR vs Static Generation for SSGs","\u002Fproduction-ready-deployment-cicd-workflows\u002Fnetlify-vs-vercel-deployment-strategies\u002Fvercel-isr-vs-static-generation-for-ssgs\u002F","ISR rebuilds pages on demand; static generation builds everything upfront. Astro, Eleventy, Hugo, and Jekyll have no ISR — they rebuild and purge at the CDN.",{"t":183,"u":184,"d":185,"y":76},"Automating Eleventy Deployments on Cloudflare Pages","\u002Fproduction-ready-deployment-cicd-workflows\u002Fcloudflare-pages-edge-caching-setup\u002Fautomating-eleventy-deployments-with-cloudflare-pages\u002F","Deploy Eleventy from Git on Cloudflare Pages: connect the repo, set the build command and _site output, pin Node, wire env vars, and ship cache headers — with build times.",{"t":187,"u":188,"d":189,"y":76},"Build Caching on Netlify and Vercel","\u002Fproduction-ready-deployment-cicd-workflows\u002Fincremental-builds-and-build-caching-for-ssgs\u002Fbuild-caching-on-netlify-and-vercel\u002F","Make Netlify and Vercel reuse dependency, framework and image caches between static site builds, verify cache hits in logs, and measure the savings.",{"t":191,"u":192,"d":193,"y":76},"Configuring Vercel for Hugo and Eleventy","\u002Fproduction-ready-deployment-cicd-workflows\u002Fnetlify-vs-vercel-deployment-strategies\u002Fconfiguring-vercel-for-hugo-and-eleventy\u002F","Deploy Hugo and Eleventy sites on Vercel with pinned versions, the right output directory, clean URLs, trailing slashes, headers and redirects in vercel.json.",{"t":195,"u":196,"d":197,"y":76},"Enabling Incremental Builds in Eleventy","\u002Fproduction-ready-deployment-cicd-workflows\u002Fincremental-builds-and-build-caching-for-ssgs\u002Fenabling-incremental-builds-in-eleventy\u002F","Use Eleventy --incremental and --ignore-initial to rebuild only changed templates. Covers the programmatic API, what gets rebuilt, and measured rebuild times.",{"k":24,"html":199},"\u003Cfigure>\n\u003Csvg viewBox=\"0 0 760 278\" role=\"img\" aria-labelledby=\"hub-eleventy-topics-title hub-eleventy-topics-desc\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\">\n  \u003Ctitle id=\"hub-eleventy-topics-title\">Topics with the most Eleventy guides\u003C\u002Ftitle>\n  \u003Cdesc id=\"hub-eleventy-topics-desc\">Horizontal bars, largest first: Astro vs Eleventy for Documentation Sites 11, Image Optimization Pipelines in Astro 6, SSG Framework Selection Matrix 3, Technical SEO for Static Sites 3, Incremental Builds and Build Caching for SSGs 3 and Internationalization for Static Sites 2.\u003C\u002Fdesc>\n  \u003Crect x=\"0\" y=\"0\" width=\"760\" height=\"278\" fill=\"#ffffff\"\u002F>\n  \u003Cg style=\"font-family:system-ui, sans-serif;font-size:12px\">\n    \u003Crect x=\"350.0\" y=\"65.0\" width=\"357.2\" height=\"20.0\" rx=\"3\" fill=\"#6a4c93\" opacity=\"0.3\" stroke=\"#6a4c93\" style=\"stroke-width:1px\"\u002F>\n    \u003Crect x=\"350.0\" y=\"99.0\" width=\"194.8\" height=\"20.0\" rx=\"3\" fill=\"#6a4c93\" opacity=\"0.3\" stroke=\"#6a4c93\" style=\"stroke-width:1px\"\u002F>\n    \u003Crect x=\"350.0\" y=\"133.0\" width=\"97.4\" height=\"20.0\" rx=\"3\" fill=\"#6a4c93\" opacity=\"0.3\" stroke=\"#6a4c93\" style=\"stroke-width:1px\"\u002F>\n    \u003Crect x=\"350.0\" y=\"167.0\" width=\"97.4\" height=\"20.0\" rx=\"3\" fill=\"#6a4c93\" opacity=\"0.3\" stroke=\"#6a4c93\" style=\"stroke-width:1px\"\u002F>\n    \u003Crect x=\"350.0\" y=\"201.0\" width=\"97.4\" height=\"20.0\" rx=\"3\" fill=\"#6a4c93\" opacity=\"0.3\" stroke=\"#6a4c93\" style=\"stroke-width:1px\"\u002F>\n    \u003Crect x=\"350.0\" y=\"235.0\" width=\"64.9\" height=\"20.0\" rx=\"3\" fill=\"#6a4c93\" opacity=\"0.3\" stroke=\"#6a4c93\" style=\"stroke-width:1px\"\u002F>\n    \u003Cpath d=\"M350.0 60.0 L350.0 260.0\" fill=\"none\" stroke=\"#556071\" style=\"stroke-width:1.5px\"\u002F>\n    \u003Ctext x=\"380.0\" y=\"30.0\" fill=\"#1f2937\" style=\"font-size:16px;text-anchor:middle;font-weight:700\">Where Eleventy comes up\u003C\u002Ftext>\n    \u003Ctext x=\"20.0\" y=\"79.2\" fill=\"#1f2937\" style=\"font-size:12px;text-anchor:start\">Astro vs Eleventy for Documentation…\u003C\u002Ftext>\n    \u003Ctext x=\"715.2\" y=\"79.5\" fill=\"#1f2937\" style=\"font-size:12px;text-anchor:start;font-weight:700\">11\u003C\u002Ftext>\n    \u003Ctext x=\"20.0\" y=\"113.2\" fill=\"#1f2937\" style=\"font-size:12px;text-anchor:start\">Image Optimization Pipelines in Astro\u003C\u002Ftext>\n    \u003Ctext x=\"552.8\" y=\"113.5\" fill=\"#1f2937\" style=\"font-size:12px;text-anchor:start;font-weight:700\">6\u003C\u002Ftext>\n    \u003Ctext x=\"20.0\" y=\"147.2\" fill=\"#1f2937\" style=\"font-size:12px;text-anchor:start\">SSG Framework Selection Matrix\u003C\u002Ftext>\n    \u003Ctext x=\"455.4\" y=\"147.5\" fill=\"#1f2937\" style=\"font-size:12px;text-anchor:start;font-weight:700\">3\u003C\u002Ftext>\n    \u003Ctext x=\"20.0\" y=\"181.2\" fill=\"#1f2937\" style=\"font-size:12px;text-anchor:start\">Technical SEO\u003C\u002Ftext>\n    \u003Ctext x=\"455.4\" y=\"181.5\" fill=\"#1f2937\" style=\"font-size:12px;text-anchor:start;font-weight:700\">3\u003C\u002Ftext>\n    \u003Ctext x=\"20.0\" y=\"215.2\" fill=\"#1f2937\" style=\"font-size:12px;text-anchor:start\">Incremental Builds and Build Caching\u003C\u002Ftext>\n    \u003Ctext x=\"455.4\" y=\"215.5\" fill=\"#1f2937\" style=\"font-size:12px;text-anchor:start;font-weight:700\">3\u003C\u002Ftext>\n    \u003Ctext x=\"20.0\" y=\"249.2\" fill=\"#1f2937\" style=\"font-size:12px;text-anchor:start\">Internationalization\u003C\u002Ftext>\n    \u003Ctext x=\"422.9\" y=\"249.5\" fill=\"#1f2937\" style=\"font-size:12px;text-anchor:start;font-weight:700\">2\u003C\u002Ftext>\n  \u003C\u002Fg>\n\u003C\u002Fsvg>\n\u003Cfigcaption>Topic pages give the wider context for each group; the numbers count only guides that use this tool in depth.\u003C\u002Ffigcaption>\n\u003C\u002Ffigure>",{"k":27,"h":201,"items":202},"Often used with Eleventy",[203,208,213,218,223,228],{"t":204,"u":205,"d":206,"y":207},"Astro","\u002Ftools\u002Fastro\u002F","Islands, content collections, astro:assets and deployment.","22 shared guides",{"t":209,"u":210,"d":211,"y":212},"Hugo","\u002Ftools\u002Fhugo\u002F","Build time at scale, image caches, modules and multilingual sites.","15 shared guides",{"t":214,"u":215,"d":216,"y":217},"Jekyll","\u002Ftools\u002Fjekyll\u002F","Plugins, reproducible builds, upgrades and migration away.","5 shared guides",{"t":219,"u":220,"d":221,"y":222},"Vercel","\u002Ftools\u002Fvercel\u002F","Non-Next.js generators, the Build Output API and caching.","3 shared guides",{"t":224,"u":225,"d":226,"y":227},"Next.js","\u002Ftools\u002Fnextjs\u002F","Static export for content sites, its limits and alternatives.","2 shared guides",{"t":229,"u":230,"d":231,"y":227},"Cloudflare","\u002Ftools\u002Fcloudflare\u002F","Pages and Workers hosting, cache rules and edge functions.",1790943190466]