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 also uses limited product analytics; the iOS app does not contain an analytics or 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.
- Local cache, the same data is mirrored in your browser's localStorage (keys
belajar:userandbelajar:v3) so the app loads instantly and works offline. Both layers are kept in sync.
You can inspect the local cache in your browser's DevTools → Application → Local Storage. The synced copy is protected so only the account owner can read it.
Website analytics
Our website uses limited product analytics to understand page views and important events, such as upgrade clicks or completed purchases. Automatic form and click capture is disabled. The iOS app does not contain an analytics SDK. We do not use advertising pixels, session recordings, cross-app tracking, or sell analytics data.
What we do NOT collect
- No advertising identifiers
- No social media pixels
- No session recordings
- No crash reports
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:
- Browser speech synthesis / recognition, your OS or browser may send audio to Google or Apple servers during speech recognition (the Speaking quiz mode). That is under your operating system's control; our code sends nothing.
- Stripe, only when you open checkout or the billing portal. Payment details go to Stripe directly and never touch 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: Settings → Your data → Download my data. You get a JSON file containing your profile, your plan, and every piece of learning progress we store.
- Delete your account: Settings → Your data → Delete my account. This permanently removes your learning progress and account and immediately cancels an active 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: Settings → Account → Reset progress.
- Correct your data: your name comes from your sign-in provider or your profile. Update it there and it updates here.
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 also clear all local data at any time by clearing site data in your browser. 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.