Publishing to Marketplace

Chapter 11: Sharing your app with the sparQ community.

You've built an app and it works great. Now let's package it up and share it with other sparQ users through the marketplace.

Before You Publish

Make sure your app is ready:

Already have a mappid? If you scaffolded your app with make app name=myapp in the SDK, your mappid was auto-generated. Check your __manifest__.py to confirm.

The marketplace.json File

Create a marketplace.json file in your app folder with metadata for the marketplace listing:

{
    "marketplace_id": "task-manager",
    "name": "Task Manager",
    "type": "app",
    "author": "Your Name",
    "author_email": "you@example.com",
    "description": "A simple but powerful task management app.",
    "long_description": "Track tasks, set due dates, organize with categories, and never miss a deadline. Perfect for personal productivity or small teams.",
    "category": "productivity",
    "tags": ["tasks", "productivity", "todo", "gtd"],
    "homepage": "https://github.com/yourname/task-manager",
    "license": "MIT",
    "min_sparq_version": "1.0.0",
    "screenshots": [
        "screenshots/list-view.png",
        "screenshots/detail-view.png"
    ]
}
No version field needed! The SDK automatically injects the version from your __manifest__.py when you run make archive or make release. This keeps your version in sync automatically.

Required Fields

Field Description
marketplace_id Unique identifier (lowercase, hyphens only)
name Display name
type "app", "plugin", or "lang_pack"
author Your name or organization
author_email Contact email

Optional Fields

Field Description
description Short description (one sentence)
long_description Detailed description for the listing page
category productivity, sales, hr, finance, etc.
tags Keywords for search
homepage Link to documentation or repository
license MIT, Apache-2.0, proprietary, etc.
min_sparq_version Minimum sparQ version required
screenshots Array of screenshot paths

Add an Icon

Your app needs an icon. Add it as icon.svg or icon.png in your app folder:

myapp/ ├── __manifest__.py ├── marketplace.json ├── icon.svg # App icon └── ...

Icon guidelines:

Add Screenshots

Screenshots help users understand what they're getting:

myapp/ ├── screenshots/ │ ├── list-view.png │ ├── detail-view.png │ └── settings.png └── ...

Screenshot tips:

Create the Release Package

Use the SDK's release command to create a distributable ZIP file:

cd sdk
make release name=myapp

This creates myapp-1.0.zip with everything needed:

myapp-1.0.zip ├── app/ │ ├── __init__.py │ ├── __manifest__.py │ ├── module.py │ ├── controllers/ │ ├── models/ │ ├── views/ │ └── lang/ ├── marketplace.json ├── icon.svg └── screenshots/

Submit to the Marketplace

  1. Go to marketplace.sparqone.com
  2. Sign in or create a developer account
  3. Click "Submit New App"
  4. Upload your ZIP file
  5. Review the auto-populated listing information
  6. Submit for review
Image: Marketplace submission form

The Review Process

After submission, your app goes through review:

  1. Automated checks - Manifest validation, security scan
  2. Manual review - A human checks functionality and quality
  3. Approval or feedback - Usually within 2-3 business days

Common Rejection Reasons

Updating Your App

To release an update:

  1. Bump the version in __manifest__.py
  2. Run cd sdk && make release name=myapp
  3. Go to your app's dashboard on the marketplace
  4. Click "Submit Update"
  5. Upload the new ZIP

The SDK automatically syncs the version to marketplace.json when packaging. Updates go through a lighter review process—usually approved same day if there are no major changes.

Version Numbering

Use simple MAJOR.MINOR versioning:

Key Takeaways