Strapkit – Node.js Compiled to WASM

michaelkrem1 pts0 comments

Strapkit — Node.js in the browser, locally

Run NodeJS in the browser<br>No sandbox needed.<br>Strapkit is a Node runtime compiled to WebAssembly. Spin up sandboxes on-device — boot in milliseconds, run untrusted code safely, and ship without paying for VMs that sit idle.<br>Start building $npm i @strapkit/core

App.jsx

Preview<br>Booting runtime...

The runtime moves to the user.<br>Everything else follows.

$ node ./untrusted.js<br>› sandboxed in WASM

Untrusted code, safely.<br>Every sandbox runs in an isolated WASM instance with zero network access by default. User-submitted scripts never touch your infrastructure.

$0.00<br>$0.01

Per instance. Not per second.<br>$0.01 per sandbox — no matter how long it runs. No idle charges, no metered compute, just a flat fee when a session starts.

Unlimited concurrent sandboxes.<br>Spawn one. Spawn ten thousand. Your cost stays the same because the compute is on your user's machine, not yours.

gitnodenpmnpxvilscatgrepsedfindtarwgetsortwcxargscpmvrmmkdirchmodtouchheadtailstatenvshdubasenamecutln

Batteries included.<br>Git, cat, vi, sed, grep, and 50+ coreutils — all compiled to WASM and ready to run in the browser.

Write Node. Ship a URL.<br>Strapkit runs a full Node.js environment right in the browser. Write files, install packages, start servers — everything runs on the user's device, not yours.<br>shellExec runs commands and streams output to a terminal. Get back the exit code, or let users watch it live.

Start a server inside the runtime and preview it in an iframe the moment the port opens — no polling, no manual URL copying.

Cache installed packages across page reloads. The first visit installs, every visit after restores in milliseconds.

1import Strapkit from "@strapkit/core"<br>3const sk = new Strapkit({ apiKey: "sk_..." })<br>4await sk.init()<br>6// write files to the in-memory filesystem<br>7await sk.write("/app/index.js", code)<br>9// run any shell command — output goes to the terminal<br>10sk.shellExec("cd /app && npm install")<br>11sk.shellExec("npm run dev")<br>12<br>13// open a preview when the dev server binds<br>14sk.onPortOpen((port) => {<br>15 if (port === 3000)<br>16 sk.showPreview(port, "preview")<br>17})

Built for every use case.<br>From AI agents to offline apps — anywhere you need a runtime without a server.

AI code execution<br>Let LLM agents run and verify code in a sealed VM. Every user gets their own runtime — you never pay for it.

Interactive docs<br>Ship live, runnable snippets inside your documentation. Every reader gets a real Node environment.

User-scripting<br>Let customers extend your app with JavaScript. Execute their code without spinning up a single container.

Build & bundle<br>Run Vite, esbuild, and tsc in the browser. Offer a full dev environment from a single tag.

Offline-first apps<br>Keep business logic on-device. Sync when connected, compute when not.

Teaching & sandboxes<br>Every student, every exercise, its own Node process — no backend to scale or secure.

Your users run the compute.<br>You keep the margin.<br>When the runtime executes on-device, there are no servers to provision, no hourly bills, and no concurrency caps.

StrapkitE2BDaytonaModalRuns on-device———Price$0.01 per instance$0.16/hr$0.16/hr$0.24/hrIdle cost$0billed hourlybilled hourlybilled hourlyConcurrencyUnlimitedQuotaQuotaQuotaCold start~200ms~300ms~300ms~5sServer previewIn-page iframeExternal URLExternal URLExternal URL

Run Node anywhere.Starting with everywhere.<br>Four lines of code and your app has a full Node runtime. No servers, no vendors, no per-execution bill.<br>Start building Star on GitHub

node strapkit runtime code user browser

Related Articles