FASOLA
Privacy notice
Last updated July 31, 2026
Fasola works without a Fasola account and without behavioral advertising or general-purpose usage analytics. Optional Fasola Pro purchases use Apple or Google billing and RevenueCat as described below.
Information stored by the app
Fasola stores practice progress and preferences locally on the device. This includes exercise identifiers, right and wrong results, mastery and streak calculations, session dates and durations, accessibility choices, response-time settings, and the selected instrument.
The app does not intentionally store recognized words or retain microphone recordings as part of practice history. Deleting the app normally removes its local data, subject to device backup settings.
Microphone and speech recognition
Microphone access is optional and is requested for hands-free answers, voice commands, and pitch-production exercises. Where available, learners can use tap controls instead and can revoke permission in system settings.
Spoken answers are recognized through the service selected by Android or iOS. Depending on the device, settings, installed service, language, and network, audio and results may be processed on-device or by the platform provider. HartmannTek does not operate a speech-processing server.
Pitch exercises analyze microphone samples in memory to estimate pitch. The current implementation does not intentionally retain or upload a recording.
Audio and network use
English lesson narration and musical examples are included with the app. If a Fasola Pro learner chooses Spanish or Portuguese, the app downloads that language's narration pack from private Microsoft Azure Blob Storage and stores it inside the app's local data on the device.
To authorize a download, the app sends Fasola's Azure access service the requested pack identifier, RevenueCat's random anonymous app-user identifier, and a separate random installation identifier stored locally for that installation. The service asks RevenueCat whether Fasola Pro is active and, when authorized, returns read-only Blob download links that expire after 15 minutes. Azure also receives ordinary connection information, including the source IP address, while handling the request and download.
For abuse and cost controls, Fasola stores small hourly or daily issuance counters in Azure Table Storage. The counter table contains SHA-256 hashes of the source IP address, RevenueCat identifier, and installation identifier instead of those plain values. The language-pack service does not receive practice history, speech transcripts, microphone recordings, or learner-created audio. These counters are not used for advertising or behavioral analytics and may remain until removed during service maintenance.
The current app does not include advertising, general-purpose behavioral analytics, a Fasola account system, or cloud synchronization of practice progress. Platform services, Microsoft Azure, app stores, operating-system backups, speech providers, RevenueCat, and a user's network may handle information under their own terms.
Purchases and subscription access
Optional Fasola Pro purchases are processed by the Apple App Store or Google Play. Fasola does not receive or store a learner's full payment-card details. Fasola uses RevenueCat to retrieve products and localized prices, validate purchases, restore access, and determine whether Fasola Pro is active.
Because Fasola does not currently have learner accounts, the RevenueCat SDK creates a random anonymous app-user identifier. RevenueCat may process device and operating-system information, app activity times, purchase and subscription history, Apple receipt data, and Google purchase tokens on HartmannTek's behalf to provide purchase functionality, prevent fraud, and provide purchase analytics.
Fasola does not send RevenueCat a learner's practice history, microphone recordings, speech transcripts, name, email address, advertising identifier, or a Fasola account identifier. RevenueCat's current privacy information is available at revenuecat.com/privacy.
Purchase history is also retained by the applicable app store under its terms. Learners can manage or cancel an annual subscription through their store account and restore eligible purchases from Fasola's Membership screen. Without a Fasola account, purchase access does not automatically transfer between Apple and Google platforms.
Diagnostics
Fasola stores a bounded log of up to 100 diagnostic event summaries on the device to help identify audio and speech failures. This local log can survive a crash or app relaunch and remains until the learner clears support diagnostics in Settings or removes the app's local data. Fasola never transmits these events automatically. The log redacts common secrets, contact information, URLs, file paths, and long identifiers, and is not intended to contain transcripts or raw audio.
Children and changes
The beta is not presently offered as a child-directed online service and does not knowingly collect children's personal information through an application-operated server. Store age-rating and family-policy requirements will be reviewed before public distribution.
Material changes to data handling will be reflected here with a new date. Questions may be directed through the HartmannTek support page.
