<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Retrojet Docs</title><link>https://docs.retrojetdev.cloud/</link><description>Recent content on Retrojet Docs</description><generator>Hugo</generator><language>en</language><atom:link href="https://docs.retrojetdev.cloud/index.xml" rel="self" type="application/rss+xml"/><item><title>What is Retrojet</title><link>https://docs.retrojetdev.cloud/docs/overview/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.retrojetdev.cloud/docs/overview/</guid><description>&lt;p&gt;Retrojet lets you fix a Flutter app that is already in your users&amp;rsquo; hands, without shipping a new build through the&#10;App Store or Google Play and waiting for review.&lt;/p&gt;&#10;&lt;p&gt;You publish a &lt;strong&gt;release&lt;/strong&gt; through the store as usual, and Retrojet keeps a copy of it. When you change Dart code&#10;later, the Retrojet CLI builds a &lt;strong&gt;patch&lt;/strong&gt; for that release and uploads it. Devices that run the release download the&#10;patch and use it the next time the app starts.&lt;/p&gt;</description></item><item><title>About Retrojet</title><link>https://docs.retrojetdev.cloud/docs/project/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.retrojetdev.cloud/docs/project/about/</guid><description>&lt;h2 id="why"&gt;Why &lt;a href="#why" class="anchor" aria-hidden="true"&gt;&lt;i class="material-icons align-middle"&gt;link&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;A one-line fix in a Flutter app can take days to reach users: build, submit, wait for review, wait for users to&#10;update. Retrojet shortens that path for Dart changes. You still ship releases through the stores, and between&#10;releases you send patches straight to the devices that run them.&lt;/p&gt;&#10;&lt;h2 id="how-it-is-built"&gt;How it is built &lt;a href="#how-it-is-built" class="anchor" aria-hidden="true"&gt;&lt;i class="material-icons align-middle"&gt;link&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Part&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Built with&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Role&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;CLI&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Go, one static binary per OS&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Sign-in, project setup, building and uploading releases and patches&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Backend&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Java, Spring Boot, PostgreSQL&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Accounts, organizations, apps, releases, patches, channels, usage&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Console&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Next.js, React, Tailwind CSS&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;The web app your team uses to check, promote, and roll back&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;These docs&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Hugo with the Lotus Docs theme&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Static pages, no server code&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h2 id="rules-we-keep"&gt;Rules we keep &lt;a href="#rules-we-keep" class="anchor" aria-hidden="true"&gt;&lt;i class="material-icons align-middle"&gt;link&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;The CLI creates, the console controls.&lt;/strong&gt; Releases and patches are only made from the CLI, where the build&#10;happens. The console can promote, roll back, and delete, so a browser is enough to react when something breaks.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Rollback is per channel.&lt;/strong&gt; Stopping a patch for testers never touches what your users on &lt;code&gt;stable&lt;/code&gt; run.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Tokens stay out of the browser.&lt;/strong&gt; CLI sign-in uses PKCE, so the token goes straight from Retrojet to your&#10;terminal. The console keeps your access token encrypted in an HttpOnly cookie that page scripts cannot read.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Patches are signed.&lt;/strong&gt; Every patch file is uploaded with a signature.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Honest docs.&lt;/strong&gt; If something is not available yet, the page says so.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="status"&gt;Status &lt;a href="#status" class="anchor" aria-hidden="true"&gt;&lt;i class="material-icons align-middle"&gt;link&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Retrojet is in &lt;strong&gt;early access&lt;/strong&gt;. The console, sign-in, and project setup work today. Building releases and patches&#10;from the CLI is in progress. See &lt;a href="https://docs.retrojetdev.cloud/docs/overview/#what-works-today"&gt;What is Retrojet&lt;/a&gt; for the current state.&lt;/p&gt;</description></item><item><title>Install the CLI</title><link>https://docs.retrojetdev.cloud/docs/getting-started/installation/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.retrojetdev.cloud/docs/getting-started/installation/</guid><description>&lt;p&gt;The Retrojet CLI is a single file. Put the binary for your system somewhere on your &lt;code&gt;PATH&lt;/code&gt; and you are done.&lt;/p&gt;&#10;&lt;h2 id="pick-your-binary"&gt;Pick your binary &lt;a href="#pick-your-binary" class="anchor" aria-hidden="true"&gt;&lt;i class="material-icons align-middle"&gt;link&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;File&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;System&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;retrojet-darwin-arm64&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;macOS on Apple silicon (M1 and later)&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;retrojet-darwin-amd64&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;macOS on Intel&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;retrojet-linux-amd64&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Linux x86_64&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;retrojet-linux-arm64&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Linux ARM64, for example Graviton or a 64-bit Raspberry Pi&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;retrojet-windows-amd64.exe&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Windows x86_64&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;Each release also ships a &lt;code&gt;checksums.txt&lt;/code&gt; with the SHA-256 of every file, so you can check that a download is complete&#10;and unchanged:&lt;/p&gt;</description></item><item><title>Concepts</title><link>https://docs.retrojetdev.cloud/docs/concepts/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.retrojetdev.cloud/docs/concepts/</guid><description>&lt;div class="prism-codeblock "&gt;&#10; &lt;pre id="8636848" class="language-text "&gt;&#10; &lt;code&gt;Organization&#10;└── App one per package ID, e.g. com.acme.demoapp&#10; ├── Channels stable (always there), staging, beta, …&#10; └── Releases 1.4.0&amp;#43;12, 1.5.0&amp;#43;13, …&#10; └── Patches 1, 2, 3, … each published to one or more channels&lt;/code&gt;&#10; &lt;/pre&gt;&#10; &lt;/div&gt;&#10;&lt;h2 id="organization"&gt;Organization &lt;a href="#organization" class="anchor" aria-hidden="true"&gt;&lt;i class="material-icons align-middle"&gt;link&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Everything in Retrojet belongs to an organization. Signing up creates one for you, and you are its &lt;strong&gt;Owner&lt;/strong&gt;. Other&#10;organizations can add you as a member, so one account can work in several.&lt;/p&gt;</description></item><item><title>License</title><link>https://docs.retrojetdev.cloud/docs/project/license/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.retrojetdev.cloud/docs/project/license/</guid><description>&lt;h2 id="retrojet"&gt;Retrojet &lt;a href="#retrojet" class="anchor" aria-hidden="true"&gt;&lt;i class="material-icons align-middle"&gt;link&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Copyright © 2026 Retrojet. All rights reserved.&lt;/p&gt;&#10;&lt;p&gt;The Retrojet CLI, backend, console, and these docs are proprietary software. You may use the CLI and the console to&#10;work with your own Retrojet account. Copying, modifying, redistributing, or reselling them is not allowed without&#10;written permission.&lt;/p&gt;&#10;&lt;h2 id="open-source-software"&gt;Open source software &lt;a href="#open-source-software" class="anchor" aria-hidden="true"&gt;&lt;i class="material-icons align-middle"&gt;link&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Retrojet is built on open source projects. Each keeps its own license, and nothing on this page changes those terms.&lt;/p&gt;</description></item><item><title>Quickstart</title><link>https://docs.retrojetdev.cloud/docs/getting-started/quickstart/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.retrojetdev.cloud/docs/getting-started/quickstart/</guid><description>&lt;p&gt;You need the &lt;a href="https://docs.retrojetdev.cloud/docs/getting-started/installation/"&gt;CLI installed&lt;/a&gt; and a Flutter project. If you do not have a Retrojet&#10;account yet, the sign-in step lets you create one.&lt;/p&gt;&#10;&lt;h2 id="1-sign-in"&gt;1. Sign in &lt;a href="#1-sign-in" class="anchor" aria-hidden="true"&gt;&lt;i class="material-icons align-middle"&gt;link&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&#10;&#10; &#10; &#10; &#10;&#10; &#10; &#10; &#10; &#10;&#10; &#10;&#10; &lt;div class="prism-codeblock "&gt;&#10; &lt;pre id="4f954a6" class="language-bash "&gt;&#10; &lt;code&gt;retrojet login&lt;/code&gt;&#10; &lt;/pre&gt;&#10; &lt;/div&gt;&#10;&lt;p&gt;Your browser opens the Retrojet console. Sign in (or create an account), check that the request comes from your&#10;terminal, and click &lt;strong&gt;Allow&lt;/strong&gt;. Back in the terminal you see:&lt;/p&gt;&#10;&#10;&#10;&#10; &#10; &#10; &#10;&#10; &#10; &#10; &#10; &#10;&#10; &#10;&#10; &lt;div class="prism-codeblock "&gt;&#10; &lt;pre id="1929c6b" class="language-text "&gt;&#10; &lt;code&gt;✓ Logged in to Retrojet.&#10; Patch your Flutter apps in minutes, not days.&lt;/code&gt;&#10; &lt;/pre&gt;&#10; &lt;/div&gt;&#10;&lt;p&gt;Working over SSH or on a machine without a browser? Use &lt;code&gt;retrojet login --no-browser&lt;/code&gt; and open the printed URL on&#10;any device. Check who you are signed in as with &lt;code&gt;retrojet whoami&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>CLI reference</title><link>https://docs.retrojetdev.cloud/docs/cli/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.retrojetdev.cloud/docs/cli/</guid><description>&lt;div class="prism-codeblock "&gt;&#10; &lt;pre id="8fff876" class="language-text "&gt;&#10; &lt;code&gt;retrojet &amp;lt;command&amp;gt; [flags]&lt;/code&gt;&#10; &lt;/pre&gt;&#10; &lt;/div&gt;&#10;&lt;p&gt;Run &lt;code&gt;retrojet --help&lt;/code&gt; or &lt;code&gt;retrojet &amp;lt;command&amp;gt; --help&lt;/code&gt; for the same information in your terminal.&lt;/p&gt;&#10;&lt;h2 id="retrojet-login"&gt;retrojet login &lt;a href="#retrojet-login" class="anchor" aria-hidden="true"&gt;&lt;i class="material-icons align-middle"&gt;link&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Signs the CLI in to your Retrojet account through the browser.&lt;/p&gt;&#10;&#10;&#10;&#10; &#10; &#10; &#10;&#10; &#10; &#10; &#10; &#10;&#10; &#10;&#10; &lt;div class="prism-codeblock "&gt;&#10; &lt;pre id="4956ad4" class="language-bash "&gt;&#10; &lt;code&gt;retrojet login&#10;retrojet login --no-browser # only print the URL, open it yourself&lt;/code&gt;&#10; &lt;/pre&gt;&#10; &lt;/div&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Flag&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Meaning&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;--no-browser&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Do not open a browser. Useful over SSH or on a machine without a desktop.&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;What happens:&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;The CLI starts a small server on &lt;code&gt;127.0.0.1&lt;/code&gt; and opens the console at &lt;code&gt;https://retrojetdev.cloud/cli/login&lt;/code&gt;.&#10;The URL is also printed, in case the browser does not open.&lt;/li&gt;&#10;&lt;li&gt;You sign in if needed, then click &lt;strong&gt;Allow&lt;/strong&gt;. &lt;strong&gt;Cancel&lt;/strong&gt; stops the login.&lt;/li&gt;&#10;&lt;li&gt;The browser hands a one-time code back to the CLI, which exchanges it for an access token directly with Retrojet.&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;The access token never passes through the browser. The login uses PKCE (RFC 7636), so a code that leaks from the&#10;browser history is useless on its own. It expires after 5 minutes and works only once.&lt;/p&gt;</description></item><item><title>Console</title><link>https://docs.retrojetdev.cloud/docs/console/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.retrojetdev.cloud/docs/console/</guid><description>&lt;p&gt;The console lives at &lt;a href="https://retrojetdev.cloud" rel="external" target="_blank"&gt;retrojetdev.cloud&lt;svg width="16" height="16" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;&lt;path fill="currentColor" d="M14 5c-.552 0-1-.448-1-1s.448-1 1-1h6c.552 0 1 .448 1 1v6c0 .552-.448 1-1 1s-1-.448-1-1v-3.586l-7.293 7.293c-.391.39-1.024.39-1.414 0-.391-.391-.391-1.024 0-1.414l7.293-7.293h-3.586zm-9 2c-.552 0-1 .448-1 1v11c0 .552.448 1 1 1h11c.552 0 1-.448 1-1v-4.563c0-.552.448-1 1-1s1 .448 1 1v4.563c0 1.657-1.343 3-3 3h-11c-1.657 0-3-1.343-3-3v-11c0-1.657 1.343-3 3-3h4.563c.552 0 1 .448 1 1s-.448 1-1 1h-4.563z"/&gt;&lt;/svg&gt;&lt;/a&gt;. Sign up with email and password or with Google.&#10;The interface is available in English and Bahasa Indonesia; switch from the sign-in page or the header.&lt;/p&gt;</description></item><item><title>Plans and limits</title><link>https://docs.retrojetdev.cloud/docs/plans/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.retrojetdev.cloud/docs/plans/</guid><description>&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Free&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Pro&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Enterprise&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Apps&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Unlimited&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Unlimited&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Patches published per month&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;10&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Unlimited&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Unlimited&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Adding members&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;No&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Yes&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Yes&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Patch installs and devices&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Unlimited&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Unlimited&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Unlimited&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&#10;&lt;div class="alert alert-info d-flex" role="alert"&gt;&#10; &lt;div class="flex-shrink-1 alert-icon"&gt;&#10; &#10; &lt;span class="material-icons size-20 me-2"&gt;&#10; info&#10; &lt;/span&gt;&lt;/div&gt;&#10; &#10; &lt;div class="w-100"&gt;Upgrading from the console is not available yet. Contact the Retrojet team to change the plan of your organization.&lt;/div&gt;&#10; &lt;/div&gt;&#10;&lt;h2 id="how-usage-is-counted"&gt;How usage is counted &lt;a href="#how-usage-is-counted" class="anchor" aria-hidden="true"&gt;&lt;i class="material-icons align-middle"&gt;link&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Apps&lt;/strong&gt; is the number of apps right now. Deleting an app frees its slot.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Patches published&lt;/strong&gt; counts each publish this month, in UTC, and resets on the first day of the month.&#10;&lt;ul&gt;&#10;&lt;li&gt;Draft patches do not count.&lt;/li&gt;&#10;&lt;li&gt;Promoting a patch to another channel does not count.&lt;/li&gt;&#10;&lt;li&gt;Deleting a release does not give the count back.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Patch installs&lt;/strong&gt; and &lt;strong&gt;devices&lt;/strong&gt; come from the reports your app sends. They are shown for information and never&#10;limited. Reports from deleted apps are not counted.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="when-you-reach-a-limit"&gt;When you reach a limit &lt;a href="#when-you-reach-a-limit" class="anchor" aria-hidden="true"&gt;&lt;i class="material-icons align-middle"&gt;link&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Limit&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;What you see&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Second app on Free&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;Upgrade your plan to add more apps&lt;/code&gt;. The console disables &lt;strong&gt;Create app&lt;/strong&gt;.&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;11th publish in a month on Free&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;Monthly patch limit reached; upgrade your plan to publish more patches&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Adding a member on Free&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;Upgrade your plan to add members&lt;/code&gt;. The console explains this instead of showing &lt;strong&gt;Add member&lt;/strong&gt;.&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;Changing roles and removing members works on every plan.&lt;/p&gt;</description></item></channel></rss>