themes
CLI, review and release
Use the saas theme CLI to scaffold, check, push and submit themes, then follow review, release and updates.
Install and sign in
The CLI is saas from tools/saas-cli (Node.js 22 or later). Sign in once per machine; the session is stored locally and expires:
saas dev login https://<platform-origin>Commands
| Command | What it does |
|---|---|
saas theme init <dir> <theme-id> [name] | Scaffolds a starter that passes Theme Check |
saas theme check [dir] | Local pre-flight: allowed files, valid JSON, referenced files present |
saas theme package [dir] [out.zip] | Builds a deterministic ZIP (the same source gives the same SHA-256) |
saas theme push <theme-id> [dir] | Packages, uploads, registers the version from theme.json and runs the validation build |
saas theme dev <theme-id> [dir] [--once] | Builds a dev build for your development store and prints its URL; rebuilds on every saved change until Ctrl+C |
saas theme submit <version-id> [release-notes] | Submits a built version for review |
saas theme status <theme-id> | Versions, builds, review state and reviewer comments |
saas theme list <account-id> | Themes in a publisher account |
saas theme accounts | Publisher accounts where you hold a role |
saas theme release <version-id> | Publishes an approved version to the marketplace |
The Developer Portal (Themes) offers the same actions, including ZIP upload.
Development store
Your development store is a sandbox with a fixture catalogue: no customers, orders or payments exist behind it. saas theme dev validates your files exactly like a push (package safety, Theme Check, CSS policy, rendered review), stores the result as a dev build, and prints the store URL. Open it to switch between templates and the empty, typical and stress catalogues; the page shows the build's findings.
- Dev builds are not versions: they never reach review, the marketplace or a merchant, and they expire after 7 days.
- Owners, admins, developers, designers and release managers can build (up to 120 builds per theme per hour); every team member can open the store. Any built version can also be previewed there from the portal.
- The CLI session lasts 15 minutes; run
saas dev loginagain when it expires. - Development stores are enabled per environment by the platform; until then the command answers
theme_dev_stores_disabled.
Team roles
| Role | Can |
|---|---|
owner, admin | Everything, including the team, the publisher profile and private grants |
release_manager | Create themes, push, submit, release and control distribution |
developer | Create themes and push versions |
designer, support | View, and reply to reviewer comments |
finance | View |
Review
A submitted version moves through submitted → automated_review → manual_review, then to approved, changes_requested or rejected. Automated review re-checks the stored artifact against its hash, the package safety rules, Theme Check, the CSS policy and the rendered review. Reviewers can comment on a file, rule or section; you can reply from the portal. Reviewers never decide on themes from their own publisher account.
Release and distribution
Releasing an approved version makes it the marketplace version. Existing installations are not changed: merchants review an update report and apply the update themselves, and they can roll back.
You can stop sales, stop new installs, delist, relist or deprecate a theme. None of these break stores that already use it. The platform can suspend a theme or a single version; a suspended version stops rendering and stores fall back to their last safe version or to the built-in design.
Pricing, ratings and earnings
- Choose Free or One-time purchase when you create a theme. A purchase licenses one store. The platform fee is 20%, shown to merchants as part of the price.
- Merchants pay SaaS through Tap (the platform's billing account). A theme is licensed only after Tap confirms the payment as captured.
- Payouts are manual bank transfers made by SaaS finance and recorded with the bank reference. Paid themes are enabled per environment; Tap live payments for themes need a separate platform decision.
- Earnings become available for payout 14 days after a sale. Payouts need an active payout account on your publisher profile. A refund reverses your share.
- Only live (real) sales count as earnings. Test sales appear as test sales in your revenue view and never count toward your balance or a payout.
- Merchants who installed your theme can rate it once and update their rating. You can reply from the portal; the platform can hide abusive ratings and tells you why.
- Themes in the Developer Portal shows installs, live stores, sales and ratings for the last 30 days. Owners, admins and finance members also see balances and payouts. You never see which merchants bought or rated a theme.