Jan Martin's Avatar

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

488
Followers
467
Following
44
Posts
31.08.2023
Joined
Posts Following

Latest posts by Jan Martin @hybrist.dev

It’ll take a bit before it’s widely usable but I look forward to cleaning up config file boilerplate. 🎉

04.12.2025 21:05 👍 6 🔁 0 💬 0 📌 0

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. 🌈

12.11.2025 06:15 👍 8 🔁 1 💬 0 📌 0

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! 🎉

16.09.2025 22:46 👍 2 🔁 0 💬 0 📌 0
Preview
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...

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...

10.09.2025 21:23 👍 2 🔁 3 💬 0 📌 0
Preview
Mock genkit streaming responses in Storybook Mock genkit streaming responses in Storybook. GitHub Gist: instantly share code, notes, and snippets.

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

06.09.2025 22:23 👍 9 🔁 1 💬 0 📌 0
Media Queries Level 5

Can’t wait for this to land: drafts.csswg.org/mediaqueries... (API for recording user preferences in a way that just works)

17.08.2025 16:30 👍 3 🔁 3 💬 0 📌 0
Video thumbnail

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!

14.07.2025 23:17 👍 8443 🔁 2024 💬 557 📌 335

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!

13.05.2025 19:49 👍 6 🔁 0 💬 0 📌 0

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.

10.05.2025 17:08 👍 1 🔁 0 💬 1 📌 0
Preview
You can serialize a promise in React Use React to create a promise on the server and later finish it on the client.

New blog post on serializing promises in React. Learn how RSC serializes data between the server and client.

twofoldframework.com/blog/you-can...

25.04.2025 15:06 👍 66 🔁 7 💬 2 📌 2

That’s so sad and just doesn’t make any sense. ☹️ Adam’s an amazing voice for the web and its users.

11.04.2025 21:43 👍 3 🔁 0 💬 0 📌 0
Preview
switch.md GitHub Gist: instantly share code, notes, and snippets.

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...

08.04.2025 22:35 👍 14 🔁 2 💬 2 📌 1

Our toddler discovered “Rock around the clock” tonight and I’m afraid he’s taking the lyrics a bit too literally.

02.04.2025 02:58 👍 1 🔁 0 💬 0 📌 0
Preview
Node.js — Node v23.8.0 (Current) Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

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...

13.02.2025 18:00 👍 50 🔁 8 💬 3 📌 1

TIL: it’s easier to implement web sockets from scratch* than to teach various Java clients that bidirectional streaming over HTTP is possible.

30.01.2025 16:46 👍 1 🔁 0 💬 0 📌 0
Npmstats

I assume it's basically just this (package downloads / global downloads)? jkrems.dev/npmstats/#/d...

23.01.2025 05:24 👍 2 🔁 0 💬 0 📌 0

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. :(

23.01.2025 00:13 👍 2 🔁 0 💬 1 📌 0

👋

22.01.2025 12:36 👍 405 🔁 51 💬 42 📌 19

@soldair.bsky.social I knew it’s been a while since mana burn was removed. Didn’t realize it was in 2009 (!)…

18.01.2025 03:12 👍 0 🔁 0 💬 1 📌 0

Now just give me string concat in calc and I think we can call the web “done”. 🎉

17.01.2025 01:58 👍 5 🔁 1 💬 0 📌 0

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. :)

09.01.2025 20:35 👍 3 🔁 0 💬 0 📌 0

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. 🤞

07.01.2025 21:59 👍 5 🔁 0 💬 1 📌 0
Preview
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 ...

What are some useful pattern you’d expect to work across bundlers? We’re collecting a list here: github.com/tc39/js-outr...

07.01.2025 21:58 👍 24 🔁 12 💬 1 📌 1

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.

06.01.2025 18:24 👍 0 🔁 0 💬 0 📌 0

Took me a while to find him in the first picture.

24.12.2024 18:44 👍 0 🔁 0 💬 0 📌 0
Post image

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.

21.12.2024 04:18 👍 1 🔁 0 💬 0 📌 0

(Technically truncating with “|0” after operations would make it safe. But that won’t appear in typical code, realistically.)

17.12.2024 13:11 👍 2 🔁 0 💬 1 📌 0

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.

17.12.2024 13:09 👍 2 🔁 0 💬 2 📌 0

TIL: Just by multiplying safe integers, you can reach NaN. Stupid floats.

17.12.2024 02:45 👍 1 🔁 0 💬 1 📌 0

The only thing that went away was the “node debug” variant, fortunately we were able to keep the general feature alive through that transition. :)

16.12.2024 21:50 👍 3 🔁 0 💬 1 📌 0