A browser-based React IDE that compiles React apps in the browser using WASM (esbuild-wasm and SWC).
- In-Browser Compilation: Compile React using esbuild-wasm or @swc/wasm-web
- Live Editor: Edit React components with auto-recompile (500ms debounce)
- File Explorer: Navigate and edit source files (
entry.tsx,button.tsx,utils.js) - Dark/Light Theme: Toggle theme with persistent localStorage storage
- Isolated Preview: Render compiled apps in sandboxed iframes
npm install
npm run devOpen http://localhost:5173 in your browser.
- File Loading (
file-loader.js): Fetch and cache source files with extension resolution - Compilation: Choose between esbuild or SWC to bundle/transform React code
- Module System:
- esbuild: Full bundling with virtual filesystem plugin
- SWC: File transformation + custom CommonJS module loader
- Iframe Rendering: Execute compiled code in sandboxed iframe with
allow-scriptsonly - Theme Support: Inject theme colors via
window.__THEME__before module execution
entry.tsx (React app with hooks)
↓
file-loader.js (fetch + resolve imports)
↓
esbuild-runner.js or swc-runner.js (compile)
↓
iframe (execute with theme isolation)
- React: 19.2.3 (via esm.sh CDN)
- esbuild-wasm: Browser-based bundler (v0.27.1)
- @swc/wasm-web: Rust-based transformer
- Vite 7: Dev server with custom middleware for raw source serving
index.html- IDE UI with file explorer, editor, previewplayground.js- Main orchestration and theme managementfile-loader.js- Dynamic file fetching with path alias supportrunners/esbuild-runner.js- esbuild compilation pipelinerunners/swc-runner.js- SWC transformation + CommonJS bundlingsrc/entry.tsx- Example React app with counter, todo list, time displaysrc/components/ui/button.tsx- Theme-aware button componentsrc/lib/utils.js- Utility functions