By using Vocabee, you agree to the practices described below.
1. Information We Collect
We aim to collect only what is necessary to operate Vocabee.
a. Account information (required)
An account is required to use Vocabee. Vocabee uses Supabase authentication and supports:
- Sign in with Apple
- Google sign-in
- Email sign-in using a one-time link or code sent to the address you enter
Depending on the method you choose and your provider settings, we receive a stable account identifier, your email address, and sign-in timestamps. If you use Sign in with Apple and choose to hide your email, we receive Apple’s private relay address rather than your personal one.
b. Photos and capture content
Photos you capture are stored on your device. Vocabee does not save your photos to our servers or to any cloud storage bucket, and they are not backed up to our systems.
c. Photo recognition and lesson generation (server-side)
When you capture an object, Vocabee sends a compressed copy of that image to our backend, hosted on Vercel and processed in the United States. Our backend forwards the image to Google’s Gemini API to identify the object and generate a bilingual lesson.
- We do not store the image. It is held only in memory for the duration of the request and is not written to our database or file storage.
- Google processes the image as our service provider under the paid tier of the Gemini API. Under Google’s paid-tier terms, Google does not use the content you submit to train or improve its models.
- We do save what the model produces. This is described in Section 1d.
Spoken audio for lessons is generated from the lesson text using Google Cloud Text-to-Speech. Audio is generated from text only; your photo is not involved.
d. Learning records we store
Once a lesson is generated, we keep a record of it linked to your account identifier so the app works, so we can support you, and so we can check quality. This record includes:
- The model’s description of what it recognized — for example the object label, the type of object, and a general description of the setting it appeared in (such as “indoor” or “street”)
- The generated lesson text: the word, its description, and example sentences
- The language, proficiency level, and quest or category the capture was matched to
- Technical details of the generation: model identifier, timing, token counts, and success or failure
We also keep the prompts sent to, and the text returned by, the language model for a limited period, so we can debug failures and review lesson quality. A small sample of generated lessons is reviewed by our team to check for accuracy and unsuitable output. These quality records are keyed to the generation run rather than to you, and when you delete your account they are no longer linked to your account (see Section 5).
e. Location data (optional, off by default)
Vocabee can tag a capture with where you took it. This is switched off unless you turn it on, and Vocabee asks for the iOS location permission only after you enable it.
When it is on, Vocabee records your position at the moment you take a capture, and converts it into a place description that can include a place name, street and building number, locality, postal code, and country. Vocabee asks iOS for a low-accuracy fix — around 100 metres — but the position iOS returns can be more precise than that, so treat this as a precise location.
Turning the coordinates into a place name uses Apple’s geocoding service built into iOS, which means the coordinates are sent to Apple for that lookup. Apple handles them under Apple’s own privacy policy.
Apart from that lookup, your location stays on your device, stored alongside the capture. It is never sent to Vocabee’s servers, we never store it, and it is excluded from analytics. You can turn it off at any time from the capture screen, or revoke the permission in iOS Settings.
f. Product analytics
Builds distributed through TestFlight and the App Store include the PostHog SDK, which we use to understand how features are used and where people get stuck. Analytics is disabled in development builds.
- Events are linked to your Supabase account identifier, so this data is identifiable to your account and is not anonymous.
- We do not use session replay, screen recording, screenshot capture, automatic event capture, or automatic screen tracking.
- We do not use advertising identifiers (IDFA), do not track you across other companies’ apps or websites, and do not present an App Tracking Transparency prompt because we do not perform that kind of tracking.
- Before an event is sent, we strip fields that could carry personal content — including names, email addresses, tokens, coordinates and location fields, image or photo data, model prompts, and generated lesson text.
g. Diagnostics and crash reporting
We use Sentry in the App and on our backend to capture crashes and errors. Sentry is configured with personally identifying data collection turned off (sendDefaultPii = false) and performance tracing disabled. Reports contain error details, device and OS information, and app version.
h. Operational logs
We and our infrastructure providers keep limited operational and security logs — for example authentication events, API request logs, and rate-limiting counters — to run and protect the service.
i. Purchases
If you buy a subscription, the App Store processes the payment. We do not receive your payment card details.
We use RevenueCat to manage subscriptions. RevenueCat receives your account identifier and your App Store purchase and subscription events, and tells us whether your subscription is active. From that we store your subscription status and a subscription identifier — an identifier linked to your App Store subscription rather than to you personally — so we can unlock Vocabee Plus for your account.
Vocabee Plus includes a set number of captures in a rolling 30-day window. To apply that allowance, we also record the time of each successful capture. These times are stored with your account while it is active; Section 5 explains what happens to them if you delete it.
j. Support communications
If you contact us by email, we store that correspondence so we can respond.
2. How We Use Information
We use information to:
- Authenticate and secure your account
- Recognize captures and generate lessons, audio, and progress
- Review and improve the quality and safety of generated lessons
- Diagnose crashes, errors, and abuse
- Understand product usage in aggregate
- Provide support and respond to your requests
- Meet legal obligations
We do not sell or rent your personal data, we do not share it with advertisers, and we do not use it for advertising or cross-app tracking.
3. How We Share Information
We share information with service providers acting on our behalf, and only what each one needs:
| Provider | Role | What it receives |
|---|---|---|
| Supabase | Authentication and database | Account identifier, email, sign-in events, learning records |
| Vercel | API hosting (United States) | Capture images in transit, request metadata |
| Google (Gemini API) | Image recognition and lesson generation | The capture image and the generation prompt |
| Google Cloud Text-to-Speech | Lesson audio | Lesson text |
| Upstash | Rate limiting | Request counters and identifiers |
| PostHog | Product analytics | Scrubbed usage events tied to your account identifier |
| Sentry | Crash and error reporting | Error details, device and app information |
| RevenueCat | Subscription management | Your account identifier, and App Store purchase and subscription events |
These providers handle data under their own terms and privacy policies.
We may also disclose information where required by law, or to protect the rights, safety, and security of our users, our service, or the public.
4. Data Storage, Location, and Security
Our backend runs in the United States, and our providers may process data in the United States and other countries where they operate. If you use Vocabee from outside these regions, your data will be transferred and processed there.
We use reasonable safeguards designed to protect information, including encryption in transit (HTTPS), row-level access controls in our database, and short-lived access tokens. No method of transmission or storage is completely secure, but we work to protect your data.
5. Data Retention and Deletion
Photos: Kept on your device, under your control. Delete them in the App or remove the App to remove them. They are never stored on our servers.
Location tags: Kept on your device with the capture. Removed with the capture or the App.
Learning records: Retained while your account is active.
Quality and debugging records: Prompts, model outputs, and quality review notes are retained for a limited period for debugging and lesson-quality review.
Subscription and allowance records: Your subscription status, your subscription identifier, and the times of your successful captures are retained while your account is active.
Deleting your account. You can delete your account yourself in the App: Settings → Account → Delete Account. For security, you may be asked to sign in again first. Deletion removes your Supabase authentication account and your server-side lesson and analysis records. After that, generation and quality records that remain are no longer linked to your account.
Your account and your RevenueCat customer record are deleted as part of the deletion request, not after a retention period.
Recent Plus usage after account deletion. The Plus allowance belongs to the App Store subscription rather than to whichever account is signed in to it, so deleting an account does not hand back captures already used. When a Plus account is deleted, we therefore keep the times of its recent successful captures. Each of these records holds only the subscription identifier for the purchase, the store and app it belongs to, and the time of the capture. It holds no account identifier, no email address, and no lesson, capture, or attempt identifier, and no lesson content.
These records are not fully anonymous: the subscription identifier stays linked to your App Store subscription, so if you restore that same subscription, the records that remain still count against its allowance.
Each record is kept only until its capture leaves the rolling 30-day allowance window, and a scheduled cleanup then deletes it. This is not a 30-day hold on deleted account data: a capture made 29 days before you delete your account is removed about a day later, not 30 days later.
Cancelling your subscription is separate. Deleting your Vocabee account does not cancel your subscription or stop future charges, because Apple — not Vocabee — manages that billing. Cancel it on your device under Settings → your name → Subscriptions, whether before or after you delete your account. Refunds are handled by Apple.
You can also email [email protected] if you would prefer we do it for you, or if in-app deletion fails.
Data stored only on your device — including your photos, location tags, and local progress — is removed when you delete the App.
Some records may persist briefly in encrypted backups and in security or billing logs, and we may retain what we are legally required to keep. Deletion requests are also passed to our processors in line with their own deletion timelines.
6. Your Choices and Controls
- Location: Off by default. Turn it on or off from the capture screen in the App; revoke the permission in iOS Settings.
- Camera: Manage the permission in iOS Settings. Vocabee’s capture feature requires it.
- Photos: Delete them in the App or by removing the App.
- Account and data: Delete your account in the App, as described in Section 5.
- Analytics and diagnostics: Signing out resets your analytics identity on the device. Deleting your account ends collection.
- Requests: Contact us at [email protected] to ask what we hold about you, to request a copy, or to ask us to correct or delete it.
Depending on where you live, you may have additional rights over your personal data — such as access, correction, deletion, portability, or objecting to certain processing. Contact us at the address above and we will respond in line with applicable law.
7. Children’s Privacy
Vocabee is intended for users aged 13 and above, or older where your country sets a higher minimum age for consenting to online services. We do not knowingly collect personal data from children below that age. If we learn that we have, we will delete it promptly. If you believe a child has given us personal data, contact us at [email protected].
8. Updates to This Policy
We may update this Privacy Policy from time to time. We will update the “Last updated” date above, and where changes are material we will give notice in the App or in the store listing.
9. Contact
Raconte Limited, Hong Kong SAR.
Questions, feedback, or privacy requests: [email protected]