Friday Issue No. 154

2026-03-20

back
Friday Issue  No. 154

This week is a big one for the language and the tooling we rely on every day. Temporal finally joins JavaScript as a modern datetime API, closing a nine-year effort to escape the quirks of Date, while Edge experiments with Network Efficiency Guardrails to automatically flag inefficient loading patterns in your apps. Vite 8 swaps its build pipeline for a Rust-powered core and delivers serious speed gains. Astro 6 arrives with a redesigned dev server, a new Fonts API, and live content collections, and there is a great conference recap on the state of Vue and Vite in Amsterdam.

On the framework and patterns side, there is a thoughtful story about rewriting a project from React to Svelte at AI-assisted turbo speed, plus an excellent Svelte best practices guide that is very much worth bookmarking. HTML and CSS get plenty of attention too: different ways to select HTML, “abusing” the new customisable select, a token-based approach to z-index, NES-style nostalgic UI and a one-line font tweak that stops your numbers from jumping. TypeScript fans get a deep dive on avoiding as casts, Node announces annual major releases starting with Node 27, and TanStack ships generation hooks that make it easy to plug text, audio and video generation into your app with a clean hooks API.

The mixed bag at the end is especially fun: a programming language built around M&Ms, early peeks at Firefox’s “Nova” redesign, a nuanced look at how fast is “fast enough” for users and a heroic audit of a 49MB news article that reads like a performance horror story. Along the way, there is also a small debate about “Generative Engine Optimisation” and whether asking visitors to craft prompts for search AIs is clever or just a bit questionable. Happy reading!

JavaScript News

Temporal

As the post says: “Temporal is not just a better API. It's proof that the JavaScript community can solve long-standing problems together. After nearly 30 years, JavaScript finally has a modern datetime API.” Temporal has now reached Stage 4 and is set to land in ES2026, giving JavaScript a modern, immutable datetime API with first class time zone and calendar support. Safari and Node support are still in progress, but the finish line is finally in sight after almost a decade of work. What an epic journey.

https://bloomberg.github.io/js-blog/post/temporal/

Network Efficiency Guardrails

Edge 146 introduces a new feature to play with. The Network Efficiency Guardrails is a policy based tool that lets the browser automatically flag inefficient loading patterns such as oversized images, uncompressed text or bloated data URLs.

https://blogs.windows.com/msedgedev/2026/03/17/monitor-and-improve-your-web-apps-load-performance/

Vite 8

Vite 8 is a major release that replaces the old esbuild plus Rollup split with Rolldown, a new Rust-based bundler built by VoidZero. This unification brings significantly faster production builds, dev and prod parity and better plugin compatibility, with benchmarks showing 10 to 30 times faster builds and large apps reporting 38 to 64 percent reduced build times.

https://vite.dev/blog/announcing-vite8

State of Vue & Vite

A nicely opinionated recap from the Amsterdam conference looking at how Vue and Vite are evolving together. It touches on performance improvements, the growing role of Rust based tooling in the ecosystem, and how Vite centric workflows are shaping the future of Vue apps.

https://laurentcazanove.com/blog/state-of-vue-vite-2026-amsterdam-recap

Astro 6

Astro 6 ships a redesigned dev server, a built in Fonts API, a Content Security Policy API and support for Live Content Collections that work across local and external content sources.

https://astro.build/blog/astro-6/

Avoiding “as” in your TypeScript

A great deep dive into why and how to avoid as casts in TS, especially patterns like:

const user = (await res.json()) as User;

https://www.solberg.is/unknown-to-typed

Node.js moves to Annual Major Releases

Node is moving to an annual major release cadence, starting with Node 27, which should make roadmap planning easier and help align with ecosystem expectations.

https://socket.dev/blog/node-js-moves-to-annual-major-releases-starting-with-node-27

However, what really caught my attention was something else. There is a new kind of backlink, or perhaps a new flavour of Generative Engine Optimisation: a social post that injects a prompt instead of just linking or summarising. It effectively asks visitors to craft prompts that “teach” AI about the site, which raises the question of whether this is clever distribution or slightly dubious.

https://bsky.app/profile/andrissvarcs.bsky.social/post/3mh6ya66nps2u

TanStack - Generation Hooks

Chat is yesterday’s headline. Not really, but TanStack’s new generation hooks go well beyond plain chat, covering text to speech, speech to text, image and video generation behind a familiar hooks based API. There are five hooks in total, and the best part is that once you have learned one, you can use the same mental model across all of them.

