Trending
Gustav Hansen's Avatar

Gustav Hansen

@stav.dev

Engineering @ Sanity, living in Berlin. More questions than answers.

106
Followers
668
Following
63
Posts
22.02.2024
Joined
Posts Following

Latest posts by Gustav Hansen @stav.dev

Preview
Twenty years of Amazon S3 and building whatโ€™s next | Amazon Web Services Some reflections on 20 years of innovations in Amazon S3 including S3 Tables, S3 Vectors and S3 Metadata.

Backwards compatible for 20 years

aws.amazon.com/blogs/aws/tw...

13.03.2026 17:30 ๐Ÿ‘ 6 ๐Ÿ” 1 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Preview
pnpm + Git Worktrees for Multi-Agent Development | pnpm When multiple AI agents need to work on the same monorepo simultaneously, they each need an isolated working copy with fully functional nodemodules. Git worktrees combined with pnpm's global virtual s...

pnpm + Git Worktrees for Multi-Agent Development

pnpm.io/11.x/git-wor...

13.03.2026 10:28 ๐Ÿ‘ 30 ๐Ÿ” 7 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 1

From zero to void in under five minutes โšก๏ธ

13.03.2026 12:19 ๐Ÿ‘ 3 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

The docs link under getting started is a 404. @agent pls fix ๐Ÿ™๐Ÿผ

13.03.2026 02:05 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Preview
GitHub - tc39-transfer/proposal-error-code-property Contribute to tc39-transfer/proposal-error-code-property development by creating an account on GitHub.

Happy to say that TC-39 has accepted the Error code property proposal as Stage 1 github.com/jasnell/prop... ... this works to standardize the pattern of adding the `code` property to Error objects using `new Error('...' { code: 'ERR_FOO' })`

11.03.2026 20:21 ๐Ÿ‘ 35 ๐Ÿ” 1 ๐Ÿ’ฌ 3 ๐Ÿ“Œ 0
Code example showing the usage of Temporal.ZoneddateTime

```js
// London DST starts: 2026-03-29 01:00 -> 02:00
const zdt = Temporal.ZonedDateTime.from(
  "2026-03-29T00:30:00+00:00[Europe/London]",
);

console.log(zdt.toString());
// โ†’ "2026-03-29T00:30:00+00:00[Europe/London]"

const plus1h = zdt.add({ hours: 1 });

console.log(plus1h.toString());
// "2026-03-29T02:30:00+01:00[Europe/London]" (01:30 doesn't exist)
```

Code example showing the usage of Temporal.ZoneddateTime ```js // London DST starts: 2026-03-29 01:00 -> 02:00 const zdt = Temporal.ZonedDateTime.from( "2026-03-29T00:30:00+00:00[Europe/London]", ); console.log(zdt.toString()); // โ†’ "2026-03-29T00:30:00+00:00[Europe/London]" const plus1h = zdt.add({ hours: 1 }); console.log(plus1h.toString()); // "2026-03-29T02:30:00+01:00[Europe/London]" (01:30 doesn't exist) ```

Temporal is now Stage 4 at TC39 ๐ŸŽ‚๐ŸŽ‚๐ŸŽ‚

Thanks to all the other champions of JavaScript's new date-time API. It has been a wild ride over many years!

I wrote a blog post explaining how we got here ๐Ÿ“œ

bloomberg.github.io/js-blog/post...

11.03.2026 15:21 ๐Ÿ‘ 337 ๐Ÿ” 83 ๐Ÿ’ฌ 20 ๐Ÿ“Œ 15

bloomberg.github.io/js-blog/post...

10.03.2026 21:14 ๐Ÿ‘ 3 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Preview
Node.js โ€” Evolving the Node.js Release Schedule Node.jsยฎ is a free, open-source, cross-platform JavaScript runtime environment that lets developers create servers, web apps, command line tools and scripts.

Node.js is moving to one major release per year starting with Node 27! ๐Ÿš€

โœ… Simpler: Every release becomes LTS.
โœ… Predictable: Version numbers now align with the year.
โœ… New: A 6-month Alpha channel for early testing.

https://bit.ly/4rnosLg

10.03.2026 19:30 ๐Ÿ‘ 229 ๐Ÿ” 59 ๐Ÿ’ฌ 4 ๐Ÿ“Œ 6
Preview
Request for developer feedback: focusgroup ย |ย  Blog ย |ย  Chrome for Developers Try out focusgroup and comment on the proposal.

Open UI has been working on speccing out the focusgroup attribute: a declarative way to support roving focus & add keyboard nav to composite widgets like toolbars/menus

We'd love your feedback!

Learn more & see open questions: developer.chrome.com/blog/focusgr...

H/t to Edge folks for prototyping

05.03.2026 16:54 ๐Ÿ‘ 74 ๐Ÿ” 22 ๐Ÿ’ฌ 8 ๐Ÿ“Œ 3

+ dependency diff between versions
+ size difference between versions
+ aggregate release notes for versions from GitHub

โค๏ธ

27.02.2026 19:35 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

That's the moment I took away my doggos Kong ๐Ÿ™ˆ

26.02.2026 10:14 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Preview
Practical Decentralization The point of decentralization is to guarantee the rights of individuals and communities on the Internet. Pulling that off is a balancing act between practicality and ideology.

