Legal
Privacy Policy
- Effective date:
- Last updated:
This policy describes what Voxfloy ("we", "the app") does and does not do with your data. Voxfloy is a speech-to-text utility for iPhone, iPad, Mac, and Apple Watch. It is designed to keep your voice on your device.
What data Voxfloy handles
1. Microphone audio (on-device only)
When you start a recording, Voxfloy captures audio from your microphone and feeds it to
Apple's on-device speech framework — SpeechAnalyzer on iOS / macOS 26 and
later, or SFSpeechRecognizer on earlier systems. Audio is held in memory
only for the duration of recognition and is not saved to disk, transmitted to us, or
shared with any third party.
On Apple Watch, recordings are saved locally as M4A files and transferred to your paired iPhone over Apple's secure WatchConnectivity channel for transcription. The audio file is deleted after processing.
2. Transcribed text
The text produced by speech recognition is:
- ·displayed in the app,
- ·copied to your clipboard (or pasted into the active app on macOS, if you grant Accessibility),
- ·stored locally in your app's history (SQLite database),
- ·only when you turn on Cloud AI in Settings and are signed in — sent to our server for advanced formatting (see section 3),
- ·and — only when you turn on History Sync in Settings and are signed in — stored on our server so it can appear on your other signed-in devices (see section 10).
3. Cloud AI formatting (opt-in only)
When Cloud AI is on, the raw transcribed text is sent over HTTPS to our server, which calls Google's Gemini model and returns a formatted version. The audio is never sent. Each request includes:
- ·the raw transcribed text,
- ·the locale (e.g.
en-US), - ·the formatting mode you selected (clean-up, email, bullet list, or summary),
- ·on macOS, an optional tone hint inferred from the active app (formal / casual / neutral) for clean-up mode,
- ·your custom vocabulary entries for that locale, when present, so the model preserves your specialized terms (see section 5),
- ·and pause timing metadata (gaps between words, no audio) used to guide punctuation.
The server does not store the text or vocabulary. Each request is handled and discarded. We do not log message content.
If you turn Cloud AI off (the default) or sign out, the app falls back to on-device formatting (Apple Foundation Models, when available) or an offline heuristic, and no text leaves the device.
4. Sign in with Apple (only if you use Cloud AI)
To use Cloud AI, you must sign in with your Apple ID using Sign in with Apple. This stores:
- ·an Apple-managed user identifier,
- ·your email address (or a private relay address you choose).
This identity is stored by our authentication provider (Supabase) and is used solely to authorize Cloud AI requests. It is not used for marketing.
You can sign out at any time from the Account screen in Settings.
5. Custom vocabulary
Custom terms you add to the vocabulary list are stored on your device only. They are used in three ways, all of which keep the terms on-device by default:
- ·compiled into a custom on-device speech language model (Apple
SFSpeechLanguageModel) that biases recognition toward your terms — the compiled model lives only in your app's local cache, - ·applied as a post-recognition find-and-replace pass to normalize spellings,
- ·included in the formatting prompt to help the on-device LLM preserve specialized words.
If — and only if — you turn on Cloud AI, your vocabulary entries for the active locale are also sent with each formatting request so the server model can preserve them too (see section 3). They are not synced across devices, used for analytics, or shared with any third party.
6. Usage statistics (opt-in, local only)
If you enable "Share usage stats" in Settings, Voxfloy stores on your device counts and timing measurements (transcriptions completed, transcriptions failed, response time percentiles). No audio, no text, and no identifiers are stored. These statistics never leave your device. The toggle exists so you can review your own usage.
7. App diagnostics and analytics
Voxfloy uses Firebase Analytics to log usage events such as "recording started", "transcription completed", "settings opened", and similar action events. These events do not include audio or transcribed content.
In addition, when you use Cloud AI, our server records a small telemetry row per request — the formatting mode, locale, response time, and input/output character counts — alongside your account identifier. It does not include the text. We use these rows to enforce daily rate limits, detect abuse, and monitor service health. Telemetry rows persist in our database; the underlying view is restricted so only our service role can read them.
You can opt out of personalized advertising via the App Tracking Transparency prompt on iOS the first time you launch the app.
8. Advertising (iOS, free tier only)
Free users on iPhone and iPad see banner ads served by Google Mobile Ads (AdMob). These ads are not shown to Pro subscribers. AdMob may use device identifiers as governed by Apple's App Tracking Transparency framework — you can decline tracking when prompted, in which case ads will be non-personalized.
There are no ads on macOS, watchOS, the share extension, or the widget.
9. Purchases
In-app purchases (Voxfloy Pro) are handled entirely by Apple's StoreKit. We never see your payment information — no card number, price, currency, or billing address ever reaches our servers.
If you are signed in, the app sends Apple's signed transaction receipt to our server so
we can map Apple's originalTransactionId to your Voxfloy account. We store
this mapping (transaction ID, product ID, environment, and your account identifier) in
our database. We use it for one purpose: when Apple sends us a renewal, refund, or
expiration notification for that transaction, we can keep your Pro entitlement in sync
across your devices automatically. The mapping is deleted if you delete your account.
10. Cross-device history sync (opt-in only)
If you are a Pro subscriber and you turn on History Sync in Settings, Voxfloy uploads your transcribed text to our server so the same history appears on every device signed in to your account. Each entry includes:
- ·the transcribed text,
- ·the locale (e.g.
en-US), - ·whether you pinned it,
- ·the formatter and mode used,
- ·the creation and update timestamps,
- ·and a soft-delete marker (so deleted entries propagate as removals to your other devices).
This data is stored against your account identifier in our database, behind row-level security so only you can read your own rows. We use it for one purpose: keeping your history consistent across your devices. We do not analyze it, train on it, or share it.
You are in control of this data:
- → Turn the toggle off at any time. Future entries stop being uploaded. Already-synced rows remain on the server until you delete them.
- → Delete an entry from any signed-in device. The deletion propagates as a soft-delete to your other devices and the row is removed from the active set. Soft-deleted rows are eventually purged from our database.
- → Delete your account by contacting us — this removes all of your synced rows along with your authentication record.
History Sync is off by default and only available to signed-in Pro subscribers. If you never turn it on, none of your transcribed text is uploaded as a result of this feature.
Data we do not collect
- ×We do not record your voice on our servers. Microphone audio never leaves your device.
- ×We do not retain transcribed text from Cloud AI — it is processed and discarded per request.
- ×We do not retain transcribed text on our servers from any other path unless you opt into History Sync (see section 10), in which case storage is limited to the rows you explicitly create on your devices and you can delete them at any time.
- ×We do not sell, rent, or share your data with brokers.
- ×We do not build advertising profiles of you.
- ×We do not collect your payment information — Apple StoreKit handles all of that.
- ×We do not require an account to use the app's default features.
Third-party processors
| Processor | Purpose | Data shared |
|---|---|---|
| Apple | Speech recognition, Foundation Models, Sign in with Apple, StoreKit, iCloud (if you use it) | On-device only, except Sign in with Apple identifier and purchase data |
| Supabase (PaaS) | Authentication, Cloud AI Edge Function hosting, History Sync database, Cloud AI usage telemetry, StoreKit transaction-to-user mapping | Email/Apple identifier; Cloud AI raw text (transient); History Sync transcribed text and metadata (stored, opt-in); per-request usage telemetry rows (no content); Apple originalTransactionId and productId |
| Google (Gemini) | Cloud AI text formatting (called by our Edge Function) | Cloud AI raw text only (transient) |
| Google Firebase Analytics | App usage events | Event names and counts, no content |
| Google Mobile Ads (iOS, free tier) | Banner ads | Subject to App Tracking Transparency |
Children
Voxfloy is not directed at children under 13. We do not knowingly collect personal data from children.
Your rights
- → Stop sending text to Cloud AI: Turn off Cloud AI in Settings.
- → Stop syncing history: Turn off History Sync in Settings. Future entries are no longer uploaded.
- → Delete a synced history entry: Delete it from any signed-in device — the deletion propagates to your other devices and the row is removed from our database.
- → Delete your account: Sign out and contact us at the email below. We will delete your authentication record, all synced history rows, and your StoreKit transaction mapping.
- → Delete local data: Use the in-app history controls, or delete the app to remove all locally stored data.
If you are in the EU/UK, you may have additional rights under GDPR/UK GDPR (access, rectification, erasure, portability). To exercise these rights, contact us at the address below.
Changes to this policy
If we make material changes, we will update this page and the "Last updated" date above. Continued use after a change constitutes acceptance.
Contact
Questions or requests:
- App Store:
- apps.apple.com/app/voxfloy