Published at
Updated at
Reading time
9min
The Web Weekly newsletter keeps you up to date, teaches you web development tricks and covers all things working in tech.

Frohes Neues! πŸ‘‹

Do you know when forms are automatically submitted on ENTER key press? Or have you heard of Chrome's and Safari's tight mode? Oooooor should you replace your reduce function with Object.groupBy?

Turn on the Web Weekly tune and find all the answers below. Enjoy!

Mario listens to "Bolt Thrower β€” The Killchain":

The Killchain is my energizer, when things need to be done! Although itΒ΄s Death Metal, itΒ΄s very groovy.

Do you want to share your favorite song with the Web Weekly community? Hit reply; there is only one more song left in the queue.

You might have noticed that Web Weekly was on a somewhat unexpected break. The last issue is 43 days old... Ouch. My inner monk is furious about not delivering on the "weekly" part.

What happened? Well... I ended last year a bit on a low.

I've finished my first year as a freelancer. Everything's going very well, which I'm very grateful for because the market still isn't in great shape. My collaborations are also super smooth, and I can work with very smart people.

It's been a great but wild ride, and it's strange how time management changes when you bill hours instead of automatically receiving a fixed salary. The time spent on Web Weekly started to "officially" cost me real money, and I was exhausted.

To be honest, I was close to calling it off at the end of the year. But... of course, there's a "but" because you're reading Web Weekly right now. Are you ready for the positive flipside?

Many of you reached out. There were new supporters, and I could add many new testimonials to the upcoming redesign. And to top all the lovely conversations, Web Weekly made it into the "State of JS" survey results. 😱

Web Weekly in the State of JS survey results next to Josh. W Comeau and Fireship.

Sitting next to Josh and Fireship makes me incredibly proud. So, here I am again! πŸ˜…

But some things have to change:

I'll try not to stress about the "weekly" part anymore and will target 2-3 issues a month to catch a breath now and then. My inner monk has to live with that, and I hope it's okay with you, too.

5.5k people are reading Web Weekly right now, and I'm getting a cold sweat every time I'm about to press "Send". How many people receive these emails (or read Web Weekly via RSS) is wild. Thank you for being part of this journey! πŸ’™

But I have to make it work financially. So here's my New Year resolution.

My goal is to grow Web Weekly to 8k subs by the end of the year, and it has to become a small revenue stream. I'm not expecting to get rich or make it a full-time business, but spending 8-10 hours a week isn't sustainable for me in my freelance setup.

So, if you want to help, here's how:

  1. If you enjoy Web Weekly, reply and let me know. The growing list of testimonials is my biggest motivation and helps convince folks to sign up.
  2. If you can, support my tiny and independent newsletter financially (Patreon / GitHub Sponsors).
  3. Repost it on social media. I'll add Bluesky, Mastodon and LinkedIn links to every issue. A simple repost goes a long way. 🫣

And here are the promised social posts:

Something that made me smile this week

Astronaut and toilet emoji next to a percentage display.

pISSStream is a menu bar app that shows how full the International Space Station's urine tank is in real-time.

Nothing more to add.

Monitor the ISS

Open tabs

Things about @keyframes

Code example showing how duplicated keyframe properties help avoiding repeating CSS declarations.

I learned some CSS @keyframes facts from Ryan:

  • CSS is cool with duplicate keyframe properties
  • CSS allows the keyframe properties to have a random order
  • CSS can apply custom easings for each keyframe ruleset

These may be news to you, too!

Tweak your frames

Don't use autofocus unless...

You'll rarely want to use autofocus. Messing with people's focus usually doesn't make them want to use your website more. It will probably make them want to use it less, so don't autofocus your purchase button or search field.

Messing with default focus handling is usually a bad idea. Kilian shares a single situation when using the autofocus attribute makes sense. And I couldn't agree more with him.

Focus!

An extensive CSS wishlist

CSS Wishlist 2025

I'm super happy about all the new CSS features we got last year. Adam phrased more things we need to build web UIs, and I learned about many problems I didn't realize I had...

Dream about the CSS future

Thoughts on cognitive load

Graphic showing thoughts. On the left: good with few smart developer's quirks. On the right: bad with many smart developer quirks.

Do you know when code becomes hard to understand? It's when you have to remember many different things to understand what's happening. Some people also refer to this as cognitive load. This post is a great one to keep in your bookmarks to advocate for easy-to-understand source code.

