Gustav Hansen
@stav.dev
📤 123
📥 679
📝 72
Engineering @ Sanity, living in Berlin. More questions than answers.
🧵
add a skeleton here at some point
1 day ago
0
1
0
reposted by
Gustav Hansen
Rowan Merewood
2 days ago
Ever been annoyed by a "confirm your email" message with a flaky magic link or OTP with clunky copy+paste, if the email even arrives‽ Optimistically, 20-30% of those emails* are never seen. We can fix that! If you have *any* email collection on your site, I'd love to see you try it & give feedback.
loading . . .
Test the Email Verification Protocol with an origin trial | Blog | Chrome for Developers
Test the Email Verification Protocol with the origin trial available from Chrome 150.
https://developer.chrome.com/blog/email-verification-protocol-origin-trial
3
29
18
Since experimenting with module federation at
@sanity.io
, we've teamed up with the core maintainers,
@gioboa.bsky.social
and with the help of the
@e18e.dev
tooling managed to cut the Module Federation Vite plugin's dependency footprint from 72 → 18. 🎉
3 days ago
1
40
6
reposted by
Gustav Hansen
Colin McDonnell 💎 Zod
3 days ago
this is the culmination of a huge engineering lift to unblock symlink-powered package linkers in JavaScript. writeup below — approachable for people who do not think about package managers in their spare time 😛
nubjs.com/blog/unblock...
loading . . .
Node’s phantom dependency problem and the path to a 5x faster package manager
One copy of every package per machine, symlinked into every project — and the mechanisms that make that layout work across the ecosystem.
https://nubjs.com/blog/unblocking-the-global-virtual-store?oasdf
1
15
2
reposted by
Gustav Hansen
ᴀʟᴇx ʀᴜssᴇʟʟ
4 days ago
It's not enough for Apple to take ~$20BN in profit from the web every year while kneecapping competitors and starving Safari of funding. No, they really seem to think we should be thanking them for their magnanimity:
infrequently.org/2026/07/abje...
0
12
6
reposted by
Gustav Hansen
Paweł Grzybek
5 days ago
✨ New post “What's new in ECMAScript 2026”
pawelgrzybek.com/whats-new-in...
#javascript
#nodejs
#ecmascript
loading . . .
What's new in ECMAScript 2026 | pawelgrzybek.com
Every year after the final language specification approval, I publish about the latest additions to the language. Here is a full list.
https://pawelgrzybek.com/whats-new-in-ecmascript-2026/
0
18
4
reposted by
Gustav Hansen
Andrey Sitnik
4 days ago
A fascinating, deep piece by
@moultano.bsky.social
on why modern screens can show only part of the colors our eyes can see. And where in the real world to find colors screens can’t reproduce, like the green of U.S. traffic lights.
moultano.wordpress.com/2026/06/19/w...
0
33
5
reposted by
Gustav Hansen
Ilja
5 days ago
Heads up Svelte / npmx / atproto friends in Berlin (or those coming to
@localfirstconf.com
) - there will be a crossover meetup hosted by
@willow.sh
@patak.cat
@jensroemer.com
@flo-bit.dev
, me and others on 2026-07-15 Sign up here:
guild.host/events/atpro...
loading . . .
atproto x npmx x svelte meetup | Guild
Jul 15th 6:30PM: Join us in Berlin after Local-First Conf at our crossover satellite event with the AT Protocol, npmx, and Svelte communities! A huge thank you to Bitcrowd for hosting us Schedule: T...
https://guild.host/events/atproto-x-npmx-x-svelte-3mzs5a
4
54
19
TIL
github.com/michaelficar...
add a skeleton here at some point
6 days ago
0
0
0
reposted by
Gustav Hansen
Laurie Voss
7 days ago
More than a year ago I predicted that AI would create a huge new wave of programmers. Has it? Yes. But an unwelcome phenomenon came along with it: junior programmers jobs collapsed. What's the fix?
https://seldo.com/posts/ai-has-torched-the-market-for-junior-programmers/
6
33
8
reposted by
Gustav Hansen
Barry Pollard
9 days ago
The first part of Declarative Partial Updates (`<template for>` out-of-order HTML) is now available, unflagged, in Chrome 150!!
developer.chrome.com/release-note...
The second part (the new JS setting APIs, include the streaming ones) we're still working on the spec side, but maybe for Chrome 152?
loading . . .
Chrome 150 | Release notes | Chrome for Developers
CSS text-fit property, background-clip border-area, Focusgroup, and more.
https://developer.chrome.com/release-notes/150#out_of_order_streaming
7
76
31
reposted by
Gustav Hansen
Thomas Steiner
8 days ago
👀 Look, ma! The Cross-Origin Storage extension running on Firefox! If you dare, install it via `about:debugging` from
github.com/web-ai-commu...
. Else, just wait for it to be approved on the Firefox Add-on Store. More background on
#CrossOriginStorage
:
github.com/WICG/cross-o...
.
2
14
3
reposted by
Gustav Hansen
Bramus (on vacation 🏝️)
10 days ago
New in Chrome DevTools in Chrome 151 (which goes stable mid July): The specificity bubble can now show you a breakdown of how the specificity was calculated. Big thank you and congrats to
@hjanuschka.bsky.social
for contributing this to Chromium 👏
0
58
8
reposted by
Gustav Hansen
Jake Archibald
12 days ago
There's an ideal set of sizing constraints for custom <select>, but the CSS is a bit tricky. Here's how to make it work, and a tour of new CSS features along the way.
jakearchibald.com/2026/goldilo...
loading . . .
The Goldilocks customizable select height
The 'ideal' sizing is more complicated than you think…
https://jakearchibald.com/2026/goldilocks-select-height/
12
268
56
reposted by
Gustav Hansen
Stefan Judis
15 days ago
I know many of my followers aren't big AI fans. Still, the new MDN MCP server is super handy for pulling up docs and browser support data.
https://developer.mozill...
1
6
1
reposted by
Gustav Hansen
Astro
16 days ago
Introducing Sätteri — High-performance Markdown & MDX processing for the JavaScript ecosystem.
satteri.bruits.org
loading . . .
Sätteri
Sätteri puts flexible JavaScript plugins on top of a fast Rust Markdown / MDX engine. Best of both worlds.
https://satteri.bruits.org
4
81
14
reposted by
Gustav Hansen
Lars
17 days ago
✂️ Playing a bit with a new "cycles" reporter in Knip to show circular dependencies. The data is available in the module graph already anyway 😎 Feel free to take a look and give it a 🌀 if you're interested:
github.com/webpro-nl/kn...
2
34
5
reposted by
Gustav Hansen
pnpm
17 days ago
Very early sneak peek to pnpr - the pnpm registry:
pnpm.io/pnpr/
loading . . .
Introduction | pnpm
pnpr is a pnpm-compatible npm registry server, written in Rust. It speaks the
https://pnpm.io/pnpr/
4
101
15
reposted by
Gustav Hansen
Chrome for Developers
about 1 month ago
These might be the biggest changes to HTML in decades. Declarative Partial Updates let you render out-of-order HTML and build UI placeholders with zero JS. Combine it with the new streaming APIs to fetch and inject HTML directly into the DOM, simplifying Island architecture →
goo.gle/49Bz9nK
loading . . .
1
24
4
reposted by
Gustav Hansen
Marina Aísa
24 days ago
That was fast 💨🤩
@lcas.dev
has already submitted a new HTML proposal for Localized time formatting without JavaScript 👇
github.com/whatwg/html/...
Couple of previous proposals related to this topic: -
github.com/whatwg/html/...
-
github.com/whatwg/html/...
add a skeleton here at some point
1
47
15
reposted by
Gustav Hansen
Eduardo.𝚟𝚞𝚎
25 days ago
Over the years, in Vue, we have added a lot of dev only warnings at runtime to help developers With
@antfu.me
we want to improve these with structured diagnostics: enforcing good practices for errors and pretty print output that is actionable (agents autofix cheat code) Say hello to
nostics.dev
loading . . .
0
74
9
reposted by
Gustav Hansen
Max
about 1 month ago
Very exciting Rust React Compiler news!
@ricky.fm
reports that the Rust port will be merged in the next week or two! Internal meta testing is showing 99.9% compatibility and much faster performance!
github.com/facebook/rea...
loading . . .
[compiler] Port React Compiler to Rust by josephsavona · Pull Request #36173 · facebook/react
This is an experimental, work-in-progress port of React Compiler to Rust. Key points: Work-in-progress - we are sharing early, prior to testing internally at Meta, to get feedback from partners in...
https://github.com/facebook/react/pull/36173#issuecomment-4608356402
0
79
10
reposted by
Gustav Hansen
Harry Roberts
about 1 month ago
🔍 I can’t help but feel like we’re missing something… Front-End’s Missing Metric:
csswizardry.com/2026/06/fron...
loading . . .
Front-End’s Missing Metric: The TBT Window – CSS Wizardry
The TBT Window is the FCP-to-TTI interval used to calculate Total Blocking Time. If FCP or TTI moves, TBT can change even when long tasks do not.
https://csswizardry.com/2026/06/front-ends-missing-metric-the-tbt-window/
1
15
6
reposted by
Gustav Hansen
James
about 1 month ago
1.0.0 of @e18e/setup-publish 🎉 you can use this to setup a GitHub workflow for publishing npm packages ✅ staged publishing ✅ follows best practices for secure publishes ✅ supports npm, pnpm, bun ✅ supports changesets, changelogithub
loading . . .
GitHub - e18e/setup-publish: A tiny CLI to help setting up npm publish workflows.
A tiny CLI to help setting up npm publish workflows. - e18e/setup-publish
https://github.com/e18e/setup-publish
1
38
8
reposted by
Gustav Hansen
ᴀʟᴇx ʀᴜssᴇʟʟ
about 2 months ago
You should be reading No One:
nooneshappy.com/article/the-...
loading . . .
The AI Bubble — No One's Happy
The AI buildout is the largest capital expenditure in the history of the technology industry. The financial structure holding it together has a name.
https://nooneshappy.com/article/the-ai-bubble/
5
45
21
reposted by
Gustav Hansen
Josh Collinsworth
about 2 months ago
This post is an absolute banger.
add a skeleton here at some point
2
62
7
reposted by
Gustav Hansen
Marvin Hagemeister
about 2 months ago
HTML might be getting out of order streaming natively in the future. I really like this:
developer.chrome.com/blog/declara...
loading . . .
Declarative partial updates | Blog | Chrome for Developers
Learn about new out-of-order streaming capabilities and the renewed HTML insertion and streaming methods available for testing from Chrome 148
https://developer.chrome.com/blog/declarative-partial-updates
0
56
14
reposted by
Gustav Hansen
Socket
about 2 months ago
AI has taken over open source, and the data is wild: • npm is now seeing 100k+ packages published per month • packages with em dashes in READMEs jumped from ~5% to 30%+ • AI is increasingly writing packages and choosing dependencies Awesome post by
@staltz.com
:
socket.dev/blog/ai-has-...
loading . . .
AI Has Taken Over Open Source - Socket
Vibe coding at scale is reshaping how packages are created, contributed, and selected across the software supply chain
https://socket.dev/blog/ai-has-taken-over-open-source
2
46
17
reposted by
Gustav Hansen
TC39
about 2 months ago
ECMAScript Excitement 🎉 This week, at its 114th meeting, TC39 advanced these proposals: 4️⃣
Atomics.pause
4️⃣
Joint iteration
3️⃣
Error stack accessor
3️⃣
Intl: Keep Trailing Zeros
3️⃣
Iterator Chunking
3️⃣
Iterator Includes
3️⃣
Iterator Join
3️⃣
RegExp Buffer Boundaries
2️⃣
Amount
2️⃣
Intl Sequence Units
and... 👇
2
46
13
reposted by
Gustav Hansen
Yoav Weiss
about 2 months ago
I'm proposing a way to be able to persist iframes across navigations
github.com/WICG/proposa...
Best idea or worst idea??
loading . . .
Persistent iframes · Issue #289 · WICG/proposals
Introduction Hard navigations of top-level documents result in the destruction of all the child iframes of those documents. In cases of same-origin navigations, there's high likelihood that at leas...
https://github.com/WICG/proposals/issues/289
6
18
3
reposted by
Gustav Hansen
ᴀʟᴇx ʀᴜssᴇʟʟ
about 2 months ago
They won't call it a "how to escape React skillset", but I will.
add a skeleton here at some point
2
25
4
reposted by
Gustav Hansen
Kevin Deng
about 2 months ago
Recent supply-chain poisoning incidents made one thing obvious: CI should not blindly trust floating @main refs. actionspack brings a pnpm-like lockfile to GitHub Actions: author in .github/workflows/src, inline safe workflows/actions, pin the rest to SHAs, and review updates with git diff.
loading . . .
GitHub - sxzz/actionspack: Lockfile-first GitHub Actions workflow packer
Lockfile-first GitHub Actions workflow packer. Contribute to sxzz/actionspack development by creating an account on GitHub.
https://github.com/sxzz/actionspack
3
11
5
reposted by
Gustav Hansen
Seb ⚛️ ThisWeekInReact.com
about 2 months ago
💡 Use "using" for Vitest/Jest mocks/spys It's really nice to simplify You don't need manual mockReset / global afterEach cleanups anymore
add a skeleton here at some point
2
58
8
reposted by
Gustav Hansen
Yann Braga
about 2 months ago
What do you think of a dev tool that helps you inspect components in your live app and then save that snapshot as a story in Storybook? 🤔 Backed by the incredible Vite devtools of course
@antfu.me
<3
loading . . .
3
63
11
reposted by
Gustav Hansen
Anthony Fu
about 2 months ago
In
[email protected]
, we added a new report page "Maintainer Actions", which lists actionable changes for package maintainers to move the ecosystem forward. With pre-constructed prompts to copy if you want agents to do that for you.
github.com/antfu/node-m...
5
88
15
reposted by
Gustav Hansen
Thomas Fuchs
about 2 months ago
You can say what you will about Apple, but they're the only big tech company actually trying to use tech to make things better for people; that's not only true for accessibility but also e.g. for privacy.
loading . . .
Apple unveils new accessibility features, and updates with Apple Intelligence
Apple announced major accessibility updates powered by Apple Intelligence, including new capabilities for VoiceOver, Magnifier, and Voice Control.
https://www.apple.com/newsroom/2026/05/apple-unveils-new-accessibility-features-and-updates-with-apple-intelligence/
18
116
27
reposted by
Gustav Hansen
Barry Pollard
about 2 months ago
OMG it's happening!!!
add a skeleton here at some point
5
61
11
reposted by
Gustav Hansen
Una Kravets
about 2 months ago
Gap decorations are now in Chromium 149 (stable rollout in 5 days)! Shoutout to the folks at Microsoft Edge for the implementation, post, and demos:
developer.chrome.com/blog/gap-dec...
loading . . .
Gap decorations: Now available in Chromium | Blog | Chrome for Developers
A new way to style gaps in CSS from Chrome and Edge 149.
https://developer.chrome.com/blog/gap-decorations-stable
1
61
16
reposted by
Gustav Hansen
Seb ⚛️ ThisWeekInReact.com
about 2 months ago
The latest Playwright release can snapshot your accessibility tree Great to avoid a11y regressions 👌
2
65
7
reposted by
Gustav Hansen
Jovi 🐨
2 months ago
New post on supply chain security for npm packages — covering the publishing workflow I push in the projects I maintain, plus the consumer side: why pnpm is a better default than npm, its native minimumReleaseAge config, and trustPolicy: no-downgrade to catch provenance regressions automatically.
loading . . .
Hardening publishing & consuming
A practical look at reducing blast radius in npm publishing workflows — environment-gated OIDC publishing, limiting manual access, and what consumers can do on their end.
https://jovidecroock.com/blog/secure-npm-publishing
2
16
7
reposted by
Gustav Hansen
Sam Rose
2 months ago
This is an S-tier, gold standard write-up of the recent TanStack supply chain attack. Extremely impressive how fast it was detected and mitigated, even if part of it was good luck.
tanstack.com/blog/npm-sup...
loading . . .
Postmortem: TanStack npm supply-chain compromise | TanStack Blog
On 2026-05-11, an attacker chained a pull_request_target Pwn Request, GitHub Actions cache poisoning across the fork↔base trust boundary, and OIDC token extraction from runner memory to publish 84 mal...
https://tanstack.com/blog/npm-supply-chain-compromise-postmortem
3
55
7
reposted by
Gustav Hansen
Fabian Hiller
2 months ago
I recommend reading this well-written article:
tannerlinsley.com/posts/projec...
loading . . .
Projecting React
An AI-generated projection of React's public API, shaped around what a TanStack Start app needs. ~9KB client, 2–3× faster on our workloads. Powers this blog today; capable of running tanstack.com end-...
https://tannerlinsley.com/posts/projecting-react
2
24
2
reposted by
Gustav Hansen
Andy Bell
2 months ago
this is a fantastic piece by
@ky.fyi
loading . . .
Do I belong in tech anymore?
On quitting, the spread of AI, and the loss of an ideal.
https://ky.fyi/posts/ai-burnout
6
90
12
reposted by
Gustav Hansen
Scott Tolinski
2 months ago
Dead code, duplication and drift are huge problems with coding with AI. You can't prompt this away. Lately I've been really loving Fallow to reign this in.
www.youtube.com/watch?v=XLtu...
loading . . .
This Coding Tool Kills AI Code Slop
YouTube video by Syntax
https://www.youtube.com/watch?v=XLtuSy1opW4
0
11
2
reposted by
Gustav Hansen
Jovi 🐨
2 months ago
Been mentioning it here and there but officially launching pracht, a framework-y solution for preact!
www.producthunt.com/products/pra...
loading . . .
Full-stack Preact, per route - pracht | Product Hunt
The Preact framework with explicit routing, per-route render modes (SSG/SSR/ISG/SPA), and thin deployment adapters for Cloudflare, Vercel, and Node.js.
https://www.producthunt.com/products/pracht
2
25
5
reposted by
Gustav Hansen
Warp
2 months ago
Warp is now open-source.
github.com/warpdotdev/warp
loading . . .
GitHub - warpdotdev/warp: Warp is an agentic development environment, born out of the terminal.
Warp is an agentic development environment, born out of the terminal. - warpdotdev/warp
https://github.com/warpdotdev/warp
6
133
30
reposted by
Gustav Hansen
matia 🇭🇷
3 months ago
Modern CSS has made entry and exit animations a lot easier so I made a video on how to use @starting-style to do that including animating discrete properties like display and using the View Transition API for layout changes
youtu.be/7D9DSJp5rkY
loading . . .
Animate Entry And Exit Transitions With Modern CSS
YouTube video by Joy of Code
https://youtu.be/7D9DSJp5rkY
1
26
5
reposted by
Gustav Hansen
Dominic Gannaway
3 months ago
Happy to announce TSRX. Think of it as the spiritual successor to JSX. We extracted it from Ripple, and made it framework agnostic. It can compile to React, Ripple and Solid, other frameworks to come soon.
tsrx.dev
16
208
44
reposted by
Gustav Hansen
TypeScript
3 months ago
TypeScript 7.0 Beta is here! Built on a new native and parallelized foundation, it's already being used on multi-million line codebases. Read up more here and try it on your projects today!
devblogs.microsoft.com/typescript/a...
loading . . .
Announcing TypeScript 7.0 Beta - TypeScript
Today we are absolutely thrilled to announce the release of TypeScript 7.0 Beta! If you haven’t been following TypeScript 7.0’s development, this release is significant in that it is built on a comple...
https://devblogs.microsoft.com/typescript/announcing-typescript-7-0-beta/
3
329
83
reposted by
Gustav Hansen
Matt Kane
3 months ago
I have a draft RFC for a decentralized plugin registry for EmDash, based on atproto. Feedback welcome!
loading . . .
RFC: Decentralized Plugin Registry by ascorbic · Pull Request #694 · emdash-cms/emdash
Draft RFC for decentralised plugin registry. Rendered markdown: https://github.com/emdash-cms/emdash/blob/wip/plugin-rfc/rfcs/0001-plugin-registry.md
https://github.com/emdash-cms/emdash/pull/694
2
63
7
Load more
feeds!
log in