Skip to content
K

Publishing & Marketplace

The Monday Morning Plugin Marketplace lets users browse, search, install, rate, and report community plugins directly from the desktop app. This guide covers how to publish your plugin.

The marketplace has two parts:

  1. Plugin Registry — a GitHub repo (WeekendDevsOrg/MondayMorningPlugins) containing plugin metadata (manifest.json + README per plugin). A GitHub Action generates an index.json that the desktop app fetches.

  2. Supabase Backend — stores mutable data like download counts, ratings, and reports.

When a user clicks “Install” in the Browse tab, the desktop app downloads your plugin files from the registry repo and places them in ~/.monday-morning/plugins/{your-plugin-id}/.

Your plugin submission needs:

FileRequiredPurpose
manifest.jsonYesPlugin metadata for the marketplace listing
README.mdYesRendered in the plugin detail view
index.jsYesCompiled plugin entry point
logo.pngNoPlugin logo for the marketplace card
screenshots/NoGallery images for the detail view
lib/NoAdditional compiled JavaScript modules

The marketplace manifest is separate from (but related to) the MondayMorningPlugin interface in your code. It contains metadata for the marketplace listing:

{
"id": "my-plugin",
"name": "My Plugin",
"version": "1.0.0",
"description": "Short description for the browse grid (under 120 characters)",
"longDescription": "Longer description rendered in the detail view. Supports markdown.",
"author": {
"name": "Your Name",
"github": "your-github-username",
"url": "https://optional-website.com"
},
"category": "integration",
"uiCategory": "development",
"icon": "🔌",
"logo": "logo.png",
"screenshots": ["screenshots/main.png", "screenshots/settings.png"],
"minAppVersion": "1.0.0",
"keywords": ["keyword1", "keyword2", "keyword3"],
"repository": "https://github.com/you/mm-plugin-my-plugin",
"license": "MIT",
"changelog": [
{
"version": "1.0.0",
"date": "2026-04-01",
"changes": ["Initial release"]
}
]
}
FieldDescription
idUnique plugin identifier. Use lowercase with hyphens (e.g., my-plugin). Must match the id in your MondayMorningPlugin export.
nameHuman-readable name shown in the marketplace.
versionSemver version string.
descriptionShort description (under 120 characters) shown on the browse card.
author.nameYour name or organization.
categoryOne of integration, migration, export.
FieldDescription
longDescriptionDetailed description for the plugin detail view. Supports markdown.
author.githubGitHub username — links to your profile in the detail view.
author.urlYour website URL.
uiCategorySidebar grouping: communications, development, project-management, financial, data-storage, export-reporting.
iconEmoji or SVG for the marketplace card.
logoPath to a logo image file (relative to the plugin folder).
screenshotsArray of paths to screenshot images.
minAppVersionMinimum Monday Morning version required.
keywordsSearch keywords for discoverability.
repositoryURL to your plugin’s source code.
licenseSPDX license identifier (e.g., MIT, Apache-2.0).
changelogArray of version entries with dates and change descriptions.

The desktop app has a “Submit Plugin” button in the Browse tab that packages your plugin and creates a PR automatically.

  1. Build your plugin and verify it works locally (see Creating a Plugin).

  2. Open the Monday Morning desktop app and go to Plugins > Browse.

  3. Click Submit Plugin in the top-right.

  4. Select your plugin’s project folder.

  5. The app validates your manifest.json and shows a preview.

  6. Click Submit for Review. This uploads your plugin and creates a pull request on the registry repo.

  7. Wait for review. You’ll see a link to the PR where you can track status.

Submit directly to the plugin registry repo:

  1. Fork WeekendDevsOrg/MondayMorningPlugins.

  2. Create a folder for your plugin:

    plugins/my-plugin/
    ├── manifest.json # Required
    ├── README.md # Required
    ├── index.js # Required — compiled plugin entry point
    ├── lib/ # Optional — additional modules
    │ └── helpers.js
    ├── logo.png # Optional
    └── screenshots/ # Optional
    └── main.png
  3. Add your compiled JavaScript files, manifest, and README.

  4. Open a pull request to main.

  5. The CI pipeline validates your manifest and runs basic checks.

Your README.md is rendered in the plugin detail view. Include:

  • What the plugin does — a clear one-paragraph summary
  • Setup instructions — what credentials or configuration is needed
  • Available tools — list each MCP tool with a brief description
  • Examples — show sample prompts or tool calls
  • Requirements — external accounts, API keys, minimum versions

Submitted plugins are reviewed for:

  • Valid manifest — all required fields present, valid JSON
  • Unique ID — no conflicts with existing plugins
  • Clear description — users should understand what the plugin does
  • No malicious code — plugins are reviewed for security
  • Valid license — must be an open-source license

To release a new version:

  1. Update the version in both your MondayMorningPlugin export and manifest.json.
  2. Add a new entry to the changelog array.
  3. Submit a new PR to the registry (or use the in-app submission).

Users with the old version installed will see an “Update” badge in their Plugins page.

The Browse tab ranks plugins using a discovery algorithm that considers:

  • Download count (40% weight) — more installs rank higher
  • Average rating (40% weight) — higher-rated plugins rank higher (minimum 3 ratings required)
  • Recency (20% weight) — recently updated plugins get a boost

Users can also sort by Most Popular, Highest Rated, Newest, or Recently Updated.

Good keywords in your manifest.json help users find your plugin through search.