Privacy statement

Last updated:

This privacy statement covers the SayFeather apps (the desktop app for macOS and Windows, and the Android keyboard and floating button), the website sayfeather.nl and the service you use to buy and activate a licence. SayFeather is made by Made By Adem, who is responsible for the data described here. Privacy questions: [email protected].

In short

  • Your words are yours. Speech recognition runs on your own device. Your audio never leaves it.
  • The optional clean-up of the text goes straight from your device to the AI provider you chose, with your own key. SayFeather never receives your text or your key. With a local model (Ollama, LM Studio) nothing leaves your computer at all.
  • SayFeather only receives data when you buy or activate a licence, or when you send feedback yourself.
  • The apps contain no ads, no tracking and no analytics software. We do not sell data.

What happens when you dictate

Speech recognition: on your device

SayFeather turns your speech into text with Whisper, which runs locally on your computer or phone (desktop and Android). The microphone audio is processed in memory on your device and is not sent anywhere. When you download a speech model, the app gets it from Hugging Face (huggingface.co). That request shows your IP address to Hugging Face, as any download does; SayFeather is not involved and sends no information about you with it.

Clean-up: straight to the provider you chose

If you switch on the clean-up (it needs an active licence), the app sends the transcript, and the words from your own word list, from your device straight to the AI provider you picked, using your own account key. This can be Anthropic, OpenAI, Google (Gemini), Mistral, Groq, OpenRouter, a local program such as Ollama or LM Studio, or an address you enter yourself. SayFeather never receives this text, and our service is not in between. The provider handles the text under its own privacy terms and settings; read them before you choose. The clean-up only corrects the text. If the provider is slow or fails, the app inserts the raw text instead.

With a local provider (Ollama, LM Studio) the text goes to a program on your own computer, so everything stays offline.

On your device

  • Your provider key is kept in your computer's secure storage (macOS Keychain, Windows credential store) or, on Android, encrypted with a key in the Android Keystore. It is not sent to SayFeather.
  • Your settings, your word list and the speech models are kept on your device.
  • The desktop app puts the text at your cursor by briefly using the clipboard and then restores what was on it before.
  • For every dictation the app writes how long each step took (numbers only, no text) to a file in its log folder on your device. Nothing is sent.
  • The desktop app checks for updates at download.sayfeather.nl (on Cloudflare R2) after it starts and every six hours. Such a request reveals your IP address and the usual technical details of a web request to Cloudflare, which may keep them in its server logs. We do not use them to recognise anyone.

Android: keyboard and floating button

The SayFeather keyboard is an ordinary Android keyboard with a microphone button. The floating dictation button, which works with the keyboard of your choice, uses an Android accessibility service. You switch it on yourself in the Android settings and you can switch it off there at any time.

  • The service sees which field has the focus, whether it is a text field, whether it is a password field (the button never shows for those) and whether a keyboard is open. It reads the text of that one field and the cursor position only to put your dictated text at the cursor.
  • It remembers the name of the app in front, only on your phone, to keep the button where you dragged it in that app.
  • It looks at nothing else: it stores no screen content and sends nothing to SayFeather. Text from other apps never goes anywhere through SayFeather; only what you dictate can go to your own AI provider, as described above.
  • The button inserts the text only into the field that had the focus when you started recording. If that field is gone, the text goes to the clipboard.

Your licence

SayFeather works with a licence code. To deliver and check it we use a service that Made By Adem runs itself at Cloudflare (Workers, with a database in the EU). Dictating with raw text works without a licence; the licence unlocks the clean-up. For each licence we keep only:

  • your email address, stored encrypted, plus a hash (HMAC) of the address to look up your licence;
  • your country (for VAT);
  • your licence code, only as an HMAC; we cannot read it back;
  • the kind of licence, the start and end date, the maximum and the number of activations, and the status (for example active, expired or refunded);
  • the transaction number of the payment at Pay.nl;
  • for each device on which you activate SayFeather: the random activation number the app makes itself, the app version and when the device first and last made contact, plus when it signed off.

When you buy for a business, we also keep the name, and for the invoice possibly the VAT number and address. We do not keep what you dictate, device identifiers or IP addresses in the database. The app creates the activation number itself, at random, and it cannot be traced back to your device. The service looks at your IP address only to limit how often the buy form can be used; that address is kept in Cloudflare's memory for a moment and is never written to our database.

