
Develop
Pull a Subframe design into your repo via MCP, sync components, and implement real business logic after design or install steps.
Overview
develop is an agent skill for the Build phase that implements Subframe designs in your codebase using MCP fetch, component sync, and business-logic wiring.
Install
npx skills add https://github.com/subframeapp/subframe --skill developWhat is this skill?
- Workflow starts after /subframe:design or a Subframe page URL or page ID
- Detects package.json and .subframe/—routes to /subframe:install when no project or missing Subframe setup
- Fetches design through Subframe MCP get_page_info after authentication via /mcp
- Syncs Subframe components into the codebase then adds business logic on top
- Argument hint supports page URL, page ID, or 'the design I just made'
Adoption & trust: 523 installs on skills.sh; 392 GitHub stars; 2/3 security scanners passed (skills.sh audits).
What problem does it solve?
You have a Subframe screen or URL but need it living in your repo with real data and handlers, not static mock HTML.
Who is it for?
Indie teams using Subframe for UI who already authenticated Subframe MCP and have or will run install for greenfield repos.
Skip if: Projects with no Subframe design source, or teams that refuse MCP access and manual component copy.
When should I use this skill?
Use after designing with /subframe:design or when given a Subframe URL, page ID, or 'the design I just made'; run /subframe:install if no package.json.
What do I get? / Deliverables
Subframe components sync into the project and the agent implements business logic aligned to the fetched page design.
- Synced Subframe components
- Page implementation with business logic
Recommended Skills
Journey fit
How it compares
Design-to-code workflow via Subframe MCP—not a generic Figma-to-React converter or backend scaffold.
Common Questions / FAQ
Who is develop for?
Builders on Subframe who need the agent to import a specific page and implement app logic in an existing or new JS/TS frontend.
When should I use develop?
In Build (frontend) immediately after /subframe:design or when handed a Subframe URL, once package.json exists and install has run if required.
Is develop safe to install?
MCP and filesystem writes can change your repo; review Security Audits on this page and commit before syncing components into a non-Subframe project.
Workflow Chain
Requires first: subframe design
SKILL.md
READMESKILL.md - Develop
Implement Subframe designs in the codebase. Fetch the design via MCP, sync components, and add business logic. ## MCP Authentication If you cannot find the `get_page_info` tool (or any Subframe MCP tools), the MCP server likely needs to be authenticated. Ask the user to authenticate the Subframe MCP server. If the user is using Claude Code or Codex, instruct them to run `/mcp` to view and authenticate their MCP servers, and then say "done" when they're finished. ## Detect Project State Before starting, check for `package.json` and `.subframe/` folder in the current directory: | Condition | Action | | ---------------------------------------------- | ------------------------------------------------------------------------- | | No `package.json` | Run `/subframe:install` first — there's no project to implement into yet. | | Has `package.json` AND has `.subframe/` folder | Proceed with the workflow below. | | Has `package.json` but NO `.subframe/` folder | Ask the user (see below). | ### Existing non-Subframe project If the current directory has a `package.json` but no `.subframe/` folder, ask the user which approach they prefer: - **Use the design as inspiration** — Fetch the design via MCP for reference, but implement the page using the existing styles, components, and patterns already in the repo. Translate the Subframe design's layout and structure into whatever UI framework the project already uses (e.g., existing component library, CSS modules, styled-components). Do NOT install Subframe or sync components. Skip to [Inspiration Workflow](#inspiration-workflow). - **Use Subframe styles and components** — Install Subframe into the project so the design renders pixel-perfect with Subframe's generated code. Run `/subframe:install` first, then continue with the [Workflow](#workflow) below. ## Workflow 1. **Wait for any in-flight design jobs** — see [Awaiting In-Flight Designs](#awaiting-in-flight-designs) 2. **Fetch the design** — `get_page_info` with the URL, ID, or name 3. **Read design documentation** — `get_project_info` and `get_component_info` return any attached design docs; check them for usage guidance, accessibility notes, or constraints before implementing 4. **Sync any missing components** — Only if components don't exist locally. `npx @subframe/cli sync` for the specific components used in the page 5. **Create the page** — put it in the right place per codebase patterns 6. **Add business logic** — data fetching, forms, events, loading/error states ## Awaiting In-Flight Designs If a design was just kicked off in the same conversation (via `/subframe:design`), the underlying AI job is likely still running. Reading the result via `get_*_info` too early returns empty or stale code. `design_page`, `design_component`, and `edit_component` return a `jobId`. Before the first read, call: ``` wait_for_jobs({ jobIds: [jobId1, jobId2, ...] }) ``` Each result is `running`, `done` (with optional summary), or `not_found`. Call in a loop until every job is `done`. Surface progress to the user — "Designs are still generating in Subframe…" then "✓ Designs ready, fetching the code now." — so they understand the wait. (Jobs that stall longer than ~10 minutes are surfaced as `done` so the loop never hangs.) You don't need `wait_for_jobs` when: - The user came in with an existing Subframe URL (no in-flight job) - You're only working from `id` or `name` and don't need the generated code. If the user asks to implement immediately after kicking off a design, batch all relevant `j