Basso Privacy Policy
Effective date: 14 October 2026.
Basso is a voice-training app published by Şinasi Demirel under the Tiki Studios name ("Tiki Studios", "we", "us"). This Privacy Policy explains what information Basso handles, where it goes, and — just as important — what never leaves your device.
The short version
- Your voice never leaves your device. Microphone audio is analyzed on-device in real time and is never uploaded to us or anyone else. If you turn on the optional Voice Time Capsule, your passage recordings are kept on your device.
- Store-specific subscription identity. Apple/Google subscriptions use RevenueCat’s anonymous app-user ID. On Huawei, Basso uses Huawei ID sign-in and a pseudonymous Basso billing ID to verify and restore your subscription. Basso does not receive your Huawei password or request your email, name or profile photo.
- Your detailed training records stay local. Measurements, progress, and settings are stored on your device. Selected numeric pitch measurements and usage events are also sent to Firebase Analytics when collection is enabled, as described in Section 3.1.
- Service providers: Google Firebase for analytics/crashes and, on Huawei, subscription-record storage (Cloud Firestore); Hetzner for the Huawei verification server; RevenueCat for Apple/Google subscriptions; Huawei for Huawei ID and AppGallery payments.
- No ads, no tracking. Basso contains no advertising and does not track you across other apps or websites. On iPhone and iPad, if you installed Basso from one of our Apple Ads campaigns, Apple tells us which campaign it was (Section 3.3).
- Minors are protected: analytics is disabled for users who self-report as minors.
1. Who is responsible for your data
The data controller is Şinasi Demirel (Tiki Studios), the individual publisher. You can reach us at support@tikistudios.io.
2. Audio and training records on your device
The following detailed records are created and stored on your device, in a local database or as temporary files. Raw voice audio is not uploaded. These local records are not transmitted to our subscription verification server. Selected numeric measurements and usage events may also be sent to Analytics when enabled, as described in Section 3.1.
Your operating system may separately back up eligible app databases, files (including Voice Time Capsule recordings) or preferences, or transfer them to a new device, under your device backup settings. These system-managed copies are not stored by the Basso billing service. Clearing app storage or uninstalling does not necessarily remove an existing operating-system backup; manage those copies through your backup provider.
- Voice audio. When you take a voice test or do a guided exercise, microphone audio is captured as a raw PCM stream and fed directly into Basso's on-device pitch-analysis engine. The audio is discarded as it is analyzed. Two optional features keep audio, and only on your device: Record & compare saves a single temporary WAV file (up to about 10 seconds) so you can play your take back against the coach's reference take, deleted automatically when you close the feature; and the Voice Time Capsule, if you choose to keep recordings, saves the standard passage you read in your first voice test and in each weekly voice test as an audio file so you can hear your progress later. Basso never uploads capsule recordings. You can delete all of them at any time, with or without a subscription, in Settings > Delete voice recordings; this also stops new ones being saved.
- Voice measurements. Metrics derived from voice tests: median pitch (Hz), pitch percentiles, pitch stability, lowest comfortable pitch, voiced ratio, ambient noise floor, a measurement-quality flag, your device model, and the local hour of the test.
- Profile and preferences. Your birth year (used only to apply the minor protections described in Section 6), your training goal, your daily practice-minutes choice, and your locale.
- Training progress. Your program assignment, session and exercise completions, settings, and a local cache of your subscription status.
- Practice reminders. If you enable reminders, notifications are scheduled on your device by the operating system. No server is involved.
- Speak Check. Texts you write to practice reading aloud, and the summary of each Speak Check take (share of speaking time in your target pitch zone, median pitch, duration), stay in the local database. They are never uploaded and never included in analytics.
- Favorites. Exercises you star in the library.
- Voice Match. Your take is analyzed on your device while you read and is not kept; only its scores (melody, pace, overall) and the line it was for are stored in the local database. The reference lines are bundled with the app.
- Challenges and goals. When you start the 30-Day Voice Challenge or set a monthly goal, the start date or the number of days you chose is stored in the local database. Your progress is worked out from your completed sessions on the device.
- Share cards. If you choose to share a progress card or a “Your year in voice” card, the image is rendered on your device and leaves it only through the destination you pick in the system share sheet.
3. Information collected by third-party services
3.1 Firebase Analytics (Google)
Basso logs usage events to Firebase Analytics to understand how the app is used and where to improve it. Events include:
- app opens;
- onboarding start and steps (goal selection, daily practice-time choice, age confirmation);
- microphone-permission result (granted/denied), and whether the ambient-noise check passed before a test;
- voice-test completions, which carry numeric pitch values (median pitch and low-range pitch in Hz) and a measurement-quality flag; skipping the low-range test;
- viewing your result and your revealed plan, and which training track you were assigned (track name and routing-config version);
- weekly re-test results (pitch and change versus your baseline);
- paywall views, trial start, purchase completion (product identifier only), and purchase restore;
- practice-session starts and completions (session identifier and duration), exercise-block completions;
- share-card creation, notification opens, settings changes, and whether the speech-language-pathologist referral notice was shown to you.
Events are linked to a Firebase app-instance ID — a random identifier generated when you install the app — plus standard automatically-collected device and app metadata (device model, OS version, app version, and approximate location derived from the connection's IP address, such as country, region or city). This does not require GPS permission. Event parameters carry only identifiers, numbers, and enum values: never audio, free text, names, or contact details.
3.2 Firebase Crashlytics (Google)
If the app crashes, Firebase Crashlytics receives a crash report: the stack trace, device model, OS version, app version, and device state at the time of the crash, tied to a Crashlytics installation identifier. Crash reporting is disabled in debug builds.
3.3 RevenueCat
For Apple App Store and Google Play builds, RevenueCat manages your subscription status. Purchases are associated with an anonymous app-user ID generated by RevenueCat — Basso never identifies or logs you in to RevenueCat, so these records are not linked to your identity by us. The payment itself is processed entirely by the Apple App Store or Google Play; we never see your card details or your store-account identity.
Apple Ads attribution (iPhone and iPad only). When Basso starts on iPhone or iPad, it asks Apple’s AdServices framework for an attribution token, and the RevenueCat SDK sends that token to RevenueCat. RevenueCat exchanges the token with Apple, and Apple says whether the install came from an Apple Ads campaign. If it did, Apple also returns the campaign, ad group, keyword and ad identifiers and the country or region. RevenueCat stores this record with the anonymous app-user ID, so we can see which of our own Apple Ads campaigns lead to trials and subscriptions. This uses no advertising identifier (no IDFA), is not combined with data from other companies’ apps or websites, and does not involve the App Tracking Transparency prompt. Android and AppGallery builds do not do this.
3.4 Huawei ID, AppGallery billing and Basso verification service
In the AppGallery build, Huawei Account Kit obtains a single-use authorization code with the identity permissions needed for subscription ownership. Our verification service redeems that code with Huawei and converts the app-specific Huawei OpenID into a pseudonymous Basso billing ID. It does not retain the raw OpenID or Huawei access/refresh tokens, or request your email, name or profile photo. A native pseudonymous ownership hint is used only to clear stale on-device access after an account change; it does not grant access.
The verification service signs its own short-lived session for this pseudonymous ID; no Firebase Authentication account is created, and the app does not contact Google sign-in. The verification service is configured on our existing Hetzner server in Helsinki, Finland, with its Google Firestore database in Frankfurt, Germany. Subscription records include the pseudonymous UID, purchase-intent IDs and product/timestamps, subscription identifiers and purchase tokens, product, payment environment, status, expiry and verification timestamps. Original signed receipts and price/currency are processed for validation; the service does not retain their complete signed strings. We use these records to verify subscription ownership and current payment status, restore interrupted purchases and prevent receipt replay or transfers between accounts. Huawei processes the payment; Basso does not receive card or bank details.
Google controls its processing locations and provider-side retention under the linked Firebase privacy information; the Frankfurt Firestore location does not mean Analytics data is confined to Frankfurt.
The service also keeps hashed authorization-code and IP/rate-limit identifiers to prevent reuse and abuse. Cloud hosting may process request metadata and operational logs. Voice audio, birth year and local training progress are not sent to this billing service. Huawei purchase notifications update existing verified subscription records; an unsigned notification alone cannot grant access. RevenueCat is not used by this Huawei build.
We do not sell personal data, and we do not share your data with anyone other than the processors listed above.
3.5 Support reports
Support reports you choose to send. Settings → Report a problem prepares an email to support@tikistudios.io in your chosen mail app. The report includes the app version/build, store and flavor, operating system/version, device manufacturer/model, locale, UTC time, and local subscription status and expiry. It also includes your assigned program/track, current session and week, the Home card being shown, last completed session and its time, completed-session count and streak. In the Huawei build it also includes the pseudonymous Basso billing ID when you are signed in, so support can identify the billing record. It does not query RevenueCat on Huawei. You can review or edit the email before sending it. If no mail app can open the report, Basso copies it to your device clipboard and displays the support address; Basso does not send the email automatically. When you send a report, your mail provider and our support mailbox process your sender address, message and included diagnostics for customer support. The generated diagnostics do not include card information, passwords, payment PINs, purchase tokens, signed receipts, or voice recordings. Any additional material you choose to include is part of your message.
4. What Basso does not collect
- Your audio — it is processed on your device and never uploaded (Section 2).
- No names, contact details or passwords requested in the app. The Huawei build does process the pseudonymous subscription identity described in Section 3.4. If you email us for support, we receive your email and its contents.
- No advertising identifiers or tracking — no ad networks, no advertising identifiers (no IDFA, no Android Advertising ID), and no cross-app or cross-website tracking. Basso never shows the App Tracking Transparency prompt because it does not track you. The only ad-related data is the Apple Ads attribution record described in Section 3.3.
- No precise location, contacts, photos, or similar device data beyond what Section 3 describes.
5. Microphone access
Basso requests microphone access for one purpose only: analyzing your voice pitch during voice tests and exercises, on-device, as described in Section 2. You can revoke the permission at any time in your device's system settings; measurement features will stop working until it is granted again, but the rest of the app is unaffected.
6. Children and minors
Basso is not directed to children under 13, and you must be at least 13 years old to use it.
During onboarding, Basso asks for your birth year. The birth year and the resulting minor flag are stored only on your device. For users who self-report as minors (under 18), analytics is disabled — no usage events are collected as described in Section 3.1.
If you are a parent or guardian and believe a child under 13 is using Basso, please contact us at support@tikistudios.io.
7. How we use information
We use the information in Section 3 to operate and improve Basso: understanding which features are used, measuring program engagement, diagnosing crashes, managing subscriptions, and, on iPhone and iPad, measuring which of our Apple Ads campaigns lead to subscriptions (Section 3.3). We do not show ads, and we do not use your information for ad targeting or profiling.
8. International transfers
Firebase (Google), Hetzner, RevenueCat, Inc. and Huawei process the relevant Section 3 data. Their infrastructure may process data outside your country, including in Europe, the United States and other locations under the applicable provider terms. The configured Huawei billing server and database regions do not establish the processing locations of every provider:
- Google Firebase: https://firebase.google.com/support/privacy and https://policies.google.com/privacy
- RevenueCat: https://www.revenuecat.com/privacy
- Huawei: https://consumer.huawei.com/en/privacy/
9. Data retention and deletion
- On-device data (voice measurements, profile, progress, settings) remains in app storage until you clear that storage or uninstall. Separately retained operating-system backups may restore eligible data and must be managed through the backup provider.
- Temporary files (the record-compare WAV, share-card images) are deleted automatically by the app or the operating system.
- Analytics and crash data are retained under our Firebase project configuration and Google's processing terms. Crashlytics keeps crash reports for 90 days before beginning deletion. See Firebase privacy information.
- Apple/Google purchase records are retained by RevenueCat under the anonymous app-user ID for subscription management and restoration; on iPhone and iPad the Apple Ads attribution record (Section 3.3) is kept with them.
- Huawei billing identity and records: in the AppGallery release, Settings → Delete Basso billing account asks you to sign in with Huawei and confirm deletion. The service removes purchase intents and stored payment tokens/status/expiry, and the app ends its own session. Automatic billing sign-in is stopped after deletion, including after reinstall. Minimal hashed subscription and purchase-intent ownership proofs and a deletion/session-generation marker remain to prevent another account from claiming your old purchase and to support your own explicit restore, including a paid checkout interrupted before registration. An intent ownership proof contains only the pseudonymous owner, product, issue time and bound subscription hash; it does not retain payment tokens or the original intent ID. An explicit new sign-in or restore can create the Basso billing identity again. Your Huawei ID and Huawei store records are controlled by Huawei; this action does not delete them or cancel a subscription. Local training records are separate and remain on-device until you clear app storage or uninstall.
- Huawei anti-abuse records: authorization-code replay markers expire after 10 minutes; rate-limit counters expire after 2 days. Expiry and physical removal are separate: expired records can remain until maintenance removes them, and automatic periodic cleanup is currently disabled. Application logs rotate within a limit of three 1 MB files per container, so their retention depends on log volume. Proxy access logging is disabled. Basso has no configured host-volume backups, Firestore backup schedules or point-in-time recovery. These settings do not override Google's provider-side processing and deletion periods above.
- Support correspondence is kept only as long as needed to handle your request.
To request deletion of the service-side data described above, email support@tikistudios.io and we will delete what can be tied to your app-instance or purchase identifier.
10. Your rights
Depending on where you live (for example the EEA, UK, Switzerland, or California), you may have rights to access, correct, delete, restrict, or port your personal data, and to object to certain processing. For on-device data, delete the app. For the Huawei billing identity, use the authenticated Settings deletion action. For other provider records or access/correction requests, contact support@tikistudios.io; we must verify that the request concerns your own record. Removing a billing identity does not cancel the subscription at the store. You may also lodge a complaint with your local data-protection authority.
11. Security
Raw voice audio is processed on your device. Detailed local training records sit inside the app's private storage, protected by the operating system's app sandboxing and device-level encryption. Selected analytics events and subscription records leave the device as described in Section 3. The data handled by Firebase, Hetzner, RevenueCat and Huawei is protected under their respective security and data-processing terms. No method of transmission or storage is 100% secure.
12. Changes to this policy
If we change this policy, we will post the new version at https://vitola.my/basso/privacy/ and update the effective date above. Material changes will be highlighted in the app or on that page before they take effect.
13. Contact
Şinasi Demirel (Tiki Studios) Email: support@tikistudios.io