Zach’s ugly mug (his face) Zach Leat­herman

The Future of 11ty (2024)

Watch in 31 minutes 682 100 May 17, 2024

This talk was given at The 11ty International Symposium on Making Web Sites Real Good.

Watch on YouTube: The Future of 11ty (2024)

The rest of the amazing talks are also available on YouTube.

And the full slide deck is included below:

The 11ty logo sits in a field landscape with a small red tractor in the middle
My visual resume, showing 11ty starting in 2017.
An XKCD meme showing a tower of blocks, labeled A Project Some random Person in Nebraska Has Been Maintaining Since 2017
A logo cloud of a ton of site generators, including 11ty, Next.js, Astro, Create React App, Gatsby, Nuxt, Remix, SvelteKit and others.
A photo of Jeff Bezos with his Blue Horizon rocket set in front of a bunch of stars
A photo of Elon Musk with the Twitter / X logos
A photo of Mark Zuckerberg walking in front of a bunch of folks sitting wearing VR headsets
Logos for Google Reader, IndieWebCamp, Internet Archive, RSS, and HTML
A chart with two axis, vertically showing HTML-first Multi page applications versus JavaScript first Single Page applications, horizontally showing Static Server versus Dynamic Server
The 11ty logo is shown to the top right, maximizing HTML-first and Static Server
72,201 repositories
16,278 GitHub stars
21,782 friends
8,737,225 downloads
Logo cloud of folks using 11ty including NASA, Cern, TC39, and others
No moat, by design. The 11ty logo sits in a boat in front of a castle
The 11ty v3 logo sits on a farm field in front of a small red tractor, Node v18+
1. Written in ESM
module.exports changes to export default, named exports via module.exports = {} become export {}
A chart of ESM usage on npm, 67.2% CommonJS, 12.7% Faux, 8.4% Dual, 11.7% ESM (as of 2024-02-20)
11ty and Astro are ESM, SvelteKit and Vite and Nuxt are Dual, Remix and Gatsby are Faux, Next.js is CommonJS
2. Can Keep using CommonJS
module.exports = function(eleventyConfig) {}
module.exports = async function(eleventyConfig) { const { EleventyHtmlBasePlugin } = await import(
/* Node 22+ using CommonJS and --experimental-require-module */ const { EleventyHtmlBasePlugin } = require(
A GitHub screenshot showing a simple upgrade to Eleventy v3 (keeping CommonJS) +6/-4
3. Can use ESM
export default function(eleventyConfig) {}
import { EleventyHtmlBasePlugin } from
4. Incrementally migrate to ESM
*.js CommonJS *.mjs ESM OR {
5. Eleventy Image
import { eleventyImageTransformPlugin } from
No shortcodes, no async/sync
Never add a width/height attribute manually again. Not even for remote images.
transformOnRequest
Image example showing <img> to <picture> with two image format outputs
Image example showing <img> to <picture> with two image formats and two width outputs.
<img> versus <picture>? Don’t worry about it.
Image example showing <img> to <img> with one image format output
Near zero build cost for image processing during local development.
Performance chart, 100 images build in 0.86s serve in 0.16s, 500 images build in 3.35s serve in 0.4s, 1000 images build in 5.99s serve in 0.74s.
svgShortCircuit
Demo of SVG short circuiting with the Mexico flag SVG. Only a 56.28 kB raster discarded, larger than 53 kB SVG.
Another demo of SVG short circuiting with the classic SVG tiger. All rasters are discarded, larger than 19 kB SVG.
6. Configuration
export default async function(eleventyConfig) {}
export const config = { dir: { input: '.', output: '_site' } }
eleventyConfig.setInputDirectory(
eleventyConfig.addTemplate(
eleventyConfig.addBundle(
{% getBundle
<a href=Home becomes Home" eleventy:widths="600,1000" sizes="(min-width: 106.25em) 82.75em, (min-width: 61.25em) calc(91.43vw - 13.25em), 100vw">
7. Data
11ty.js had export function data() {} for JS-based data.
Node Front Matter is new using `---node` to embed arbitrary JS in front matter.
{{ page.rawInput }} is now available and rawInput in collection items and programmatic API calls.
8. More runtimes
An example of 11ty running in Deno using `deno run --allow-read --allow-write npm:@11ty/eleventy@canary`
JSX in Deno, example template showing export function render(data) { return <p>JSX with Eleventy</p>; }
9. Bundlers
Bundler Compatible, Bundler Decoupled
Eleventy docs showing Eleventy Custom Templates for Asset Bundling. See JS/CSS/Fonts on the 11ty.dev docs.
10. Stats
11ty v3 dropped node_modules weight from 35.2 MB to 21.9 MB
Graph showing various tools file weight, from smallest to largest, 11ty SvelteKit Astro Remix Nuxt Next.js Gatsby
11ty v3 dependency count dropped from 213 to 176
11ty v3 installation time comparison from smallest to largest, 11ty Next.js Astro Nuxt Gatsby
Performance comparison 4000 markdown files from smallest to largest, Hugo 0.8s 11ty 1.7s Astro 18.9s Gatsby 24.9s Next.js 93s
11. Community
PEOPLE
Screenshot of the Authors page on 11ty.dev
Screenshot of the 11ty Leaderboards
Screenshot of the 11ty OpenCollective supporters
Thank you to our Discord team Dan Leatherman, W. Evan Sheehan, Cassey Lottman, Thomas Michael Semmler, Ben Myers, Sia Karamalegos, and Shiv J.M.
Thank you to 11tyMeetup.dev team Cory Dransfeldt, Sia Karamalegos, Stephanie Eckles. Thank you to 11tyBundle.dev Bob Monsour, Thank you to Peter deHaan and Raphael Höser on the Issue Tracker.
Thank you to all 11ty GitHub contributors (docs, code, etc)
Thank you to 11ty conference organizers David Large, Olivia Nicholson, and Mike Neumegen
Thank you to James Williamson for the original cat on a balloon mascot.
Thank you to CloudCannon!!
A photo of a darkened room with a laptop screen illuminated. Random characters displayed on the screen similar to The Matrix.
A small green plant sits alone in the middle of some dirt
A pair of hands holds dirt in their hands
Thank you!

< Older
An Organizer’s Retrospective on the 11ty Conference
Newer >
I Need Your Help to Make 11ty Fully Independent and Sustainable in 2024

Zach Leatherman IndieWeb Avatar for https://zachleat.com/is a builder for the web at Font Awesome and the creator of Build Awesome (née IndieWeb Avatar for https://www.11ty.devEleventy/11ty), an award-winning open source website generator. He measures website performance with speedlify and at one point became too fixated on web fonts. He has given 89 talks in nine different countries at events like Beyond Tellerrand, Smashing Conference, Jamstack Conf, CSSConf, and The White House. Formerly part of CloudCannon, Netlify, Filament Group, NEJS CONF, and NebraskaJS. Learn more about Zach »

10 Reposts

IndieWeb Avatar for https://11tybundle.devJon???? GlitchJakub Iwanowski :bash:elle mundyFynn BeckerAdrianna TanBob MonsourJens GrochtdreisEleventy ???? v3.0.0-alpha.10

13 Likes

Tim RileyEric McCormickJonJBSimon Cox :SEO:Hawk TicehurstEric Portiselle mundyJosh “Yoshi” VickersonLynn FisherAdrianna TanEleventy ???? v3.0.0-alpha.10Marquis Lafayette
Shamelessly plug your related post

These are webmentions via the IndieWeb and webmention.io.

Sharing on social media?

This is what will show up when you share this post on Social Media:

How did you do this? I automated my Open Graph images. (Peer behind the curtain at the test page)