Extend the reach and discoverability of your extension by creating a marketplace listing and submitting it for review. This process happens in the admin dashboard and ensures your extension meets security and quality standards before installers can find and use it.

## 1. Fill in the listing fields

Open your extension in the admin dashboard and complete the **Listing** tab.
Every field below is part of the marketplace metadata that prospective
installers see when browsing or evaluating your extension.

| Field | Required | What it's for |
|-------|----------|---------------|
| **Icon** | Yes | Square image rendered on browse cards and the detail page. Square aspect ratio, transparent background recommended. |
| **Short description** | Yes | One-line summary used on browse cards and search results. Keep it under ~120 characters. |
| **Long description** | Yes | Markdown body for the extension detail page. Cover what the extension does, the problem it solves, and any setup requirements. Screenshots and links allowed. |
| **Screenshots** | Recommended | Image gallery shown on the detail page. Pick views that demonstrate the extension actually working in a host application. |
| **Categories** | Yes | One or more curated categories from the platform taxonomy (e.g., commerce, loyalty, crm, productivity, marketing, employee, other). Drives marketplace browse filters. |
| **Tags** | Optional | Freeform searchable tags. Used for keyword search across the marketplace. |
| **Publisher** | Auto | Pulled from your organization profile — the org name shown as the listing's publisher. Update your org profile in the dashboard if this needs to change. |

> **Tip:** The icon and screenshots are what make a listing feel real. A
> placeholder icon and no screenshots is the single biggest reason listings
> get a "needs more info" review response.

## 2. Choose a visibility mode

Every listing has a **visibility** setting that controls who can install it:

| Visibility | Who can find and install it |
|------------|------------------------------|
| **Public** | Anyone browsing the marketplace. Goes through full marketplace review. Best for extensions you want available to everyone. |
| **Protected** | Only organizations you explicitly add to the **allowed orgs** list. The listing is hidden from public browse; people you've allowed see it in their marketplace as if it were public. Best for private/internal extensions, paid customers, or staged rollouts. |

Visibility can be changed later from the same Listing tab. Switching from
**Protected** → **Public** triggers a fresh marketplace review.

## 3. Submit for review

Click **Submit for review**. The platform runs a two-stage review:

### Stage 1 — Automated Bundle scan

Runs immediately on submit. The platform fetches your bundle from the
registered Bundle URL and runs deterministic checks:

- Bundle reachable, valid `manifest.json`, sane bundle size
- Declared permissions match observed capability usage
- Declared targets match the surfaces your code actually registers
- Declared `allowedDomains` match the endpoints `data.fetch` actually hits
- No use of forbidden browser globals (`document`, `window.location`, etc.)

Findings come back categorized as **error**, **warning**, or **info**. Errors
must be fixed before the listing can move forward. Warnings don't block
submission but factor into the review.

### Stage 2 — Advanced review + Stackable approval

If Stage 1 passes, the platform runs an advanced review of your bundle —
framework analysis, permission surface, network behavior, and any
security-relevant findings get scored and assessed against your listing
content. From there, Stackable will either:

- **Approve** — your listing moves to **Published** and becomes installable.
- **Request changes** — you'll see structured feedback on the listing page. Address it, re-deploy if needed, and resubmit.

Most reviews complete within a few business days. You'll get an email when
the status changes; the listing's review status is also visible in the admin
dashboard at all times.

## Review status lifecycle

| Status | Meaning |
|--------|---------|
| **Draft** | Listing is being edited; not submitted. |
| **Pending review** | Submitted; waiting on Stage 1 + Stage 2 + Stackable approval. |
| **Rejected** | Stackable requested changes. Address the feedback and resubmit. |
| **Published** | Live in the marketplace. Installable per your visibility setting. |
| **Suspended** | Pulled from the marketplace by Stackable (security issue, ToS violation, etc.). Contact support. |

## After publishing

Re-deploys to the same Bundle URL don't require re-submission — your existing
Instances pick up the new bundle automatically. **Listing edits** (description,
screenshots, categories, visibility) and **major version bumps** do go through
review again. Patch updates that don't change permissions, targets, or
`allowedDomains` typically clear review quickly.
