iframe.diy

Run any web app inside a sandboxed iframe where your page controls everything: every file the app loads, every API it can call. No server required.

How it works

Each app gets a unique subdomain (<id>.iframe.diy) for origin isolation. A Service Worker inside the iframe proxies every fetch request back to your page via postMessage. Your page decides what to serve and what to inject.

Parent Page                          iframe.diy Frame
┌──────────────┐   postMessage       ┌─────────────────────────────────┐
│              │   (JSON-RPC 2.0)    │  Outer Frame                    │
│ Serves files │ ◄─────────────────► │  ┌─────────────────────────┐    │
│ via fetch RPC│                     │  │ Inner iframe            │    │
│              │                     │  │ App runs here           │    │
└──────────────┘                     │  └─────────────────────────┘    │
                                     │  sw.js ─ proxies fetch → parent │
                                     └─────────────────────────────────┘

Why?