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.
Gadgets moves safe vibe coding toward a document-scoped application model with code sharing separated from user data and generated UI confined by browser isolation and CSP. It reinforces capability-first sandbox design, but narrows the safety claim: iframe containment addresses browser execution failures, while authorization for connectors and external services remains unspecified, and the demonstrated prototype was not released.