The app only contacts the service to activate your licence and to renew the proof of your licence in the background. In between it works without a connection.

Buying a licence

  • Order: when you start a payment we keep, with that order, your email address (encrypted), your country, the licence you chose, the amounts including VAT, a discount code if you used one, and, if you fill them in, your name, VAT number and address. We also keep the time at which you ticked the box about your right of withdrawal, as proof of your request to deliver the licence at once.
  • VAT country: your country decides the VAT rate and whether the invoice carries VAT, reverse charge or EU one-stop-shop (OSS) VAT.
  • Payment goes through Pay.nl. You enter your bank or card details on their page. We send Pay.nl only the amount, a description of the purchase and an order reference, not your email address or name, and we receive only the outcome and a transaction number. We keep no bank or card details.
  • Invoice: after payment we make an invoice with the invoice number, date, your name (or business name), address, country, VAT number if you gave one, what you bought and the amounts. A refund gets a credit note. We keep your email address on the invoice encrypted.

Email

We send your licence code and invoice, a renewal confirmation, a reminder before your licence ends (for licences with an end date) and a refund notice through Resend, from [email protected] (EU region). For each mail we keep the recipient (encrypted), the subject and whether it was delivered. Mail you send to [email protected] is forwarded to Adem's inbox by Cloudflare Email Routing.

Feedback

In the desktop app (Settings or the tray menu) and in the Android app you can send feedback yourself. A report contains:

  • what you type: an optional title, your description and the kind (bug, idea or question);
  • an email address, only if you fill one in;
  • on the desktop a picture of the screen where your mouse is, which you see first and can hide parts of or remove before you press Send; on Android and the desktop also the files you add yourself (at most 3 in all, 2 MB each);
  • the app version and the operating system, unless you untick that.

A report is sent encrypted (https) and only when you press Send. It is handled by our own automation (n8n), and a new report is announced in a Telegram chat of Made By Adem. The title, text and app version also appear in our management environment at Cloudflare, with the screenshot and files left out. We use reports only to fix problems and improve the app. We keep a report as long as we need to handle it; once handled, the copy in our management environment is deleted after 1 year.

The website sayfeather.nl

This website uses no analytics, no advertising and no tracking, and it sets no cookies. It stores nothing in your browser. The fonts are served from our own site, not from Google. If this changes, for example because we start measuring visits, we first ask your consent and update this statement.

The website runs on Cloudflare (Pages). Like every web host, Cloudflare sees your IP address and the usual technical details when you open a page. The pages also ask our service (api.sayfeather.nl) for current prices, the questions and answers and the checkout; that request is handled the same way and we store no IP address in our database.

How long we keep data

  • Licence data: while your licence runs and up to 2 years after it ended, so you can renew or we can help you. A licence without an end date that is still active is kept.
  • Unpaid orders: 30 days.
  • Devices that signed off: 90 days.
  • Sent mails (the log: recipient, subject, status): 1 year.
  • Handled reports in our management environment: 1 year after they were handled.
  • Invoices and credit notes: the data on an invoice must be kept for 7 years under Dutch tax law.
  • If you ask us to delete your data, we do so at once, except what is on an invoice.

Who processes your data

We do not sell data. Data only goes to parties that help us deliver your licence or handle reports, and only for that purpose:

  • Cloudflare: the licence service and its database, the website, the downloads and updates, and email forwarding.
  • Pay.nl: payments.
  • Resend: sending email.
  • Telegram: the notification that a new report has arrived.
  • Our own server where n8n runs, for reports.

Cloudflare, Resend and Telegram are American or international companies and may process data outside the EU. The AI provider you choose and Hugging Face are separate parties with their own privacy terms; they do not work for us.

Your rights and deleting your data

You may ask to see, correct or delete your data. Email [email protected]. Because your audio and your dictated text never reach us, there is nothing of that to find or delete with us; for text at your AI provider, contact that provider. If you disagree with how we handle your data, you can file a complaint with the Autoriteit Persoonsgegevens (the Dutch data protection authority), or with the authority in your own country.

Children

SayFeather is not meant for children under 16.

Changes

When this statement changes, we update the date at the top. For a change that matters to you, we say so on the website.

Back to the site