Submitting to Marketplace

Package Structure

Your extension must be packaged as a .zip file. The ZIP must contain a single top-level directory matching the extension slug/folder name. The manifest must be at the top level of that directory.

Widget ZIP structure:

recent_posts.zip
  recent_posts/
    widget_info.json
    views/
      widget.tpl

Theme ZIP structure:

ember.zip
  ember/
    theme_info.json
    theme.css
    views/
      layout.tpl
      blog/
        index.tpl
        post.tpl
      ...

Plugin ZIP structure:

PvDocs.zip
  PvDocs/
    plugin_info.json
    Plugin.php
    Installer.php
    Controllers/
    Models/
    ...

Manifest Requirements

Before submitting, verify your manifest is complete:

Mandatory fields (all extension types)

  • name — non-empty display name
  • slug (widgets/themes) or inferred from namespace (plugins) — matches directory name
  • version — valid semver (X.Y.Z)
  • min_pubvana_version — earliest compatible CMS version
  • author — your name or organisation

Recommended fields

  • description — shown in the marketplace listing
  • update_url — required to receive automatic update notifications to users
  • support_url — linked from the admin extension detail

Submission Process

  1. Create a developer account at pubvana.net if you do not have one
  2. Upload your ZIP via the Marketplace submission form at pubvana.net/marketplace/submit
  3. Provide listing details: title, description, screenshots (PNG, min 1200×800px), category, pricing
  4. Set pricing: Free (0.00) or Premium (set your price in USD). Premium extensions use the built-in license key system
  5. Submit for review — the Pubvana team will vet your extension (see Vetting & Approval)

Screenshots

  • Minimum 1 screenshot required; maximum 5
  • Minimum resolution: 1200 × 800px
  • PNG or JPEG format
  • Show the extension in use on a real Pubvana site — do not use mockups

Versioning Updates

To release a new version:

  1. Increment version in your manifest
  2. Re-package the ZIP
  3. Upload via pubvana.net/marketplace/my-extensions/{slug}/update
  4. Your update_url endpoint should now return the new version number

The CMS auto-update system polls update_url for all installed extensions that have one configured. When a newer version is detected, site admins see an update badge in the admin panel.