Gadgets: Personal app vibe coding that is actually safe — Kenton Varda, Cloudflare
Kenton Varda argues that personal AI-generated apps need per-user code and strong isolation, not one server-owned version. The demo shows agents modifying app code inside a constrained local runtime.
The prototype treats each gadget as an app instance tied to one document, while blueprints share code without user data. Agents can modify each app, whose UI runs in a **null-origin iframe** under a restrictive **Content Security Policy**.
For personal agent-built tools, design the sandbox and capability boundary before trusting generated code. The demonstrated stack uses **Cloudflare Workers and Durable Objects** and can run locally through the open-source **workerd runtime**.
The prototype treats each gadget as an app instance tied to one document, while blueprints share code without user data. Agents can modify each app, whose UI runs in a **null-origin iframe** under a restrictive **Content Security Policy**. For personal agent-built tools, design the sandbox and capability boundary before trusting generated code. The demonstrated stack uses **Cloudflare Workers and Durable Objects** and can run locally through the open-source **workerd runtime**. Iframe isolation contains many browser-code failures, but it does not by itself explain authorization for external services. The talk says a connector system exists without detailing its security model, and the recorded prototype was not released during the presentation.
This moves sandbox-first design from coding-agent infrastructure into personal, document-scoped generated apps: code sharing is separated from user data, and untrusted UI receives a deliberately narrow browser boundary. It also identifies a remaining gap in the prior sandbox picture—runtime containment is insufficient unless connector credentials and external-service capabilities are independently authorized.