ADR-0032 — Builder est l'editeur Onlook; Preview reste la vitrine
ADR 0031 a mis le mot Onlook sur le Builder, puis a monte le chrome Design autour de l'iframe storefront. Ce n'est pas Onlook. Onlook est un editeur: canvas, frames, moteur, sandbox. La vitrine en lecture seule est deja…
Statut
Accepté · 2026-09-22
Remplace : ADR-0031
Piliers : ai-platform
Contexte
ADR 0031 a mis le mot Onlook sur le Builder, puis a monte le chrome Design autour de l'iframe storefront. Ce n'est pas Onlook. Onlook est un editeur: canvas, frames, moteur, sandbox. La vitrine en lecture seule est deja la Preview.
Décision
| Surface | Role |
|---|---|
| Preview | Voir le storefront (iframe, lecture). Seule stage storefront. |
| Builder | L'editeur Onlook, fork du repo onlook-dev/onlook. Pas l'iframe. |
| Shopify | Les patterns (section, template, schema) que le moteur apprendra a ecrire. Apres que l'editeur tourne. |
| Formats | Outil d'ecriture, plus le Builder. |
| Worktree | IDE fichiers theme. |
| Workflow | Automations. |
| Studio | Image / video. |
Le moteur reste le leur (EditorEngine). La persistance et la session
sont les notres (Prisma, Neon, session). Leur Supabase, Stripe,
PostHog et Freestyle ne sont pas portes.
Alternatives écartées
| Option | Pourquoi non |
|---|---|
| DesignChrome sur l'iframe (0031) | Ce n'est pas leur canvas ni leur moteur |
| Frame = URL de preview | La Preview ne vit pas dans le canvas |
| Maquette landing Onlook | Statique, aucun moteur |
Conséquences
mode === "builder"ne partage plusisStorefrontStage- Le stage Builder est
OnlookBuilder, import dynamique,ssr: false - Le source vendored vit dans
src/features/ai/onlook/upstream, hors du graphe de compilation Next, jusqu'a l'adaptateur - ADR 0031 est remplacé
Comment c'est appliqué
store-browser.tsx:isStorefrontStage = isPreviewModemode-views.tsx:case "builder"monteOnlookBuilder- Garde:
src/test/builder-is-onlook-canvas.test.ts