Web Weekly #201
Guten Tag! Guten Tag! ๐
Do you know what happens when you import the same module multiple times? Do you think we need a new poster element? And have you ever used the vary header to improve caching?
Turn on the Web Weekly tune and find some answers below. Enjoy!
Web Weekly Jukebox
Twenty One Pilots - Center Mass
Do you want to share your favorite song with the Web Weekly community? Hit reply; there are three more songs left in the queue.
I try to avoid bringing up my mood about "all the vibes" too much in this newsletter, but the change in the industry is the stickiest topic ever. And regardless of whether the industry collapses or not, I don't think the technology will disappear. Cheap open source models can do certain things better and faster than I can. They'll probably survive, like it or not.
So here are my two AI takes for today.
AI makes projects with weak engineering culture fail much faster.
Florian describes the scenario of teams that are just shipping. They move fast but lose control quickly. I see that around me and it shows the real challenge if you're using AI for coding. It's just too easy to cover a lot of ground. Taking on the responsibility of understanding what's going on while establishing good practices and judgment will be one of the most important skills going forward. My brain wants all the shortcuts, and yours probably does too. Not taking them is the real challenge.
You need to find some way to leverage your expertise to do what the models canโt.
I was hesitant for a long time, but frankly I became too scared to ignore what's going on because it's still a long time until I'm ready for retirement.
That's why I follow what's happening closely and try things myself to know what's hype and what's real. It's obvious that the machines are pretty good at certain tasks. Busy work is one of them. But there are still areas they're "not great" at.
It's important to understand the technology's weak spots. I watch out for areas to apply my strengths. As Sean puts it, there will be areas in which you'll be better than the machines.
This topic is heated and emotional, so I just wanted to share where I'm at right now. I also guess there are many Web Weekly readers that aren't thrilled about the new world. If that's you, hang in there! And if you want to share your thoughts with me, you can always hit reply.
If you enjoy Web Weekly, share it with your friends and family.
A quick "repost" really helps this indie newsletter out. Thank you! โค๏ธ
Web Weekly Housekeeping
Last week, I shared the new Connection-Allowlist header and Nicolas told me that the implementation has already started in Firefox. ๐
And because I mentioned complicated CSP configuration, Mark shared with me how the strict-dynamic directive can help tame all this CSP madness.
And of course, as always, I want to give a huge shoutout to the 58 Web Weekly supporters!

Thank you so much for supporting Web Weekly. Your small gestures really keep me going in the time of the slopocalypse. If you also want to support indie publishing, you can do so on Patreon or GitHub Sponsors.
Something that made me smile this week
![]()
Nothing spectacular: it's just Frank who drew his own emoji collection one by one. You can get it on frankmoji.com.
No code
- Don't be nice โ "If you hear enough people say something it somehow becomes 'just another opinion.'"
- how to find meaning in ordinary days โ "not all loneliness needs to be cured. some of it just needs to be sat with."
- You should never be angry at work โ "Angry engineers are rarely the ones holding the company together, but theyโre also rarely useless."
The example.com redesign

So, example.com got a redesign. ๐ People asked why and the VP of IANA (Internet Assigned Numbers Authority) replied that it was to save bandwidth. The new site now enriches the page with a single s.js file so that bots, curls, or whatever can save some bytes. Wild!
Responsive iframes

Who would have thought that I'd plug an iframe change that I'm actually excited about? I had to deal with resizing iframes quite a bit, so this platform addition is more than welcome. So if you're updating iframe sizes manually, you'll dig this!
Be aware that responsive iframes are cutting-edge and Chromium-only so far.
AI policies

You might have heard that Sindre, who maintains a gazillion open source projects in the JS ecosystem, closed external contributions. This means you can't simply contribute to his projects anymore.
Of course, I'm not maintaining that many or that successful projects, but I see myself making more and more things private on GitHub. I just can't be bothered anymore.
On top of that, I also receive five emails per week from "fake Web Weekly readers" who want to plug their posts and projects. The bold ones even include a personal agent signature. The new world is just wasting everyone's time.
Regardless, before closing everything, maybe adding an AI policy is worth a shot.
Kinda related side note: do you know that GitHub now highlights your projects' accessibility statements? ๐
Do we need a <poster> element?

Scott thinks so and is yet again on the journey of extending the web. Scott was also part of bringing lazy loading to videos, and he's on to the next topic: responsive images in video elements.
I love these stories.
The wonderful weird web โ The restroom archive

The Restroom Archive is an ongoing repository of publicly accessible restrooms. [...] Currently, 40 archivists have documented 193 restrooms in 85 cities across 13 countries.
What? I have no words. ๐ And before you wonder, the site lists 3D models of restrooms. I checked seven restrooms and they were reasonably clean.
The tricky vary header

Cloudflare added support for the vary header. It's fair if you now think "Alright, why would I care?". The post does a good job explaining what vary does and why caching is hard (obviously).
Import, import, and import

What happens when you call import('foo.js') twice? Joan explains how the module map works and that there will be only one network call. But what if the first import fails and you want to try again? That used to be tricky, but turns out, there's a spec change rolling out as we speak.
Modern Web Types

If you're using cutting-edge web features, you probably run into the situation that TypeScript doesn't know about new properties yet because it only includes types for features supported by two engines (TIL!). Philip was so annoyed by this that he released modern-web-types which includes features that are only supported by one engine.
But, as mentioned in the post, you shouldn't rely on TypeScript for feature detection or support info. That's where proper Baseline tooling comes in.
Some interop "things"

I think the submission of Interop focus areas for next year is closed by now, but you can still chime in and add your thumb to your favorites on GitHub.
The fine folks at Firefox also built a nice UI to rank your most preferred new web features. The data goes to the Firefox team as far as I understand.

And the web dev community is still around (โค๏ธ) and blogged about their favorite features, too.
- My Interop 2027 picks from Paweล
- My Interop 2027 Rankings from Declan
- My top picks for Interop 2027 from Sara
And if you want to dive into this rabbit hole, the community links back and forth between all these posts. Love ya!
Random MDN โ ::details-content
![details[open]::details-content { color: dodgerblue; padding: 0.5em; border: thin solid grey; }](https://images.ctfassets.net/f20lfrunubsq/3lUn74HOA93ChehyMt9lUE/97bb58b6186fcaa8fbeaf9babc6647a9/code-shot-details-content.png?w=800&fm=avif)
From the unlimited MDN knowledge archive...
Just a quick reminder: ::details-content is a thing these days.
New on the baseline

The alpha() CSS function became Baseline newly available and Object.groupBy() is now widely available.
Three valuable projects to have a look at
- zachleat/table-of-contents โ A table of contents web component.
- Homebrew/BrewUI โ Homebrew's official macOS GUI.
- Wox-launcher/Wox โ A cross-platform launcher.
A new Tiny Helper

If you're looking for a quick way to create mockups with phones on a nice background, Sliick indeed looks slicker than many other tools that do that.
Find more single-purpose online tools on tiny-helpers.dev.
Thought of the week
Here's Sean on playing company politics...
If you have powerful enemies at a company (for instance, the CTO or an influential VP doesnโt like you), quit.
Did you learn something from this issue?
โค๏ธ If so, join 58 other Web Weekly supporters and give back with a small monthly donation on Patreon or GitHub Sponsors.
This is all, friends!
Loved this email? Hated this email? I want to hear about it!
If you think something needs improvement or something sparked some joy, reply to this email because I want to know more!
And with that, take care of yourself - mentally, physically, and emotionally.
I'll see you next week! ๐
Join 6.4k+ developers and