Sandburg

Run and test generated web apps inside the browser. Each demo below starts a real project's own dev server, next dev, Vite, ng serve or Express, on a Node.js runtime inside your browser tab. There's no server and no container.

Source on GitHub

Generate an app → Describe an app; Claude or Gemini writes it with React, Vue, Angular, SvelteKit, SolidStart, Next.js, Nuxt or Astro, with a backend and SQLite, and it installs from npm and runs in this tab. Bring your own API key.

How it works

  1. A Node.js runtime in a Web Worker: fs, http, child_process, worker_threads and the rest, in TypeScript. The Rust tools that dev servers use (SWC, rolldown, esbuild, Tailwind's oxide) run on their WebAssembly builds.
  2. The project's own dev server: the dev script runs as written, through a small shell (so concurrently "vite" "node server" works too).
  3. A service worker gives each app its own origin in the tab and hands its requests to the servers in the runtime.

In Sandburg itself, a host process installs packages with npm and compiles modules for the runtime; Playwright then checks the running app. These pages replay the host's answers from static files, recorded when the site was built. Everything else happens in your browser.

These demos need a recent Chrome, Edge or Firefox; Safari and browsers on iOS use a stricter isolation mode (see ADR 0021) and are less tested. They download 5–60 MB.