Privacy Policy
Applies to the Stackflight iOS app. Last updated 21 September 2026.
The short version. Stackflight has no accounts and no analytics. Everything you do in the app — lessons, XP, streaks, practice — is stored on your own device and is never sent anywhere. The only thing that leaves your phone is a purchase, handled by Apple and by RevenueCat, who validate it. We do not receive your name, email or payment details.
Who is responsible
Stackflight is made and published by Anton Romanyuk (Vacuumbreather). For any question about this policy, or to ask about data held about you, write to anton.romanyuk@vacuumbreather.com.
What the app stores on your device
The following is written to your device's own app storage and stays there. It is not transmitted to us or to anyone else, and deleting the app deletes it.
- Your learning progress: units completed, XP, level, streak and mastery.
- Spaced-practice scheduling: which cards are due and when.
- Preferences: theme and skin, narration autoplay, playback speed, resume positions, and whether you have seen the first-run tour.
- Whether the course is unlocked, as last reported by the store.
- An opaque device identifier the app generates for itself. It is a random string, is not derived from your device or from you, and is not sent anywhere.
What leaves your device
Purchases
If you unlock the course, the purchase is made through Apple's In-App Purchase system. Apple processes the payment; we never see your payment details, name, email address or Apple ID.
To check that the purchase is valid and to keep the course unlocked when you reinstall or change device, the app uses RevenueCat (RevenueCat, Inc., United States) as its purchase infrastructure. RevenueCat receives the purchase receipt and an anonymous customer identifier that RevenueCat itself generates. We do not supply your identity to RevenueCat, because the app has no accounts and does not know it. In Apple's terms, the data category involved is Purchase History: collected, not linked to your identity, and not used to track you.
That identifier is shown to you in the app, under Profile → Settings, as your Support ID. It exists so that you can quote it to us if something goes wrong with a purchase — without it there would be no way to find your purchase at all, since there is no account to look up. RevenueCat's own privacy policy is at revenuecat.com/privacy.
Crash reports, if you allow them
Once, just after the welcome tour, the app asks you a single question — Help us improve Stackflight — with Allow and No, thanks. Whichever you choose is remembered and you are not asked again. The same setting lives in Profile → Settings as a Send crash reports switch, and you can change it there at any time. Until you answer, it is off.
While it is off, nothing is sent — not to us, not to anyone. If the app crashes while it is off, Crashlytics writes a report and keeps it on your device, unsent. Turning the switch on deletes anything already waiting first, so a crash recorded before you agreed is never sent afterwards; turning it off deletes any report that has not yet been sent.
With it on, a crash sends the technical details of the failure — where in the code it broke, your device model, your iOS version and the app's build number — to Firebase Crashlytics (Google). It does not send your progress, your answers, anything you have typed, or your purchase state. We attach no identifier of ours: the Support ID described above is deliberately never given to the crash reporter, so a crash cannot be tied to a purchase.
Google's terms for this service are at firebase.google.com/support/privacy.
Feedback you choose to send
The Profile screen has a Send feedback button. It does not send anything by itself. It prepares a message and hands it to your own email app or share sheet, where you decide whether to send it and to whom. You may attach one screenshot, which you pick yourself from your photo library and can preview or remove before sending. The app performs no network request of its own for feedback, and adds no diagnostics, device information or progress data to the message.
If you do send us feedback, we receive whatever you wrote and whatever image you attached, at the address above. We keep it only as long as it takes to answer you.
What the app does not do
- No analytics and no telemetry. There is no analytics vendor, no event pipeline and no usage reporting of any kind. Nothing you do in a lesson is recorded off the device.
- No crash reporting unless you allow it. See Crash reports, if you allow them above.
- No advertising and no tracking. No ad network, no advertising identifier, no third-party trackers, and no data is shared with data brokers. The app never asks for permission to track you, because it never would.
- No account. There is no sign-up, no login, no email collection and no profile on a server.
- No location, contacts, microphone or camera. The app requests none of these. The only system permission it can ask for is read access to your photo library, and only at the moment you choose to attach a screenshot to feedback.
- No cloud sync. Progress synchronisation is not enabled in the shipping app. Your progress exists on one device.
Audio and content
The narration and all course content ship inside the app. Listening to a lesson makes no network request and is not reported anywhere. The app is fully usable offline.
Children
Stackflight is a technical course written for adults and is not directed at children. It collects no personal information from anyone, including children.
Your rights, and how to exercise them
Because the app holds your data on your own device and sends us nothing, the most complete way to erase everything the app has stored is to delete the app.
One record does survive that: the anonymous purchase record held by RevenueCat, keyed to the Support ID described above. If you want that deleted, send us the Support ID (Profile → Settings, tap to copy) at anton.romanyuk@vacuumbreather.com and we will delete it. Note that deleting it also removes the record that lets the course be restored on a new device.
Under the GDPR and comparable laws you have the right to access, rectification, erasure, restriction, portability and objection, and the right to complain to a supervisory authority. Write to the address above and we will answer.
Summary table
| Data | Where it goes | Linked to you? |
|---|---|---|
| Learning progress, XP, streak, practice schedule | Your device only | Not collected by us |
| Preferences and resume positions | Your device only | Not collected by us |
| Purchase receipt and anonymous customer id | Apple; RevenueCat | No — not linked to identity, not used for tracking |
| Feedback message and optional screenshot | Only if you send it, from your own email app | Whatever you choose to include |
| Crash reports | Only if you switch them on, to Firebase Crashlytics | No — no identifier of ours is attached |
| Analytics, usage events, location, contacts | Nowhere — not collected | — |
Changes
If this policy changes, the updated version will be published here with a new date at the top. Material changes to what the app collects would ship with an app update, not quietly.