All skills
wix avatar

/wix-app

@dc6f1fa official
by Wix.comwix/skills33 stars
33

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.

Use this Skill: https://skilld.dev/gh/wix/skills/wix-app

This session only. Nothing lands on disk.

referencesAPP_MARKET_REVIEW.md

≈5.3k tokens on demand. Your agent reads this file only when SKILL.md points to it.

Wix App Market Review

Use this reference when preparing a Wix CLI app for App Market submission, auditing review feedback, or checking whether an implementation is likely to pass technical review. Keep the review evidence-based: classify what the app actually does, then mark each relevant requirement as Confirmed, Not applicable, or Needs confirmation.

This page covers code-facing and repository-verifiable requirements. App Dashboard, pricing-page setup, company profile, and listing-copy checks require separate dashboard or listing verification unless the user provides direct evidence.


Review Workflow

  1. Identify the app surfaces first: billing model, auth/password usage, cookie usage, extension types, live-site surfaces, dashboard/setup surfaces, Wix business-solution dependencies, and webhooks.
  2. Start with a report-only pass. List confirmed gaps, why they matter, and official Wix documentation links where available.
  3. Do not mark a requirement as missing unless code, config, user statements, runtime behavior, or explicit absence supports that finding. Otherwise mark it Needs confirmation.
  4. Before flagging secrets, config leakage, or similar security issues, verify the exposure is in a tracked file, the current diff, build artifacts, or another review-relevant surface. Do not treat a local-only workspace file by itself as repository exposure.
  5. Do not infer app billing configuration from Wix Business Solutions Pricing Plans SDK/API usage. Business-solution Pricing Plans are for a Wix user selling plans to customers; App Billing/App Plans are for charging site owners for the app.
  6. For any code-facing gap the user asks you to fix, implement the fix through the relevant wix-app extension reference first, then run validation.

Expected Output

Group findings by priority:

  • Technical blockers: confirmed issues that are likely decline reasons.
  • Should-fix items: high review risk, but not enough evidence to call them definite decline reasons.
  • Nice-to-have hardening: improvements that reduce risk without blocking submission.
  • Needs confirmation: requirements that cannot be verified from available evidence.

For each finding include:

  • Applicability
  • Evidence
  • Impact
  • Recommended fix
  • Verification
  • Confidence

Preserve qualifiers from the taxonomy and docs. Do not upgrade recommended, if applicable, or surface-specific guidance into a universal requirement.


Technical Checklist

Work through this before submission. Only applicable unchecked items are potential decline reasons.

Billing and Payments

  • All in-app purchases route through Wix Billing unless Wix explicitly approved the app as Partner Billed; approved Partner Billed apps report charges through External Billing Events.
  • No external purchase buttons, links, QR codes, license keys, or other custom mechanisms unlock paid content.
  • Full checkout flow tested for every plan.
  • If the app has premium features, there is a clear in-product upgrade link or CTA.
  • Credits do not expire.

Setup and Access

  • App configuration URLs are public and do not use localhost.
  • A usable setup/settings UI exists. Embedded Script apps need a dashboard page.

Instance and Identity

  • instanceId is used for user/site identification, not cookies or sessions.
  • Billing is separated per instanceId.
  • Auto-login works when the user reopens the app from Manage Apps.
  • Site duplication is handled through originInstanceId: treat the copied site as a new install linked to the original and copy applicable settings/content where possible.
  • Required Wix apps, such as Stores or Bookings, are checked through Get App Instance and surfaced clearly if missing.
  • If the app supports Wix Stores catalog data, both Catalog V1 and Catalog V3 are supported. See STORES_VERSIONING.md.

Webhooks

  • Any implemented webhook returns HTTP 200 on successful receipt.
  • App Installed and App Removed webhooks are considered for lifecycle provisioning and cleanup. They are recommended, not a universal hard requirement.

Permissions

  • Only minimum required permissions are requested.
  • Redundant or overlapping permissions are removed.

Security

  • Signed instance verification happens server-side before trusting user/site context.
  • Signed-instance-backed edit/save actions validate signDate; stale signatures require refresh before continuing.
  • All endpoints are HTTPS with no HTTP fallback.
  • In-product flows avoid alert() and confirm(); use Wix modal, inline status, toast, or another surface-appropriate feedback pattern.
  • XSS protection covers all user input fields.
  • Passwords are stored as salted hashes, such as bcrypt or SHA-256 with a unique salt per password.
  • Password reset uses an expiring email link and never sends raw passwords.
  • Sensitive data is not stored in cookies and is encrypted where needed.

