Cookie and Local Storage Policy — Sono AAC Communicator
Last updated: 25 May 2026
1. What Are Cookies?
Cookies are small text files placed on a device by a website or web-based service to store information between sessions. They are a web browser technology and are not inherently part of native mobile applications.
2. Does This App Use Cookies?
Mostly no. Sono is a native mobile application. During normal use — browsing symbols, building sentences, playing voice output, recording optional custom voice messages, or using local sentence polishing — no web browser cookies, web sessions, or browser storage are used.
The App includes an embedded WebView component used only to display legal documents (this Cookie Policy, the Privacy Policy, and the Terms and Conditions) when you choose to view them. Depending on how those documents are hosted, that WebView may or may not transmit cookies to your device (see Section 4).
There are no tracking cookies, analytics cookies, or advertising cookies used at any point during normal operation of the App.
3. Local Storage Used by the App
Although the App does not use browser cookies during normal operation, it does store app settings and user-generated communication content on your device using the App’s internal cache and file storage. These local entries are used to operate the App and do not track you across applications or devices.
Under Article 5(3) of the ePrivacy Directive (2002/58/EC), storing information on, or accessing information already stored on, the user’s terminal equipment generally requires consent unless the storage or access is strictly necessary to provide the service the user has explicitly requested. The classification below maps each local-storage item to one of those two categories. We use the term “mandatory storage” for strictly necessary entries and “functional storage” for entries that depend on caretaker preference. Neither category uses HTTP cookies.
The following data is stored locally on your device:
| Storage Item | Purpose | Format | Persisted to Disk | Category |
|---|---|---|---|---|
gsaCache.db | App preference and content index store — holds board settings, selected voice, custom symbol indexes, hidden symbols/categories, quick phrase settings, recent symbols, message history, and the on-device language model (BYO) index when the feature is available | Sembast key-value database | Yes | Mixed: mandatory keys for core AAC operation; functional keys for caretaker preferences and history |
| Custom photo files | Personal photos assigned to symbols by the caretaker | Image files | Yes | Mandatory for any custom-photo functionality the caretaker has created |
| Custom voice recordings | Optional voice messages assigned to symbols by the caretaker | Audio files | Yes | Mandatory for any custom-recording functionality the caretaker has created |
| Message history | Recently spoken sentences stored as symbol IDs for quick re-use | Local cache entry | Yes | Functional — can be disabled or cleared by the caretaker |
| Recently used symbols | Recent symbol IDs surfaced in the “recents” row | Local cache entry | Yes | Functional — can be disabled or cleared by the caretaker |
| TTS voice models | Offline voice synthesis files, downloaded only on caretaker request | Model binary | Yes | Functional — only present when the caretaker has downloaded a voice |
| Caretaker-imported on-device language model files | GGUF model files the caretaker imports for the optional Smart Sentences feature, where that feature is available | Binary model files | Yes | Functional — only present when the caretaker has imported a model |
| Lesson cache (when the remote lessons backend is configured) | Lesson manifests, lesson JSON, and scene images downloaded from the configured backend for offline replay | JSON files and images | Yes | Functional — only present when the build is configured with a lessons backend and the user has opened lessons |
| Lesson progress | Which lessons or scenes have been viewed locally | Local cache entry | Yes | Functional — can be cleared by the caretaker |
| Backup archive (temporary) | A .sonobkp ZIP container created at the caretaker’s request inside the App’s sandbox before it is shared or saved to a caretaker-chosen destination (see Section 6) | ZIP file | Until the App is closed or the file is shared / saved | Mandatory for the backup feature requested by the caretaker |
All of these items are stored in the App’s private sandboxed directory on your device. They are not accessible to other applications and are not transmitted to any server by the App.
The App’s consent system classifies each local-storage entry as either mandatory or functional, matching the categories above. If functional storage is not enabled, features that depend on functional local storage may be unavailable or may not retain their settings. Mandatory storage remains necessary for the App to provide the configured communication board and user-created content the caretaker has explicitly requested.
The detailed mapping of each individual cache key onto the mandatory or functional category is defined in the App’s source (service_cache_entry.dart). Major changes to that mapping will be reflected in this policy.
4. Embedded WebView for Legal Document Display
The App includes an embedded WebView component (powered by webview_flutter) used exclusively to display legal documents — this Cookie Policy, the Privacy Policy, and the Terms and Conditions. This WebView is opened only when you deliberately tap a legal document link on the App’s welcome screen.
If the legal documents are hosted at a remote URL: The server delivering those documents may set cookies or use other tracking mechanisms in the WebView, in the same way as any website visited in a browser. The hosting service’s privacy and cookie notices describe its own practices. This policy still describes the App’s use of the WebView and local storage; the Privacy Policy describes any processing for which we are responsible.
If the legal documents are served from local App assets: No external network request is made, and no cookies are set or received.
No other WebView component, embedded browser, or third-party web content is loaded during any other part of the App’s normal operation.
5. Third-Party Services and Their Own Storage
When you voluntarily download optional TTS model files, import a caretaker-selected on-device language model, fetch remote lessons (where the build is configured with a lessons backend), or open externally hosted legal documents, the App makes HTTPS requests to third-party servers. These servers may set their own cookies or use their own tracking mechanisms if you subsequently visit them in a browser, but they do not set browser cookies on your device through the App’s native interface.
| Service | What Happens | Their Cookie/Privacy Policy |
|---|---|---|
GitHub (github.com) | File download only — no cookies set via the App | docs.github.com/en/site-policy/privacy-policies |
GitHub Pages (ljmatan.github.io) | Hosts legal documents configured in the App | docs.github.com/en/site-policy/privacy-policies |
| Caretaker-selected model or voice host | File download only — the destination host is chosen by the caretaker when they import a model or voice file from a URL | Privacy and cookie policy of the host chosen by the caretaker |
| Lessons backend (when configured) | Returns lesson manifests, lesson JSON, and scene images for the App to cache locally | Privacy and cookie policy of the configured backend operator |
| Apple TTS (fallback, iOS) | Handled by the OS — see Apple’s privacy policy | apple.com/legal/privacy |
| Google TTS (fallback, Android) | Handled by the OS — see Google’s privacy policy | policies.google.com/privacy |
6. Backup Archives Created by the App
The App includes a backup feature that lets the caretaker export and re-import all caretaker-managed content from Caretaker Settings. The feature is initiated only by the caretaker.
When an export runs, the App temporarily writes a .sonobkp ZIP archive inside its own sandbox and then offers the archive to the caretaker via the platform share or save sheet. The archive contains:
manifest.json— backup format version and the date of export;data.json— caretaker-managed JSON entries (custom symbols, custom categories, custom images index, voiceovers index, hidden items, quick phrases, intent starters, grid/display/board/colour settings, and the selected TTS voice);files/— every custom media file referenced by those entries, including custom symbol images, custom category images, custom photo files, and custom voice recordings.
The archive does not contain TTS voice model files, on-device language model files, or anything that did not originate from caretaker customisation.
Once the archive leaves the App’s sandbox (for example because the caretaker saves it to the Files app, the Photos library, a cloud sync folder, or another app), the caretaker is responsible for its protection, retention, and deletion. The privacy and cookie/local-storage practices of the destination application or service apply to the archive at that point — not this policy.
For privacy implications and caretaker responsibilities around backups, see Section 17 of the Privacy Policy.
7. Removing All App Storage
You can remove all data stored by the App at any time by uninstalling the App from your device. This will permanently delete preference files, custom symbols, custom photos, custom voice recordings, message history, downloaded voice model files, the lesson cache, and any caretaker-imported on-device language model files. The process varies slightly by platform:
iOS: Go to Settings > General > iPhone Storage (or iPad Storage) > Sono > Delete App.
Android: Go to Settings > Apps > Sono > Uninstall. Alternatively, use Settings > Apps > Sono > Storage > Clear Data to remove all stored data without uninstalling the App.
You can also remove individual custom photos, custom voice recordings, the lesson cache, the on-device language model index, and other custom symbol content from the relevant app controls.
Backup archives that the caretaker has saved outside the App’s sandbox (for example to the Files app, Photos library, or a cloud sync folder) are not removed by uninstalling the App. The caretaker is responsible for deleting those archives from their destination.
8. Changes to This Policy
We may update this Cookie and Local Storage Policy from time to time. The “Last updated” date at the top of this document reflects the most recent revision. Because this App does not use browser cookies and its local storage practices change only with significant App updates, changes to this policy are expected to be infrequent.
9. Contact
If you have any questions about this Cookie and Local Storage Policy or the App’s local storage practices, contact us at:
Matan Ljubas lj.matan@gmail.com
This Cookie and Local Storage Policy applies to the Sono native mobile app only. It does not apply to any website or web-based service that may be associated with the publisher.