Joyee Cheung
@joyeecheung.bsky.social
She/her. I contribute to Node.js and V8. I post about museums, food, plants and other stuff too. https://github.com/joyeecheung
Preparing my talk for JSConf JP and I finally drew my mental venn diagram about how Node.js development works 🤪
November 11, 2025 at 7:20 PM
Preparing my talk for JSConf JP and I finally drew my mental venn diagram about how Node.js development works 🤪
In an unexpected turn of events, this helped me reproduce a bug that can only be reproduced in a Linux arm64 container (not in bare-metal Linux arm64, or any other containers on other platforms 😅)
Uploaded a demo on how to use nodejs/devcontainer!
- Testing a mounted dev branch on a different OS
- No need to build V8 from scratch on a fresh checkout (usually)
- Testing third-party code with the dev branch in a container
www.youtube.com/watch?v=3Nwa...
PR: github.com/nodejs/node/...
- Testing a mounted dev branch on a different OS
- No need to build V8 from scratch on a fresh checkout (usually)
- Testing third-party code with the dev branch in a container
www.youtube.com/watch?v=3Nwa...
PR: github.com/nodejs/node/...
Demo of nodejs/devcontainer
YouTube video by Qiuyi Zhang (Joyee)
www.youtube.com
November 9, 2025 at 2:50 AM
In an unexpected turn of events, this helped me reproduce a bug that can only be reproduced in a Linux arm64 container (not in bare-metal Linux arm64, or any other containers on other platforms 😅)
Uploaded a demo on how to use nodejs/devcontainer!
- Testing a mounted dev branch on a different OS
- No need to build V8 from scratch on a fresh checkout (usually)
- Testing third-party code with the dev branch in a container
www.youtube.com/watch?v=3Nwa...
PR: github.com/nodejs/node/...
- Testing a mounted dev branch on a different OS
- No need to build V8 from scratch on a fresh checkout (usually)
- Testing third-party code with the dev branch in a container
www.youtube.com/watch?v=3Nwa...
PR: github.com/nodejs/node/...
Demo of nodejs/devcontainer
YouTube video by Qiuyi Zhang (Joyee)
www.youtube.com
October 28, 2025 at 11:15 PM
Uploaded a demo on how to use nodejs/devcontainer!
- Testing a mounted dev branch on a different OS
- No need to build V8 from scratch on a fresh checkout (usually)
- Testing third-party code with the dev branch in a container
www.youtube.com/watch?v=3Nwa...
PR: github.com/nodejs/node/...
- Testing a mounted dev branch on a different OS
- No need to build V8 from scratch on a fresh checkout (usually)
- Testing third-party code with the dev branch in a container
www.youtube.com/watch?v=3Nwa...
PR: github.com/nodejs/node/...
TIL git-restore-mtime, which is very handy when mounting a local clone to a clone in a docker container while still reusing the build cache from the docker image 😇 (otherwise all the files from the local clone would be too fresh and invalidate the build cache in the container)
October 22, 2025 at 7:59 PM
TIL git-restore-mtime, which is very handy when mounting a local clone to a clone in a docker container while still reusing the build cache from the docker image 😇 (otherwise all the files from the local clone would be too fresh and invalidate the build cache in the container)
Built-in HTTP proxies are now on v22 😇
(Going to update the version mentions in a WIP guide on using Node.js in enterprise network environments)
(Going to update the version mentions in a WIP guide on using Node.js in enterprise network environments)
Node.js v22.21.0 is out 🙌 Check out the notable changes here: nodejs.org/en/blog/rele...
Node.js — Node.js v22.21.0 (LTS)
Node.js® is a free, open-source, cross-platform JavaScript runtime environment that lets developers create servers, web apps, command line tools and scripts.
nodejs.org
October 21, 2025 at 7:05 PM
Built-in HTTP proxies are now on v22 😇
(Going to update the version mentions in a WIP guide on using Node.js in enterprise network environments)
(Going to update the version mentions in a WIP guide on using Node.js in enterprise network environments)
Stalled this PR for almost a year due to CI build cache issues, last week I realized (once again?) the Linux binary size is a bit out of hands and gave the CI another try, and the CI miraculously handled it , so finally landed this and shed of 8MB off the binaries at least github.com/nodejs/node/...
build: build v8 with -fvisibility=hidden -fvisibility-inlines-hidden by joyeecheung · Pull Request #56290 · nodejs/node
Split from #56275 since it seems to cause gcc on some machines in the CI to time out or run out of memory. Trying to see if it's just a CI hiccup or if it's something that needs to be worke...
github.com
October 20, 2025 at 10:02 AM
Stalled this PR for almost a year due to CI build cache issues, last week I realized (once again?) the Linux binary size is a bit out of hands and gave the CI another try, and the CI miraculously handled it , so finally landed this and shed of 8MB off the binaries at least github.com/nodejs/node/...
Reposted by Joyee Cheung
"No more juggling CommonJS and faux-ESM."
- @joyeecheung.bsky.social revealed how @nodejs.org is moving to full ESM and why the future looks brighter for developers.
www.youtube.com/watch?v=I0jv...
- @joyeecheung.bsky.social revealed how @nodejs.org is moving to full ESM and why the future looks brighter for developers.
www.youtube.com/watch?v=I0jv...
October 16, 2025 at 8:12 AM
"No more juggling CommonJS and faux-ESM."
- @joyeecheung.bsky.social revealed how @nodejs.org is moving to full ESM and why the future looks brighter for developers.
www.youtube.com/watch?v=I0jv...
- @joyeecheung.bsky.social revealed how @nodejs.org is moving to full ESM and why the future looks brighter for developers.
www.youtube.com/watch?v=I0jv...
Girl got desperate looking at the CI
October 15, 2025 at 8:37 PM
Girl got desperate looking at the CI
Reposted by Joyee Cheung
No more juggling CommonJS and faux-ESM. @joyeecheung.bsky.social revealed how Node.js is moving to full ESM and why the future looks brighter for developers. #NordicJS #NordicJS2025
October 3, 2025 at 9:55 AM
No more juggling CommonJS and faux-ESM. @joyeecheung.bsky.social revealed how Node.js is moving to full ESM and why the future looks brighter for developers. #NordicJS #NordicJS2025
I gave a talk today at @nordicjs.com about shipping Node.js packages in 2025...or how to transition from shipping dual/faux-ESM/CommonJS to shipping ESM directly!
Slides at github.com/joyeecheung/...
Slides at github.com/joyeecheung/...
github.com
October 3, 2025 at 9:33 AM
I gave a talk today at @nordicjs.com about shipping Node.js packages in 2025...or how to transition from shipping dual/faux-ESM/CommonJS to shipping ESM directly!
Slides at github.com/joyeecheung/...
Slides at github.com/joyeecheung/...
Reposted by Joyee Cheung
Igalia's @joyeecheung.bsky.social will be speaking about "Shipping Node.js packages in 2025,” focused on migrating dual/faux/CJS packages to ESM-only at Nordic.js on Friday, 3rd October at 10:30 CEST
nordicjs.com/2025/speaker...
Come say hi!
nordicjs.com/2025/speaker...
Come say hi!
October 1, 2025 at 4:15 PM
Igalia's @joyeecheung.bsky.social will be speaking about "Shipping Node.js packages in 2025,” focused on migrating dual/faux/CJS packages to ESM-only at Nordic.js on Friday, 3rd October at 10:30 CEST
nordicjs.com/2025/speaker...
Come say hi!
nordicjs.com/2025/speaker...
Come say hi!
Whenever I travel to a place where dinner starts at normal time I always feel that I've gained at least 3 extra hours per day and there are actually things I can do at night again
September 30, 2025 at 6:36 PM
Whenever I travel to a place where dinner starts at normal time I always feel that I've gained at least 3 extra hours per day and there are actually things I can do at night again
Me: why is it taking forever to git clone when I am trying to build a docker container, what's wrong with my docker configuration
(a few moments later)
Oh I forgot I am doing it a home where the connection to GitHub is just outrageously slow 😭 the wrong is in my provider
(a few moments later)
Oh I forgot I am doing it a home where the connection to GitHub is just outrageously slow 😭 the wrong is in my provider
September 19, 2025 at 9:04 PM
Me: why is it taking forever to git clone when I am trying to build a docker container, what's wrong with my docker configuration
(a few moments later)
Oh I forgot I am doing it a home where the connection to GitHub is just outrageously slow 😭 the wrong is in my provider
(a few moments later)
Oh I forgot I am doing it a home where the connection to GitHub is just outrageously slow 😭 the wrong is in my provider
I tried not to look at GitHub on this special day and I failed already during breakfast....🥲
I blame this breakfast for taking too long to serve and I got bored!
I blame this breakfast for taking too long to serve and I got bored!
September 3, 2025 at 8:42 AM
I tried not to look at GitHub on this special day and I failed already during breakfast....🥲
I blame this breakfast for taking too long to serve and I got bored!
I blame this breakfast for taking too long to serve and I got bored!
Landed the configurations as "execArgv" and "execArgvExtension" ("none" | "env" | "cli"), expected to go out in v24.7.0!
github.com/nodejs/node/...
github.com/nodejs/node/...
github.com/nodejs/node/...
github.com/nodejs/node/...
August 26, 2025 at 6:50 PM
Landed the configurations as "execArgv" and "execArgvExtension" ("none" | "env" | "cli"), expected to go out in v24.7.0!
github.com/nodejs/node/...
github.com/nodejs/node/...
github.com/nodejs/node/...
github.com/nodejs/node/...
Got two PRs to my fork of Node.js with AI generated nonsense in the past two weeks 🤨 I get that AI spam is common these days but why my fork?
August 25, 2025 at 1:49 PM
Got two PRs to my fork of Node.js with AI generated nonsense in the past two weeks 🤨 I get that AI spam is common these days but why my fork?
Haven't tried to generate core dumps on macOS for a local build for quite some time and just found out that the executable now must be signed with com.apple.security.get-task-allow entitlement to be dumped nasa.github.io/trick/howto_...
How to Dump a Core File on MacOS (Monterey 12.5)
Trick Simulation Environment. Trick provides a common set of simulation capabilities and utilities to build simulations automatically.
nasa.github.io
August 22, 2025 at 9:22 AM
Haven't tried to generate core dumps on macOS for a local build for quite some time and just found out that the executable now must be signed with com.apple.security.get-task-allow entitlement to be dumped nasa.github.io/trick/howto_...
RFC: We are adding support for execution command line flag in Node.js single-executable applications. What do you think about this configuration?
github.com/nodejs/node/...
github.com/nodejs/node/...
August 11, 2025 at 9:41 AM
RFC: We are adding support for execution command line flag in Node.js single-executable applications. What do you think about this configuration?
github.com/nodejs/node/...
github.com/nodejs/node/...
Trying to deflake a test that was written 12 years ago...
a bunch of fruit is on a wicker plate on a table .
ALT: a bunch of fruit is on a wicker plate on a table .
media.tenor.com
August 10, 2025 at 2:05 PM
Trying to deflake a test that was written 12 years ago...
Reposted by Joyee Cheung
We're kicking this Bluesky party up a notch 🎉 and here to give developers what they want (what they really, really want)!
What Chrome features and topics would you like to learn more about?
What Chrome features and topics would you like to learn more about?
August 4, 2025 at 4:35 PM
We're kicking this Bluesky party up a notch 🎉 and here to give developers what they want (what they really, really want)!
What Chrome features and topics would you like to learn more about?
What Chrome features and topics would you like to learn more about?
Reposted by Joyee Cheung
Node excitement 😉
Congrats to @marcoippolito.dev on today's landmark Node 22.18 release. It is the first LTS release to ship unflagged TypeScript support 🎉
This means Node can run *.ts files. It pairs well with TypeScript's "erasableSyntaxOnly" flag 👍
Many folk contributed 🙏
Congrats to @marcoippolito.dev on today's landmark Node 22.18 release. It is the first LTS release to ship unflagged TypeScript support 🎉
This means Node can run *.ts files. It pairs well with TypeScript's "erasableSyntaxOnly" flag 👍
Many folk contributed 🙏
Type stripping is enabled by default 🔥🔥🔥🔥
You can just run `node file.ts` without `--experimental-strip-types` flag.
This is a huge milestone
You can just run `node file.ts` without `--experimental-strip-types` flag.
This is a huge milestone
Node.js 22.18.0 is out and enables type stripping by default – that’s right, Node.js LTS can now run TypeScript files. Shout out to @marcoippolito.dev for championing that effort! Download links and full changelog available at nodejs.org/en/blog/rele...
August 1, 2025 at 5:34 AM
Node excitement 😉
Congrats to @marcoippolito.dev on today's landmark Node 22.18 release. It is the first LTS release to ship unflagged TypeScript support 🎉
This means Node can run *.ts files. It pairs well with TypeScript's "erasableSyntaxOnly" flag 👍
Many folk contributed 🙏
Congrats to @marcoippolito.dev on today's landmark Node 22.18 release. It is the first LTS release to ship unflagged TypeScript support 🎉
This means Node can run *.ts files. It pairs well with TypeScript's "erasableSyntaxOnly" flag 👍
Many folk contributed 🙏
Reposted by Joyee Cheung
Node.js 24.5.0 is out: built-in proxy support for `node:http(s)`, experimental WASM modules, upgraded OpenSSL version and so much more. Full changelog and download links at nodejs.org/en/blog/rele...
Node.js — Node.js v24.5.0 (Current)
Node.js® is a free, open-source, cross-platform JavaScript runtime environment that lets developers create servers, web apps, command line tools and scripts.
nodejs.org
July 31, 2025 at 10:22 PM
Node.js 24.5.0 is out: built-in proxy support for `node:http(s)`, experimental WASM modules, upgraded OpenSSL version and so much more. Full changelog and download links at nodejs.org/en/blog/rele...
Encountered a 4 hour delay of the flight and ended up staying in a hotel in Santiago because it’s already past 2am after I got out of the airport. Well, might as well spend a weekend? 🤨
August 1, 2025 at 12:57 AM
Encountered a 4 hour delay of the flight and ended up staying in a hotel in Santiago because it’s already past 2am after I got out of the airport. Well, might as well spend a weekend? 🤨
Forgot to remind the border guard to reuse already stamped pages for stamps and now I lost one more blank page on my passport which is already running out of blank pages for visas….😖
July 27, 2025 at 12:12 PM
Forgot to remind the border guard to reuse already stamped pages for stamps and now I lost one more blank page on my passport which is already running out of blank pages for visas….😖
Reposted by Joyee Cheung
TypeScript excitement 😉
TS 5.9 RC is out 🎉
🔶 `import defer` by @nicr.dev
🔶 module: "node20" for require(ESM)
🔷 --init has modern defaults (no downleveling)
🔷 Docs: Inline summaries for DOM APIs
🔷 IDE: Expandable hovers to drill into Quick Infos
🔷 Perf: Faster type instantiation & file existence
TS 5.9 RC is out 🎉
🔶 `import defer` by @nicr.dev
🔶 module: "node20" for require(ESM)
🔷 --init has modern defaults (no downleveling)
🔷 Docs: Inline summaries for DOM APIs
🔷 IDE: Expandable hovers to drill into Quick Infos
🔷 Perf: Faster type instantiation & file existence
Announcing TypeScript 5.9 RC - TypeScript
Today we are excited to announce the Release Candidate (RC) of TypeScript 5.9! To get started using the Release Candidate, you can get it through npm with the following command: npm install -D typescr...
devblogs.microsoft.com
July 25, 2025 at 7:25 PM
TypeScript excitement 😉
TS 5.9 RC is out 🎉
🔶 `import defer` by @nicr.dev
🔶 module: "node20" for require(ESM)
🔷 --init has modern defaults (no downleveling)
🔷 Docs: Inline summaries for DOM APIs
🔷 IDE: Expandable hovers to drill into Quick Infos
🔷 Perf: Faster type instantiation & file existence
TS 5.9 RC is out 🎉
🔶 `import defer` by @nicr.dev
🔶 module: "node20" for require(ESM)
🔷 --init has modern defaults (no downleveling)
🔷 Docs: Inline summaries for DOM APIs
🔷 IDE: Expandable hovers to drill into Quick Infos
🔷 Perf: Faster type instantiation & file existence