> For the complete documentation index, see [llms.txt](https://developer.musehub.com/muse-partners-help/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.musehub.com/muse-partners-help/getting-started/prepare-your-product.md).

# Prepare your product

Understand what's necessary to bring your products to MuseHub

Publishing on MuseHub is a great opportunity to reach new customers and grow your product. There are some simple no-code steps required in order to ensure your product is compatible with the MuseHub platform, and can be delivered in seamless, secure way to the customer.

## Content Guidelines

Please ensure your product meets the platform's [content guidelines](#content-guidelines). This is to ensure a safe and secure environment for customers.&#x20;

This means checking your code for viruses and ensuring there is no harmful content inside. Apps and plugins have additional requirements, such as ensuring the product doesn't open to a login screen or have a custom DRM solution. Additionally, the finished product must be code-signed, and notarised on macOS, as described in Codesign and notarise below.

## Prepare your code

MuseHub operates as a custom licensing platform to ensure a smooth and consistent experience. The process of creating a Hub compatible version is straightforward:

* Start with an open/OEM version of your software; a binary free from other DRM solutions (serial licenses, dongles, activation codes etc) which opens directly.
* Ensure the product doesn't open to a login or license screen.
* If your application or plugin needs a user account (e.g., for cloud processing), use the MuseSDK to integrate directly with MuseHub. This allows your product to return a user ID for the MuseHub customer and supports seamless account creation on your backend.

## MuseHub Developer Utility

If you have a paid product, you must run the MuseHub Developer utility to wrap your build with [Muse DRM](/muse-partners-help/resources/muse-drm.md); this enables the Hub platform to function. The DRM service is provided as an easy "no code" way to enable compatibility with the commercial business models of MuseHub, and does not apply to free products. Once run, the service will return protected versions of your products, along with an ID key that you'll enter alongside the product binary when you upload it to the Partner Portal.

## Codesign and notarise

Once the Muse DRM service has returned the protected version of your products, sign them with your developer credentials:

* **macOS:** sign and notarise everything (apps, plugin bundles and PKG installers) with your own Apple Developer ID.
* **Windows:** sign installers and standalone .exe files with a trusted certificate, so users don't get SmartScreen warnings. Plugin DLLs such as .vst3 don't need signing. A standalone Windows app must be shipped inside an installer.

No Windows certificate? MuseHub signs your installers and .exe files for free. Files signed by MuseHub can only be distributed through MuseHub.

## Build installers

With these Hub-compatible versions of the software, you can now prepare your uploads:

* **Plugins only:** zip each wrapped and signed plugin bundle and upload the zips directly to the Partner Portal, keeping the original extension before .zip: `MyPlugin.vst3.zip`, `MyPlugin.component.zip`, `MyPlugin.aaxplugin.zip`. Zipping preserves symlinks and file properties that can be lost when uploading a bundle through a web browser, and the original extension lets the Partner Portal recognise the asset type. To preserve symlinks in macOS use `-y` when zipping from the command line, or right-click ⇒ Compress.
* **macOS apps:** zip the notarised .app the same way (`MyApp.app.zip`) when the app is your whole product.
* **Extra content or dependencies:** build an installer. On macOS that's a single PKG holding all your plugin formats (several PKGs are not accepted, and DMG is not accepted). On Windows, any common installer type works (MSI, MSIX, InnoSetup, NSIS).

On Windows, recognised installer types run silently, so don't include any custom steps or things that might interfere with the silent install process.
