Compatibility and browser requirements
Baseline
Section titled “Baseline”Nodepod targets current evergreen browsers with WebAssembly, Web Workers, modules, and modern browser storage. The package build toolchain requires Node.js 20 or newer. The documentation site uses Node.js 22.12 or newer.
Shared memory
Section titled “Shared memory”Cross-origin isolation enables SharedArrayBuffer, synchronous child-process APIs, lean worker filesystem snapshots, and threaded WASI modules. Configure these response headers on the host page. require-corp is stricter; credentialless is often easier when third-party assets do not send CORP headers. Nodepod’s preview responses use credentialless.
Cross-Origin-Opener-Policy: same-originCross-Origin-Embedder-Policy: require-corpYou can use Cross-Origin-Embedder-Policy: credentialless instead when that
better fits the host’s third-party assets.
Without isolation, set enableSharedArrayBuffer: false or let feature detection choose the reduced path. execSync() and spawnSync() throw, lean worker snapshots fall back to full snapshots, and threaded packages such as native-style bundler toolchains may refuse to load.
Package compatibility
Section titled “Package compatibility”Pure JavaScript packages and packages with compatible WebAssembly builds work best. Native .node add-ons, kernel interfaces, arbitrary binaries, and assumptions about a full operating system are not supported merely because an npm package installs.
Test the exact packages and browser versions your product promises. Nodepod emulates useful Node.js surfaces; it is not a complete operating system or a bit-for-bit Node.js replacement.