Skip to content

feat(create): add AI-native Studio builder behind ?studio flag#286

Open
mehdibha wants to merge 2 commits into
mainfrom
claude/brave-chatterjee-b4db20
Open

feat(create): add AI-native Studio builder behind ?studio flag#286
mehdibha wants to merge 2 commits into
mainfrom
claude/brave-chatterjee-b4db20

Conversation

@mehdibha

@mehdibha mehdibha commented Jun 27, 2026

Copy link
Copy Markdown
Owner

Summary

An experimental, AI-native rethink of the /create builder, gated on ?studio=true. The shipped page and the ?lab experiment are untouched — this is purely additive.

  • New three-zone layout — section rail + rich inspector + big live canvas, replacing the 288px drill-in column. Plus a studio header (editable name, re-roll, Ask AI, Export).
  • AI woven through — a Generate panel (prompt + 10 vibe chips like Linear/Geist/Stripe/Playful), a persistent copilot command bar ("rounder", "calmer accent", "make it feel like Linear", "go dark"), and inline suggestions. All drive the real DesignSystem live and report an honest "what changed" diff with a flash toast.
  • New tweak axes — shadow tint, translucent surfaces, background texture (with a live swatch), easing curve (SVG viz), hover/press feedback, finer typography (pairing/weight/tracking/line-height), accessibility targets (AA/AAA, color-blind-safe, min tap target), and brand logo.

Live vs planned

  • Live: color (seeds, algorithm, status families, OKLCH engine + contrast), radius, density, cursors, per-component anatomy — and all the AI, which mutates those real axes. Reuses the real useDesignSystem setters, the preview iframe, and the export footer.
  • Planned (UI only): the new axes write forward-looking CSS vars the preview has no consumer for yet — the same honest-stub pattern as ?lab — surfaced with "planned" pips so nothing pretends to be wired.

For reviewers

  • UI-only experiment behind a flag. Nothing changes on the default /create. Try it at /create?studio=true.
  • Adding axes is a product decision per CLAUDE.md — the new axes are exploratory and would need sign-off plus real token consumers before any promotion.
  • AI is a local interpreter (studio/ai/interpret.ts + vibes.ts) today, deliberately shaped so a real createServerFn model call returning the same { mutate, changes } shape drops in with no UI changes.
  • No registry changes (no build:registry needed). typecheck and check (oxlint + oxfmt) are clean.
  • All new code is isolated under www/src/modules/create/studio/; the only edit outside it is the ?studio branch in routes/_app/create.tsx.

Note

Medium Risk
Large additive surface area and shared DesignSystem/localStorage persistence, but gated behind a query flag with no registry or auth changes.

Overview
Adds an opt-in /create?studio experience: a full-viewport Studio shell (custom header, section rail, 340px inspector, live preview) while default /create and ?lab stay unchanged.

AI is wired through a shared StudioProvider thread: Generate (prompt + vibe chips), a canvas CommandBar copilot with suggestions and apply toasts, and a keyword interpret.ts layer that returns { mutate, changes } into the real DesignSystem (vibes in vibes.ts). Inspector sections are schema-driven with live vs planned binding pips; many new axes only persist CSS vars until consumers exist.

Routing: studio search param on create.tsx; _app/route.tsx omits the global Header when pathname === '/create' and studio is set so Studio owns 100svh.

Reviewed by Cursor Bugbot for commit e013d86. Bugbot is set up for automated code reviews on this repo. Configure here.

Experimental rethink of /create: a three-zone layout (section rail +
inspector + big live canvas) with AI woven through — a generate panel with
vibe chips, a persistent copilot command bar, and inline suggestions, all
driving the real DesignSystem live. Adds new (planned) axes: shadow tint,
translucent surfaces, background texture, easing, hover/press feedback,
finer typography, accessibility targets, brand logo.

UI only and gated on ?studio=true; the shipped page and ?lab are untouched.
Reuses the real useDesignSystem setters, preview iframe and export. New axes
are exploratory stubs pending product sign-off and token consumers.
@changeset-bot

changeset-bot Bot commented Jun 27, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: e013d86

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@vercel

vercel Bot commented Jun 27, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
dotui Ready Ready Preview, Comment Jun 27, 2026 10:54pm

@cursor

cursor Bot commented Jun 27, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: serverGenReqId_ea579126-13c5-4ea7-b12d-02435cf8ac46)

@cursor

cursor Bot commented Jun 27, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: serverGenReqId_7a13e5e5-bc74-47c5-b277-9f07e83c0d73)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant