<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <title>Zach Leatherman</title>
  <subtitle>A web development blog written by @zachleat.</subtitle>
  <link href="https://www.zachleat.com/web/feed/atom.xml" rel="self" />
  <link href="https://www.zachleat.com/" />
  <updated>2026-08-10T05:00:00Z</updated>
  <id>https://www.zachleat.com/</id>
  <author>
    <name>Zach Leatherman</name>
  </author>
  <entry>
    <title>Am I neglecting my open source projects?</title>
    <link href="https://www.zachleat.com/web/is-this-still-being-maintained/" />
    <updated>2026-08-10T05:00:00Z</updated>
    <id>https://www.zachleat.com/web/is-this-still-being-maintained/</id>
    <content type="html">&lt;p&gt;I have &lt;em&gt;a lot&lt;/em&gt; of open source projects (of varying sizes and shapes).&lt;/p&gt;
&lt;p&gt;At time of writing, I’m currently maintaining ×78 npm packages. Of those, 22 are super lightweight zero-dependency custom elements a.k.a. 🚾 Web Components (&lt;em&gt;love the future compatibility I get with very little maintenance required&lt;/em&gt;). In addition, I also have a few &lt;a href=&quot;https://www.zachleat.com/domains/&quot;&gt;active websites&lt;/a&gt; and starter/template projects that are open source too.&lt;/p&gt;
&lt;p&gt;I usually rotate maintenance on these and needed a way to quickly scan my little ecosystem of packages to know which ones needed love. Thus, a new little dashboard has appeared on my web site that I’m calling:&lt;/p&gt;
&lt;script type=&quot;module&quot; src=&quot;https://www.zachleat.com/static/browser-window.js&quot;&gt;&lt;/script&gt;
&lt;div&gt;&lt;browser-window mode=&quot;light&quot; icon url=&quot;https://www.zachleat.com/projects/&quot; shadow flush style=&quot;--bw-background: oklch(82.691% 0.09444 136.65)&quot;&gt;&lt;a href=&quot;https://www.zachleat.com/projects/&quot; class=&quot;favicon-optout&quot;&gt;&lt;img alt=&quot;Screenshot image for https://www.zachleat.com/projects/&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; class=&quot;&quot; src=&quot;https://screenshot.11ty.app/https%3A%2F%2Fwww.zachleat.com%2Fprojects%2F/opengraph/&quot; width=&quot;1200&quot; height=&quot;630&quot;&gt;&lt;/a&gt;&lt;/browser-window&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href=&quot;https://www.zachleat.com/projects/&quot; class=&quot;primarylink&quot;&gt;&lt;em&gt;Is this still being maintained??&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The name pays homage to those &lt;s&gt;helpful&lt;/s&gt; passive aggressive comments folks sometimes leave on issue trackers (mirroring a fair question that perhaps I should be asking myself).&lt;/p&gt;
&lt;p&gt;Each project is given a Neglect score that represents how much love it needs. It factors popularity (via npm downloads and GitHub stars) and need (GitHub issues and pull requests, npm audits), and recency (npm publish and GitHub commit dates). It shows how many production dependencies (including transitive ones) that a project uses. It even has a little sparkline to give a little data visualization to how frequently packages are published.&lt;/p&gt;
&lt;h2 id=&quot;a-broader-look&quot;&gt;A broader look&lt;/h2&gt;
&lt;p&gt;The aggregate statistics there were genuinely surprising to me. &lt;em&gt;67 million downloads in the last year&lt;/em&gt; (though this is heavily influenced by dependencies I maintain in Build Awesome/11ty, which are counted separately).&lt;/p&gt;
&lt;p&gt;Over 1.1k published versions, 4.7k closed issues, and 2.2k pull requests merged! &lt;em&gt;(not all by me, of course)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Currently my most neglected package is the &lt;a href=&quot;https://github.com/11ty/eleventy-plugin-vue&quot;&gt;Eleventy Vue plugin&lt;/a&gt; (which owns 31 of my 42 total npm audits) and I’m actively deciding whether to revive it or retire it 🫣.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;All of my 77 other packages only have 11 total npm audit reports!&lt;/strong&gt; I’m feeling extremely proud of that, which feels related to the work I’ve been doing to &lt;a href=&quot;https://www.zachleat.com/web/npm-security/&quot;&gt;lock down publishing workflows&lt;/a&gt; and &lt;a href=&quot;https://www.11ty.dev/blog/dependency-watch/&quot;&gt;reduce dependencies&lt;/a&gt;. Though that number may change over time, I now have an easy centralized place to check it. This report also makes it very obvious the relationship between dependency count and audit reports. &lt;a href=&quot;https://e18e.dev/&quot;&gt;Keep reducing those dependencies, y’all!&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The other result of monitoring this report is that I have archived a bunch of old projects that I don’t want to track, which has a nice clensing feeling to it.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Back Build Awesome Pro and make it easier to build for the web!</title>
    <link href="https://www.zachleat.com/web/build-awesome-pro/" />
    <updated>2026-04-29T05:00:00Z</updated>
    <id>https://www.zachleat.com/web/build-awesome-pro/</id>
    <content type="html">&lt;p&gt;The &lt;a href=&quot;https://www.kickstarter.com/projects/fontawesome/build-awesome-pro?ref=43ttgb&quot;&gt;Build Awesome (11ty) Kickstarter (Final_FINAL_v2)&lt;/a&gt; is live! We’re trying to make it easier for &lt;em&gt;anyone&lt;/em&gt; to build, publish, and maintain web sites!&lt;/p&gt;
