Themes & Customization·5 min read·

Theme marketplace: how to submit your own theme

VeloCMS runs an open theme marketplace; this guide covers the CLI submission flow, the review process, and how revenue share works.

The VeloCMS theme marketplace allows third-party designers and developers to publish themes that any VeloCMS blog can install with one click. Submitting a theme follows the same CLI flow as plugins: build a tarball with the @velocms/cli's velocms build, then push the draft with velocms publish. The review pipeline runs visual checks in a sandbox tenant, measures Lighthouse scores, and flags accessibility violations automatically before a human reviewer looks at it.

What a theme submission includes

The automated stage soft-rejects a submission missing either required screenshot: preview/thumbnail.png (400×300, the blog index view with sample content, no placeholder lorem ipsum) and preview/screenshot-1.png (1440×900, a full-page screenshot of the blog index — additional screenshots are welcome). Take these with real content from a local VeloCMS tenant seeded with three or four sample posts, not the scaffold placeholder — the thumbnail is what a potential customer sees first in the themes gallery.

The review criteria

Human reviewers check these in order; failing the first two is a hard reject, the rest are soft rejects with a note on what to fix: Lighthouse Performance ≥ 80 on a throttled 4G connection (large fonts without font-display: swap or unoptimized images are the usual culprit), WCAG AA contrast (body text ≥ 4.5:1, large text ≥ 3:1), semantic HTML (one h1 per page, no skipped heading levels, dates wrapped in <time datetime>), mobile-first usability at a 375px viewport, and no hardcoded tenant data — blog name, bio, and social links must come from props, never hardcoded placeholder text.

Free vs. paid themes and revenue share

Declare pricing in theme.manifest.json — leave it out for a free theme, or set { "pricing": { "model": "paid", "price_usd": 2900 } } for a paid one (price_usd is in cents, so 2900 = $29). VeloCMS takes a 20% platform fee and you keep 80%, paid via Stripe Connect — connect your Stripe account at /developers/stripe-connect before publishing a paid theme, since the review pipeline holds paid themes in draft until onboarding is complete.