# Publishing

## How to publish?

![](https://998911913-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MPk9cn4V7WnnKt7fbry%2Fuploads%2Fgit-blob-6640fac8b30e56aa07256526473f88e41faa1d12%2Fheader-description.png?alt=media)

Publishing is as easy as running the following command from your app directory:

```bash
homey app publish
```

{% hint style="info" %}
Before you publish your app make sure to read the [App Store Guidelines](https://apps.developer.homey.app/app-store/guidelines). This will ensure the app review process goes smoothly and your app won't be rejected.
{% endhint %}

Your app will be compressed and send to the Homey App Store for processing. Go to <https://tools.developer.homey.app>, tap *Apps SDK* and choose *My Apps*. All your apps are visible here, and you can publish your app to Test, or Live by submitting it for certification. Once your app is approved by a reviewer at Athom it can be published.

By default your app will be submitted as *Draft*. You can then choose to release a *Test* version of the app, only available for users who visit your app via the Test link (available in your dashboard). After some proper testing the app can be submitted for certification by Athom. After approval it will be published to the Homey App Store and becomes available to all Homey users.

{% hint style="info" %}
Apps that have never been released to the Homey App Store, will need to be certified before becoming publicly available for other users. In case you want to publish a *Test* version of the app make sure to disable the "publish directly after approval" checkbox when submitting for certification.
{% endhint %}

## Requirements

To check if all requirements are met, validate your app prior to submission.

```bash
homey app validate --level publish
```

For Verified Homey Apps there are some additional requirements which can be validated with the `verified` validation level. This level will be applied by default if you are logged in with a verified developer account.

```bash
homey app validate --level verified
```

| Validation level | Description                                                                                                                                                                                                                                                |
| ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `debug`          | The debug validation level is used during development. Various app manifest properties, such as `images`,`brandColor`, and`category` are optional at this validation level.                                                                                |
| `publish`        | You app needs to pass this validation level to be published to the Homey App store for Homey Pro.                                                                                                                                                          |
| `verified`       | If you are a verified app developer your app needs to pass this validation level. This is required for Homey Cloud. The verified validation level adds additional requirements such as adding `platforms`, `connectivity`, and `support` to your manifest. |

## Visibility

The Homey App Store overview page shows various categories, in which apps are sorted. Only the best, most popular and visually appealing apps are shown here.

To get your app displayed on the Homey App Store overview page, make sure that your app not only works great but also looks amazing. So add a catchy Description, beautiful App Image, great Icon. Capture the attention of your users!

To get an idea of which type of apps are displayed check out the [App Store overview](https://homey.app/nl-nl/apps/homey-pro/) page.

## Automating within GitHub Actions

To automate the validation, versioning and publishing of your Homey app within GitHub Actions, you can use the following Actions from the GitHub Marketplace.

* <https://github.com/marketplace/actions/homey-app-validate>
* <https://github.com/marketplace/actions/homey-app-update-version>
* <https://github.com/marketplace/actions/homey-app-publish>