&lt;div class=&quot;primarylink&quot;&gt;
	Update: the &lt;a href=&quot;https://www.kickstarter.com/projects/fontawesome/build-awesome-pro?ref=43ttgb&quot;&gt;Kickstarter campaign has concluded&lt;/a&gt; but late pledging (and late pricing) is still available.
&lt;/div&gt;
&lt;hr&gt;
&lt;ul&gt;
&lt;li&gt;Go &lt;a href=&quot;https://www.kickstarter.com/projects/fontawesome/build-awesome-pro?ref=43ttgb&quot;&gt;directly to the Kickstarter&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Read more on the &lt;a href=&quot;https://www.11ty.dev/blog/build-awesome-pro/&quot;&gt;Blog&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  <entry>
    <title>Collaborative Editing as Progressive Enhancement</title>
    <link href="https://www.zachleat.com/web/collaborative-editing/" />
    <updated>2026-04-22T05:00:00Z</updated>
    <id>https://www.zachleat.com/web/collaborative-editing/</id>
    <content type="html">&lt;p&gt;We’re ramping up again to launch the &lt;a href=&quot;https://www.kickstarter.com/projects/fontawesome/build-awesome-pro?ref=43ttgb&quot;&gt;Build Awesome (11ty) Kickstarter Final_FINAL_v2 on &lt;strong&gt;April 28, 2026&lt;/strong&gt;&lt;/a&gt; and in this post I make the case for a new web site builder can layer itself on top of your existing projects as a progressive enhancement. Infrastructure as progressive enhancement!&lt;/p&gt;
&lt;div class=&quot;primarylink&quot;&gt;
	&lt;is-land on:idle on:media=&quot;(prefers-reduced-motion: no-preference)&quot;&gt;&lt;a href=&quot;https://www.kickstarter.com/projects/fontawesome/build-awesome-pro?ref=43ttgb&quot;&gt;Launching &lt;time-difference live units=&quot;milliseconds&quot; mode=&quot;countdown&quot;&gt;&lt;time datetime=&quot;2026-04-28T15:00:00Z&quot;&gt;April 28&lt;/time&gt;&lt;/time-difference&gt;.&lt;/a&gt;&lt;/is-land&gt;