UX and Display

  • In-product flows use Wix popup/modal patterns where appropriate. OAuth and documented Wix pricing-page upgrade CTAs are exceptions.
  • First install shows realistic demo data, not placeholder lorem ipsum.
  • Ads are not shown to site visitors unless ad display is the app purpose and the app has the required permits.
  • Review prompts, if present, are non-blocking and do not force or incentivize reviews.
  • Plugin content relates to the host app's core functionality.

Performance and Quality

  • Startup and load times meet App Market expectations.
  • No known bugs or console errors remain.
  • Supported-browser matrix is tested.
  • Live-site extensions are responsive across screen sizes.
  • Dashboard surfaces support the required desktop layout.

SEO, Accessibility, and Localization

  • Widget components do not render <h1> tags.
  • User-facing images expose alt-text customization where applicable.
  • App output is UTF-8 encoded.
  • Website components meet accessibility standards.

Cookie Consent

  • Cookie consent workflow activates/deactivates cookies per visitor preferences.

Implementation Notes

Payment and Billing

All apps that collect money must route payments through Wix Billing unless Wix granted a formal exception. Approved Partner Billed apps still need to report charges/refunds through External Billing Events and submit revenue reports.

Requirement Notes Docs
Implement Wix Billing (#25) Use Billing API for subscriptions unless Wix approved Partner Billing. App Billing APIs
No custom unlock mechanisms (#29, #30) Content gating and purchase flows must go through Wix Billing only. Billing API
Test checkout per plan (#33) Verify purchase, upgrade, cancellation, and entitlement UX. Billing sample flows
Upgrade path (#125) Premium features need a clear upgrade link or CTA. Do not treat Business Solutions Pricing Plans SDK usage as evidence for app billing decisions. Identify and Manage App Users
Usage-based or one-time charges Billing API handles subscriptions; use Custom Charges for other approved billing flows. Custom Charges Service Plugin
Partner Billed reporting Required only for apps with written approval from Wix. External Billing Events API

App Instance and Identity

The instanceId uniquely identifies an app installation on a site. Use it for identity, app data, and billing. Site duplication creates a new instanceId; use originInstanceId to relate the copied site to the original.

Requirement Notes Docs
Identify by instanceId (#115) Each site installation gets a unique ID. App Instance API
Separate billing per site (#116) One plan must not silently unlock multiple sites. App Instance API
Auto-login (#118) Restore the app session from the current site instance. Get App Instance
Check required apps (#120) Verify required Wix apps and show clear setup guidance if missing. Get App Instance
Site duplication (#122) Copy relevant settings/content to the new instance where possible. App Instance API
Stores catalog compatibility (#130) Support both Catalog V1 and Catalog V3. Catalog Versioning API

Webhooks, Setup, and Permissions

Requirement Notes Docs
App lifecycle webhooks (#113) Recommended for provisioning and cleanup; if implemented, return HTTP 200. App Instance Installed
Webhook success response (#114) Any implemented webhook must return HTTP 200 on successful receipt. App Instance Removed
Settings/setup UI (#107) Provide a dashboard page, widget, or another relevant setup surface. Embedded Script apps need a dashboard page. About Extensions
No localhost URLs (#108) App configuration URLs must be public. Self-hosted dashboard extensions
Minimum permissions (#111, #112) Request only scopes used by app functionality and remove overlap. App Permissions API

Security

Requirement Notes Docs
Verify signed instance (#74) Decode and verify the signed instance parameter server-side. App Instance API
Validate signDate (#76) For signed-instance-backed state changes, reject signatures older than one day and require refresh. Security and Privacy Best Practice
HTTPS everywhere (#65, #77) Dashboard, editor, and live-site URLs must use HTTPS. App Market Guidelines
CSRF and XSS (#64, #78) Sanitize every user input field. Regex tag stripping is only partial mitigation; use context-appropriate encoding and maintained sanitizers when HTML is supported. App Market Guidelines
Password storage (#63, #79, #80) Store salted hashes; never store raw passwords. App Market Guidelines
Password reset (#81) Send expiring email links; never send raw passwords. App Market Guidelines
Sensitive data (#69) Keep sensitive data out of cookies and encrypt it at rest when needed. App Market Guidelines

UX, Performance, and Accessibility

Requirement Notes Docs
Wix popup/modal patterns (#39) Use Wix-appropriate surfaces for in-product flows. OAuth and documented pricing-page upgrade CTAs are exceptions. Dashboard extension guidelines
No browser-native interruptions (#45) Replace alert() or confirm() with inline status, toast, modal, or other appropriate feedback. UX/UI Best Practices
Demo data (#37) Show realistic fictional content on first install. App Market Guidelines
No visitor ads (#47) Unless ad display is the app purpose and required permits exist. App Market Guidelines
Performance (#48, #49) Run a performance audit and clear known bugs/console errors before submission. App Market Guidelines
Responsive design (#52, #54) Live-site extensions need responsive layouts; dashboard surfaces need the required desktop layout. App Market Guidelines
Accessibility and SEO (#53, #55, #57, #58) Avoid widget <h1> tags, provide relevant alt-text controls, use UTF-8, and meet accessibility expectations. App Market Guidelines
Cookie consent (#92, #97) Activate/deactivate cookies dynamically per visitor consent choice. App Market Guidelines

Technical Review Taxonomy

Use these IDs for traceability when mapping findings to review feedback.

# Requirement Area
25 Apps collecting money must implement Wix Billing unless an exception is granted. Billing
29 Do not use custom mechanisms to unlock content. Billing
30 Do not link to purchase mechanisms other than Wix Billing. Billing
31 Credits purchased through in-app purchase must not expire. Billing
33 Test the checkout flow for each plan. Billing
35 No direct user downgrade through the pricing page. Billing
37 Display realistic demo data on first install. UX
39 Use Wix popup/modal patterns for in-product flows; OAuth and documented upgrade CTAs are exceptions. UX
44 Plugin extension content must relate to the host app's core functionality. Functionality
45 Avoid disruptive behavior and browser-native alert()/confirm() boxes. UX
46 Do not show ads to site owners except unobtrusive cross-promotion of your own apps. Advertising
47 Do not show ads to site visitors unless that is the app purpose and permits exist. Advertising
48 Meet startup and load-time expectations. Performance
49 Clear known bugs and console errors before submission. Quality
50 Multiple website components on the same site must have separate settings. Multi-instance
51 Site copy should copy applicable app content/settings, not reset to default state. Multi-instance
52 Live-site extensions must be responsive across screen sizes and devices. Responsive
53 Website components must be accessible to visitors with disabilities. Accessibility
54 Dashboard app surfaces must support the required desktop layout. Dashboard
55 Widget components must not render <h1> tags. SEO
56 Optimize SEO-meaningful content per industry best practices. SEO
57 Include accessibility customization such as alt text where applicable. Accessibility
58 Use UTF-8 encoding for multilingual text support. Localization
59 Test supported desktop browsers. Browser support
60 Test live-site extensions on supported mobile browsers. Browser support
61 Test live-site extensions on supported tablet browsers. Browser support
62 Never request more permissions than required. Permissions
63 Store salted password hashes instead of raw passwords. Security
64 Protect against CSRF, XSS, and other security vulnerabilities. Security
65 Serve the app over HTTPS with a valid certificate. Security
66 Do not force login or personal information unless core to the app. Security
67 Let users revoke connected social credentials in the app. Security
68 Secure and verify each user's identity through the instance. Identity
69 Encrypt sensitive data and do not store it in cookies. Security
72 Keep app secret key and OAuth tokens secure. Security
73 Apps collecting financial data must comply with PCI-DSS and PA-DSS. Security
74 Verify signed instance signature server-side. Security
76 Validate signDate for signed-instance-backed edit/save actions. Security
77 All dashboard, editor, and live-site endpoints must support HTTPS. Security
78 Prevent XSS in input fields such as comments, forms, search, and titles. Security
79 Use secure password hashing. Security
80 Add a unique random salt/nonce to each stored password. Security
81 Password reset must use an expiring email link, not a raw password. Security
92 Comply with site visitor consent policies. Privacy
97 Implement cookie consent behavior per visitor preferences. Privacy
107 Provide a settings/setup UI. Setup
108 Do not use localhost URLs in app configuration. Setup
111 Request only minimum necessary permissions. Permissions
112 Remove permissions already included in added scopes. Permissions
113 App Installed and App Removed webhooks are recommended for lifecycle handling. Webhooks
114 Implemented webhooks must return HTTP 200 on successful receipt. Webhooks
115 Identify users by instanceId, not session/cookies. Identity
116 Separate billing for each site. Billing
117 Support multi-site account switching or one-account-per-site flows. Identity
118 Auto-login when the user reopens the app through Manage Apps. Identity
119 Forgotten-password flow must send reset links and avoid raw passwords. Security
120 Check required Wix apps and notify the user if missing. Setup
121 Review prompts are recommended only; keep them non-blocking if implemented. UX
122 Handle site duplication through originInstanceId. Multi-instance
123 External pricing page is broken or used instead of Wix internal billing. Billing
125 Premium features require a clear upgrade path; do not infer app billing from Business Solutions Pricing Plans API usage. Billing
130 Apps using Wix Stores catalog data must support Catalog V1 and Catalog V3 — see STORES_VERSIONING.md. Stores
132 App installation process fails or results in errors. Installation
133 Login/session issues occur during or after installation. Identity
151 Custom element has quality issues such as pixelated images or missing descriptions. Component quality
152 Embedded script has syntax errors, missing parameters, or the wrong type. Embedded script
154 Component configuration has a general issue. Components
158 Custom element extension is missing settings or does not appear in the editor. Extensions
159 Dashboard modal extension purpose is unclear or unnecessary. Extensions
160 Dashboard page extension is blank, broken, or violates Wix guidelines. Extensions
161 Embedded script is not loading, syncing, or configured correctly. Extensions
162 External URL does not open in a new tab or references a non-Wix platform. Extensions
163 Required service plugin for a dropshipping app is missing. Service plugin
166 Widget extension image or configuration is incorrect. Extensions
167 Extension configuration has a general issue. Extensions
168 Automations email template contains incorrect text or is active too early. Automations
169 App does not follow UX best practices such as defaults or validation warnings. UX
170 App behavior is confusing in editor preview compared with the published site. UX

Source: SKILL.md on GitHub

1 warningtoday4 checks · Risk SAFE
  • Gen Agent Trust Hubtoday

    This skill is a specialized development toolkit for building extensions on the Wix platform. It provides comprehensive instructions for creating dashboard pages, backend APIs, and site plugins using the Wix CLI and SDKs. No malicious patterns were detected; the skill's behaviors, such as dependency management, command execution for builds, and local script execution for code reviews, are entirely consistent with its purpose as a developer productivity tool for the Wix ecosystem.

  • Sockettoday

    1 alert: gptAnomaly

  • Snyktoday

    Risk: LOW · No issues

  • ZeroLeaks5mo

    Score: 93/100 · 2 sections analyzed

Signed by skilld at dc6f1fa. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub yesterday.

Activeupdated yesterday
compatibility
requires `@wix/cli` >= 1.1.192.

README badge

README badge for wix/skills/wix-app

Builds dashboard pages, modals, plugins, custom widgets, Editor React components, backend APIs, events, service plugins, and data collections for Wix CLI apps. Provides decision logic, API patterns, and validation workflows; scaffolding is owned by the Wix CLI via `wix generate --params`.

Generated from the current SKILL.md.

What extension types does this skill cover?
All Wix CLI app extension types: dashboard pages, modals, plugins, menu plugins, custom element widgets, Editor React components, site plugins, embedded scripts, backend APIs, backend events, service plugins, and data collections.
Does this skill scaffold the extension files for me?
The Wix CLI owns scaffolding via `wix generate --params` for all extension types except Backend API. This skill provides decision logic, API guidance, and business-logic patterns to fill in the generated stubs. Backend API files must be created manually.
What Wix CLI version is required?
The skill requires @wix/cli >= 1.1.192.
Do I need to create a Data Collection extension for app-specific data?
Yes, if you're saving or persisting app-specific data, managing domain entities in a dashboard, or running a service plugin that reads app-configured data. The skill infers this automatically—you don't need to explicitly request it.
Does this skill cover Wix Stores API usage?
Yes. When using any Wix Stores API (products, inventory, orders), the skill requires dual V1/V3 catalog support and references the Stores Versioning guide for module selection and field mapping.

Generated from the current SKILL.md. These answers refresh after source changes.