Given the user demand for jco-transpile as a minimal, separate project, I'd like to split out the transpilation functionality of jco into a subproject called jco-transpile). After a bit of discussion in the JS subgroup meeting yesterday since there were no large objections, I'd like to discuss it here as well.
The idea is to take the bits of Jco that currently perform transpilation and simply move them to another project that will be reused from jco itself (similarly to how componentize-js is), but expose both a library and CLI that is usable for end-users.
Currently, we use a dynamic import of componentize-js in order to avoid depending directly on componentize-js, but this complicates installation and can cause subtle bugs.
Building jcointo a multi-tool with exceptional DX is a priority, and would boost adoption of JS WASM tools. There are many improvements to be made to reach that future, but at the very least, splitting out jco-transpileis a start (and is the remedy of choice for the earlier linked issue from the folks at Arcjet).
Any feedback on this before I make the proposal would be welcome.
Tagging some people who might be interested to make sure this doesn't get lost in the ether:
@Till Schneidereit @Tomasz Andrzejak @Calvin Prewitt @Guy Bedford
All for more narrowly defined tools, two things I think would help in maintenance:
Remove the circular dependency between jco and componentizejs in the npm dependencies. It always ends up in weirdly nested dependencies and I have to add npm overrides to force the resolution.
Yup, this would definitely be a positive outcome of the idea!
Keep the packages in a monorepo so that bubble ups / releases can be managed. We've had a lot of success with beachball and managing monorepos with dozens of mixed packages: npm libraries, angular npm libraries (yes sadly different), nuget packages.
You're gonna like this:
https://github.com/bytecodealliance/jco/pull/698/files
https://github.com/vados-cosmonic/jco/tree/refactor%3Dproject-layout (file browser view)
(as soon as I get CI reworked to the new paths, I'd like to merge the above)
Last updated: Dec 06 2025 at 07:03 UTC