What Macrocontent validates
The same pipeline runs from the portal wizard and the Publisher API (POST …/listings/validate-bundle and create/patch):
- Static security / structure scan of the bundle source
- Headless Chromium render / preview test
- Presentation-aware soft warnings (content vs styled)
- Component README.md (markdown) with required headings: Usage, Markup, Fields, Code notes — stored on the listing and shown in the Store before purchase
README.md (required for components)
Component listings must ship a structured README (portal wizard step, or readme / readmeBase64 on create/patch). Missing or incomplete READMEs fail with 422 README_REQUIRED. Buyers read it on the Store detail README tab; website teams open the same content from Dashboard → Components → README.
import() even inside comments — they can fail validation. Macrocontent Score (0–100)
| Name | Type | Description |
|---|---|---|
Errors (failed) | score 0 | Upload blocked. Fix structure/security/runtime issues and re-validate. |
Warnings | penalty | Score drops. Content presentation + hardcoded colors / heavy design groups hurt more. |
Passed / skipped | full or slight | Healthy checks contribute full credit; skipped checks may apply a small penalty. |
Score fields persist on the listing (macro_score, summary, reasons, checks). Buyers see a Macrocontent Score tab (number + short reasons). Publishers see the same score plus the full check breakdown after validate and on listing edit.
Paid listings and Stripe
Connect Stripe in the portal
Open Payouts and complete Stripe Connect until status is
active.Price the listing
Paid offers without an active Connect account are rejected with 400
STRIPE_REQUIRED.Keep Connect healthy
Disconnecting Stripe unpublishes paid listings. Reconnect before selling again.
Automation
Use publisher API tokens (pt_…) against https://api.macrocontent.dev/publisher/v1 to validate and patch listings. See Publisher API and Authentication.
/publisher/v1/listings/validate-bundlePublisherRun the full validator / Macrocontent Score pipeline without persisting a failed bundle.