I’ll be at Web Unleashed in Toronto in just a few short weeks (Oct 10–11)!
(code `SPEAKERVIP` will snag you a discount to stream or an in-person ticket)

A versioned archive of posts from Bluesky, Mastodon, GitHub, npm, YouTube, Letterboxd, Hacker News, and blogs. Browse the most popular posts.
Last built .
| Since | posts | replies | likes | reposts and quotes | views | |
|---|---|---|---|---|---|---|
| Bluesky | 1,039 | 8,236 | 23,127 | 2,380 | ||
| Mastodon | 2,399 | 29,156 | 55,396 | 16,820 | ||
| GitHub | 179 | 5,777 3,520 | 33,866 | 3,317 | ||
| npm | 139 | 1,546 | 75,991,720 | |||
| YouTube | 30 | 1,203 | 32,713 | |||
| Letterboxd | 55 | |||||
| Blog | 20 | |||||
| Hacker News | 59 | 575 | 802 | |||
| All | 4,807 | 37,967 | 114,394 | 22,517 | 76,024,433 |
I’ll be at Web Unleashed in Toronto in just a few short weeks (Oct 10–11)!
(code `SPEAKERVIP` will snag you a discount to stream or an in-person ticket)

The `pug` template language plugin for Eleventy v3 and newer.
The `mustache` template language plugin for Eleventy v3 and newer.
The `handlebars` template language plugin for Eleventy v3 and newer.
The `haml` template language plugin for Eleventy v3 and newer.
The `ejs` template language plugin for Eleventy v3 and newer.
this v3 docs PR is growing in both breadth and power

Shockwaves are hitting developers now as Matt appears to have disabled WP Engine’s access to the WordPress plugin repository https://www.reddit.com/r/Wordpress/comments/1fpeqn2/plugin_repository_inaccessible_to_wp_engine/
(via @collinsworth)
It’s a Node.js renaissance—seeing so many amazing contributions from @joyeecheung 🙌🙌🙌
With Automattic weaponizing their WordPress trademark against WP Engine, it’s a good day to challenge Oracle’s JavaScript trademark.
It’s giving late-stage silicon valley when the cease and desists are flying back and forth
PDF Link: https://automattic.com/2024/wp-engine-cease-and-desist.pdf
Slogging through the @eleventy docs to add ESM examples today 😫
Wow, that WP Engine cease and desist is *next level* drama. Looks like Matt Mullenweg texted them to negotiate a fee or he would blow up their spot in his talk at WordCamp. WordPress community, fasten your seatbealts.
thus, pixel perfect ⇔ pixel evil
Q.E.D.
pixel perfect is the enemy of pixel good
the great thing about light and dark modes on web sites is that developers can apply poor color contrast in even more places
web hosts are like underwear, it’s good to change them every once in awhile
Doing some research into non-eval methods to dynamically execute JavaScript code in Node.js:
https://github.com/zachleat/node-eval-modules
Any other approaches? Caveats?
I can only afford to be chronically online on a maximum of one social network
Playground for testing various dynamic script execution methods in JavaScript
sure—I could make it a #private property but then it will have no power
finally adding an Eleventy.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED property
Correction: “Amazon tells employees to return to office *at minimum* five days a week”
A plugin to use Vite as a development server and run Vite to postprocess your Eleventy build.
“I got into comedy to do comedy, which is weird I know.”
“But when you’re in Hollywood and you’re a comedian everybody wants you to do other things besides comedy.”
“They say ‘Alright you’re a stand-up comedian: Can you act? Can you write? Write us a script.’”
“They want me to do things related to comedy but not comedy. That’s not fair.”
“It’s as though I was a cook and I worked my ass off to become a good cook and they said: ‘Alright, you’re a cook—can you farm?’”
—Mitch Hedberg
📮 New post: Open Source Needs to be Financially Symbiotic
still thinking about this still from Snack Shack (2024) from yesterday
—it was *wild* to watch a movie set in Nebraska City, NE