&lt;/div&gt;</content>
  </entry>
  <entry>
    <title>State of the Browser (2026) It’s 10PM: Do You Know Where Your JavaScript Is?</title>
    <link href="https://www.zachleat.com/web/its-10pm/" />
    <updated>2026-04-16T05:00:00Z</updated>
    <id>https://www.zachleat.com/web/its-10pm/</id>
    <content type="html">&lt;p&gt;This talk was given at &lt;a href=&quot;https://2026.stateofthebrowser.com/&quot;&gt;State of the Browser (2026)&lt;/a&gt;. Check out &lt;a href=&quot;https://2026.stateofthebrowser.com/speaker/zach-leatherman/&quot;&gt;the event talk page&lt;/a&gt; (which includes a talk transcript, too).&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;We’ll talk about best practices to either reduce (or increase!) the JavaScript footprint on your web site to a sweet and very practical spot for best results. It’s far more common to have too much JavaScript on your web site, but can you go too far? Is zero JavaScript a worthwhile goal? Let’s talk about it!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;video&quot;&gt;Video&lt;/h2&gt;
&lt;div&gt;&lt;youtube-lite-player&gt;
&lt;script type=&quot;module&quot; src=&quot;https://www.zachleat.com/static/browser-window.js&quot;&gt;&lt;/script&gt;
&lt;browser-window mode=&quot;dark&quot; flush icon url=&quot;https://youtube.com/watch?v=qIMFhkDTYRM&quot; shadow&gt;
	&lt;is-land on:visible class=&quot;fluid-width-video-wrapper&quot;&gt;
		&lt;lite-youtube videoid=&quot;qIMFhkDTYRM&quot; js-api playlabel=&quot;Play: State of the Browser (2026) It’s 10PM: Do You Know Where Your JavaScript Is?&quot; style=&quot;background-image: var(--yt-poster-img-url); --yt-poster-img-url-lazy: url(&#39;https://v1.opengraph.11ty.dev/https%3A%2F%2Fyoutube.com%2Fwatch%3Fv%3DqIMFhkDTYRM/auto/jpeg/&#39;)&quot;&gt;&lt;/lite-youtube&gt;
		&lt;template data-island=&quot;once&quot;&gt;
			&lt;style&gt;
			lite-youtube {
				max-width: 100% !important;
				background-size: cover;
			}
			/* Plugin bug: clicking the red youtube play icon in the center would navigate to youtube.com */
			lite-youtube:defined .lty-playbtn {
				pointer-events: none;
			}
			&lt;/style&gt;
			&lt;link rel=&quot;stylesheet&quot; href=&quot;https://www.zachleat.com/static/lite-yt-embed.css&quot;&gt;
			&lt;script type=&quot;module&quot; src=&quot;https://www.zachleat.com/static/lite-yt-embed.js&quot;&gt;&lt;/script&gt;
		&lt;/template&gt;
	&lt;/is-land&gt;
&lt;/browser-window&gt;
&lt;youtube-link label=&quot;State of the Browser (2026) It’s 10PM: Do You Know Where Your JavaScript Is?&quot; href=&quot;https://youtube.com/watch?v=qIMFhkDTYRM&quot;&gt;
&lt;a href=&quot;https://youtube.com/watch?v=qIMFhkDTYRM&quot; class=&quot;lite-youtube-link text-ellipsis-multi&quot;&gt;Watch on YouTube: &lt;em&gt;State of the Browser (2026) It’s 10PM: Do You Know Where Your JavaScript Is?&lt;/em&gt;&lt;/a&gt;&lt;/youtube-link&gt;&lt;/youtube-lite-player&gt;&lt;/div&gt;
&lt;h2 id=&quot;links&quot;&gt;Links&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.w3.org/History/19921103-hypertext/hypertext/WWW/MarkUp/Tags.html&quot;&gt;HTML Tags 1992&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.cl.cam.ac.uk/coffee/coffee.html&quot;&gt;The Trojan Room Coffee Machine&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.w3.org/TR/CSS1/&quot;&gt;Cascading Style Sheets, level 1 - 17 Dec 1996&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://web.archive.org/web/20141108064903/http://hesketh.com/publications/inclusive_web_design_for_the_future/&quot;&gt;Inclusive Web Design For the Future with Progressive Enhancement&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developers.google.com/speed/libraries&quot;&gt;Google Hosted Libraries&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://andydavies.me/blog/2018/09/06/safari-caching-and-3rd-party-resources/&quot;&gt;Andy Davies - Safari, Caching and Third-Party Resources&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://addyosmani.com/blog/double-keyed-caching/&quot;&gt;Double-keyed Caching: How Browser Cache Partitioning Changed the Web&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.chrome.com/blog/http-cache-partitioning&quot;&gt;Gaining security and privacy by partitioning the cache&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://fossa.com/blog/polyfill-supply-chain-attack-details-fixes/&quot;&gt;Polyfill Supply Chain Attack: Details and Fixes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/Security/Defenses/Subresource_Integrity&quot;&gt;Subresource Integrity&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.aaronsw.com/weblog/000404&quot;&gt;Bake, Don’t Fry&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.w3.org/People/howcome/p/cascade.html&quot;&gt;Cascading HTML style sheets -- a proposal&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.w3.org/TR/2001/WD-css3-mediaqueries-20010404/Overview.html&quot;&gt;Media queries W3C Working Draft, 4 Apr 2001&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://alistapart.com/article/responsive-web-design/&quot;&gt;Responsive Web Design by Ethan Marcotte&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://scottjehl.com/posts/responsive-video/&quot;&gt;We&#39;re Bringing Responsive Video Back!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://solar.lowtechmagazine.com/&quot;&gt;Low←Tech Magazine&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://styled-components.com/&quot;&gt;Styled Components&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.zachleat.com/web/ssr-overloaded/&quot;&gt;The many definitions of Server-Side Rendering&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://linaria.dev/&quot;&gt;Linaria - Zero-Runtime CSS in JS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://vanilla-extract.style/&quot;&gt;Zero-runtime Stylesheets in TypeScript.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/reactwg/react-18/discussions/110&quot;&gt;Library Upgrade Guide: &amp;lt;style&amp;gt; (most CSS-in-JS libs)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://webawesome.com/docs/components/comparison/&quot;&gt;Web Awesome Comparison component&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  <entry>
    <title>AMA about Build Awesome, an Open Town Hall at the 11ty Meetup</title>
    <link href="https://www.zachleat.com/web/ama-build-awesome-town-hall/" />
    <updated>2026-03-12T05:00:00Z</updated>
    <id>https://www.zachleat.com/web/ama-build-awesome-town-hall/</id>
    <content type="html">&lt;p&gt;Here I field any and all community questions about the Eleventy rebrand to Build Awesome.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=lA-wD89m6jM&quot;&gt;Watch on YouTube&lt;/a&gt; or below:&lt;/p&gt;
&lt;div&gt;&lt;youtube-lite-player&gt;
&lt;script type=&quot;module&quot; src=&quot;https://www.zachleat.com/static/browser-window.js&quot;&gt;&lt;/script&gt;
&lt;browser-window mode=&quot;dark&quot; flush icon url=&quot;https://youtube.com/watch?v=lA-wD89m6jM&quot; shadow&gt;
	&lt;is-land on:visible class=&quot;fluid-width-video-wrapper&quot;&gt;
		&lt;lite-youtube videoid=&quot;lA-wD89m6jM&quot; js-api playlabel=&quot;Play: AMA about Build Awesome, an Open Town Hall at the 11ty Meetup&quot; style=&quot;background-image: var(--yt-poster-img-url); --yt-poster-img-url-lazy: url(&#39;https://v1.opengraph.11ty.dev/https%3A%2F%2Fyoutube.com%2Fwatch%3Fv%3DlA-wD89m6jM/auto/jpeg/&#39;)&quot;&gt;&lt;/lite-youtube&gt;
		&lt;template data-island=&quot;once&quot;&gt;
			&lt;style&gt;
			lite-youtube {
				max-width: 100% !important;
				background-size: cover;
			}
			/* Plugin bug: clicking the red youtube play icon in the center would navigate to youtube.com */
			lite-youtube:defined .lty-playbtn {
				pointer-events: none;
			}
			&lt;/style&gt;
			&lt;link rel=&quot;stylesheet&quot; href=&quot;https://www.zachleat.com/static/lite-yt-embed.css&quot;&gt;
			&lt;script type=&quot;module&quot; src=&quot;https://www.zachleat.com/static/lite-yt-embed.js&quot;&gt;&lt;/script&gt;
		&lt;/template&gt;
	&lt;/is-land&gt;
&lt;/browser-window&gt;
&lt;youtube-link label=&quot;AMA about Build Awesome, an Open Town Hall at the 11ty Meetup&quot; href=&quot;https://youtube.com/watch?v=lA-wD89m6jM&quot;&gt;
&lt;a href=&quot;https://youtube.com/watch?v=lA-wD89m6jM&quot; class=&quot;lite-youtube-link text-ellipsis-multi&quot;&gt;Watch on YouTube: &lt;em&gt;AMA about Build Awesome, an Open Town Hall at the 11ty Meetup&lt;/em&gt;&lt;/a&gt;&lt;/youtube-link&gt;&lt;/youtube-lite-player&gt;&lt;/div&gt;
&lt;h2 id=&quot;related&quot;&gt;Related:&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.11ty.dev/blog/build-awesome/&quot;&gt;Eleventy is now Build Awesome (11ty Blog)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://11tymeetup.dev/events/ep-30-rapid-prototyping-helpers/&quot;&gt;Event page on 11tymeetup.dev&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  <entry>
    <title>Eleventy is now Build Awesome</title>
    <link href="https://www.zachleat.com/web/build-awesome/" />
    <updated>2026-03-06T06:00:00Z</updated>
    <id>https://www.zachleat.com/web/build-awesome/</id>
    <content type="html">&lt;p&gt;The Eleventy project is taking up the Awesome banner. To support the project, please sign up to &lt;a href=&quot;https://www.kickstarter.com/projects/fontawesome/build-awesome-pro&quot;&gt;get notified when our Kickstarter campaign launches&lt;/a&gt;!&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Speaking at: State of the Browser (2026)</title>
    <link href="https://www.zachleat.com/web/state-of-the-browser/" />
    <updated>2026-02-28T06:00:00Z</updated>
    <id>https://www.zachleat.com/web/state-of-the-browser/</id>
    <content type="html">&lt;p&gt;This is an event post. Also check out &lt;a href=&quot;https://2026.stateofthebrowser.com/speaker/zach-leatherman/&quot;&gt;my individual talk page&lt;/a&gt;.&lt;/p&gt;
&lt;script type=&quot;module&quot; src=&quot;https://www.zachleat.com/static/browser-window.js&quot;&gt;&lt;/script&gt;
&lt;div&gt;&lt;browser-window mode=&quot;light&quot; icon url=&quot;https://2026.stateofthebrowser.com/speaker/zach-leatherman/&quot; shadow flush style=&quot;--bw-background: oklch(76.202% 0.1562 84.861)&quot;&gt;&lt;a href=&quot;https://2026.stateofthebrowser.com/speaker/zach-leatherman/&quot; class=&quot;favicon-optout&quot;&gt;&lt;img alt=&quot;Screenshot image for https://2026.stateofthebrowser.com/speaker/zach-leatherman/&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; class=&quot;&quot; src=&quot;https://screenshot.11ty.app/https%3A%2F%2F2026.stateofthebrowser.com%2Fspeaker%2Fzach-leatherman%2F/opengraph/&quot; width=&quot;1200&quot; height=&quot;630&quot;&gt;&lt;/a&gt;&lt;/browser-window&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: As the talk has already been given, you can find &lt;a href=&quot;https://www.zachleat.com/web/its-10pm/&quot;&gt;the talk content published on my web site&lt;/a&gt;.&lt;/p&gt;
&lt;script type=&quot;module&quot; src=&quot;https://www.zachleat.com/static/browser-window.js&quot;&gt;&lt;/script&gt;
&lt;div&gt;&lt;browser-window mode=&quot;light&quot; icon url=&quot;https://www.zachleat.com/web/its-10pm/&quot; shadow flush style=&quot;--bw-background: oklch(82.691% 0.09444 136.65)&quot;&gt;&lt;a href=&quot;https://www.zachleat.com/web/its-10pm/&quot; class=&quot;favicon-optout&quot;&gt;&lt;img alt=&quot;Screenshot image for https://www.zachleat.com/web/its-10pm/&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; class=&quot;&quot; src=&quot;https://screenshot.11ty.app/https%3A%2F%2Fwww.zachleat.com%2Fweb%2Fits-10pm%2F/opengraph/&quot; width=&quot;1200&quot; height=&quot;630&quot;&gt;&lt;/a&gt;&lt;/browser-window&gt;&lt;/div&gt;</content>
  </entry>
  <entry>
    <title>An Official* Logo for HTML</title>
    <link href="https://www.zachleat.com/web/html-logo/" />
    <updated>2026-02-19T06:00:00Z</updated>
    <id>https://www.zachleat.com/web/html-logo/</id>
    <content type="html">&lt;p&gt;*&lt;em&gt;Not official.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I was working on my slide deck for the &lt;a href=&quot;https://2026.stateofthebrowser.com/&quot;&gt;upcoming State of the Browser conference&lt;/a&gt; and ran into what I would classify as a recurring issue: HTML needs a logo. There isn’t a broadly accepted official logo for (version-independent) HTML. There &lt;em&gt;is&lt;/em&gt; a logo for HTML 5, but that versioned marketing term has long fallen out of regular use (and was introduced 18 years ago).&lt;/p&gt;
&lt;p&gt;This is a community solved problem in both the CSS and JavaScript spaces!&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CSS: &lt;svg class=&quot;z-icon&quot; width=&quot;20&quot; height=&quot;20&quot;&gt;&lt;use href=&quot;#fab-fa-css&quot; xlink:href=&quot;#fab-fa-css&quot;&gt;&lt;/use&gt;&lt;/svg&gt;, &lt;a href=&quot;https://github.com/CSS-Next/css-next/issues/105&quot;&gt;relevant discussion on &lt;code&gt;CSS-Next&lt;/code&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;JS: &lt;svg class=&quot;z-icon&quot; width=&quot;20&quot; height=&quot;20&quot;&gt;&lt;use href=&quot;#fab-fa-js&quot; xlink:href=&quot;#fab-fa-js&quot;&gt;&lt;/use&gt;&lt;/svg&gt;, &lt;a href=&quot;https://github.com/voodootikigod/logo.js&quot;&gt;relevant discussion on &lt;code&gt;voodootikigod/logo.js&lt;/code&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;HTML 5: &lt;svg class=&quot;z-icon&quot; width=&quot;20&quot; height=&quot;20&quot;&gt;&lt;use href=&quot;#fab-fa-html5&quot; xlink:href=&quot;#fab-fa-html5&quot;&gt;&lt;/use&gt;&lt;/svg&gt;, &lt;a href=&quot;https://www.w3.org/html/logo/&quot;&gt;more info on w3.org&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I wish the classic orange badge hadn’t included a version number, but alas.&lt;/p&gt;
&lt;p&gt;Anyway, I very quickly &lt;a href=&quot;https://fediverse.zachleat.com/@zachleat/116093900452223373&quot;&gt;threw my hat into the ring&lt;/a&gt; and immediately recognized a &lt;a href=&quot;https://indieweb.social/@sstephenson/116098428280403793&quot;&gt;much better option from Sam Stephenson&lt;/a&gt; &lt;a href=&quot;https://sls.name/&quot;&gt;&lt;svg class=&quot;z-icon&quot; width=&quot;20&quot; height=&quot;20&quot;&gt;&lt;use href=&quot;#fas-fa-user&quot; xlink:href=&quot;#fas-fa-user&quot;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;code&gt;sls.name&lt;/code&gt;&lt;/a&gt; that I’ll be considering canon moving forward (and hopefully this blog post puts some weight behind it for others too).&lt;/p&gt;
&lt;p&gt;Here’s what it looks like rendered in your web browser:&lt;/p&gt;
&lt;div class=&quot;flex flex-center&quot;&gt;&lt;a href=&quot;https://indieweb.social/@sstephenson/116098428280403793&quot; style=&quot;all:initial;cursor:pointer;font-size:2rem;width:4em;height:4em;color:blue;text-decoration:underline;display:flex;align-items:center;justify-content:center;background:#ccc;border:.5em outset #aaa;font-weight:900;&quot;&gt;HTML&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;I love the nod to the classic unvisited link color and the heavy outset border that doubles as angle brackets with the right head tilt.&lt;/p&gt;
&lt;p&gt;If you’re interested in the source code, the HTML-only (copy-paste friendly) source code is included below &lt;a href=&quot;https://codepen.io/zachleat/pen/azZggqZ&quot;&gt;&lt;em&gt;(and also on Codepen)&lt;/em&gt;&lt;/a&gt;:&lt;/p&gt;
&lt;pre class=&quot;language-html&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;a&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;https://indieweb.social/@sstephenson/116098428280403793&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token special-attr&quot;&gt;&lt;span class=&quot;token attr-name&quot;&gt;style&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;token value css language-css&quot;&gt;&lt;span class=&quot;token property&quot;&gt;all&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;initial&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;token property&quot;&gt;cursor&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;pointer&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;token property&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;2rem&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;token property&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;4em&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;token property&quot;&gt;height&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;4em&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;token property&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;blue&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;token property&quot;&gt;text-decoration&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;underline&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;token property&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;flex&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;token property&quot;&gt;align-items&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;center&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;token property&quot;&gt;justify-content&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;center&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;token property&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;#ccc&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;token property&quot;&gt;border&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;.5em outset #aaa&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;token property&quot;&gt;font-weight&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;900&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;HTML&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;a&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
</content>
  </entry>
  <entry>
    <title>How Eleventy Survived: Funding, Growth, and Open Source Reality</title>
    <link href="https://www.zachleat.com/web/podcast-awesome-eleventy-open-source/" />
    <updated>2026-02-03T06:00:00Z</updated>
    <id>https://www.zachleat.com/web/podcast-awesome-eleventy-open-source/</id>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;Eleventy started as a side project. Now it’s a critical infrastructure for thousands of websites.&lt;/p&gt;
&lt;p&gt;TL;DR: Open source isn’t broken. But the way we fund it often is. Let’s talk about what actually works.&lt;/p&gt;
&lt;p&gt;In this episode, we sit down with Zach Leatherman, creator of Eleventy (11ty), to talk honestly about what happens after open source succeeds. From nap-time coding and nights-and-weekends maintenance to venture capital pressure, burnout risk, and the reality of funding long-lived developer tools, this conversation digs into the cultural and financial tradeoffs behind modern open source.&lt;/p&gt;
&lt;p&gt;We cover sustainability, community expectations, funding models that don’t rely on hockey-stick growth, and why “free forever” only works if the people behind the project can stay whole humans.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Listen in: &lt;a href=&quot;https://www.podcastawesome.com/2092855/episodes/18615318-how-eleventy-survived-funding-growth-and-open-source-reality&quot;&gt;How Eleventy Survived: Funding, Growth, and Open Source Reality&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Also on:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=GrLHE5djtPA&quot;&gt;YouTube&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://overcast.fm/+AA-SZeh8B8A&quot;&gt;Overcast.fm&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://podcasts.apple.com/us/podcast/how-eleventy-survived-funding-growth-and-open-source/id1660959088?i=1000747878278&quot;&gt;Apple Podcasts&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  <entry>
    <title>Eleventy, 2025 in Review</title>
    <link href="https://www.zachleat.com/web/eleventy-2025-review/" />
    <updated>2026-01-12T06:00:00Z</updated>
    <id>https://www.zachleat.com/web/eleventy-2025-review/</id>
    <content type="html">&lt;p&gt;A look back at the &lt;a href=&quot;https://www.11ty.dev/blog/review-2025/&quot;&gt;2025 highlights for the 11ty org and the Eleventy project&lt;/a&gt;!&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;It was another huge year for 11ty. We shipped 177 releases (73% more than 2024) across the full 11ty/* suite. We closed 804 issues (15% more than 2024). We reduced core’s dependency count by 28% and weight by 22%. More folks are building with Eleventy than ever: our year-over-year npm downloads (for only core) are up by 51%!&lt;/p&gt;
&lt;/blockquote&gt;
</content>
  </entry>
</feed>