Sharing Marketplace Content

Last modified: April 22, 2024

1 Introduction

The Mendix Marketplace is driven by contributions from members of the community who share the connectors, modules, and apps they have built with the Mendix Platform. This how-to shows how to add and update Marketplace content.

This how-to teaches you how to do the following:

  • Add new content and promotions to share in the Marketplace
  • Update existing Marketplace content

2 Prerequisites

Before starting this how-to, make sure you have completed the following prerequisites:

3 Marketplace Content Development Guidelines

This section presents guidelines for developing content that you will submit to the Mendix Marketplace.

3.1 General

These are some general guidelines for creating new Marketplace content:

  • Set up a separate app to build and maintain your Marketplace component
  • Use a relatively recent Mendix version when creating the item, not only the latest Mendix version
  • Create multiple versions of your Marketplace component (for example, for Studio Pro 8 and 9)

You can add information the end-user should know to the component Documentation when you are adding the content to the Marketplace.

3.2 Intellectual Property

When considering intellectual property (IP) in the Mendix Marketplace, follow these guidelines:

  • Do not copy any text, names,or other data from other components published in the Marketplace, since you do not own the copyright. Do not create unnecessary ambiguity or confusion that would mislead users of Marketplace components.
  • Do not mention components published by others within your content on the Marketplace.
  • Make sure your component documentation only includes intellectual property that you have created. Your component should not include information or content published by others on the Marketplace, as this may lead to removing your component from the Marketplace. This also means other components can also be removed if they are using your component information or content.
  • If you come across instances of intellectual property abuse, let us know at AppServices_Supplier_Team@mendix.com.

For more information, see Apply IP Protection.

3.3 For Widgets

To develop widgets and submit them to Marketplace, follow these guidelines:

  • The widget should be pluggable
  • When writing variable and function names, use lowerCamelCase (for example, mySecondVariable)
  • Add code comments
  • Use descriptive variable and function names in both XML and JavaScript
  • A function should not be more than 200 lines of code
  • A function should only do one thing, and it should do it properly
  • Use hooks and functional components over class components
  • Create test pages for mobile when content is made for mobile platforms

3.4 For Modules

To develop modules and submit them to the Marketplace, follow these guidelines:

  • Create a folder named USE_ME and add the microflows and pages that are relevant for the user

  • Create an empty folder with the version number as its name, which will appear in Studio Pro’s App Explorer

  • Java dependencies

    • In Mendix versions 10.3.0 and above, use managed dependencies where possible.

    • For versions below 10.3 and any unmanaged dependencies (that is, non-publicly-available .jar files), ensure that Java dependencies are put in the userlib folder.

      • When putting .jar files in the userlib folder, make sure the name includes a version number (for example, org.apache.commons.io-2.3.0.jar) and is accompanied by a blank {jarfile-including-version}.{module_name}.RequiredLib file so that users know where the .jar files come from (for example, for the module MyModule, org.apache.commons.io-2.3.0.jar.MyModule.RequiredLib)

  • Verify that the module’s Java actions compile correctly (the easiest way to check is to create a deployment package, as it will clean the deployment folder and rebuild the app; for more information, see Environments)

  • Reduce the use of layouts and use snippets instead, which will result in fewer module dependencies and will reduce the number of potential errors (for example, missing layouts)

  • Implement user roles and security

  • Creating a new release or module export should be done while the security level of the app containing the module is set to Production

  • The status must be Complete for the following access: page, microflow, OData, entity, and dataset

  • For example pages and microflows to be copied to another module, select the Exclude from project option for the document in order to encourage duplication and reduce dependency errors

  • Do not rename entities and attributes when creating new versions, as data in these entities will get lost (replacing an existing module is based on the entity names)

  • The module must include the English language

3.5 Using a GitHub Repo

You can set up a GitHub repository to contain the development content for your Marketplace component, and you can share this repo URL as the component source on the Package page in the submission process.

