SayTidy Privacy Policy
Effective date: 2026-11-11
SayTidy is a dictation app: you speak, and it types polished text into the app you are using. SayTidy is operated by LIMITED LIABILITY COMPANY «SYMBIOSIS INTELLECTUAL SERVICES» (LLC «SYMBIOSIS INTELLECTUAL SERVICES»), a limited liability company registered in Ukraine under registration code 45815891, with its registered address at 8 Mykhailivska Street, Building 3, Apartment 21, Odesa 65005, Ukraine ("we", "us"). We are the controller of the personal information described in this policy: we decide why and how it is processed. Questions about this policy: support@saytidy.com.
This policy covers the SayTidy desktop app, the SayTidy service it connects to, and the website at saytidy.com.
The short version
- We don't keep your recordings or the text you dictate. Your recording goes to Google's Gemini API, which turns it into text. Our servers pass it through and keep neither the audio nor the text.
- Google doesn't use it to improve its products. Google may keep it for up to 55 days to detect abuse, and content its systems flag may be reviewed by Google staff.
- We keep your account and usage records: your email address, your plan, and for each use the time, length, character count and cost. We use these to run the service, enforce limits and bill you.
- Your dictation history stays on your computer. You can delete it at any time. When you correct a dictation in History, or on a Mac fix one right after SayTidy pasted it, the text around and between your changes, as it was and as corrected, is sent to find the word you meant; after a paste it can include some of what you typed next to it (1.2).
- We don't sell your personal information, and we don't use it for advertising.
1. What we collect, and why
1.1 Your account
When you sign up, we collect your email address. We never store your password. Once sign-up opens, you set a password with Supabase, our account provider, which stores it in hashed form.
We also keep these account records:
- the state of your account (active, suspended or being deleted);
- when you verified your email address;
- your plan (Free or paid).
To enforce one free account per person, we keep a keyed hash of your normalized email address. The hash is a one-way code. It can't be turned back into your address, and it lets us recognize the same address used again. Each time we send an account email, we also keep a separate keyed hash of the address it went to, with the time and the kind of email, to limit how many account emails one address receives. Once such a record is two days old, it is deleted the next time we send an account email.
1.2 What you dictate
When you dictate, the app streams your voice recording to our server over an encrypted connection. Our server sends it to Google's Gemini API, gets the text back and returns it to the app. To make the result more accurate, the app also sends some context with each recording:
- your vocabulary: words you added, and words SayTidy learned from your corrections (see 2.3), up to 60 terms;
- your custom instructions, up to 500 characters, with every dictation (in Raw mode our server does not pass them on to Google);
- the instructions of each scene that applies, with the scene's name: up to 8 scenes and 500 characters of instructions in all (in Raw mode not passed on to Google either);
- what you said just before: up to 300 characters from your recent dictations in the same session. If your last dictation was longer than that, up to its last 2,000 characters are sent instead;
- the instructions of a custom style, if you use one.
The app keeps "what you said just before" only in memory, never on disk. After 10 minutes without dictating it is no longer sent and is dropped at your next dictation. Quitting the app clears it; deleting your history, or turning history off, does not.
Instant Ask is the feature where you ask a question by voice and get an answer. It sends your recorded question together with your earlier questions and answers in the same conversation (up to 10), and any custom instructions you wrote for it.
The microphone test in the app records about 5 seconds and sends it the same way.
When you correct a dictation in the History screen, the app sends the text around and between your changes, as it was and as you corrected it: from 100 characters before the first change to 100 characters after the last, so a short dictation is sent whole, and never more than 1,000 characters of either. Our server asks Google's Gemini API which word the correction teaches, and the app learns it (see 2.3). If you are signed out or offline, nothing is sent and nothing is learned from that correction.
On macOS, when you fix a dictation right after SayTidy pasted it (see 2.3), the app can send the same thing the same way: that dictation as it was pasted and with your changes in place, from 100 characters before the first change to 100 after the last, and never more than 1,000 characters of either. Text that was already in the field when SayTidy pasted is never sent. Some of what you typed (or pasted) into the field after the paste can go with the fix: up to 20 characters (not counting spaces) typed right next to the words you fix and, in a few cases, more of what you typed next to or inside the dictation. It goes only as part of the fix, inside the excerpt described above.
We don't store any of this. Our server holds the recording and the text only in memory while it handles the request. Our database has no place for audio or dictated text. We don't use your recordings to recognize who is speaking, and we don't make voiceprints from them.
Word replacements you set up, which swap one piece of text for another, are applied on your computer and are never sent.
Because what you say is sent to Google, please don't dictate anything you would not want processed this way. This includes health, financial or other sensitive details about yourself or other people. If you do, those details are handled like the rest of your dictation: sent to Google to be turned into text, and not kept by us.
1.3 Usage records
For every dictation or Instant Ask that returns a result, we keep a usage record:
- the time;
- the length of the recording;
- how many characters it had (for Instant Ask, the characters of your question), and how much of your allowance it used;
- the mode you used and the AI model that served it;
- what it cost us;
- a request ID.
For every request that reaches the AI model, including microphone tests and requests that fail or are cancelled, we also keep a cost record: the time, the kind of request, the AI model, what it cost us, how it ended, your plan at the time and a request ID.
We use these records to show you your usage, enforce free and daily limits, prevent abuse and keep track of our costs. They contain no dictated text.
When the app shows your daily usage, it sends your time zone name (for example "America/Chicago"), so that days are counted in your local time.
1.4 Problem reports
In the app you can choose to send a problem report. A report contains:
- the most recent part of the app's log file (up to 256 KB);
- your app version, operating system and processor type;
- recent request IDs;
- the state of your keyboard shortcuts;
- the note you type, if any.
The log contains counts and the flow of events, not your dictated text. It can include:
- the names of the apps you dictated into;
- the name of your microphone, which can include your name (for example "Alex's AirPods");
- file locations on your computer, which include your computer's user name.
We store reports on our server. Reports are sent only when you choose to send one.
1.5 Server logs and error reports
Our server writes a log of what it does: requests handled, errors, and the account each request belongs to. The account is identified by your account identifier, which can be your email address. These logs do not contain your recordings or dictated text. Our web server's console output can also show the network address each connection comes from. That output is cleared whenever we update the server.
When the server hits an error, it sends the error details to Sentry, our error-tracking service. The details include the server's recent log lines, which can name account identifiers and request IDs, and basic request headers (the type of app or browser, and the site the request came from). Email addresses are replaced with a placeholder before anything is sent. The error details include no recordings, no dictated text and no request bodies.
1.6 Update checks
About every 6 hours, the app asks our server whether a new version is available. The request includes your operating system, processor type and current app version. As with any internet request, our server sees the IP address it comes from. The app can't be set to skip update checks.
1.7 Our website and sign-up
Sign-up on saytidy.com is not open yet. Once it opens, the sign-up form will use Cloudflare Turnstile to stop automated sign-ups. Turnstile sees your IP address and basic browser signals (such as the browser's user agent) to decide whether you are a person. Our sign-up check also uses your IP address to limit how many sign-ups come from one network.
Once sign-up opens, Supabase will record sign-in and account events, with the IP address and browser they came from, in its logs, and keep them for a short period of up to 7 days.
Our account emails (verification, password reset, confirming a change of email address, a code to confirm it is you, a notice when someone tries to sign up with an address that already has an account, and, when you subscribe, a confirmation of your subscription's terms and how to cancel) are sent through Resend. Resend keeps each email and its delivery status for 30 days.
We do not use advertising cookies or third-party analytics on saytidy.com.
1.8 Payments
Paid plans are not on sale yet. Once they open, they are sold through Paddle, which acts as the merchant of record: the reseller you actually buy from. It collects your payment details, charges you, handles sales tax and issues your receipts. We never receive your card number.
To open a checkout, we send Paddle the plan you chose and a random reference for that purchase. We also send it the email address of your SayTidy account, which becomes your customer record with Paddle; if you later change that address, we send Paddle the new one, so your receipts and renewal reminders follow it. That customer record is Paddle's, kept under Paddle's privacy policy, even if you close the checkout without buying. Once paid plans open, Paddle's payment form will open on our page at saytidy.com/pay, which loads Paddle's own script from Paddle; the form is Paddle's, under Paddle's privacy policy.
Paddle shares the following with us:
- your subscription and its status;
- the plan;
- the dates of the billing period;
- the amount and currency charged;
- a customer reference.
The notifications it sends us are kept in full for 30 days. After that we keep only the fields we extracted from them. A notification we could not process, or whose processing failed, is kept in full, with no fixed time limit, until we have dealt with it.
When you start a subscription in the app, we record what you agreed to: the version of the terms and of the notice, the price, the billing interval, the tax wording and the language shown to you. We keep this record as proof of consent, as the law requires.
1.9 If you use SayTidy through another company's app
Some developers build SayTidy's speech-to-text into their own apps. If you dictate in one of those apps, we process your recording on that developer's behalf in the same way: it is sent to Google and not stored. We keep a usage record for each request so that we can bill the developer. That developer's own privacy policy covers your relationship with them.
2. What stays on your computer
2.1 History
Your dictation and Instant Ask history is saved on your computer. We never upload the history itself. When you correct a dictation, in History or (on macOS) right after it was pasted, only the text around and between your changes is sent (for a short dictation, all of it), once, to learn the word you meant, and after a paste, in the cases described in 1.2, some of what you typed into the field after it.
Kept per account. Your history, vocabulary (learned words included), scenes with their instructions, your custom instructions and replacements are kept separately for each SayTidy account that signs in on this computer. While you are signed out, none of them is shown, and signing in to another account shows that account's own. A custom style's instructions and Instant Ask's instructions are settings of the computer, shared by every account on it. The first account to sign in after you update SayTidy to a version that keeps data per account takes over what was saved before; the old files stay in the app's data folder on your computer, and deleting your history or words in SayTidy does not remove that older copy.
What is saved:
- each result's text;
- for Instant Ask, the question and the answer;
- the mode and the time;
- for dictations, the app you dictated into (see 2.3).
Keeping it under control:
- The history is a plain file in the app's data folder. It is not encrypted, so anyone with access to your computer account can read it.
- You can delete single entries or all of your history in the History screen.
- You can also choose to keep history for 30 days, for 7 days, or not at all. The default is to keep it until you delete it. Choosing "not at all" stops saving new entries; entries already saved stay until you delete them.
- At most the 1,000 most recent entries are kept.
2.2 Vocabulary, scenes and replacements
Your vocabulary, scenes, instructions and replacements are saved in a file on your computer. The parts listed in 1.2 are sent with each dictation, and replacements never leave your computer.
2.3 Learning from your corrections
When you fix a word in text SayTidy just pasted, SayTidy can learn the right spelling. On macOS, it does this by reading the text field it pasted into, for a short time after pasting. It stops at the latest when 30 seconds pass without an edit, you move to another app, you dictate again, or 5 minutes pass. While it watches, it keeps only the text it just pasted and a limited amount of text around it, in memory, which can include some of what you type next to it afterwards; if that grows past its limit, it stops watching. It uses the system's Accessibility access, which you granted so SayTidy could paste. SayTidy can also learn from corrections you make in the History screen. Either way, to find the word a correction teaches, it sends the text around and between the changes, as it was and as corrected, through our server to Google (1.2).
- What it keeps: the words you changed (the wrong and the right form) and which app you were in. These are saved in your history on your computer.
- Learned words are added to your vocabulary automatically, and like your other vocabulary, they are sent with your dictations (see 1.2). Only the right form is sent.
- Everything else in the field is discarded as soon as it is read, never saved or uploaded. The exception is text you typed into the field after the paste, in the cases described in 1.2: it is sent with that fix. Text that was in the field before the paste is never sent.
- What it never reads: password fields, any field while your Mac's secure keyboard entry is on (some apps turn it on, such as a terminal's "Secure Keyboard Entry"), password managers, SayTidy's own windows, or the titles of your windows.
- How to turn it off: turn off "Learn from edits after pasting" in the History screen. If history is turned off, nothing is read after a paste and nothing is learned.
2.4 Logs, sign-in and clipboard
- Logs. The app keeps a log file on your computer, up to about 40 MB, for troubleshooting. It records what the app did, the names of the apps you dictated into, your microphone's name and file locations on your computer, but not your dictated text. It leaves your computer only inside a problem report you choose to send (1.4).
- Sign-in. Your sign-in session is kept in your operating system's secure credential store (the Keychain on macOS, Credential Manager on Windows).
- Clipboard. To paste, SayTidy briefly uses your clipboard, then puts back the text or image that was there. Other kinds of clipboard content, such as copied files, are cleared rather than put back. It doesn't keep your clipboard contents. Clipboard-history tools on your computer may still record the pasted text.
3. Who we share it with
We share personal information only with the companies below, and when the law requires it. Paddle sells you the subscription as an independent merchant of record, under its own privacy policy; the others are service providers that handle it on our behalf.
| Who | What they receive | Why |
|---|---|---|
| Google (Gemini API) | your recordings, the context in 1.2, and the text around a correction you make in History or, on a Mac, right after a paste (with, in the cases in 1.2, some of what you typed after the paste) | to turn speech into text, answer Instant Ask, and find the word a correction teaches |
| Supabase | once sign-up opens: your email address, hashed password, sign-in records with IP address | to run your account |
| Resend | your email address and the emails we send you | to deliver account emails |
| Cloudflare (Turnstile) | once sign-up opens: your IP address and browser signals at sign-up | to block automated sign-ups |
| Sentry | error details from our server (recent log lines, account identifiers, request IDs, basic request headers), with email addresses removed | to find and fix errors |
| Paddle | once paid plans open: your account's email address (sent when you open a checkout, even if you don't buy), and your purchase, payment and billing details | to sell you the subscription as merchant of record |
What Google does with what we send it:
- Because we use Google's paid Gemini API, Google does not use your recordings, your text or the results to improve its products.
- It keeps them for up to 55 days only to detect and prevent abuse of its service.
- If its systems flag a pattern of abuse, authorized Google staff may review them.
- Google may process them outside the United States.
Cloudflare may also use the sign-up signals to improve its bot detection.
Our own server runs on hardware we operate in a data center in Dallas, Texas.
We may disclose information if the law requires it, or to protect our rights and the safety of our users. We do not sell personal information, and we do not share it for cross-context behavioral advertising.
4. How long we keep it
| Data | How long |
|---|---|
| Recordings, dictated text, and the text sent from a correction | Not kept by us. Google keeps them for up to 55 days (section 3). |
| Account details | Until your account is deleted (section 5). |
| Usage records | We keep them for cost accounting. Once account deletion opens (section 5), deleting your account de-identifies them: the link to you is replaced with a random code. |
| Keyed email hash and the usage counted against it | Once account deletion opens, kept after an account is deleted, so that deleting and re-registering doesn't reset free or daily limits. It contains no email address. |
| Problem reports | Until you ask us to delete them, or, once account deletion opens, until you delete your account. |
| Server logs | They are overwritten as new log entries are written. There is no fixed time limit, and at current volume an entry can stay for many months. |
| Error reports at Sentry | Under Sentry's retention settings. |
| Payment notifications | 30 days in full, then only the extracted fields. One we could not process, or whose processing failed, is kept in full, with no fixed time limit, until we have dealt with it. |
| Billing and consent records | At least 3 years, also after your account is deleted, for refunds, disputes, tax and proof of consent. Once account deletion opens, deleting your account removes their link to your SayTidy account, but the merchant of record's customer and transaction references are kept, so the records can still be matched to the purchase. |
| Sign-in logs at Supabase | Once sign-up opens: up to 7 days. |
| Account emails at Resend | 30 days. |
| Record of account emails sent (a keyed hash of the address, the time, the kind of email) | Deleted once two days old, the next time we send an account email. |
| History, vocabulary and logs on your computer | Until you delete them, or according to your history setting. |
5. Your choices and rights
- See or correct your information. Email us and we will tell you what we hold about you, and correct it.
- Delete your account. Deleting your account yourself is not open yet; until it is, email us and we
will delete it. Once it opens, you can delete it yourself or by email, and deletion takes these steps:
- Your account stops working right away, and any paid subscription is cancelled immediately, not at the end of the period. If you were charged in the last 14 days, ask for a refund before you delete (see our Refund Policy).
- Your account, anything stored with it on our server, and your problem reports are deleted.
- Usage records are de-identified, and billing records are unlinked from your account (section 4).
- The keyed email hash and the usage counted against it are kept, so that deleting and re-registering doesn't reset the limits; they contain no email address (section 4).
- Your account at Supabase is deleted.
- Delete your history. History is on your computer, and you can delete it in the History screen.
- Stop sending context. You can remove vocabulary and instructions in the app at any time. What you said just before is sent for as long as the app remembers it (1.2); quitting the app clears it.
- Get a copy. Email us and we will send you a copy of the personal information you gave us, in a common format you can take to another service.
- California and other US state residents. We do not sell or share personal information. If your state gives you rights to know, correct, delete or get a copy of your personal information, email us and we will honor the request. We won't treat you differently for using these rights.
We will answer every request within 30 days. If we decline a request, we will tell you why. You can appeal by replying to that answer, and we will tell you our decision on the appeal within 60 days. If we turn down your appeal, you can complain to your state's attorney general.
6. Security
Everything between the app and our server, and between our server and Google, travels encrypted: the app connects to our server only over encrypted connections. Our server checks your sign-in token on every request. No system is perfectly secure. If a breach affects your information, we will tell you as the law requires.
7. Age limit
SayTidy is for people 18 and older. We don't knowingly collect information from anyone under 18. If you believe someone under 18 has an account, email us and we will delete it.
8. Where SayTidy is offered
SayTidy is offered to people in the United States. Our server is in the United States, and Google may process recordings in other countries (section 3). SayTidy can't be used where Google's Gemini API is not available, such as mainland China and Hong Kong.
9. Do Not Track and tracking by others
We don't track you across other websites or apps, and we don't put advertising or analytics trackers on SayTidy. Once sign-up and paid plans open, two kinds of other companies will collect information on our website, under their own policies:
- Cloudflare (Turnstile), on the sign-up form, sees your IP address and browser signals and may use them to improve its bot detection across sites (section 3);
- Paddle, at checkout, collects what it needs to process your payment, under Paddle's privacy policy (section 1.8).
Our website responds to browser "Do Not Track" signals the same way it responds to every other visit.
10. Changes to this policy
When we change this policy, we will post the new version here with a new effective date. If a change materially affects how we handle your information, we will also tell you by email or in the app before it takes effect, and at least 14 days before unless the change is only in your favor or the law requires it to take effect sooner.
11. Contact
LLC «SYMBIOSIS INTELLECTUAL SERVICES», 8 Mykhailivska Street, Building 3, Apartment 21, Odesa 65005, Ukraine (registration code 45815891)
support@saytidy.com