New blogpost about atproto

It's not federation, it's not a p2p mesh. It's a secret third thing: practical.

www.pfrazee.com/blog/practic...

25.02.2026 17:13 ๐Ÿ‘ 568 ๐Ÿ” 139 ๐Ÿ’ฌ 32 ๐Ÿ“Œ 32

Container Timing - a new W3C performance metric - has migrated from Bloomberg to the WICG Github org ๐ŸŽ‰

@jason-williams.co.uk made the Bloomberg Terminal use this web metric to measure human-perceived time to start apps. We've found it more useful than existing metrics.

github.com/WICG/contain...

25.02.2026 09:29 ๐Ÿ‘ 37 ๐Ÿ” 6 ๐Ÿ’ฌ 2 ๐Ÿ“Œ 0

@joshellis.co.uk ๐Ÿ‘€

25.02.2026 17:56 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

Pretty major improvement to website security! For those that can't use this immediately, FF 148 also brings Trusted Types to newly baseline which can go a long way in helping prevent XSS.

Chromium also looks set to follow shipping Sanitizer soon (probably 147).

24.02.2026 15:11 ๐Ÿ‘ 31 ๐Ÿ” 7 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

Only half-heartedly to be honest. It was originally part of a refactoring that got scrapped but the first tries showed that it wonโ€™t be simple to infer the right types. Iโ€™ll take this thread as motivation to look at it again tomorrow though ๐Ÿš€

23.02.2026 20:26 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

Are you open to a contribution around this? At the time I wasnโ€™t sure whether this is aligned with your idea and obvs queriesOptions is a terrible name โ€ฆ ๐Ÿ˜…

23.02.2026 20:07 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

What we are missing is a way to share multiple queries together with the combine function. QueryOptions allows to share the whole singular payload (incl. select) but there is no easy way (type-wise) to achieve the same for multiple queries (incl. combine), which is the single source for custom hooks

23.02.2026 19:52 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

Thatโ€™s great and matches my experience 100%. One thing I am curious about is how you see using custom hooks around useQueries, because there is no queriesOptions API that allows for easy sharing multiple queries?

23.02.2026 19:33 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Preview
Childโ€™s Play, by Sam Kriss Techโ€™s new generation and the end of thinking

this article is a wild ride

20.02.2026 16:29 ๐Ÿ‘ 27 ๐Ÿ” 9 ๐Ÿ’ฌ 4 ๐Ÿ“Œ 4

Schema benchmarks are here ๐Ÿš€

19.02.2026 17:36 ๐Ÿ‘ 3 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Preview
We Ralph Wiggumed WebStreams to make them 10x faster - Vercel WebStreams had too much overhead on the server. We built a faster implementation. See how we achieved 10-14x gains in Next.js rendering benchmarks.

This is great to see vercel.com/blog/we-ralp...

While specific runtime products may compete around features and performance, this kind of research on how to work around the inherent performance bottlenecks in web streams ultimately helps everyone.

18.02.2026 22:03 ๐Ÿ‘ 17 ๐Ÿ” 7 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 1

Thatโ€™s a very impressive list of fixes. ๐Ÿ‘ Congrats to the team for shipping those.

17.02.2026 18:42 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Preview
git recent: what branch did I work on? Mega short blog post, mostly for me to remember, but also might be useful to you. In a project I'll often work on and move around different branches throughoutโ€ฆ

git recent: what branch did I work on? by @remysharp.com

remysharp.com/2026/02/12/g...

15.02.2026 20:45 ๐Ÿ‘ 9 ๐Ÿ” 2 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

๐Ÿ‘€ Chrome 145 DevTools has Soft Navigation markers

Nice DX improvement for building SPAs

17.02.2026 12:32 ๐Ÿ‘ 33 ๐Ÿ” 4 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

Iโ€™ve noticed the same for EMs.

17.02.2026 13:30 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
What Do We Really Know About the Back Button?
What Do We Really Know About the Back Button? YouTube video by Interface Studies

Published a new video on "Interface Studies"

What Do We Really Know About the Back Button? This video traces the concept of "back" across five distinct systems. Each system makes a different wager on what kind of past should be available to the user. youtu.be/Z4cS2Ivg2-M?...

16.02.2026 16:02 ๐Ÿ‘ 23 ๐Ÿ” 3 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 2
#FOSSBack: Scott Jenson - Why is UX so hard to contribute to FOSS
#FOSSBack: Scott Jenson - Why is UX so hard to contribute to FOSS YouTube video by Plain Schwarz

@jenson.org had similar thoughts. I recommend some of his talks on the topic, if you are up for it und fully agree with you. youtu.be/Mjup7Mrj7uU?...

16.02.2026 21:03 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Vitest 5 ยท vitest-dev vitest ยท Discussion #9664 We wanted to start gathering feedback for the next major version. Vitest 4.1 is on its way and will include a lot of new features without any breaking changes (including tags, around hooks, --detec...

Vitest 4.1 is on the horizon, but we're already looking ahead! What are your main pain points in your testing workflow right now?

Let us know in the Vitest 5 discussion thread!

16.02.2026 13:21 ๐Ÿ‘ 50 ๐Ÿ” 10 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

You might also be interested in github.com/sanity-io/st...

15.02.2026 19:28 ๐Ÿ‘ 4 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0