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:
- Test thoroughly - Works in fresh sparQ installs
- Complete manifest - All required fields filled in, including
mappid - Good translations - At least English is complete
- Clear documentation - Users know what your app does
- Nice icon - SVG or PNG that looks good at small sizes
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"
]
}
__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:
Icon guidelines:
- SVG preferred (scales perfectly)
- If PNG, at least 256x256 pixels
- Simple, recognizable at small sizes
- Works on both light and dark backgrounds
Add Screenshots
Screenshots help users understand what they're getting:
Screenshot tips:
- Show the most important features
- Use realistic sample data
- Keep them up to date with your UI
- 1280x720 or larger recommended
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:
Submit to the Marketplace
- Go to marketplace.sparqone.com
- Sign in or create a developer account
- Click "Submit New App"
- Upload your ZIP file
- Review the auto-populated listing information
- Submit for review
The Review Process
After submission, your app goes through review:
- Automated checks - Manifest validation, security scan
- Manual review - A human checks functionality and quality
- Approval or feedback - Usually within 2-3 business days
Common Rejection Reasons
- Missing or incomplete manifest fields
- App crashes on fresh install
- Security issues (SQL injection, XSS, etc.)
- Poor quality icon or screenshots
- Description doesn't match functionality
Updating Your App
To release an update:
- Bump the version in
__manifest__.py - Run
cd sdk && make release name=myapp - Go to your app's dashboard on the marketplace
- Click "Submit Update"
- 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:
- 1.0 → 1.1 - New features or bug fixes
- 1.1 → 1.2 - More updates
- 1.9 → 2.0 - Breaking changes or major rewrite
Key Takeaways
- Ensure your manifest has a
mappid(auto-generated by the SDK) - Create
marketplace.jsonwith your listing metadata (no version field needed) - Set version only in
__manifest__.py—the SDK syncs it automatically - Include a good icon and screenshots
- Use
cd sdk && make releaseto create the ZIP package - Submit through the marketplace website