When setting up the GitHub repo for your component, follow these guidelines:

  • Make sure the repo name matches the name that will be used for the published Marketplace component
  • Use UpperCamelCase to replace the spaces in the name (for example, MyFirstApp)
  • Make sure the repo description states what the component does (this description can also be used in the Mendix Marketplace)
  • Add a .gitignore file to keep your repo clean

To create a new component release for the Mendix Marketplace, follow these steps:

  1. Create a new tag on the appropriate commit on the production or release branch in your GitHub repo.

  2. From this tag, create a new release in GitHub.

  3. In this GitHub release, provide an official name, and write the release notes. You can use these for the Marketplace release as well.

  4. If you add the .mpk file as a binary file to the release tag, the Mendix Marketplace automatically syncs the .mpk to your new draft:

  5. Link this GitHub release to the upcoming Mendix Marketplace release by mentioning the GitHub release number in the description. For more details, see the Package and Updating Existing Marketplace Content sections below.

3.6 Mendix Partner Program

For more information on what this program offers, see Mendix Component Partner Program and Mendix Commercial Solution Partner Program.

4 Adding New Marketplace Content

To get started, click Add Content in the top bar of the Marketplace home screen. Follow the steps in the sections below to add and submit the content.

4.1 General

On the General page, you need to provide some details about your component.

4.1.1 Describing Your Content

Follow these steps to describe your content:

  1. Select a Content type for your component.

  2. Select the location Visibility where you want to publish your component:

    • Public Marketplace (all Mendix users) – your component will be available to the Mendix community
      • This content will have to be reviewed and approved by Mendix before it is available)
    • Private Marketplace (your company only) – your content will receive the Private label and be available only via your Company Content page
      • Selected private content of a content group can also be made available to content group guests for download
      • This content will not be reviewed by Mendix
  3. You can add one Category (up to three total) for your component. A category groups similar components or services together that share common characteristics, functions, or purposes. Categories make it easier for Marketplace users to find what they are looking for.

  4. Enter a Name for your component.

  5. Enter a Description of your component.

4.1.2 Providing License Details

Select the type of License you want applied to your app.

4.1.2.1 Open-Source Software Licenses

These are the open-source software license options available and their requirements:

Notes Commercial use allowed? Component code needs to be in public repo? License text required with copyright info in code and distribution artifact? Can modify? (Mention modifications to code) Can consuming apps use without making their code public? Notice files should be distributed with artifact? Original component source code to be distributed with consuming app? Can sub-license?
MIT Add a specific license.txt file in your artifacts (meaning, in the .mpk).
BSD 2.0, 3.0
Apache 1.0
Apache 2.0 Add a specific license.txt file in your artifacts (meaning, in the .mpk).
Creative Commons CC0 1.0 Universal (CC-0) (Public Domain)
4.1.2.2 Proprietary Licenses

You can configure your own proprietary license for your company’s content. The license can be used for multiple components, and it can be used by everyone within your organization.

This license can be created for a new Public Marketplace (all Mendix users) component by requesting a new license and submitting it alongside the component. The license needs to be approved by Mendix after you have created and submitted it the first time. Once it has been submitted for approval, you and the people within your organization can also use it it for other components.

Follow these steps to configure a proprietary license for a new public component:

  1. Click Request New License.
  2. Add a License Name, which is the name that will be displayed on the component details page.
  3. Add a License URL, which should lead the user to a web page that lists the terms and conditions for using the component. Users can navigate to this web page by clicking the license name on the component details page.
  4. Add a Reason for the new license. This is for the purpose of the Mendix review only, and it will not be displayed on the component details page.

4.1.3 Generating New Leads

A lead is a potential sales contact that expresses interest in your product or service. Lead routing is the end-to-end process of collecting the leads and distributing them to you. It is possible to configure lead routing for the following content types in the Marketplace:

  • Solutions
  • Industry templates
  • Services

When prospective customers are interested in your product, they can leave their contact information using the Marketplace product listing. This is done by clicking a call-to-action button and filling in a form.

You can configure the name of your Main call-to-action button from the following choices:

  • Contact Us, Notify Me, and Request Demo – requires the email address that will receive the customer information

  • Download – no lead routing is established, but customers can directly download your product.