TanStack also ships an “open in AI” button with a wonderfully simple default prompt: “just explain this to me”. No memory tricks, no prompt pyramids, just a user centric shortcut, which is a nice contrast to the GEO tactics mentioned above.

https://tanstack.com/blog/generation-hooks

React to Svelte

Updates in how we build and ship front ends were always fast, but the last year turned everything to turbo mode. This post walks through rewriting an app from React to Svelte, with AI helping bridge the gap from “write me a haiku about kittens” to “rewrite this project over a weekend”.

https://strawberrybrowser.com/blog/react-to-svelte

Best practice Svelte

A very practical guide to Svelte best practices: patterns for stores and derived state, how to structure components, accessibility considerations and performance tips. I am definitely saving this one, and the llms.txt button at the end is a neat touch for sharing these conventions with your favourite model.

https://svelte.dev/docs/svelte/best-practices

HTML & CSS News

How many ways do you know to select HTML

If nothing else, you will learn that * > * is a nice looking chirping bird, but there is much more in here. The post walks through different ways to target elements in CSS, when to reach for each selector and how to keep specificity under control as your stylesheets grow.

https://css-tricks.com/the-different-ways-to-select-html-in-css/

Nostalgic CSS

This one is pure nostalgia: a NES inspired CSS framework that makes your UI look like it belongs on an 8 bit console. It might not be something you ship to production tomorrow, but it is clearly a labour of love and a fun reminder that the web can be playful.

https://nostalgic-css.github.io/NES.css/

Things you can do with Select

As the post author calls this exercise: “Abusing Customizable Selects”, and the experiments absolutely live up to that name. The <select> new styling capabilities are awesome!

https://css-tricks.com/abusing-customizable-selects/

Z-index

The trick using Z-index is not to use it at all. But the post proposes the idea of tokens as it gives some order in chaos. By defining a small, shared scale of layers, you can stop sprinkling random numbers across your CSS and make stacking behaviour predictable again.

https://css-tricks.com/the-value-of-z-index/

Fonts magic

This is a super short and very handy post about a single CSS property that stops numbers from “jumping” when they change.

https://www.amitmerchant.com/one-css-property-that-makes-numbers-look-instantly-better/

Mixed News

Programming with M&Ms

Someone built a programming language using M&Ms as the core concept, complete with syntax inspired by sweets. It is delightfully impractical, but it is also a great reminder that language design can be playful and still teach you something about parsing and semantics.

https://mufeedvh.com/posts/i-made-a-programming-language-with-mnms/

Firefox's new design

Codename “Nova” and the end result might not be what is shared anyway. However, I hope the vertical tabs will be added in there.

https://www.neowin.net/news/mozilla-is-working-on-a-big-firefox-redesign-here-is-what-it-looks-like/

How fast is fast enough?

A fascinating piece on performance and engagement that asks what “fast enough” actually means for users rather than benchmarks. As usual with this kind of research, the answer is “it depends”, but the data and methodology are well worth a read if you are tuning real world sites.

https://www.speedcurve.com/blog/fast/

The 49MB Web Page

Ah, news sites. This audit breaks down a single 49MB news article, from the ad scripts and trackers to the labyrinth of requests you wade through before reaching the actual content. I agree with the author on almost every point, and I admire the patience it took to count and catalogue all those megabytes.

https://thatshubham.com/blog/news-audit

Comment on BlueSky and Mastodon

Andris Švarcs

Somehow, I've survived over 15 years as a web developer without losing my interest in the craft. Quite the opposite, with so many great improvements in the Web standards, what was nearly impossible now is easy to make.

My career has been a wild ride through small agencies and big corporations, building everything from finance apps to health dashboards.

I'm that annoying person who needs to understand products beyond just slinging code. I ask questions like 'Why is this feature important?' and 'How will this improve the customer journey?' – you know, the kind of questions that make project managers reach for the pint aspirin. This curiosity has led me down the rabbit holes of design, accessibility, and SEO. Because apparently, making websites pretty, usable, and findable wasn't challenging enough on its own.

P.S. If this bio sounds too polished, blame my evil AI twin. I'm still working on teaching it sarcasm.

Copyright © since 2021, Andris Švarcs. All rights reserved.

Lets connect

bluesky

youtube

linkedin