Your data stays minimal.
The short version
Speak Indo uses secure account sync so your progress and membership follow you between devices. We collect only what's needed to run the learning app: your email, optional display name, account identifier, learning progress, and purchase status. The website and the iOS app both use limited product analytics, into the same first-party project. Neither contains an advertising SDK. No ads, no cross-app tracking, no social pixels, and no selling data.
What we store, and where
- Email address, to identify your account and send account emails. Used only for authentication and billing support; no marketing emails unless you explicitly opt in later.
- Display name + sign-in method (Apple, Google, or email), so the app can greet you and show your account in the profile widget.
- Account identifier + purchase status, so a paid membership can be verified and restored across the iPhone app and website. Speak Indo does not receive your payment-card number from Apple or Stripe.
- Learning state, your flashcard SRS data (ease, intervals, reps per word), session counts per day, quiz stats, CEFR levels, audio preference, daily-goal setting, achievement unlocks, and the last viewed tab. Stored as a single JSON blob keyed to your account.
- On-device data, your learning state is stored in Speak Indo's private app storage on your iPhone so the app loads quickly and works offline. If you sign in, the account copy and the on-device copy are kept in sync.
- Legacy website data, people who used the earlier web learning app may still have a local browser copy under
belajar:userandbelajar:v3. The website no longer offers new web learning sessions, but it still lets those learners export their local progress.
The synced copy is protected so only the account owner can read it.
Product analytics
The website and the iOS app use limited product analytics to understand page or screen views and important events, such as upgrade clicks or completed purchases. Our processor is PostHog, on their European hosting, and both apps report into the same project so one person using both is not counted as two. Automatic form and click capture is disabled, and so is session recording. Analytics data is linked to your account identifier once you sign in, so that we can tell a returning learner from a new one. We do not use advertising pixels, cross-app tracking, or sell analytics data.
What we do NOT collect
- No advertising identifiers
- No social media pixels
- No session recordings
- No third-party crash-reporting SDK
Third-party content
Fonts are served from our own domain, so loading a page does not tell Google or any font CDN that you visited us. What remains:
- Apple speech recognition, Say It uses the iPhone microphone and Apple's speech recognition framework after you grant permission. Depending on your device and language support, Apple may process speech to return a transcript. Speak Indo does not store the recording.
- Apple, for App Store downloads, in-app purchases, subscription management, and refunds. We receive purchase identifiers and entitlement status, not your card number.
- Stripe, only for people managing a historic website purchase or billing portal. New website checkout is closed. Payment details went to Stripe directly and never touched our servers.
- Supabase, our database and authentication provider, which stores your account and learning state.
Your rights
You control your learning data, and every one of these is self-service inside the app. You do not need to email us.
- Download your data: Profile → Settings → Your data → Export my data. You get a JSON file containing your profile, plan, and learning progress.
- Delete your account: Profile → Membership → Delete my account. This permanently removes your learning progress and account and cancels an active historic Stripe website subscription. An Apple in-app subscription is managed by Apple and must be cancelled in Apple Account → Subscriptions; deleting the Speak Indo account does not cancel Apple billing. Account deletion cannot be undone.
- Reset progress but keep your account: Profile → Settings → Your data → Reset progress.
- Correct your data: Profile → Settings → Name.
If you delete your account we keep your Stripe invoice and payment records, because tax and accounting law requires us to retain them. Those records contain no learning data. Everything else is erased.
You can clear the iPhone copy with Reset progress. Deleting the app also removes its on-device copy, but it does not delete a signed-in account or cancel a subscription. If you are in the EU or UK and believe we have not handled a request properly, you have the right to complain to your local data protection authority.
Children
Speak Indo is suitable for general learners, but account creation and payments should be handled by an adult where required by local law.
Changes
If we materially change what data we collect or why, we will update this policy.