Skip to main content

The item

Check its status in My items:
  • Draft: you haven’t pressed Send for review yet. spd publish creates the item as a draft and never puts it on the market by itself. See Step 6.
  • In review: a moderator is looking at the stable version, because it asks for ffi or filesystem. It goes live by itself on approval.
  • Rejected: the reason is in My items and in the editor’s Moderation section.
  • Hidden: you hid it. Back to catalog in the item’s menu.
  • Banned: moderation took it down. Ask support.
Published but still not there? Check the catalog’s product and category filters: the item shows only under the product you picked in the editor.
The item has no built version on stable. Run spd publish in the project folder and wait for the build to pass. If the only version is on beta or dev, publish a release to stable or spd promote <version> --to stable. All the reasons: When the button refuses.
In the editor’s Name. displayName in manifest.json names the item only on the first publish; changing it later doesn’t rename anything.
My items → the item’s menu → Hide from catalog. It disappears from the catalog and search; buyers keep their access and keep getting updates. Back to catalog returns it.Only a draft or a rejected item that nobody owns can be deleted. A script with approved versions can’t: hide it, and spd yank versions you don’t want new buyers to get.
The category comes from type in manifest.json and can’t change. Pick the product carefully the first time: once it’s set, it stays.

Screenshots

  • Wrong format: JPG, PNG and WebP only. HEIC, GIF, BMP and AVIF are refused.
  • Too large: the limit is 10 MB. Big pictures are shrunk in the browser to 2560 px and WebP first, so this usually means an animated picture or a huge file that’s still over 10 MB. Lower the resolution and try again.
  • Too many: 10 per item.
  • The connection dropped: the editor names the file that didn’t upload. Add it again.
The first screenshot is the cover. Drag one to the front or press Make cover on it. On a phone, press and hold a screenshot, then drag. See Screenshots.

Builds

Open the build in the editor’s Builds section: the log and the checks say exactly what. The usual causes:
A file in src/ looks packed or obfuscated: eval(function(p,a,c,k,e…, hundreds of _0x… names, dense \xNN, or a built file with sourceMappingURL. Publish your real sources; the server minifies private scripts itself. Long lines alone are only a warning: embedded JSON or base64 data is fine.
Each branch only moves forward, and a number is used once per item, even if it was rejected or yanked. Run spd version patch and publish again. A failed build’s number is the exception: it’s free.
20 builds an hour and 100 a day per account, failed ones included. Check locally with spd build before publishing.
Confirm the email on your spurdo! account, then press Allow again. Publishing needs it too.
That’s the limit. Revoke old ones in the editor: Branches & versions → How to release → CLI keys. Then press Allow again.

Prices and updates

Change it in the editor’s Price & access and press Save changes. It’s live right away, with no review and no new version. See Changing the price.
Publish a new version to their branch. Buyers on that branch get it on their next launch, for free, while their access lasts. Without ffi or filesystem that’s as soon as the build passes; with them, after approval.
spd rollback <last good version>. Buyers get the old version back as an update right away, with no new review. Then fix it and publish a new number. See Roll back.
Usually within a day, and only for versions with ffi or filesystem. Everything else is live when the build passes.
Not if it’s private, which is the default. With "visibility": "public" they can read it and make their own version; publishing those on the market is off unless you allow forks. See Private and open code.
Grants → Grant access, pick the item, the person, the term and the dev branch. See Grants.
Each sale is on hold for 7 days, the dispute window. Then it’s Available by itself. See Hold.