# Over-the-air (OTA) releases

<figure><img src="/files/yPAtc24MIqJoHFMoVYQL" alt=""><figcaption></figcaption></figure>

Teams that are shipping apps built with React Native or Flutter that are doing over-the-air releases alongside their binary releases can use Runway’s special OTA platform to streamline their over-the-air release process.

## How it works

Over-the-air (OTA) releases in Runway are surfaced as a separate app platform. Many of the release steps that are available in binary release contexts are also available for OTA releases. Other release steps are unique to the OTA platform type, since the process tends to differ from that of binary releases. The following release steps appear by default for OTA apps in Runway:

* **Kickoff:** Monitors the kickoff of your OTA release process, including release branch creation (if relevant based on your configured branch patterns) and release versioning
* **Feature readiness:** Surfaces the work items (code and project management tickets) going into the release &#x20;
* **Staging release**: Configured to point to the CI/CD workflow that’s responsible for building and uploading an OTA bundle to a staging environment
* **Regression testing:** The status of regression testing on the staging build, and any regression testing items
* **Beta testing:** The status of any beta testing being performed on the staging build
* **Approvals:** Approval items, if needed
* **Production release:** Configured to point to the CI/CD workflow that’s responsible for building and uploading an OTA bundle to your production environment

{% hint style="info" %}
OTA releases are considered complete once the “Production release” step is complete – that is, as soon as the CI/CD workflow that’s responsible for building and uploading an OTA bundle to your production environment has succeeded.
{% endhint %}

### OTA release versioning

Runway can be configured to detect an OTA release version from any file of your choosing. By default Runway will read from the version key found in your app’s `package.json`.

<br>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.runway.team/using-runway/over-the-air-ota-releases.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
