Nodepod is a free, open-source Node.js runtime for the browser—a lightweight alternative to WebContainers that runs npm packages, Express servers, Vite HMR, and more entirely client-side.
Key Highlights
Instant & Tiny: Boots in ~100ms at 600KB gzipped (vs. WebContainers' 2-5s multi-MB WASM).
Full Stack Support: 40+ Node polyfills (fs, http, child_process), custom shell, npm installs (e.g., React/Vue/Svelte previews).
No Servers/Lock-in: Pure browser (Web Workers + Service Worker); MIT licensed, no pricing drama.
Nodebox's light runtime makes it easy to run in the browser, but the same guard rails matter once you start wiring it into agent workflows. We wrap every plan in connectors+watchers: each connector expects {status:'ok'}, logs sessionId, and watches retries/costs, and when we see 3+ retries or a cost bump above 2x baseline the run pauses, streams the guard log to a manual gate, and waits for a human to approve the diff before resuming. That pattern keeps generated previews predictable when agents spin up Express/Vite runs inside a tiny client-side container.
Nodepod is a free, open-source Node.js runtime for the browser—a lightweight alternative to WebContainers that runs npm packages, Express servers, Vite HMR, and more entirely client-side.
Key Highlights Instant & Tiny: Boots in ~100ms at 600KB gzipped (vs. WebContainers' 2-5s multi-MB WASM). Full Stack Support: 40+ Node polyfills (fs, http, child_process), custom shell, npm installs (e.g., React/Vue/Svelte previews). No Servers/Lock-in: Pure browser (Web Workers + Service Worker); MIT licensed, no pricing drama.
Try it in wZed, our Zed-inspired browser IDE: https://wzed.scelar.com/. GitHub: https://github.com/ScelarOrg/NodePod. npm: @scelar/nodepod.
Nodebox's light runtime makes it easy to run in the browser, but the same guard rails matter once you start wiring it into agent workflows. We wrap every plan in connectors+watchers: each connector expects {status:'ok'}, logs sessionId, and watches retries/costs, and when we see 3+ retries or a cost bump above 2x baseline the run pauses, streams the guard log to a manual gate, and waits for a human to approve the diff before resuming. That pattern keeps generated previews predictable when agents spin up Express/Vite runs inside a tiny client-side container.