[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-wix-wix-headless-fast":3,"mdc--v5xk4n-key":34,"related-org-wix-wix-headless-fast":1160,"related-repo-wix-wix-headless-fast":1318},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":23,"repoUrl":24,"updatedAt":25,"license":26,"forks":27,"topics":28,"repo":29,"sourceUrl":32,"mdContent":33},"wix-headless-fast","build Wix Headless sites with SDK","Build a Wix Headless site fast by wiring SHIPPED, verified @wix\u002Fsdk code instead of authoring the integration from recipes. Each Wix business vertical ships a typed, framework-agnostic React core (data layer returning plain DTOs, hooks, headless components) plus an Astro overlay (SSR pages with owner-editable SEO pre-wired) and a build-time REST seed script — the agent scaffolds via the Wix CLI, deploys the shipped code, seeds the backend, designs the presentation layer itself on the shipped hooks (product card\u002Fgrid, PDP, home, theme), and releases to Wix hosting. Works on Wix-managed Astro (ambient auth, the default) and on any React-based project (Vite, non-Astro) over the public OAuth client id. Verticals: stores\u002Fstorefront (products, categories, variants, cart, hosted checkout), bookings (services, appointment\u002Fclass time slots, staff, booking form, checkout-or-place), blog (posts, categories\u002Ftags, rich content), cms (structured content collections), events (listing, RSVP, ticket sales), members (login, gated pages, account), portfolio (project collections, media galleries), pricing-plans (plan grid, hosted purchase), restaurants (menus, online ordering, table reservations). Triggers: build me a store\u002Fblog\u002Fbooking\u002Fevent\u002Frestaurant\u002Fportfolio site fast, take appointments fast, sell tickets or membership plans headless, wix headless fast, connect a Wix business app with ready-made SDK code.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"wix","Wix","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fwix.jpg",[12,14,17,20],{"name":9,"slug":8,"type":13},"tag",{"name":15,"slug":16,"type":13},"React","react",{"name":18,"slug":19,"type":13},"API Development","api-development",{"name":21,"slug":22,"type":13},"Frontend","frontend",23,"https:\u002F\u002Fgithub.com\u002Fwix\u002Fskills","2026-08-29T09:48:10.796245",null,28,[],{"repoUrl":24,"stars":23,"forks":27,"topics":30,"description":31},[],"Wix Skills","https:\u002F\u002Fgithub.com\u002Fwix\u002Fskills\u002Ftree\u002FHEAD\u002Fskills\u002Fwix-headless-fast","---\nname: wix-headless-fast\ndescription: \"Build a Wix Headless site fast by wiring SHIPPED, verified @wix\u002Fsdk code instead of authoring the integration from recipes. Each Wix business vertical ships a typed, framework-agnostic React core (data layer returning plain DTOs, hooks, headless components) plus an Astro overlay (SSR pages with owner-editable SEO pre-wired) and a build-time REST seed script — the agent scaffolds via the Wix CLI, deploys the shipped code, seeds the backend, designs the presentation layer itself on the shipped hooks (product card\u002Fgrid, PDP, home, theme), and releases to Wix hosting. Works on Wix-managed Astro (ambient auth, the default) and on any React-based project (Vite, non-Astro) over the public OAuth client id. Verticals: stores\u002Fstorefront (products, categories, variants, cart, hosted checkout), bookings (services, appointment\u002Fclass time slots, staff, booking form, checkout-or-place), blog (posts, categories\u002Ftags, rich content), cms (structured content collections), events (listing, RSVP, ticket sales), members (login, gated pages, account), portfolio (project collections, media galleries), pricing-plans (plan grid, hosted purchase), restaurants (menus, online ordering, table reservations). Triggers: build me a store\u002Fblog\u002Fbooking\u002Fevent\u002Frestaurant\u002Fportfolio site fast, take appointments fast, sell tickets or membership plans headless, wix headless fast, connect a Wix business app with ready-made SDK code.\"\n---\n\n# Wix Headless Fast\n\nBuild a Wix Headless site by **deploying shipped code, not authoring it**. Where `wix-headless`\nhands the agent recipes to code from, this skill ships the integration itself — a typed data\nlayer, hooks, components, pages, and a seed script that are already correct — and the agent's\njob narrows to brand, layout, copy, and wiring. The decisions live in the code; don't\nre-litigate them.\n\n## Relationship to sibling skills\n\n| Skill | Use when |\n|---|---|\n| **wix-headless-fast** (this) | A supported vertical fits the request and the frontend is Astro or React — the fast path. |\n| `wix-headless` | A vertical this skill doesn't ship yet, a non-React frontend, backend-only runs, or stripe\u002Fself-managed project types. |\n| `wix-vibe-headless` | Client-only REST over a `WIX_CLIENT_ID` inside a vibe platform (Base44 etc.) — no SDK, no CLI. |\n\n## The model\n\n- **Shipped code is the implementation.** Every vertical ships under `references\u002F\u003Cvertical>\u002F`:\n  - `app\u002F` — the framework-agnostic core (TypeScript): a data layer that returns **plain,\n    serializable DTOs** (images resolved to https URLs, prices pre-formatted), React hooks, and\n    routing-free headless components. Works in Astro islands, Vite SPAs, and Next.\n  - `app-astro\u002F` — a thin Astro overlay: SSR pages that fetch via the core and pass DTOs to\n    islands, with owner-editable item-page SEO pre-wired.\n  - `seed\u002F` — a build-time REST seed script (plain-data plan in, created content out) plus its\n    `SEED.md` contract.\n  - `INSTRUCTIONS.md` — the vertical's playbook: file map, what you build, hard rules, verify.\n- **One auth seam.** All shipped code calls Wix through `src\u002Fwix\u002Fsdk.ts`: on Wix-managed Astro\n  auth is ambient (no client, no id); on any other React setup the same file runs a manual\n  visitor client off the public client id in `src\u002Fwix\u002Fconfig.ts`. The deploy step configures\n  this — nothing to wire by hand.\n- **Data as-is; presentation is yours.** The data layer, hooks, and cart chrome are wired\n  as-is — never rewrite their internals, re-route them through API routes, or re-derive a\n  request shape (for a genuine gap, add a new function in the data layer, or consult the\n  `wix-docs` skill for the API contract). The presentation components ship only as\n  **references**: the vertical's INSTRUCTIONS names the surfaces you design and implement\n  yourself on the shipped hooks (for storefront: card, grid, shop + PDP surfaces, home).\n- **Never mock, fail loudly, purchases via Wix.** Live data or an honest empty state; surfaced\n  errors, not swallowed ones; checkout\u002Fpurchase always through the Wix redirect session.\n\n## The run\n\n1. **Resolve the stack.** Default is **Wix-managed Astro** — take it unless the user names a\n   different React framework or the directory already holds a non-Astro React project. A\n   non-React frontend is out of scope → `wix-headless`.\n2. **Draft the seed plan** (read only the vertical's `SEED.md` for this — it depends only on\n   the brief; save the vertical's `INSTRUCTIONS.md` for step 4, where it's needed). Requires from here on: Node ≥ 20.11 and a logged-in Wix CLI\n   (`npx @wix\u002Fcli@latest whoami`; login via the device-code flow — surface the URL+code, never\n   read tokens into context).\n3. **Create runs (empty directory): run the fast path** — one deterministic call:\n\n   ```bash\n   node \u003CSKILL_ROOT>\u002Finstall\u002Ffast-path.mjs --business-name \"\u003CBrand>\" --plan plan.json --vertical \u003Cvertical>\n   ```\n\n   `--vertical` is required and picks which shipped code deploys AND which seed runs — use\n   the vertical you resolved from the Verticals table.\n\n   It emits one JSON event per line and returns in **~35s**: **scaffolds** the project,\n   **deploys** the shipped code (patching `package.json` with every dependency the code\n   imports, and placing the pre-resolved lockfile), then **starts two detached background\n   jobs** — the dependency install (`npm ci --ignore-scripts || npm install --ignore-scripts`)\n   and the **seed** — whose logs and completion markers are in the events. The final\n   `ready_for_brand_layer` event carries the project dir, siteId, ready-made dashboard links,\n   and both markers. Relay notable events. On an `error` event, recover just that step via the\n   manual path below, then continue.\n\n   **Connect\u002Fiterate runs (a project already on disk): never scaffold — use the manual path:**\n   `CI=1 npm create @wix\u002Fnew@latest init` in place if there is no `wix.config.json` yet; then\n   `node \u003CSKILL_ROOT>\u002Finstall\u002Fdeploy.mjs \u003Cvertical…> --stack astro|react` from the project root\n   (react stack: add `--client-id` if there is no `wix.config.json` to read the public id\n   from); then ONE `npm ci --ignore-scripts || npm install --ignore-scripts` (backgroundable —\n   but **never run a second npm install concurrently**: two npms in one `node_modules` race and\n   redo each other's work); then seed per the vertical's `seed\u002FSEED.md`. Seeding is\n   **additive**: never delete or overwrite existing content; if a cleanup seems needed, ask.\n4. **Design and build the presentation while the install finishes** — in the project dir from\n   the `ready_for_brand_layer` event, per the vertical's `INSTRUCTIONS.md`: set the `@theme`\n   tokens, brand the chrome, and implement the vertical's creative surfaces yourself on the\n   shipped hooks (for storefront: your product card + grid, shop surface, PDP surface, and the\n   home page) — designed to fit the brief, not copied from the reference components. Read the\n   INSTRUCTIONS and the shared floors — `references\u002Fshared\u002FDESIGN.md` +\n   `references\u002Fshared\u002FCONTENT.md` — now (not earlier — their contracts matter only from this\n   step on); the hook\u002FDTO\n   contracts are inlined there, so don't open the shipped files themselves. **Author your\n   surfaces in as few messages as possible** — batch multiple Write calls in one message\n   (components are independent files); don't pay a round-trip per file.\n5. **When both background jobs have completed** — the install's marker\n   (`node_modules\u002F.package-lock.json`) and the seed's (`.seed-exit`) both exist — **verify the\n   seed succeeded** (`.seed-exit` contains `0`; `seed-result.json` has the created counts for\n   your summary — if non-zero, read `seed.log` and re-run the seed module manually). Then\n   **build & release once** (managed):\n   `npx @wix\u002Fcli@latest build` then `npx @wix\u002Fcli@latest release` (if the install failed, run\n   it once more and then build). Don't build+release mid-flow; backend content is fetched at\n   runtime, so a re-release never \"refreshes\" seeded data. The run is complete only when the\n   site is released — close with the live URL and the dashboard link\n   `https:\u002F\u002Fmanage.wix.com\u002Fdashboard\u002F\u003CsiteId>`. **Copy the live URL verbatim from the\n   `wix release` output — never retype it from memory** (a mistyped subdomain hands the user\n   a 404).\n\nDon't smoke-test with a dev server unless the user explicitly asks to verify — correctness\ncomes from the shipped code, and real errors surface at build\u002Frelease.\n\n## Verticals\n\n| The user wants… | Vertical | Playbook |\n|---|---|---|\n| Online store: products, categories, variants, cart, checkout | **storefront** | `references\u002Fstorefront\u002FINSTRUCTIONS.md` |\n| Appointments\u002Fclasses: services, time slots, staff, booking, checkout | **bookings** | `references\u002Fbookings\u002FINSTRUCTIONS.md` |\n| Blog: post feed, categories\u002Ftags, rich-content post pages | **blog** | `references\u002Fblog\u002FINSTRUCTIONS.md` |\n| Structured content collections (directory, recipes, listings) with pages designed per schema | **cms** | `references\u002Fcms\u002FINSTRUCTIONS.md` |\n| Events: listing, event pages, free RSVP, ticket sales via hosted checkout | **events** | `references\u002Fevents\u002FINSTRUCTIONS.md` |\n| Member accounts: login\u002Fsign-up, gated pages, account page | **members** | `references\u002Fmembers\u002FINSTRUCTIONS.md` |\n| Portfolio\u002Fshowcase: collections of projects, project pages with media galleries | **portfolio** | `references\u002Fportfolio\u002FINSTRUCTIONS.md` |\n| Membership\u002Fsubscription plans: pricing page, plan detail, hosted purchase | **pricing-plans** | `references\u002Fpricing-plans\u002FINSTRUCTIONS.md` |\n| Restaurant: menu with photos, online ordering, table reservations | **restaurants** | `references\u002Frestaurants\u002FINSTRUCTIONS.md` |\n\nVerticals compose: a brief that spans several (a restaurant with a blog, a store with member\naccounts) deploys them together — fast-path takes one vertical; deploy the rest with\n`node \u003CSKILL_ROOT>\u002Finstall\u002Fdeploy.mjs \u003Cvertical…>` from the project root before the install\nstarts, and run each vertical's seed. A request that doesn't match any shipped vertical isn't\nthis skill's fast path — route it to `wix-headless` rather than improvising an unshipped\nvertical here.\n\n## Adding a vertical (structure contract)\n\nNew verticals follow the same layout — the deploy script discovers them automatically (any\n`references\u002F\u003Cname>\u002Fapp\u002F` directory is a vertical):\n\n```\nreferences\u002F\u003Cvertical>\u002F\n  INSTRUCTIONS.md      # playbook: file map, wiring per stack, what you build, hard rules, verify\n  app\u002F                 # framework-agnostic core — disjoint paths so verticals never collide:\n    wix\u002F\u003Cvertical>\u002F    #   types.ts (DTOs) + data layer (calls via ..\u002Fsdk, images via ..\u002Fmedia)\n    hooks\u002F\u003Cvertical>\u002F  #   React hooks (SSR-friendly: accept initial data)\n    components\u002F\u003Cvertical>\u002F  # routing-free components (plain \u003Ca> default + LinkComponent prop)\n    styles\u002Fglobal.css  # Tailwind v4 + the @theme design tokens (shared token family)\n  app-astro\u002F           # Astro overlay importing ONLY from the core:\n    pages\u002F…            #   SSR fetch → DTO props → client:load islands; item pages carry\n                       #   wixMetadata + \u003CSEO.Tags>; chrome islands are client:only\n    layouts\u002F…          #   (reuse SiteLayout when it fits)\n  seed\u002F                # seed-\u003Cvertical>.mjs (REST, mints its own CLI token) + SEED.md\n```\n\nCore rules the structure encodes: raw API entities never leave the data layer (DTOs only);\nclient-shared state uses a module-scope store (never React context — it can't span Astro\nislands); every image URL is resolved through `src\u002Fwix\u002Fmedia.ts`; every money value is a\nformatted string by the time a component sees it.\n",{"data":35,"body":36},{"name":4,"description":6},{"type":37,"children":38},"root",[39,47,70,77,163,169,315,321,829,834,840,1092,1112,1118,1131,1141,1154],{"type":40,"tag":41,"props":42,"children":43},"element","h1",{"id":4},[44],{"type":45,"value":46},"text","Wix Headless Fast",{"type":40,"tag":48,"props":49,"children":50},"p",{},[51,53,59,61,68],{"type":45,"value":52},"Build a Wix Headless site by ",{"type":40,"tag":54,"props":55,"children":56},"strong",{},[57],{"type":45,"value":58},"deploying shipped code, not authoring it",{"type":45,"value":60},". Where ",{"type":40,"tag":62,"props":63,"children":65},"code",{"className":64},[],[66],{"type":45,"value":67},"wix-headless",{"type":45,"value":69},"\nhands the agent recipes to code from, this skill ships the integration itself — a typed data\nlayer, hooks, components, pages, and a seed script that are already correct — and the agent's\njob narrows to brand, layout, copy, and wiring. The decisions live in the code; don't\nre-litigate them.",{"type":40,"tag":71,"props":72,"children":74},"h2",{"id":73},"relationship-to-sibling-skills",[75],{"type":45,"value":76},"Relationship to sibling skills",{"type":40,"tag":78,"props":79,"children":80},"table",{},[81,100],{"type":40,"tag":82,"props":83,"children":84},"thead",{},[85],{"type":40,"tag":86,"props":87,"children":88},"tr",{},[89,95],{"type":40,"tag":90,"props":91,"children":92},"th",{},[93],{"type":45,"value":94},"Skill",{"type":40,"tag":90,"props":96,"children":97},{},[98],{"type":45,"value":99},"Use when",{"type":40,"tag":101,"props":102,"children":103},"tbody",{},[104,122,138],{"type":40,"tag":86,"props":105,"children":106},{},[107,117],{"type":40,"tag":108,"props":109,"children":110},"td",{},[111,115],{"type":40,"tag":54,"props":112,"children":113},{},[114],{"type":45,"value":4},{"type":45,"value":116}," (this)",{"type":40,"tag":108,"props":118,"children":119},{},[120],{"type":45,"value":121},"A supported vertical fits the request and the frontend is Astro or React — the fast path.",{"type":40,"tag":86,"props":123,"children":124},{},[125,133],{"type":40,"tag":108,"props":126,"children":127},{},[128],{"type":40,"tag":62,"props":129,"children":131},{"className":130},[],[132],{"type":45,"value":67},{"type":40,"tag":108,"props":134,"children":135},{},[136],{"type":45,"value":137},"A vertical this skill doesn't ship yet, a non-React frontend, backend-only runs, or stripe\u002Fself-managed project types.",{"type":40,"tag":86,"props":139,"children":140},{},[141,150],{"type":40,"tag":108,"props":142,"children":143},{},[144],{"type":40,"tag":62,"props":145,"children":147},{"className":146},[],[148],{"type":45,"value":149},"wix-vibe-headless",{"type":40,"tag":108,"props":151,"children":152},{},[153,155,161],{"type":45,"value":154},"Client-only REST over a ",{"type":40,"tag":62,"props":156,"children":158},{"className":157},[],[159],{"type":45,"value":160},"WIX_CLIENT_ID",{"type":45,"value":162}," inside a vibe platform (Base44 etc.) — no SDK, no CLI.",{"type":40,"tag":71,"props":164,"children":166},{"id":165},"the-model",[167],{"type":45,"value":168},"The model",{"type":40,"tag":170,"props":171,"children":172},"ul",{},[173,254,280,305],{"type":40,"tag":174,"props":175,"children":176},"li",{},[177,182,184,190,192],{"type":40,"tag":54,"props":178,"children":179},{},[180],{"type":45,"value":181},"Shipped code is the implementation.",{"type":45,"value":183}," Every vertical ships under ",{"type":40,"tag":62,"props":185,"children":187},{"className":186},[],[188],{"type":45,"value":189},"references\u002F\u003Cvertical>\u002F",{"type":45,"value":191},":\n",{"type":40,"tag":170,"props":193,"children":194},{},[195,213,224,243],{"type":40,"tag":174,"props":196,"children":197},{},[198,204,206,211],{"type":40,"tag":62,"props":199,"children":201},{"className":200},[],[202],{"type":45,"value":203},"app\u002F",{"type":45,"value":205}," — the framework-agnostic core (TypeScript): a data layer that returns ",{"type":40,"tag":54,"props":207,"children":208},{},[209],{"type":45,"value":210},"plain,\nserializable DTOs",{"type":45,"value":212}," (images resolved to https URLs, prices pre-formatted), React hooks, and\nrouting-free headless components. Works in Astro islands, Vite SPAs, and Next.",{"type":40,"tag":174,"props":214,"children":215},{},[216,222],{"type":40,"tag":62,"props":217,"children":219},{"className":218},[],[220],{"type":45,"value":221},"app-astro\u002F",{"type":45,"value":223}," — a thin Astro overlay: SSR pages that fetch via the core and pass DTOs to\nislands, with owner-editable item-page SEO pre-wired.",{"type":40,"tag":174,"props":225,"children":226},{},[227,233,235,241],{"type":40,"tag":62,"props":228,"children":230},{"className":229},[],[231],{"type":45,"value":232},"seed\u002F",{"type":45,"value":234}," — a build-time REST seed script (plain-data plan in, created content out) plus its\n",{"type":40,"tag":62,"props":236,"children":238},{"className":237},[],[239],{"type":45,"value":240},"SEED.md",{"type":45,"value":242}," contract.",{"type":40,"tag":174,"props":244,"children":245},{},[246,252],{"type":40,"tag":62,"props":247,"children":249},{"className":248},[],[250],{"type":45,"value":251},"INSTRUCTIONS.md",{"type":45,"value":253}," — the vertical's playbook: file map, what you build, hard rules, verify.",{"type":40,"tag":174,"props":255,"children":256},{},[257,262,264,270,272,278],{"type":40,"tag":54,"props":258,"children":259},{},[260],{"type":45,"value":261},"One auth seam.",{"type":45,"value":263}," All shipped code calls Wix through ",{"type":40,"tag":62,"props":265,"children":267},{"className":266},[],[268],{"type":45,"value":269},"src\u002Fwix\u002Fsdk.ts",{"type":45,"value":271},": on Wix-managed Astro\nauth is ambient (no client, no id); on any other React setup the same file runs a manual\nvisitor client off the public client id in ",{"type":40,"tag":62,"props":273,"children":275},{"className":274},[],[276],{"type":45,"value":277},"src\u002Fwix\u002Fconfig.ts",{"type":45,"value":279},". The deploy step configures\nthis — nothing to wire by hand.",{"type":40,"tag":174,"props":281,"children":282},{},[283,288,290,296,298,303],{"type":40,"tag":54,"props":284,"children":285},{},[286],{"type":45,"value":287},"Data as-is; presentation is yours.",{"type":45,"value":289}," The data layer, hooks, and cart chrome are wired\nas-is — never rewrite their internals, re-route them through API routes, or re-derive a\nrequest shape (for a genuine gap, add a new function in the data layer, or consult the\n",{"type":40,"tag":62,"props":291,"children":293},{"className":292},[],[294],{"type":45,"value":295},"wix-docs",{"type":45,"value":297}," skill for the API contract). The presentation components ship only as\n",{"type":40,"tag":54,"props":299,"children":300},{},[301],{"type":45,"value":302},"references",{"type":45,"value":304},": the vertical's INSTRUCTIONS names the surfaces you design and implement\nyourself on the shipped hooks (for storefront: card, grid, shop + PDP surfaces, home).",{"type":40,"tag":174,"props":306,"children":307},{},[308,313],{"type":40,"tag":54,"props":309,"children":310},{},[311],{"type":45,"value":312},"Never mock, fail loudly, purchases via Wix.",{"type":45,"value":314}," Live data or an honest empty state; surfaced\nerrors, not swallowed ones; checkout\u002Fpurchase always through the Wix redirect session.",{"type":40,"tag":71,"props":316,"children":318},{"id":317},"the-run",[319],{"type":45,"value":320},"The run",{"type":40,"tag":322,"props":323,"children":324},"ol",{},[325,349,381,664,719],{"type":40,"tag":174,"props":326,"children":327},{},[328,333,335,340,342,347],{"type":40,"tag":54,"props":329,"children":330},{},[331],{"type":45,"value":332},"Resolve the stack.",{"type":45,"value":334}," Default is ",{"type":40,"tag":54,"props":336,"children":337},{},[338],{"type":45,"value":339},"Wix-managed Astro",{"type":45,"value":341}," — take it unless the user names a\ndifferent React framework or the directory already holds a non-Astro React project. A\nnon-React frontend is out of scope → ",{"type":40,"tag":62,"props":343,"children":345},{"className":344},[],[346],{"type":45,"value":67},{"type":45,"value":348},".",{"type":40,"tag":174,"props":350,"children":351},{},[352,357,359,364,366,371,373,379],{"type":40,"tag":54,"props":353,"children":354},{},[355],{"type":45,"value":356},"Draft the seed plan",{"type":45,"value":358}," (read only the vertical's ",{"type":40,"tag":62,"props":360,"children":362},{"className":361},[],[363],{"type":45,"value":240},{"type":45,"value":365}," for this — it depends only on\nthe brief; save the vertical's ",{"type":40,"tag":62,"props":367,"children":369},{"className":368},[],[370],{"type":45,"value":251},{"type":45,"value":372}," for step 4, where it's needed). Requires from here on: Node ≥ 20.11 and a logged-in Wix CLI\n(",{"type":40,"tag":62,"props":374,"children":376},{"className":375},[],[377],{"type":45,"value":378},"npx @wix\u002Fcli@latest whoami",{"type":45,"value":380},"; login via the device-code flow — surface the URL+code, never\nread tokens into context).",{"type":40,"tag":174,"props":382,"children":383},{},[384,389,391,496,500,506,508,511,513,518,520,525,527,532,534,540,542,547,549,555,557,562,564,570,572,578,580,583,588,594,596,602,604,610,612,618,620,625,627,632,634,639,641,647,649,655,657,662],{"type":40,"tag":54,"props":385,"children":386},{},[387],{"type":45,"value":388},"Create runs (empty directory): run the fast path",{"type":45,"value":390}," — one deterministic call:",{"type":40,"tag":392,"props":393,"children":398},"pre",{"className":394,"code":395,"language":396,"meta":397,"style":397},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","node \u003CSKILL_ROOT>\u002Finstall\u002Ffast-path.mjs --business-name \"\u003CBrand>\" --plan plan.json --vertical \u003Cvertical>\n","bash","",[399],{"type":40,"tag":62,"props":400,"children":401},{"__ignoreMap":397},[402],{"type":40,"tag":403,"props":404,"children":407},"span",{"class":405,"line":406},"line",1,[408,414,420,426,432,437,442,447,452,457,462,467,472,477,481,486,491],{"type":40,"tag":403,"props":409,"children":411},{"style":410},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[412],{"type":45,"value":413},"node",{"type":40,"tag":403,"props":415,"children":417},{"style":416},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[418],{"type":45,"value":419}," \u003C",{"type":40,"tag":403,"props":421,"children":423},{"style":422},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[424],{"type":45,"value":425},"SKILL_ROO",{"type":40,"tag":403,"props":427,"children":429},{"style":428},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[430],{"type":45,"value":431},"T",{"type":40,"tag":403,"props":433,"children":434},{"style":416},[435],{"type":45,"value":436},">",{"type":40,"tag":403,"props":438,"children":439},{"style":422},[440],{"type":45,"value":441},"\u002Finstall\u002Ffast-path.mjs",{"type":40,"tag":403,"props":443,"children":444},{"style":422},[445],{"type":45,"value":446}," --business-name",{"type":40,"tag":403,"props":448,"children":449},{"style":416},[450],{"type":45,"value":451}," \"",{"type":40,"tag":403,"props":453,"children":454},{"style":422},[455],{"type":45,"value":456},"\u003CBrand>",{"type":40,"tag":403,"props":458,"children":459},{"style":416},[460],{"type":45,"value":461},"\"",{"type":40,"tag":403,"props":463,"children":464},{"style":422},[465],{"type":45,"value":466}," --plan",{"type":40,"tag":403,"props":468,"children":469},{"style":422},[470],{"type":45,"value":471}," plan.json",{"type":40,"tag":403,"props":473,"children":474},{"style":422},[475],{"type":45,"value":476}," --vertical",{"type":40,"tag":403,"props":478,"children":479},{"style":416},[480],{"type":45,"value":419},{"type":40,"tag":403,"props":482,"children":483},{"style":422},[484],{"type":45,"value":485},"vertica",{"type":40,"tag":403,"props":487,"children":488},{"style":428},[489],{"type":45,"value":490},"l",{"type":40,"tag":403,"props":492,"children":493},{"style":416},[494],{"type":45,"value":495},">\n",{"type":40,"tag":497,"props":498,"children":499},"br",{},[],{"type":40,"tag":62,"props":501,"children":503},{"className":502},[],[504],{"type":45,"value":505},"--vertical",{"type":45,"value":507}," is required and picks which shipped code deploys AND which seed runs — use\nthe vertical you resolved from the Verticals table.",{"type":40,"tag":497,"props":509,"children":510},{},[],{"type":45,"value":512},"It emits one JSON event per line and returns in ",{"type":40,"tag":54,"props":514,"children":515},{},[516],{"type":45,"value":517},"~35s",{"type":45,"value":519},": ",{"type":40,"tag":54,"props":521,"children":522},{},[523],{"type":45,"value":524},"scaffolds",{"type":45,"value":526}," the project,\n",{"type":40,"tag":54,"props":528,"children":529},{},[530],{"type":45,"value":531},"deploys",{"type":45,"value":533}," the shipped code (patching ",{"type":40,"tag":62,"props":535,"children":537},{"className":536},[],[538],{"type":45,"value":539},"package.json",{"type":45,"value":541}," with every dependency the code\nimports, and placing the pre-resolved lockfile), then ",{"type":40,"tag":54,"props":543,"children":544},{},[545],{"type":45,"value":546},"starts two detached background\njobs",{"type":45,"value":548}," — the dependency install (",{"type":40,"tag":62,"props":550,"children":552},{"className":551},[],[553],{"type":45,"value":554},"npm ci --ignore-scripts || npm install --ignore-scripts",{"type":45,"value":556},")\nand the ",{"type":40,"tag":54,"props":558,"children":559},{},[560],{"type":45,"value":561},"seed",{"type":45,"value":563}," — whose logs and completion markers are in the events. The final\n",{"type":40,"tag":62,"props":565,"children":567},{"className":566},[],[568],{"type":45,"value":569},"ready_for_brand_layer",{"type":45,"value":571}," event carries the project dir, siteId, ready-made dashboard links,\nand both markers. Relay notable events. On an ",{"type":40,"tag":62,"props":573,"children":575},{"className":574},[],[576],{"type":45,"value":577},"error",{"type":45,"value":579}," event, recover just that step via the\nmanual path below, then continue.",{"type":40,"tag":497,"props":581,"children":582},{},[],{"type":40,"tag":54,"props":584,"children":585},{},[586],{"type":45,"value":587},"Connect\u002Fiterate runs (a project already on disk): never scaffold — use the manual path:",{"type":40,"tag":62,"props":589,"children":591},{"className":590},[],[592],{"type":45,"value":593},"CI=1 npm create @wix\u002Fnew@latest init",{"type":45,"value":595}," in place if there is no ",{"type":40,"tag":62,"props":597,"children":599},{"className":598},[],[600],{"type":45,"value":601},"wix.config.json",{"type":45,"value":603}," yet; then\n",{"type":40,"tag":62,"props":605,"children":607},{"className":606},[],[608],{"type":45,"value":609},"node \u003CSKILL_ROOT>\u002Finstall\u002Fdeploy.mjs \u003Cvertical…> --stack astro|react",{"type":45,"value":611}," from the project root\n(react stack: add ",{"type":40,"tag":62,"props":613,"children":615},{"className":614},[],[616],{"type":45,"value":617},"--client-id",{"type":45,"value":619}," if there is no ",{"type":40,"tag":62,"props":621,"children":623},{"className":622},[],[624],{"type":45,"value":601},{"type":45,"value":626}," to read the public id\nfrom); then ONE ",{"type":40,"tag":62,"props":628,"children":630},{"className":629},[],[631],{"type":45,"value":554},{"type":45,"value":633}," (backgroundable —\nbut ",{"type":40,"tag":54,"props":635,"children":636},{},[637],{"type":45,"value":638},"never run a second npm install concurrently",{"type":45,"value":640},": two npms in one ",{"type":40,"tag":62,"props":642,"children":644},{"className":643},[],[645],{"type":45,"value":646},"node_modules",{"type":45,"value":648}," race and\nredo each other's work); then seed per the vertical's ",{"type":40,"tag":62,"props":650,"children":652},{"className":651},[],[653],{"type":45,"value":654},"seed\u002FSEED.md",{"type":45,"value":656},". Seeding is\n",{"type":40,"tag":54,"props":658,"children":659},{},[660],{"type":45,"value":661},"additive",{"type":45,"value":663},": never delete or overwrite existing content; if a cleanup seems needed, ask.",{"type":40,"tag":174,"props":665,"children":666},{},[667,672,674,679,681,686,688,694,696,702,704,710,712,717],{"type":40,"tag":54,"props":668,"children":669},{},[670],{"type":45,"value":671},"Design and build the presentation while the install finishes",{"type":45,"value":673}," — in the project dir from\nthe ",{"type":40,"tag":62,"props":675,"children":677},{"className":676},[],[678],{"type":45,"value":569},{"type":45,"value":680}," event, per the vertical's ",{"type":40,"tag":62,"props":682,"children":684},{"className":683},[],[685],{"type":45,"value":251},{"type":45,"value":687},": set the ",{"type":40,"tag":62,"props":689,"children":691},{"className":690},[],[692],{"type":45,"value":693},"@theme",{"type":45,"value":695},"\ntokens, brand the chrome, and implement the vertical's creative surfaces yourself on the\nshipped hooks (for storefront: your product card + grid, shop surface, PDP surface, and the\nhome page) — designed to fit the brief, not copied from the reference components. Read the\nINSTRUCTIONS and the shared floors — ",{"type":40,"tag":62,"props":697,"children":699},{"className":698},[],[700],{"type":45,"value":701},"references\u002Fshared\u002FDESIGN.md",{"type":45,"value":703}," +\n",{"type":40,"tag":62,"props":705,"children":707},{"className":706},[],[708],{"type":45,"value":709},"references\u002Fshared\u002FCONTENT.md",{"type":45,"value":711}," — now (not earlier — their contracts matter only from this\nstep on); the hook\u002FDTO\ncontracts are inlined there, so don't open the shipped files themselves. ",{"type":40,"tag":54,"props":713,"children":714},{},[715],{"type":45,"value":716},"Author your\nsurfaces in as few messages as possible",{"type":45,"value":718}," — batch multiple Write calls in one message\n(components are independent files); don't pay a round-trip per file.",{"type":40,"tag":174,"props":720,"children":721},{},[722,727,729,735,737,743,745,750,752,757,759,765,767,773,775,781,783,788,790,796,798,804,806,812,814,827],{"type":40,"tag":54,"props":723,"children":724},{},[725],{"type":45,"value":726},"When both background jobs have completed",{"type":45,"value":728}," — the install's marker\n(",{"type":40,"tag":62,"props":730,"children":732},{"className":731},[],[733],{"type":45,"value":734},"node_modules\u002F.package-lock.json",{"type":45,"value":736},") and the seed's (",{"type":40,"tag":62,"props":738,"children":740},{"className":739},[],[741],{"type":45,"value":742},".seed-exit",{"type":45,"value":744},") both exist — ",{"type":40,"tag":54,"props":746,"children":747},{},[748],{"type":45,"value":749},"verify the\nseed succeeded",{"type":45,"value":751}," (",{"type":40,"tag":62,"props":753,"children":755},{"className":754},[],[756],{"type":45,"value":742},{"type":45,"value":758}," contains ",{"type":40,"tag":62,"props":760,"children":762},{"className":761},[],[763],{"type":45,"value":764},"0",{"type":45,"value":766},"; ",{"type":40,"tag":62,"props":768,"children":770},{"className":769},[],[771],{"type":45,"value":772},"seed-result.json",{"type":45,"value":774}," has the created counts for\nyour summary — if non-zero, read ",{"type":40,"tag":62,"props":776,"children":778},{"className":777},[],[779],{"type":45,"value":780},"seed.log",{"type":45,"value":782}," and re-run the seed module manually). Then\n",{"type":40,"tag":54,"props":784,"children":785},{},[786],{"type":45,"value":787},"build & release once",{"type":45,"value":789}," (managed):\n",{"type":40,"tag":62,"props":791,"children":793},{"className":792},[],[794],{"type":45,"value":795},"npx @wix\u002Fcli@latest build",{"type":45,"value":797}," then ",{"type":40,"tag":62,"props":799,"children":801},{"className":800},[],[802],{"type":45,"value":803},"npx @wix\u002Fcli@latest release",{"type":45,"value":805}," (if the install failed, run\nit once more and then build). Don't build+release mid-flow; backend content is fetched at\nruntime, so a re-release never \"refreshes\" seeded data. The run is complete only when the\nsite is released — close with the live URL and the dashboard link\n",{"type":40,"tag":62,"props":807,"children":809},{"className":808},[],[810],{"type":45,"value":811},"https:\u002F\u002Fmanage.wix.com\u002Fdashboard\u002F\u003CsiteId>",{"type":45,"value":813},". ",{"type":40,"tag":54,"props":815,"children":816},{},[817,819,825],{"type":45,"value":818},"Copy the live URL verbatim from the\n",{"type":40,"tag":62,"props":820,"children":822},{"className":821},[],[823],{"type":45,"value":824},"wix release",{"type":45,"value":826}," output — never retype it from memory",{"type":45,"value":828}," (a mistyped subdomain hands the user\na 404).",{"type":40,"tag":48,"props":830,"children":831},{},[832],{"type":45,"value":833},"Don't smoke-test with a dev server unless the user explicitly asks to verify — correctness\ncomes from the shipped code, and real errors surface at build\u002Frelease.",{"type":40,"tag":71,"props":835,"children":837},{"id":836},"verticals",[838],{"type":45,"value":839},"Verticals",{"type":40,"tag":78,"props":841,"children":842},{},[843,864],{"type":40,"tag":82,"props":844,"children":845},{},[846],{"type":40,"tag":86,"props":847,"children":848},{},[849,854,859],{"type":40,"tag":90,"props":850,"children":851},{},[852],{"type":45,"value":853},"The user wants…",{"type":40,"tag":90,"props":855,"children":856},{},[857],{"type":45,"value":858},"Vertical",{"type":40,"tag":90,"props":860,"children":861},{},[862],{"type":45,"value":863},"Playbook",{"type":40,"tag":101,"props":865,"children":866},{},[867,892,917,942,967,992,1017,1042,1067],{"type":40,"tag":86,"props":868,"children":869},{},[870,875,883],{"type":40,"tag":108,"props":871,"children":872},{},[873],{"type":45,"value":874},"Online store: products, categories, variants, cart, checkout",{"type":40,"tag":108,"props":876,"children":877},{},[878],{"type":40,"tag":54,"props":879,"children":880},{},[881],{"type":45,"value":882},"storefront",{"type":40,"tag":108,"props":884,"children":885},{},[886],{"type":40,"tag":62,"props":887,"children":889},{"className":888},[],[890],{"type":45,"value":891},"references\u002Fstorefront\u002FINSTRUCTIONS.md",{"type":40,"tag":86,"props":893,"children":894},{},[895,900,908],{"type":40,"tag":108,"props":896,"children":897},{},[898],{"type":45,"value":899},"Appointments\u002Fclasses: services, time slots, staff, booking, checkout",{"type":40,"tag":108,"props":901,"children":902},{},[903],{"type":40,"tag":54,"props":904,"children":905},{},[906],{"type":45,"value":907},"bookings",{"type":40,"tag":108,"props":909,"children":910},{},[911],{"type":40,"tag":62,"props":912,"children":914},{"className":913},[],[915],{"type":45,"value":916},"references\u002Fbookings\u002FINSTRUCTIONS.md",{"type":40,"tag":86,"props":918,"children":919},{},[920,925,933],{"type":40,"tag":108,"props":921,"children":922},{},[923],{"type":45,"value":924},"Blog: post feed, categories\u002Ftags, rich-content post pages",{"type":40,"tag":108,"props":926,"children":927},{},[928],{"type":40,"tag":54,"props":929,"children":930},{},[931],{"type":45,"value":932},"blog",{"type":40,"tag":108,"props":934,"children":935},{},[936],{"type":40,"tag":62,"props":937,"children":939},{"className":938},[],[940],{"type":45,"value":941},"references\u002Fblog\u002FINSTRUCTIONS.md",{"type":40,"tag":86,"props":943,"children":944},{},[945,950,958],{"type":40,"tag":108,"props":946,"children":947},{},[948],{"type":45,"value":949},"Structured content collections (directory, recipes, listings) with pages designed per schema",{"type":40,"tag":108,"props":951,"children":952},{},[953],{"type":40,"tag":54,"props":954,"children":955},{},[956],{"type":45,"value":957},"cms",{"type":40,"tag":108,"props":959,"children":960},{},[961],{"type":40,"tag":62,"props":962,"children":964},{"className":963},[],[965],{"type":45,"value":966},"references\u002Fcms\u002FINSTRUCTIONS.md",{"type":40,"tag":86,"props":968,"children":969},{},[970,975,983],{"type":40,"tag":108,"props":971,"children":972},{},[973],{"type":45,"value":974},"Events: listing, event pages, free RSVP, ticket sales via hosted checkout",{"type":40,"tag":108,"props":976,"children":977},{},[978],{"type":40,"tag":54,"props":979,"children":980},{},[981],{"type":45,"value":982},"events",{"type":40,"tag":108,"props":984,"children":985},{},[986],{"type":40,"tag":62,"props":987,"children":989},{"className":988},[],[990],{"type":45,"value":991},"references\u002Fevents\u002FINSTRUCTIONS.md",{"type":40,"tag":86,"props":993,"children":994},{},[995,1000,1008],{"type":40,"tag":108,"props":996,"children":997},{},[998],{"type":45,"value":999},"Member accounts: login\u002Fsign-up, gated pages, account page",{"type":40,"tag":108,"props":1001,"children":1002},{},[1003],{"type":40,"tag":54,"props":1004,"children":1005},{},[1006],{"type":45,"value":1007},"members",{"type":40,"tag":108,"props":1009,"children":1010},{},[1011],{"type":40,"tag":62,"props":1012,"children":1014},{"className":1013},[],[1015],{"type":45,"value":1016},"references\u002Fmembers\u002FINSTRUCTIONS.md",{"type":40,"tag":86,"props":1018,"children":1019},{},[1020,1025,1033],{"type":40,"tag":108,"props":1021,"children":1022},{},[1023],{"type":45,"value":1024},"Portfolio\u002Fshowcase: collections of projects, project pages with media galleries",{"type":40,"tag":108,"props":1026,"children":1027},{},[1028],{"type":40,"tag":54,"props":1029,"children":1030},{},[1031],{"type":45,"value":1032},"portfolio",{"type":40,"tag":108,"props":1034,"children":1035},{},[1036],{"type":40,"tag":62,"props":1037,"children":1039},{"className":1038},[],[1040],{"type":45,"value":1041},"references\u002Fportfolio\u002FINSTRUCTIONS.md",{"type":40,"tag":86,"props":1043,"children":1044},{},[1045,1050,1058],{"type":40,"tag":108,"props":1046,"children":1047},{},[1048],{"type":45,"value":1049},"Membership\u002Fsubscription plans: pricing page, plan detail, hosted purchase",{"type":40,"tag":108,"props":1051,"children":1052},{},[1053],{"type":40,"tag":54,"props":1054,"children":1055},{},[1056],{"type":45,"value":1057},"pricing-plans",{"type":40,"tag":108,"props":1059,"children":1060},{},[1061],{"type":40,"tag":62,"props":1062,"children":1064},{"className":1063},[],[1065],{"type":45,"value":1066},"references\u002Fpricing-plans\u002FINSTRUCTIONS.md",{"type":40,"tag":86,"props":1068,"children":1069},{},[1070,1075,1083],{"type":40,"tag":108,"props":1071,"children":1072},{},[1073],{"type":45,"value":1074},"Restaurant: menu with photos, online ordering, table reservations",{"type":40,"tag":108,"props":1076,"children":1077},{},[1078],{"type":40,"tag":54,"props":1079,"children":1080},{},[1081],{"type":45,"value":1082},"restaurants",{"type":40,"tag":108,"props":1084,"children":1085},{},[1086],{"type":40,"tag":62,"props":1087,"children":1089},{"className":1088},[],[1090],{"type":45,"value":1091},"references\u002Frestaurants\u002FINSTRUCTIONS.md",{"type":40,"tag":48,"props":1093,"children":1094},{},[1095,1097,1103,1105,1110],{"type":45,"value":1096},"Verticals compose: a brief that spans several (a restaurant with a blog, a store with member\naccounts) deploys them together — fast-path takes one vertical; deploy the rest with\n",{"type":40,"tag":62,"props":1098,"children":1100},{"className":1099},[],[1101],{"type":45,"value":1102},"node \u003CSKILL_ROOT>\u002Finstall\u002Fdeploy.mjs \u003Cvertical…>",{"type":45,"value":1104}," from the project root before the install\nstarts, and run each vertical's seed. A request that doesn't match any shipped vertical isn't\nthis skill's fast path — route it to ",{"type":40,"tag":62,"props":1106,"children":1108},{"className":1107},[],[1109],{"type":45,"value":67},{"type":45,"value":1111}," rather than improvising an unshipped\nvertical here.",{"type":40,"tag":71,"props":1113,"children":1115},{"id":1114},"adding-a-vertical-structure-contract",[1116],{"type":45,"value":1117},"Adding a vertical (structure contract)",{"type":40,"tag":48,"props":1119,"children":1120},{},[1121,1123,1129],{"type":45,"value":1122},"New verticals follow the same layout — the deploy script discovers them automatically (any\n",{"type":40,"tag":62,"props":1124,"children":1126},{"className":1125},[],[1127],{"type":45,"value":1128},"references\u002F\u003Cname>\u002Fapp\u002F",{"type":45,"value":1130}," directory is a vertical):",{"type":40,"tag":392,"props":1132,"children":1136},{"className":1133,"code":1135,"language":45},[1134],"language-text","references\u002F\u003Cvertical>\u002F\n  INSTRUCTIONS.md      # playbook: file map, wiring per stack, what you build, hard rules, verify\n  app\u002F                 # framework-agnostic core — disjoint paths so verticals never collide:\n    wix\u002F\u003Cvertical>\u002F    #   types.ts (DTOs) + data layer (calls via ..\u002Fsdk, images via ..\u002Fmedia)\n    hooks\u002F\u003Cvertical>\u002F  #   React hooks (SSR-friendly: accept initial data)\n    components\u002F\u003Cvertical>\u002F  # routing-free components (plain \u003Ca> default + LinkComponent prop)\n    styles\u002Fglobal.css  # Tailwind v4 + the @theme design tokens (shared token family)\n  app-astro\u002F           # Astro overlay importing ONLY from the core:\n    pages\u002F…            #   SSR fetch → DTO props → client:load islands; item pages carry\n                       #   wixMetadata + \u003CSEO.Tags>; chrome islands are client:only\n    layouts\u002F…          #   (reuse SiteLayout when it fits)\n  seed\u002F                # seed-\u003Cvertical>.mjs (REST, mints its own CLI token) + SEED.md\n",[1137],{"type":40,"tag":62,"props":1138,"children":1139},{"__ignoreMap":397},[1140],{"type":45,"value":1135},{"type":40,"tag":48,"props":1142,"children":1143},{},[1144,1146,1152],{"type":45,"value":1145},"Core rules the structure encodes: raw API entities never leave the data layer (DTOs only);\nclient-shared state uses a module-scope store (never React context — it can't span Astro\nislands); every image URL is resolved through ",{"type":40,"tag":62,"props":1147,"children":1149},{"className":1148},[],[1150],{"type":45,"value":1151},"src\u002Fwix\u002Fmedia.ts",{"type":45,"value":1153},"; every money value is a\nformatted string by the time a component sees it.",{"type":40,"tag":1155,"props":1156,"children":1157},"style",{},[1158],{"type":45,"value":1159},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":1161,"total":1317},[1162,1176,1190,1204,1219,1231,1243,1258,1270,1280,1296,1307],{"slug":1163,"name":1163,"fn":1164,"description":1165,"org":1166,"tags":1167,"stars":23,"repoUrl":24,"updatedAt":1175},"replatform","route RePlatform source-to-Wix migrations","Routes RePlatform source-to-Wix migrations to the next workflow step by inspecting migration project artifacts. Use when starting, continuing, or recovering a migration run.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1168,1171,1174],{"name":1169,"slug":1170,"type":13},"Automation","automation",{"name":1172,"slug":1173,"type":13},"Migration","migration",{"name":9,"slug":8,"type":13},"2026-08-09T04:33:25.965778",{"slug":1177,"name":1177,"fn":1178,"description":1179,"org":1180,"tags":1181,"stars":23,"repoUrl":24,"updatedAt":1189},"rp-facelift","apply UI refinements to Wix sites","Apply an explicitly requested, identity-preserving UI\u002FUX refinement after clone acceptance.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1182,1185,1188],{"name":1183,"slug":1184,"type":13},"Design","design",{"name":1186,"slug":1187,"type":13},"UX Design","ux-design",{"name":9,"slug":8,"type":13},"2026-08-29T09:47:55.97974",{"slug":1191,"name":1191,"fn":1192,"description":1193,"org":1194,"tags":1195,"stars":23,"repoUrl":24,"updatedAt":1203},"rp-project-context","validate Wix project scope and readiness","Resolve headless mode, scope, Wix project validity, and browser execution readiness.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1196,1199,1202],{"name":1197,"slug":1198,"type":13},"Operations","operations",{"name":1200,"slug":1201,"type":13},"Project Management","project-management",{"name":9,"slug":8,"type":13},"2026-08-29T09:47:57.05685",{"slug":1205,"name":1205,"fn":1206,"description":1207,"org":1208,"tags":1209,"stars":23,"repoUrl":24,"updatedAt":1218},"rp-qa-gap-loop","verify and finalize Wix frontend clones","Verify the running clone, perform auditable visual comparison and gap fixes, and finalize frontend completion.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1210,1213,1214,1217],{"name":1211,"slug":1212,"type":13},"Debugging","debugging",{"name":21,"slug":22,"type":13},{"name":1215,"slug":1216,"type":13},"QA","qa",{"name":9,"slug":8,"type":13},"2026-08-29T09:48:02.31775",{"slug":1220,"name":1220,"fn":1221,"description":1222,"org":1223,"tags":1224,"stars":23,"repoUrl":24,"updatedAt":1230},"rp-source-evidence","extract source evidence for headless clones","Produce fresh browser-derived source evidence and implementation contracts for a headless clone.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1225,1226,1229],{"name":18,"slug":19,"type":13},{"name":1227,"slug":1228,"type":13},"Web Scraping","web-scraping",{"name":9,"slug":8,"type":13},"2026-08-29T09:47:57.575268",{"slug":1232,"name":1232,"fn":1233,"description":1234,"org":1235,"tags":1236,"stars":23,"repoUrl":24,"updatedAt":1242},"rp-ui-implementation","implement Wix Headless frontends","Implement a Wix Headless clone from generated source evidence.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1237,1238,1241],{"name":21,"slug":22,"type":13},{"name":1239,"slug":1240,"type":13},"Web Development","web-development",{"name":9,"slug":8,"type":13},"2026-08-29T09:48:01.215375",{"slug":1244,"name":1244,"fn":1245,"description":1246,"org":1247,"tags":1248,"stars":23,"repoUrl":24,"updatedAt":1257},"wix-app","build Wix CLI app extensions","Build and review Wix CLI app extensions — dashboard pages, modals, plugins, menu plugins, custom element widgets, Editor React components, site plugins, embedded scripts, backend APIs, backend events, service plugins, data collections, and App Market readiness. Use when building ANY feature or extension for a Wix CLI app or preparing a Wix app for App Market review. Triggers on: add, build, create, implement, help me, dashboard, widget, plugin, backend, API, event, collection, embedded script, service plugin, Editor React component, checkout, shipping, tax, discount, SPI, CMS, schema, tracking, popup, admin panel, menu item, modal, validate, test, verify, register extension, App Market, app review, submission readiness.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1249,1252,1255,1256],{"name":1250,"slug":1251,"type":13},"Backend","backend",{"name":1253,"slug":1254,"type":13},"CLI","cli",{"name":21,"slug":22,"type":13},{"name":9,"slug":8,"type":13},"2026-08-29T09:22:46.721172",{"slug":1259,"name":1259,"fn":1260,"description":1261,"org":1262,"tags":1263,"stars":23,"repoUrl":24,"updatedAt":1269},"wix-auth","authenticate with Wix APIs","Authenticate with Wix to obtain an access token for calling Wix APIs. Use when an agent needs a valid Wix access token and has none, or when the stored token is expired.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1264,1265,1268],{"name":18,"slug":19,"type":13},{"name":1266,"slug":1267,"type":13},"Auth","auth",{"name":9,"slug":8,"type":13},"2026-07-07T06:47:46.95263",{"slug":1271,"name":1271,"fn":1272,"description":1273,"org":1274,"tags":1275,"stars":23,"repoUrl":24,"updatedAt":1279},"wix-base44-connector","build and integrate Wix applications","Build on the connected Wix site from a Base44 app — site management\u002Fadmin, front-end code, and backend functions: discover and call any Wix API, gather the site's context, route each call to the right identity, and follow curated recipes for multi-step admin flows.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1276,1277,1278],{"name":18,"slug":19,"type":13},{"name":1239,"slug":1240,"type":13},{"name":9,"slug":8,"type":13},"2026-08-29T09:22:47.676803",{"slug":1281,"name":1281,"fn":1282,"description":1283,"org":1284,"tags":1285,"stars":23,"repoUrl":24,"updatedAt":1295},"wix-design-system","build UIs with Wix Design System","Wix Design System component reference. Use when building UI with @wix\u002Fdesign-system, choosing components, checking props and examples, or writing tests with component testkits. Triggers on \"what component\", \"how do I make\", \"WDS\", \"show me props\", \"testkit\", \"driver\", or component names like Button, Card, Modal, Box, Text.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1286,1287,1290,1291,1294],{"name":1183,"slug":1184,"type":13},{"name":1288,"slug":1289,"type":13},"Design System","design-system",{"name":21,"slug":22,"type":13},{"name":1292,"slug":1293,"type":13},"UI Components","ui-components",{"name":9,"slug":8,"type":13},"2026-08-19T03:30:02.365475",{"slug":295,"name":295,"fn":1297,"description":1298,"org":1299,"tags":1300,"stars":23,"repoUrl":24,"updatedAt":1306},"lookup Wix API documentation","Look up the Wix API\u002FSDK documentation to confirm an exact endpoint, HTTP method, request\u002Fresponse shape, field, enum, or error before writing Wix code — never guess a Wix API from memory. A lookup is a short flow: find the right page, then read it. Two ways: (1) plain `curl` (zero dependencies) — find a page by **semantic search** (`POST \u002Fmcp-docs-search\u002Fv1\u002Fdocs\u002Fsearch`, natural-language `{ search_term, document_type }`) **or by browsing** the docs tree as a menu — a structured, typed, counted browse of the REST API reference (`POST \u002Fmcp-docs-search\u002Fv1\u002Fdocs\u002Fmenu\u002Fbrowse`), or the `.md` menu tree from the `llms.txt` root for any portal — then read the page by appending `.md` to its URL; and (2) the Wix MCP doc tools when your agent has them. Triggers: look up a Wix API, find the Wix endpoint\u002Fmethod, confirm a Wix request body or field, verify a Wix API shape, explore Wix docs, which Wix API do I call, read a Wix method schema.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1301,1302,1305],{"name":18,"slug":19,"type":13},{"name":1303,"slug":1304,"type":13},"Documentation","documentation",{"name":9,"slug":8,"type":13},"2026-08-19T03:30:03.411574",{"slug":67,"name":67,"fn":1308,"description":1309,"org":1310,"tags":1311,"stars":23,"repoUrl":24,"updatedAt":1316},"build Wix Managed Headless sites","Connect Wix business services (Stores, Bookings, CMS, Blog, Events, Forms, and more) to a Wix Headless frontend — infer the needed capabilities, install the apps, seed backend content, and produce an SDK-integration guide. For managed (Wix-hosted) projects it can also build the frontend: scaffold a new site (create) or wire an existing\u002Fbrought-in design (connect), then build and release. Works across managed, self-managed, and stripe project types. Triggers: set up a Wix Headless backend, add Wix business features to my app, build or host a Wix site, connect\u002Fimplement this design with Wix.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1312,1313,1314,1315],{"name":1183,"slug":1184,"type":13},{"name":21,"slug":22,"type":13},{"name":1239,"slug":1240,"type":13},{"name":9,"slug":8,"type":13},"2026-08-13T04:28:41.194499",18,{"items":1319,"total":1364},[1320,1326,1332,1338,1345,1351,1357],{"slug":1163,"name":1163,"fn":1164,"description":1165,"org":1321,"tags":1322,"stars":23,"repoUrl":24,"updatedAt":1175},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1323,1324,1325],{"name":1169,"slug":1170,"type":13},{"name":1172,"slug":1173,"type":13},{"name":9,"slug":8,"type":13},{"slug":1177,"name":1177,"fn":1178,"description":1179,"org":1327,"tags":1328,"stars":23,"repoUrl":24,"updatedAt":1189},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1329,1330,1331],{"name":1183,"slug":1184,"type":13},{"name":1186,"slug":1187,"type":13},{"name":9,"slug":8,"type":13},{"slug":1191,"name":1191,"fn":1192,"description":1193,"org":1333,"tags":1334,"stars":23,"repoUrl":24,"updatedAt":1203},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1335,1336,1337],{"name":1197,"slug":1198,"type":13},{"name":1200,"slug":1201,"type":13},{"name":9,"slug":8,"type":13},{"slug":1205,"name":1205,"fn":1206,"description":1207,"org":1339,"tags":1340,"stars":23,"repoUrl":24,"updatedAt":1218},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1341,1342,1343,1344],{"name":1211,"slug":1212,"type":13},{"name":21,"slug":22,"type":13},{"name":1215,"slug":1216,"type":13},{"name":9,"slug":8,"type":13},{"slug":1220,"name":1220,"fn":1221,"description":1222,"org":1346,"tags":1347,"stars":23,"repoUrl":24,"updatedAt":1230},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1348,1349,1350],{"name":18,"slug":19,"type":13},{"name":1227,"slug":1228,"type":13},{"name":9,"slug":8,"type":13},{"slug":1232,"name":1232,"fn":1233,"description":1234,"org":1352,"tags":1353,"stars":23,"repoUrl":24,"updatedAt":1242},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1354,1355,1356],{"name":21,"slug":22,"type":13},{"name":1239,"slug":1240,"type":13},{"name":9,"slug":8,"type":13},{"slug":1244,"name":1244,"fn":1245,"description":1246,"org":1358,"tags":1359,"stars":23,"repoUrl":24,"updatedAt":1257},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1360,1361,1362,1363],{"name":1250,"slug":1251,"type":13},{"name":1253,"slug":1254,"type":13},{"name":21,"slug":22,"type":13},{"name":9,"slug":8,"type":13},17]