Jan Martin
banner
hybrist.dev
Jan Martin
@hybrist.dev
Waiting for a shipment of Club-Mate or drinking Club-Mate.

Currently: Angular core team & TC39-adjacent things. Also, node.js collaborator.
Previously: Groupon
It's been really fun to explore how API design and system prompt can come together to make code generation a lot more reliable over the past few weeks. And now anybody can! 🎉
I'm excited we've finally open-sourced one of the new things the Angular team has been working on lately: web-codegen-scorer

www.npmjs.com/package/web-...
github.com/angular/web-...
September 16, 2025 at 10:46 PM
Today’s first: Published my first security advisory write up!

If you’re running Angular SSR in production, this may apply to you: github.com/angular/angu...
Angular SSR: Global Platform Injector Race Condition Leads to Cross-Request Data Leakage
### Impact Angular uses a DI container (the "platform injector") to hold request-specific state during server-side rendering. For historical reasons, the container was stored as a JavaScript mod...
github.com
September 10, 2025 at 9:24 PM
Had some fun getting my @storybook.js.org to correctly simulate a streaming genkit LLM response (using msw and/or fetch-mock). For future reference: gist.github.com/jkrems/ce62b... #storybook #genkit
Mock genkit streaming responses in Storybook
Mock genkit streaming responses in Storybook. GitHub Gist: instantly share code, notes, and snippets.
gist.github.com
September 6, 2025 at 10:23 PM
Reposted by Jan Martin
Presenting the BRAND-NEW season - @dimension20.bsky.social On a Bus! 🚌

DM'd by Katie Marovitch, and as players: Aabria Iyengar, Brennan Lee Mulligan, Jasmine Bhullar, and Mark Mercer!
July 14, 2025 at 11:17 PM
Reposted by Jan Martin
New blog post on serializing promises in React. Learn how RSC serializes data between the server and client.

twofoldframework.com/blog/you-can...
You can serialize a promise in React
Use React to create a promise on the server and later finish it on the client.
twofoldframework.com
April 25, 2025 at 3:06 PM
That’s so sad and just doesn’t make any sense. ☹️ Adam’s an amazing voice for the web and its users.
April 11, 2025 at 9:43 PM
Reposted by Jan Martin
Dark mode toggles should be a per-site browser preference, just like zoom.

Why are we still reinventing the wheel with JavaScript? Let's make dark mode a browser-native feature.

bit.ly/dark-mode-is...
switch.md
GitHub Gist: instantly share code, notes, and snippets.
bit.ly
April 8, 2025 at 10:35 PM
Our toddler discovered “Rock around the clock” tonight and I’m afraid he’s taking the lyrics a bit too literally.
April 2, 2025 at 2:58 AM
Reposted by Jan Martin
Just released Node.js v23.8.0.
It includes an initial implementation of URLPattern, an new flag to load system certificates, zstd, and more!
nodejs.org/en/blog/rele...
Node.js — Node v23.8.0 (Current)
Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.
nodejs.org
February 13, 2025 at 6:00 PM
TIL: it’s easier to implement web sockets from scratch* than to teach various Java clients that bidirectional streaming over HTTP is possible.
January 30, 2025 at 4:46 PM
I remember @seldo.com showing download stats as “share of registry” which removed some of the general ecosystem growth noise from the stats. Is there some site that offers those numbers today? Raw download counts are super hard to interpret correctly. :(
January 23, 2025 at 12:13 AM
Reposted by Jan Martin
👋
January 22, 2025 at 12:36 PM
@soldair.bsky.social I knew it’s been a while since mana burn was removed. Didn’t realize it was in 2009 (!)…
January 18, 2025 at 3:12 AM
Now just give me string concat in calc and I think we can call the web “done”. 🎉
January 17, 2025 at 1:58 AM
What are some useful pattern you’d expect to work across bundlers? We’re collecting a list here: github.com/tc39/js-outr...
Tools: Common Conventions · Issue #49 · tc39/js-outreach-groups
There's a variety of behaviors in authored JavaScript that (web) developers may depend on that aren't described in any officially published spec. This is an attempt to collect them and link to the ...
github.com
January 7, 2025 at 9:58 PM
The race is on: Will I get all post-holiday access issues resolved before the first meeting of the day? I’ll know in about 5 minutes.
January 6, 2025 at 6:24 PM
I'm starting to think that the hard part will be to turn this back into JS... Maybe something higher level than a generic loop node would be better after all.
December 21, 2024 at 4:18 AM
TIL: Just by multiplying safe integers, you can reach NaN. Stupid floats.
December 17, 2024 at 2:45 AM
Achievement unlocked: Created my very first phi node. Wanted to learn more about both sea-of-node and Rust, so this was a great opportunity to check those off the list.

is.gd/8tSIE9
December 16, 2024 at 5:22 AM
Reposted by Jan Martin
Ecma just approved the 1st edition of the new "Source map format" standard, ECMA-426! 🎉

tc39.es/ecma426/2024/
Source map format specification
tc39.es
December 11, 2024 at 7:01 PM
A follow-up meeting was just scheduled for “next year” (January) and I’m not sure how I feel about that.
December 10, 2024 at 6:40 PM
Reposted by Jan Martin
My talk from this year's We Love Speed is on YouTube! 👇

In "Tight Mode: how browsers REALLY load web pages", I take a very deep/very nerdy dive into why browsers sometimes intentionally delay loading resources, why they all do it differently, and why they should *stop clowning around* 🤡

#webperf
How browsers REALLY load Web pages — Robin Marx
YouTube video by We Love Speed
www.youtube.com
November 26, 2024 at 10:09 AM
Reposted by Jan Martin
🚨 @analogjs.org 1.10 is out!

⚡️ Big performance improvements for @vitest.dev
✍️ Introduced Form Server Actions
🤝 Support for #Angular v19
👀 Route debugging page

Release notes:

github.com/analogjs/ana...
Release v1.10.0 · analogjs/analog
What's Changed perf(vite-plugin-angular): speed up tests by reusing compiler by @yjaaidi in #1444 feat(create-analog): update template for latest to Angular v19 by @brandonroberts in #1447 fix(rou...
github.com
December 4, 2024 at 7:36 PM
… and write Google Docs instead of Medium posts.
"a lot of what staff engineers do is influence decisions across the whole company"

So you are telling me that they are just influencers who use Zoom and Slack instead of YouTube and Twitter?
December 3, 2024 at 3:44 PM
“Once you eliminate the impossible, whatever remains, no matter how improbable, must be the truth.”

I figured it out. @littledan.dev is in every standards group and GitHub issue because there’s an army of clones: the “little dans”. Big Dan only delegates.
November 27, 2024 at 8:18 PM