In the How would you like to receive information on new leads? field, you must specify the email address (or addresses) where notifications and information can be sent.

4.1.4 Finishing Up

To finish up configuring this page, click Upload to upload an icon for your component.

4.2 Package

On the Package page, you can Upload Source File:

  • If you select Manual upload, follow the steps in the dialog box for uploading the package source file
    • When you are finished, click Save
  • If you select GitHub URL, follow the steps in the dialog box for copying the link of the release you want to import (for details, see the Using a GitHub Repo section above)
    • To include the repo’s README.md file on the component’s Documentation tab, make sure you have checked the Import Documentation box
    • When you are finished, click OK

Select the Studio Pro Version on which you built the content.

If this is the first version of the component you are uploading, the number in the Version section will be automatically set to 1.0.0.

Enter Release Notes for the component in the box provided describing what is new in that release.

4.3 Enable

On the Enable page, you can enter details on requirements and configuration for your component in the Documentation. Note that the documentation option is only available when the Import Documentation box has not been selected on the Package page above.

Follow the template for the recommended content:

  • You must fill out the following sections in order to submit your component:
    • An extended Description of the component
    • The Typical usage scenario for the component
    • The Features and limitations of the component
  • These sections are optional:
    • Any Dependencies (for example, the required Studio Pro version, modules, images, and styles)
    • The Installation steps and details
    • The Configuration steps and details
    • Any Known bugs
    • Any Frequently asked questions

The editor comes with a set of basic formatting tools, such as bold, bullet lists, and URL links.

Click Upload Screenshot to select images of the component (especially for configuration) from your computer and upload them (this is required for submitting a new component):

You can optionally add a YouTube URL and a Demo URL.

4.4 Capabilities

On the Capabilities page, you can provide the following details about an industry template:

  • A category recommendation in the Industry Cloud section
  • A Banner that will be displayed on your content page
  • One or more key features to leverage in the Solution Capabilities section (for each capability, enter a Name and Description)
  • A Use Case relevant to the content (enter a Header and CTA URL)
  • External Links relevant to the content

4.5 Publish

Finally, on the Publish page, you can review all the details of your component you entered so far and edit as necessary (via the Edit button per section) before publishing.

After you click Publish Content, your draft will be reviewed by Mendix before it is visible in the Marketplace.

For details on the approval process, see Governance Process.

5 Updating Existing Marketplace Content

After you publish a component in the Mendix Marketplace, it is your responsibility to make sure that components are updated on a regular cadence. This is important so that components work with the latest versions of dependencies (especially Mendix Studio Pro), and it is required so Mendix can ensure the quality of components in the Marketplace. This means you need to monitor, maintain, and evolve the component so that the Marketplace listing is more noticeable, you can build user loyalty, and you can maintain the good reputation of your company. If the component is not updated regularly, the Marketplace listing will be analyzed for removal from public visibility.

Mendix expects the following updates for components in the Platform, Community, and Premium support categories:

  • Bug fixes
  • New features
  • Feature removal
  • Compatibility updates with the latest Studio Pro version and other dependencies

To update content that has already been published, follow these steps:

  1. Find the component by clicking My Marketplace and selecting one of the following:

    • My Content
    • Company Content
    • Content Groups (note that if an existing Marketplace component is assigned to a content group as specific content group content, you can only update the component if you are a member of that group)
  2. Click the menu item next to the component you want to update and select Manage Draft.

  3. You can edit all component details, as described in the Adding New Marketplace Content section above.

  4. In the Version section of the Package page, update the Major, Minor, and Patch numbers so that the component is saved as a new version:

    • Major update – a large change (which will save the component from version 5.0 to version 6.0, for example)
    • Minor update – a medium-sized change (which will save the component from version 6.0.0 to version 6.1.0, for example)
    • Patch – a small change (which will save the component from 6.1.0 to 6.1.1, for example)
  5. On the Publish page, you can review all the details of your component you entered so far and edit as necessary (via the Edit Section button) before clicking Publish Content.

6 Documents in This Category

  • Governance Process
  • Describes the Mendix processes for approving and reviewing Marketplace content.