Skip to content

Upgrade prompt

The upgrade prompt is what you see when you try an action on the free tier that would take a syndicate over one of its limits — adding a second asset, or inviting a fourth member. The prompt explains the limit and, depending on the platform you are on, offers a path to upgrade.

Because Apple’s and Google’s store rules forbid in-app calls-to-action that route payment outside their stores, the prompt behaves differently on web and on mobile. On web you can go straight to checkout. On iOS and Android you get a plain notice, and an upgrade email is sent automatically to the address on your account.

  • Owner — sees the prompt when performing an action that breaks a limit; upgrading is the owner’s job.
  • Admin — sees the same prompt; admins can hit the limit by inviting members but cannot complete the checkout (only the owner can).

The prompt is triggered by actions, not a settings page. It appears:

  • When adding an asset on a free-tier syndicate that already has one asset. Screen: Create asset (/syndicates/:syndicateId/assets/new).
  • When inviting a member on a free-tier syndicate that already has three. Screen: Create invite (/syndicates/:syndicateId/invites/new).

A dialog appears with:

ElementWhat it does
Title”Upgrade Your Plan”
MessageThe limit-specific message (e.g. “Your syndicate has reached the free plan limit of 1 aircraft” or “Your syndicate has reached the free plan limit of 3 members”).
CancelDismisses the dialog. No side effects.
Upgrade NowRequests a checkout URL and opens it in a new browser tab.

A snackbar appears with the limit message. There is no call-to-action button, in line with App Store and Google Play rules. In the background, the app fires off a one-line request to send the account holder an email with an upgrade link to the web version. No user interaction is needed to send the email; it is automatic.

  • On web, Upgrade Now opens checkout directly. It does not send an email. The URL is returned by a server endpoint and opens in a new tab; completing checkout there upgrades the syndicate.
  • On web, checkout depends on a payment provider being live. This dependency is currently dormant — the payment integration has not shipped. The path will begin working when a payment integration is brought online; nothing in the client app needs to change at that point. Until then, attempting to upgrade on the web returns an error from the checkout endpoint.
  • On mobile, the email is sent automatically. There is no button to request it. Fire-and-forget: the app submits the request and continues. Delivery is handled server-side with a cooldown so repeated bumps do not spam the account holder.
  • The snackbar on mobile is informational. No links, no CTAs, per store rules.
  • The action that triggered the prompt is always blocked. Dismissing the prompt leaves the syndicate at its current size. The limit is not bypassable.
  • Only the owner can complete the checkout on the web version. Admins see the dialog but the resulting checkout session belongs to the owner account.
  • The upgrade email goes to the account holder who triggered the prompt, not to every admin. One email per event, subject to the server-side cooldown.