A year later, Astro is sunsetting their Studio product https://astro.build/blog/goodbye-astro-studio/
Monetization is hard.
VC-funded monetization is much harder!
📮 Big news today, y’all: 11ty is joining Font Awesome
Little bundles of code, little bundles of joy.
A simpler static site generator.
A minimal, modern, generic, hot-reloading local web server to help web developers.
Republican lawmakers resoundingly call for the new acting director of the Secret Service to resign after Donald Trump absolutely bodied by Kamala Harris on the debate stage last night.
that JPEG-XL would work in macOS Preview before SVG is *wild*
(re: @stoyan’s post https://indieweb.social/@stoyan/113114635800850403)
I’ve only been following SVG support in macOS Preview for 11 years now https://www.zachleat.com/twitter/1483457650239102980/

my javascript analytics tells me that 100% of my visitors have javascript
@macdonst did https://js-naked-day.org/ die? 😭
A simpler static site generator.
A minimal, modern, generic, hot-reloading local web server to help web developers.
why is it called JPEG XL if the images are smaller
“I’d agree with your point if you delivered it in a nicer way” is a centrist’s way of saying they prefer the harmony of the status quo over the mess of forward progress
“google glass enterprise edition 2” 👀
went to check in on google glass (as one does) and they’ve already sunset the enterprise pivot death knell https://www.google.com/glass/
no
A plugin to use Vite as a development server and run Vite to postprocess your Eleventy build.
Update after one billable month: the 11ty Screenshots service cost $1.95 on AWS 🏆
1.16M screenshots served 👀
86.2% cache hits
A minimal module to test importing in other tools.
independent of my well-being, rest assured that I am doing my best to ensure that your email never finds me
Saved the analytics data out of the @11ty/eleventy-fetch cache on my build server, so *pffft* 😛
Update: looks like my traffic spiked a bit and FaunaDB disabled my account and deleted my data from this project 😅
Glad I didn’t share this approach—I guess extortion is one way to upsell from the free tier :eyeroll:
Adds and positions sibling anchor links for heading elements (h1,h2,h3,h4,h5,h6) when they have an `id` attribute.
in iceland architecture you must only write in lavascript
lots of product managers using waterfall planning in iceland architecture
lots of Object.freeze immutability in iceland architecture
iceland architecture
New web component dropped: `<heading-anchors>`
Code: https://github.com/zachleat/heading-anchors
Blog: https://www.zachleat.com/web/heading-anchors/
Inspired by @DavidDarnes’s component of the same name and an excellent blog post by @ambrwlsn, this component adds and positions sibling anchor links for heading elements (h1–h6) when they have an `id` attribute.
Adds anchor links to heading elements h1,h2,h3,h4,h5,h6 when they have an `id` attribute.
Adds and positions sibling anchor links for heading elements (h1–h6) when they have an `id` attribute.
Right to Repair: historically Nebraska Farmers versus John Deere and Big Tech (starring Apple and others)—and now a new challenger has appeared: the Military-industrial Complex.
Read more from @jasonkoebler on @404mediaco: https://www.404media.co/appliance-and-tractor-companies-lobby-against-giving-the-military-the-right-to-repair/
Is it an okay practice to rely on `content: "#" / ""` for hiding garbage content from screen readers? Browser support looks relatively new so I am guessing it’s a no 😭
https://developer.mozilla.org/en-US/docs/Web/CSS/content#browser_compatibility
Fascinating talk from @feross on @cfedev today: The Dark Side of Open Source
https://www.youtube.com/watch?v=hlLnFJSX0YY
Especially enjoyed the Q&A portion, really great stuff. One thing I keep coming back to is that when the lead maintainer changes, it should have some formal release process around it—maybe even to the point of it being a semver breaking change that requires a major release for updates (though I understand that’s a bit extreme too)
Found a pretty hefty blog post about concurrency benchmarks using the Nginx web server.
https://blog.nginx.org/blog/testing-the-performance-of-nginx-and-nginx-plus-web-servers
Looks like the slowest metric (1 CPU, HTTPS) handled 428 connections per second.
For those managing servers: what kind of concurrent request count spikes do y’all prepare for?
Looks like the Locust load testing tool’s “first test” starts with 100 concurrent users: https://docs.locust.io/en/stable/quickstart.html
Looks like there has been a fair bit of discussion about the architecture of Mastodon previews and “DDoS-ing” web sites:
1️⃣ https://flipboard.social/@coffeegeek/113030436873628885
2️⃣ https://news.itsfoss.com/mastodon-link-problem/
3️⃣ https://kevquirk.com/blog/mastodon-is-ddosing-me
4️⃣ https://michaelnordmeyer.com/on-mastodon-ddosing-sites
While clearly there is room for improvement there, it’s worth noting that Jamstack architecture and static sites sidestep this issue nicely (by making it someone else’s problem 😅).
ivermectin static regeneration
cc @DavidDarnes and @ambrwlsn who might be interested in this! https://github.com/11ty/eleventy-base-blog/blob/dc5ab2ef6372de744be5484ada4958a4342073ea/public/js/heading-anchors.js
#1 superfan of the CSS Anchor Positioning API: https://developer.chrome.com/blog/anchor-positioning-api
Used it to implement more accessible heading anchor links on `eleventy-base-blog` using sibling elements without a wrapper element 🏆
You can see it in action here: https://eleventy-base-blog-git-v9-11ty.vercel.app/blog/thirdpost/ (Chrome and Edge support this, falls back to a nested link in other browsers)
I’m going to be speaking at Web Unleashed in Toronto (October 2024)! See you there?
https://fitc.ca/presentation/the-best-and-worst-parts-of-eleventy-now-in-v3/
Bigger phones are better
Bigger vehicles are better
Even larger language models
Even more JavaScript
Bigger data centers slurping more energy
More servers
More serverless
More
More
More
Excess
We need more
Correction to this post after playing with uBlock Origin Lite for a bit—it does *not* require per-site opt-in, defaults to a Basic limited permissions filtering mode:

Here’s a little bit better view of the Kerið volcanic crater lake: https://en.wikipedia.org/wiki/Keri%C3%B0

Greetings from inside the crater of a dormant volcano in Iceland 🇮🇸

Thankful for this wonderfully comprehensive blog post on Accessible Heading links from @ambrwlsn today https://amberwilson.co.uk/blog/are-your-anchor-links-accessible/
Unfortunately Google seems to be fully locked into an austerity phase now.
Looking back on this post a little differently now: https://support.ublock.org/hc/en-us/articles/11749958544275-Google-s-Manifest-V3-What-it-is-and-what-it-means-for-uBlock-Users
Look’s like the ol’ Extension Manifest v3 rollout is finally coming to a head (as it were):
https://github.com/uBlockOrigin/uBlock-issues/issues/3309
Looks like the path forward forces uBlock Origin users on Chrome to swap to a new extension that requires opt-in to content filtering on a per-site basis: https://github.com/uBlockOrigin/uBOL-home
@baldur gonna be in your neck of the woods next week! If you have any off-the-beaten path recommendations I would love to hear them!
today’s search query: am I midwest princess
A web site that is only readable via screen reader.
Found some stats:
28.8% cache hits on Vercel 😬
81.2% cache hits on CloudFront
a more cynical take on “Lottery factor” might recognize the turnstile of unpaid and underpaid open source maintainers and think that incentivizing adding *more* people to churn through the turnstile is actually not a good thing
When thinking about the “Lottery factor” of an open source project you must take into account the difference between paid and unpaid labor.
I’d argue that 1 paid dev is worth more than 2 unpaid devs. To further complicate things the other side of the coin is that 10 paid devs burning VC runway is worth… you know what—actually I should probably just stop there.
❌ div soup
✅ div slop
📮 New blog post:
The Sneaky Costs of Scaling Serverless
https://www.zachleat.com/web/serverless-cost/
Chronicling the *wonderful time* I had migrating the beefy 11ty Screenshots API to a new hosting provider.
can you believe that there are people out there making huge life decisions without first making a spreadsheet? wild
Whoa, this is big news: nunjucks4 is a fully-async rewrite/revival of Nunjucks: https://mastodon.social/@jameswragg/112914191470870251
via @jameswragg
I made a little chart comparing how a few different hosts charge for serverless execution time (normalized to hours of usage) and the vCPU default can cost you a lot of unnecessary money if you’re not paying attention!

Looks like the default changed in April of this year: https://vercel.com/changelog/faster-defaults-for-vercel-function-cpu-and-memory
TIL about Vercel’s Pro Tier:
1 vCPU (default) = 1.72 GB memory
The UX of the GB-Hrs metric for usage pricing feels a bit like a dark pattern to me (given that default).
For example, the 1000 GB-Hrs of included execution time is 581 hours (using 1 vCPU). Overages advertised at $0.18/GB-Hr are $0.31/hour (using 1 vCPU).
Gonna change my stuff there to use 0.6 vCPU (since they’re services, not SSR): https://vercel.com/docs/functions/configuring-functions/memory#setting-your-default-function-memory-/-cpu-size
inspired by this @glitchdotcom project: https://mastodon.social/@glitchdotcom/112910252389116863

what’s the name for road rage, but on social media
it’s been 3 days since @philhawksworth announced he was on the market and let’s be honest: the most productive thing you could be doing right now is sliding into his DMs with a job offer