The sections on if/else statements and HTTP status codes are chefkiss...

Write good code

You're halfway through!

Wowza! Would you enjoy getting Web Weekly straight to your inbox?

The wonderful weird web – Overstimulation

A randomly looking UI with a buttons and DVD logos.

Neal released yet another wild app. The goal is "to collect stimulations". We're talking banners, clicks, music, videos, etc... I'm not easily overstimulated, but at level 16, I needed to stop because it drove me crazy. Super fascinating!

If you're sensitive about movements and triggers, you should pass on this one...

Stimulate yo-self

For the webperf nerds

Presentation showing a network waterfall.

Have you heard of Chrome's and Safari's tight mode? Ja, me neither... Robin explains how today's browsers prioritize and load resources. This talk is very well-researched and includes countless little performance nuggets.

Understand resource loading

Use HTML attributes to prefetch/prerender

<a href data-prefetch>Prefetched Link</a> <a href data-prefetch=prerender>Prerendered Link</a> <a href data-prefetch=false>Untouched Link</a>

Speculation rules are a fairly new way to instruct Chromiums to prefetch or prerender future navigations. The idea is that you add a <script type="speculationrules"></script> to your HTML, configure some rules and let Chrome do the rest. ✨

Harry described how to configure the speculation rules so that you can control the prefetching and preloading via HTML attributes. I'm in!

Speed up your navigations

"We discovered a browser bug and..."

One of my team-mates - Mu-An - discovered a focus bug in Firefox was biting us and rather than introduce more JavaScript to work around this, Mu-An and our other team mate David just... fixed it.

"... fixed it."

Browsers seem like such a black box. Sure, the main engines are open source, but they're also written in C, C++, or Rust or whatever. I (we?) will never be able to contribute, right?

Wrong! I mean, maybe... πŸ˜…

Keith shared how he became a contributor to all three engines, and it's such a motivating read. Maybe we all can help push the web forward?

Get involved

Side note: this post reminded me of how Scott reimplemented responsive videos in Firefox last year and moved the feature into the baseline. So inspiring!

My first look into scroll-driven animations

Stefan in front of the GitHub landing page.

I'm super excited about a new collaboration that I kicked off with the fine folks at Builder. In 2025, I'll look at modern UI examples and rebuild them with modern web technologies. We started with rebuilding a CSS scroll-driven fade out effect.

Video

Blog post

When does a form submit on ENTER press?

When there is only one single-line text input field in a form, the user agent should accept Enter in that field as a request to submit the form.

Have you ever noticed that forms are sometimes submitted when you press ENTER? And sometimes they don't? It seems random. Felix jumped into this rabbit hole and shared how and when implicit form submissions work.

Submit!

Random MDN – Object.groupBy

Object.groupBy example

From the unlimited MDN knowledge archive...

If you're grouping collections with reduce you might want to check out Object.groupBy. The new static method just entered the baseline and lets you reshuffle items without hurting your brain.

Group it!

TIL recap – side effects of invalid CSS custom properties

:root { --not-a-color: 20px; } p { background-color: red; } p { background-color: var(--not-a-color); }

Trick question: what background color will paragraphs have with the above CSS? Note that the custom property doesn't include a valid color.

It's probably not what you think, and you can learn more about it on the blog.

Be careful with invalid properties

Find more short web development learnings in my "Today I learned" section.

Three valuable projects to have a look at

A new Tiny Helper

Color preview showing multiple shades of yellow.

If you want to impress friends and family with knowing about the CSS colors lightgoldenrodyellow, snow or navajowhite, "Sorted CSS colors" will help you!

Add some colors

Find more single-purpose online tools on tiny-helpers.dev.

Thought of the week

Sean comes along with a ton of wisdom explaining "how to ship software". He's focusing on shipping features while working in large companies, but I'm sure you'll find tips that will apply to your situation, too!

A project is shipped when the important people at your company believe it is shipped.

Did you learn something from this issue?

πŸ’™ If so, join 16 other Web Weekly readers 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! πŸ‘‹

If you enjoyed this article...

Join 5.5k readers and learn something new every week with Web Weekly.

Web Weekly β€” Your friendly Web Dev newsletter
Reply to this post and share your thoughts via good old email.
Stefan standing in the park in front of a green background

About Stefan Judis

Frontend nerd with over ten years of experience, freelance dev, "Today I Learned" blogger, conference speaker, and Open Source maintainer.

Related Topics

Related Articles