# List and submit

## Rules for listing and submitting

- Submit only when the creator has asked you to, because a submission is emailed to them and goes into the staff review queue.
- Never set the price or offer to change it, because pricing stays with the creator in the browser.
- The creator accepts the Creator Agreement themselves in the browser. A connected AI cannot accept it.
- An accepted submission freezes the version, so finish testing first.

## Create the product

When the template works in the studio, the creator presses Create product and gives it a title, a type (game or block, fixed from then on), and a short description. The product starts with a private draft version 1.0.0 seeded from the scratchpad template, the scratchpad media moves into the product's library, and the scratchpad resets. A connected AI creates the product with `create_product` instead.

When the type is unclear, ask the creator first, because it cannot change later.

## The listing

The Listing tab on the product's edit screen holds what buyers see:

- Title: up to 120 characters.
- Description: up to 5,000 characters, shown on the asset page. Required to submit.
- Categories: at least one is required to submit.
- Tags: up to 10, each up to 50 characters.
- Visibility: Public (listed in browse and search) or Unlisted (reachable only by link).

The Media tab takes a cover image, up to 6 screenshots (2 MB each), and an optional video demo link. Listing details are locked while a version is in review.

A connected AI sets the description, categories, tags, and video link with `update_product_details`; the title, price, and visibility stay with the creator. Listing copy says what the asset does and how a site owner sets it up; show it to the creator before saving.

## Pricing and earnings

- Leave the price empty to publish for free, or charge from £1.00 to £999.99 (GBP only).
- The price is what buyers pay, VAT included. Rafflex sells as merchant of record at 20% VAT.
- The creator's default share is 40% of the price excluding VAT. Example: on a £10.00 sale, £1.67 is VAT, leaving £8.33, and the creator earns £3.34. The price field on the edit screen shows the exact figure at the creator's own terms.
- Earnings are credited to the creator's marketplace wallet as a pending balance and confirm once the 14 day refund window closes. Refunds are taken back out of the balance. Payouts to a bank account are not available yet.

## The Ready to submit checklist

The checklist evaluates the saved draft:

- Template passes the safety check.
- Renders in all 5 play scenarios.
- Description and a category.
- Cover image and screenshots.
- Changelog for the new version (only once a version has been published).

The safety check, description, category, and changelog block submission. A cover image and screenshots do not, but reviewers and buyers rely on them, so tell the creator when they are missing.

## Why versions are sent back

Staff review every version before it goes live. These are the problems reviewers send back most often, so check the template and the listing against each one before you submit.

- No empty state. A game must show a clear, friendly screen when there are no plays, and a block must handle empty lists, such as no competitions or no winners. Check the No plays scenario every time.
- Hardcoded external URLs. Any http(s) or protocol relative // address is rejected, including fonts, CDN scripts, and hotlinked images. Upload the file and reference it through the files map.
- Media referenced by filename. Use {{ files['tag'] }} with the tag the media library shows, never the uploaded file's name or a guessed path, so the file still resolves after a new upload.
- Ignoring the site's colours. Blocks take their colours, currency icon, and site name from settings, and every template uses the theme variables so it reads well on light and dark sites. Hardcoded brand colours look wrong on most sites.
- Not handling every scenario. Check Mixed, All win, All lose, Big win, and No plays in the preview. A reveal that only works when the player wins is sent back.
- Release notes that say nothing. "Bug fixes" or "Updated" does not tell a site owner what changed. Say what is new, what was fixed, and anything they need to do after updating.
- Missing or placeholder cover and screenshots. The cover image and screenshots must show the real product, not a blank frame, a stock image, or the template code.
- Text overflowing at phone width. Long prize names, site names, and large numbers must wrap or shrink at 360 pixels wide instead of spilling out of their box.
- Sound before the player interacts. Browsers block autoplay, and unexpected sound puts buyers off. Start audio only after a tap or click, and offer a way to mute it.

## Submitting

The creator must accept the current Creator Agreement (https://marketplace.rafflex.io/legal/creator-agreement), including its ownership warranty and indemnity, the first time and again whenever it changes. Each version can also carry a release channel (Stable or Beta) and a scheduled go live time.

Submitting runs the safety checker again against the template source and every rendered play scenario. Any violation stops the submission and names what matched. An accepted submission freezes the version: it is exactly what the reviewer sees and what buyers install.

## Submitting from a connected AI

A connected AI ([Connect your AI](https://marketplace.rafflex.io/docs/how-to-create/connect.md)) can submit a draft for review with `submit_for_review` once the creator asks it to. It runs the same Ready to submit checklist first and reports every failing item at once. It cannot accept the Creator Agreement: the creator must have accepted the current version in the browser, and until then the AI's submission is refused with a link to accept it, which you give to the creator. Every AI submission is emailed to the creator, naming the app, the version, and its release notes, and staff review still decides whether it goes live.

## What review checks

A member of the Rafflex team reviews every version before it goes live, new versions included. The reviewer sees the listing details, release notes, and scheduled go live time, plays the template in a sandboxed live preview, and for an update reads a line by line diff against the live version. The review confirms the code is safe to run on a customer's site and meets the marketplace quality bar.

Each submission ends in one decision, and the creator is emailed every time:

- Approved: the version is published immediately, or at the scheduled go live time, and carries the Verified by Rafflex badge.
- Changes requested: the reviewer's note explains what to fix, and the draft unlocks for editing.
- Rejected: the reviewer's note explains why. The draft unlocks too and can still be reworked and resubmitted.

## Resubmitting

The reviewer's note is shown on the product's edit screen as well as in the email, and `get_status` reports it to a connected AI. Treat the note as the error to fix (the studio's Fix prompt accepts it that way), fix the draft, run the checks again, and resubmit only when the creator asks. A version that is already live stays live while an update is in review.

## Checks before you finish

- The Ready to submit checklist passes, and the template and listing were checked against every reviewer pitfall.
- The creator asked for the submission, and you did not touch the price.

## Documents in this series

Every document is public, plain markdown, and self contained. Read the one that matches the task instead of guessing a rule:

- [Start here](https://marketplace.rafflex.io/docs/how-to-create.md): What Rafflex is, the two asset types and when to build each, the creator workflow, and the sandbox rules.
- [Connect your AI](https://marketplace.rafflex.io/docs/how-to-create/connect.md): The remote MCP server: connecting each AI client, signing in, starter prompts, watch mode, uploads per client, what a connected AI can and cannot do, and disconnecting.
- [Architect a game](https://marketplace.rafflex.io/docs/how-to-create/games.md): The complete specification for building a marketplace game: data contract, plays array, injection pattern, and definition of done.
- [Architect a block](https://marketplace.rafflex.io/docs/how-to-create/blocks.md): The complete specification for building a marketplace page block: data contract, theming from settings, and definition of done.
- [Use images and sound](https://marketplace.rafflex.io/docs/how-to-create/media.md): Uploading images, sound, and 3D models to the product media library, adding approved libraries, and wiring them into a template through the files map.
- [Test and debug](https://marketplace.rafflex.io/docs/how-to-create/testing.md): The preview scenarios that exercise every template state, testing with a connected AI, and the platform errors mapped to fixes.
- [After launch](https://marketplace.rafflex.io/docs/how-to-create/after-launch.md): New versions, release channels, how installs update, install notes, bug reports, questions, what a connected AI reports, and announcements.
- [Template data contract](https://marketplace.rafflex.io/docs/template-context.md): every variable a template receives, with generated samples.