Guy Bedford
guybedford.com
Guy Bedford
@guybedford.com
Rabbit hole explorer. Working on JS & WebAssembly at Cloudflare. TC39. Creator https://jspm.org.
Reposted by Guy Bedford
PSA: If you want to use standard CSS Modules before they ships in Safari and Firefox, I built a Rollup plugin to support them:

www.npmjs.com/package/roll...

Converting CSS Modules to JS this way also support bundling before @sheet (which lets you put multiple stylsheets in one CSS file) lands.
rollup-plugin-css-modules
Rollup support for standard CSS modules. Latest version: 0.1.2, last published: 2 years ago. Start using rollup-plugin-css-modules in your project by running `npm i rollup-plugin-css-modules`. There a...
www.npmjs.com
August 13, 2025 at 4:57 PM
Reposted by Guy Bedford
We're hiring JavaScriptCore VM engineers in Cupertino, CA. Good opportunity to work on some truly foundational tech that underpins web performance in Apple products.

jobs.apple.com/en-us/detail...
JavaScript Virtual Machine Compiler Engineer - Jobs - Careers at Apple
Apply for a JavaScript Virtual Machine Compiler Engineer job at Apple. Read about the role and find out if it’s right for you.
jobs.apple.com
July 3, 2025 at 4:38 AM
Fascinating writeup by @hoodmane.bsky.social of Pyodide's WebAssembly JS promise integration, including a description and fix for the linear memory stack reentrancy problem.

blog.pyodide.org/posts/jspi-w...
Integrating JSPI with the WebAssembly C Runtime
Using JSPI with C code compiled to the wasm32-unknown-unknown target
blog.pyodide.org
July 3, 2025 at 2:20 PM
Reposted by Guy Bedford
JSPM 4.0: dependency management via import maps in browsers (benefits: reduced tooling and more)
@guybedford.com
jspm.org/jspm-4.0-rel...

#ECMAScript #JavaScript
JSPM - JSPM 4.0 Release
JSPM 4.0 release post featuring a refreshed local development workflow for modern standards
jspm.org
May 26, 2025 at 8:39 PM
Npm dependencies not being fully scoped is kind of an npm limitation I suppose? Import maps avoid this property.
May 15, 2025 at 4:31 PM
Reposted by Guy Bedford
First update on the open source I've been working on this past month:

ES Module Shims 2.5 - featuring hot reloading for native modules.

guybedford.com/hot-reloadin...
ES Module Shims 2.5 Release Update
ES Module Shims 2.5 release update, including hot reloading, import defer and new baseline feature support.
guybedford.com
May 12, 2025 at 8:13 PM
The simple approach came as a nice surprise to me too. Other coming modules features are likely a bit harder!
May 12, 2025 at 10:18 PM
First update on the open source I've been working on this past month:

ES Module Shims 2.5 - featuring hot reloading for native modules.

guybedford.com/hot-reloadin...
ES Module Shims 2.5 Release Update
ES Module Shims 2.5 release update, including hot reloading, import defer and new baseline feature support.
guybedford.com
May 12, 2025 at 8:13 PM
Interesting experiment - Google’s experimenting with performance exceptions in the origin-segmented script cache, seemingly primarily for their own advertising, YouTube and Google Maps scripts.

bsky.app/profile/inte...
April 23, 2025 at 4:18 PM
Excited to announce I'll be joining Cloudflare next month as a Systems Engineer on the Workers Runtime team, continuing to work on the platform-level intersection of JavaScript and WebAssembly.

And in the mean time, I will be taking a much needed break and dusting off some OSS work...
April 22, 2025 at 6:25 PM
Reposted by Guy Bedford
Blink: Intent to Prototype: Source phase imports
Blink: Intent to Prototype: Source phase imports
Blink: Intent to Prototype: Source phase imports
groups.google.com
March 27, 2025 at 9:43 PM
Stripped down packuments seem to be scaling surprisingly well even for these huge numbers of versions. Wonder when it breaks down though.
February 10, 2025 at 1:09 AM
It blows my mind when JS packages publish for every commit and end up with thousands of versions on npm.

For example Primer React (www.npmjs.com/package/@pri...) publishes ~20 - 30 times a day via commit-based CI.

Good dev pattern, or misuse of npm?
@primer/react
An implementation of GitHub's Primer Design System using React. Latest version: 37.12.0, last published: 3 days ago. Start using @primer/react in your project by running `npm i @primer/react`. There a...
www.npmjs.com
February 10, 2025 at 12:39 AM
Reposted by Guy Bedford
Announcing ES Module Shims 2.0. The latest version of what started out as an import maps polyfill now supports production polyfilling of more than 8 existing and upcoming native browser modules features 🧵
January 27, 2025 at 8:03 AM
Yes, it’s one exception for convenience here given we don’t have a well defined mime type for typescript. In a true type stripping future there maybe wouldn’t ever be one as well.
January 27, 2025 at 6:05 PM
Lexing JavaScript / TypeScript is very much the definition of an interpreter. Unless you don’t want to use an interpreter language…
January 27, 2025 at 4:39 PM
Since JS modules require application/javascript, we default to processing application/typescript and any .ts or .mts files not served with an otherwise valid JS Mime.
January 27, 2025 at 4:37 PM
Exactly, and only when Typescript is first encountered. Didn’t do any comparisons yet, that would be a good idea to try other libraries like this one.
January 27, 2025 at 4:35 PM
See the announcement post for an example of running a TypeScript Vue app with #nobuild.

Other recent features including Wasm modules with source phase imports and multiple import maps are also explained in more detail.

guybedford.com/es-module-sh...
Announcing ES Module Shims 2.0
ES Module Shims 2.0 release post, featuring TypeScript type stripping, Wasm modules, source phase imports and multiple import maps support.
guybedford.com
January 27, 2025 at 8:03 AM
A major new feature of this release is a development convenience - TypeScript type stripping support per the proposed type stripping proposal, fully supporting in-browser transpilation of TypeScript.
January 27, 2025 at 8:03 AM
Announcing ES Module Shims 2.0. The latest version of what started out as an import maps polyfill now supports production polyfilling of more than 8 existing and upcoming native browser modules features 🧵
January 27, 2025 at 8:03 AM