The site is the document

The live homepage is a 2026 HUD site — Three.js glass lattice, GSAP, Lenis — hosted as static Astro. The Corvert Designer playground used to be the homepage; it now lives at /designer as a full-viewport iframe plus overlay chrome. View mode and edit mode are still one canvas.

Why production stays behind Clerk

The real editor loads a workspace page with a JWT, OCC document saves, and publish jobs. Iframing designer.valta.site would require a shared login and would let strangers write a live tenant. The playground hydrates from static JSON, sets capabilities.autosave/publish = false, and no-ops save. Uploads and other API calls throw before a token is attached.

Embed protocol

The host posts origin-checked enter-edit, exit-edit, and reset messages. The iframe replies with ready and mode. CSP frame-ancestors on /playground allows only this host (plus a placeholder personal domain). Clerk JWT handoff and dashboard token CORS are not reused.

Theme artifacts

The canvas CSS comes from the Atelier theme in corvert-extensions-v2 (hero, work, about, contact, light/dark tokens). A snapshot script writes apps/designer/public/playground/portfolio-bootstrap.json so the live page and the editor cannot drift after a redesign.

What I would do next

Source is on the feat/designer-playground and feat/portfolio-theme branches. Ask if you want it.