Sign in

Jan Martin

@hybrist.dev
493 followers 468 following 46 posts

Waiting for a shipment of Club-Mate or drinking Club-Mate. Currently: Front-end tooling at Google & TC39-adjacent things. Also, node.js collaborator. Previously: Angular, Groupon

PostsRepliesMedia
Jan Martin @hybrist.dev · 02/09/2026
One thing I’m excited about is that we’re currently looking into attaching web safety findings to packages (built around trusted types etc) and I’m really hoping we can make that work externally as well.
130
Jan Martin @hybrist.dev · 02/09/2026
The vibe coding somebody here! :) Definitely, contributing this to npmx upstream was the plan A. Good to know that you’d generally be open to that! I’m still trying to figure out what the realistic requirements / deviations would be. In true Google fashion, there’s a lot of bespoke things…
120
Jan Martin @hybrist.dev · 04/12/2025
It’ll take a bit before it’s widely usable but I look forward to cleaning up config file boilerplate. 🎉
060
Jan Martin @hybrist.dev · 12/11/2025
Got inspired by @kentcdodds.com to play around with MCP UI in Angular. Definitely rough around the edges but it's really neat to see this all come together. 🌈
071
Jan Martin @hybrist.dev · 16/09/2025
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! 🎉
020
Jan Martin @hybrist.dev · 10/09/2025
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...
github.com
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...
023
Jan Martin @hybrist.dev · 06/09/2025
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
gist.github.com
Mock genkit streaming responses in Storybook
Mock genkit streaming responses in Storybook. GitHub Gist: instantly share code, notes, and snippets.
081
Jan Martin @hybrist.dev · 17/08/2025
Can’t wait for this to land: drafts.csswg.org/mediaqueries... (API for recording user preferences in a way that just works)
drafts.csswg.org
Media Queries Level 5
033
Reposted by Jan Martin
Game Changer @gamechanger.dropout.tv · 15/07/2025
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!
55584042009
Jan Martin @hybrist.dev · 13/05/2025
Wow. That’s super sad to hear. Take care and I hope you’ll have the right mix of calm and distraction over the coming days!
050
Jan Martin @hybrist.dev · 10/05/2025
I’ve tried to explain it as “a lot of art is about communication and talking to yourself is just not the same thing”. And I’m saying that as somebody who loves talking to himself on a regular basis.
110
Reposted by Jan Martin
Ryan Toronto @ryantoron.to · 25/04/2025
New blog post on serializing promises in React. Learn how RSC serializes data between the server and client. twofoldframework.com/blog/you-can...
twofoldframework.com
You can serialize a promise in React
Use React to create a promise on the server and later finish it on the client.
2667
Jan Martin @hybrist.dev · 11/04/2025
That’s so sad and just doesn’t make any sense. ☹️ Adam’s an amazing voice for the web and its users.
030
Reposted by Jan Martin
Felds @felds.dev · 08/04/2025
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...
bit.ly
switch.md
GitHub Gist: instantly share code, notes, and snippets.
2132
Jan Martin @hybrist.dev · 02/04/2025
Our toddler discovered “Rock around the clock” tonight and I’m afraid he’s taking the lyrics a bit too literally.
010
Reposted by Jan Martin
Michael Zasso @targos.dev · 13/02/2025
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...
nodejs.org
Node.js — Node v23.8.0 (Current)
Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.
3508
Jan Martin @hybrist.dev · 30/01/2025
TIL: it’s easier to implement web sockets from scratch* than to teach various Java clients that bidirectional streaming over HTTP is possible.
010
Jan Martin @hybrist.dev · 23/01/2025
I assume it's basically just this (package downloads / global downloads)? jkrems.dev/npmstats/#/d...
jkrems.dev
Npmstats
020
Jan Martin @hybrist.dev · 23/01/2025
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. :(
120
Reposted by Jan Martin
Angular @angular.dev · 22/01/2025
👋
4140250
Jan Martin @hybrist.dev · 18/01/2025
@soldair.bsky.social I knew it’s been a while since mana burn was removed. Didn’t realize it was in 2009 (!)…
100
Jan Martin @hybrist.dev · 17/01/2025
Now just give me string concat in calc and I think we can call the web “done”. 🎉
051
Jan Martin @hybrist.dev · 09/01/2025
The long term goal is to standardize the relevant bits where applicable. Gathering the gaps in standardization is just the first step on that long road. :)
030
Jan Martin @hybrist.dev · 07/01/2025
The goal is to gather these patterns and properly document them. Hopefully leading to less guess work when publishing libraries or moving between build systems. 🤞
150
Jan Martin @hybrist.dev · 07/01/2025
What are some useful pattern you’d expect to work across bundlers? We’re collecting a list here: github.com/tc39/js-outr...
github.com
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 ...
12412
Jan Martin @hybrist.dev · 06/01/2025
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.
000
Jan Martin @hybrist.dev · 24/12/2024
Took me a while to find him in the first picture.
000
Jan Martin @hybrist.dev · 21/12/2024
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.
010
Jan Martin @hybrist.dev · 17/12/2024
(Technically truncating with “|0” after operations would make it safe. But that won’t appear in typical code, realistically.)
120
Jan Martin @hybrist.dev · 17/12/2024
I was trying to see what it would take to optimize “a === a” to “true”. One idea was that if “a” is the result of basic arithmetic on integers (w/o division), it would be safe. But it’s not because multiplication/addition may eventually end in Infinity. And that times 0 is NaN.
220
Jan Martin @hybrist.dev · 17/12/2024
TIL: Just by multiplying safe integers, you can reach NaN. Stupid floats.
110
Jan Martin @hybrist.dev · 16/12/2024
The only thing that went away was the “node debug” variant, fortunately we were able to keep the general feature alive through that transition. :)
130
Jan Martin @hybrist.dev · 16/12/2024
Things that allowed this to be a "single weekend project": 1. A great book by cliffclick (I'm roughly at chapter 5): github.com/SeaOfNodes/S... 2. The crates from oxc.rs for JS/TS. I could skip worrying about parser & scope analysis and jump directly into IR construction.
github.com
GitHub - SeaOfNodes/Simple: A Simple showcase for the Sea-of-Nodes compiler IR
A Simple showcase for the Sea-of-Nodes compiler IR - SeaOfNodes/Simple
130
Jan Martin @hybrist.dev · 16/12/2024
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
A control flow graph of a program that contains a phi node for merging data flow.
140
Reposted by Jan Martin
Nicolò Ribaudo @nicr.dev · 11/12/2024
Ecma just approved the 1st edition of the new "Source map format" standard, ECMA-426! 🎉 tc39.es/ecma426/2024/
tc39.es
Source map format specification
216047
Jan Martin @hybrist.dev · 10/12/2024
A follow-up meeting was just scheduled for “next year” (January) and I’m not sure how I feel about that.
010
Reposted by Jan Martin
Robin Marx @programmingart.bsky.social · 26/11/2024
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
youtube.com
How browsers REALLY load Web pages — Robin Marx
YouTube video by We Love Speed
54220
Jan Martin @hybrist.dev · 05/12/2024
Welcome to Angular! I hope you enjoy your time with it and let us know when you don’t. Well, also let us know when you do, actually. :)
030
Jan Martin @hybrist.dev · 05/12/2024
go.bsky.app/hLveAd - link!
292
Jan Martin @hybrist.dev · 05/12/2024
/cc @mgechev.bsky.social and @jelbourn.bsky.social I can recommend the starter pack that @brandonroberts.dev put together with community folks from around Angular!
130
Jan Martin @hybrist.dev · 04/12/2024
It’s been a long time coming! Congrats! 🎉
010
Reposted by Jan Martin
Brandon Roberts @brandonroberts.dev · 04/12/2024
🚨 @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...
github.com
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...
27016
Jan Martin @hybrist.dev · 03/12/2024
At some point I should do a page count across my Google Docs and see what the last few years add up to.
010
Jan Martin @hybrist.dev · 03/12/2024
… and write Google Docs instead of Medium posts.
231
Jan Martin @hybrist.dev · 27/11/2024
“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.
131
Reposted by Jan Martin
Zillow Gone Wild @zillowgonewild.bsky.social · 27/11/2024
A two story office/library 📚 to die for
1338
Jan Martin @hybrist.dev · 25/11/2024
Woah, had to do a double-take to realize this was talking about key outside of loops. Makes sense in retrospect but never considered this behavior!
010
Reposted by Jan Martin
TypeScript @typescriptlang.org · 22/11/2024
📢 TypeScript 5.7 is here! Now with ✅ Better checks for uninitialized variables ✅ Smarter tsconfig lookup in editors ✅ Improved startup time ✅ Stricter checks for JSON imports ✅ Extension rewrites for relative imports and more! Try it today! devblogs.microsoft.com/typescript/a...
devblogs.microsoft.com
Announcing TypeScript 5.7 - TypeScript
Today we excited to announce the availability of TypeScript 5.7! If you’re not familiar with TypeScript, it’s a language that builds on JavaScript by adding syntax for type declarations and annotation...
334695
Jan Martin @hybrist.dev · 22/11/2024
Haven’t yet found a good use case for the browser feature. But I’m also not typically using shadow dom which seems like the only (?) place where CSSStyleSheet imports are really useful..?
010
Jan Martin @hybrist.dev · 22/11/2024
Which CSS modules? The ones that namespace CSS classes or the browser feature?
100