Privacy Policy
Effective date: July 16, 2026 · Last updated: October 25, 2026
The apps and the extension collect nothing while you use them. Yellow Tomato has no accounts, no servers, and no analytics — everything you do stays on your own device.
This policy covers the Yellow Tomato iOS app, the Android app, the Chrome extension and this website, published by an individual developer based in Portugal (EU). The website counts visits without cookies, and its two optional forms — the feedback page that opens when you remove the extension, and the Sync survey — send only what you choose to send. Questions? yevhen.codes@gmail.com.
Who we are
Yellow Tomato is made and published by an individual developer (sole proprietor) based in Portugal. There is no company backend and no user account system, and none of the apps sends your data anywhere. Because we operate in the EU, this policy is written with the GDPR in mind.
The iOS app
App Store
The iOS app, for iPhone and iPad, contains no networking code of any kind — no analytics, no crash reporting, no third-party SDKs, and no data transmission. Nothing you enter or generate is ever sent anywhere.
What’s stored, and where
Everything is stored locally on your device, including in the iOS App Group container the app shares with its own extensions (its widgets, Live Activity and block screens):
- Timer sessions & statistics — your completed and abandoned focus sessions, and the task each one was for.
- Streaks — your focus history, kept only for you.
- Tasks / to-dos — anything you add to a session.
- Settings — your timer, break, and app preferences.
- Blocklist selection — the apps, categories, or sites you choose to block (see below for how this works).
- App state — whether you’ve finished onboarding, when you installed the app, and whether you’ve already been asked for a review.
If you back up your device to iCloud or to a computer, iOS can include this data in that backup, as it does for most apps. Those backups are kept by Apple under your account, or on your computer; we have no access to them.
Blocking distractions & Screen Time
The optional “Block distractions” feature uses Apple’s Family Controls / Screen Time framework with individual authorization — meaning you manage it for yourself; it is not a parental-controls setup. We request Screen Time authorization only when you turn this feature on.
You choose what to block through Apple’s system FamilyActivityPicker. iOS hands the app only opaque tokens for your selection: the app cannot see which apps you picked, and it cannot read any usage data. Shields (the block screens) apply only during a focus session you start, and are removed when the session ends or you stop it.
When a shield appears, iOS gives Yellow Tomato’s block screen the name of the blocked app, or the blocked site’s domain, so the screen can say what is blocked. The name is used only to draw that screen: it isn’t saved, and the app itself still can’t read your selection.
So that shields come off even if iOS closes the app mid-session, Yellow Tomato also schedules a Screen Time activity window that matches the session. iOS uses it only to tell Yellow Tomato when the window ends, so it can remove the shields; no app usage is read or recorded.
Widgets, Live Activity & shortcuts
The Home Screen and Lock Screen widget shows today’s tomatoes and your streak. The Live Activity, on the Lock Screen and in the Dynamic Island, shows the running timer and today’s tomato count. The Control Center control, the Action button and the Shortcuts app can start a Pomodoro. All of them read the same on-device data as the app, and send nothing anywhere. What they show is visible on your Lock Screen without unlocking your device; you can remove the widget, or turn off Live Activities for Yellow Tomato in iOS Settings.
Notifications
Any notifications are scheduled locally on your device. No push server is involved. They say only what the timer is doing, never what your tasks are.
Deleting your data
Deleting the app deletes all of its data from your device. Device backups you made earlier keep their copy until they are replaced or deleted.
The Android app
Google Play
The Android app does not request internet access, so it cannot send anything anywhere. It contains no analytics, no crash reporting and no third-party tracking code.
What’s stored, and where
Everything is stored in the app’s private storage on your phone. The app’s data is excluded from Android’s cloud backup and device-to-device transfer, so it stays on this phone:
- Timer sessions & statistics — your completed and abandoned focus sessions, and the task each one was for.
- Tasks — anything you add to your list.
- Settings — your timer, break, and app preferences.
- Blocklist — the apps you choose to block: each one’s name and package name.
Blocking distractions & Accessibility
If you turn on “Block distractions”, the app explains why it needs Android’s Accessibility service and asks you to enable it. The service is used for one thing only: knowing the name of the app in front of you, so Yellow Tomato can cover the apps you chose while a focus session runs. It is configured so it cannot read your screen content or what you type. Nothing leaves your phone, and nothing is stored except your list of apps. You can turn it off in the app or in your phone’s Accessibility settings at any time.
To let you choose what to block, the app asks Android for the apps on your phone that have a launcher icon, with their names and icons. It also checks which apps are your home screen, Settings and phone app, so that those are never blocked. These lookups happen on your phone, and the app doesn’t ask for access to every app installed. Only the apps you pick are saved.
Permissions
- Notifications — end-of-session alerts and a status notification while the timer runs. They say only what the timer is doing, never what your tasks are, and can appear on your lock screen.
- Alarms & reminders — so alerts arrive on time. Optional.
- Run at startup — to restore the timer after your phone restarts.
- Advanced Protection status (Android 16 and later) — to tell you when blocking isn’t available. It reveals nothing else.
Deleting your data
Uninstalling the app deletes all of its data from your phone.
The Chrome extension
Chrome Web Store
Like the phone apps, the Chrome extension makes no network requests of any kind while you use it — no analytics, no beacons, and no remotely-loaded code anywhere in its source. Its focus sounds are built into the extension. Nothing you do leaves your browser, except when you choose to follow a link (see Links, reviews and email) and the optional feedback page Chrome opens when you remove the extension, described below. The extension also runs in other Chromium-based browsers, such as Microsoft Edge, and everything in this section applies there too.
What’s stored, and where
All data is stored locally in your browser, and the extension does not use chrome.storage.sync — so your data stays on the machine it was created on and does not sync between your Chrome profiles or other computers. (If your blocklist doesn’t follow you to another machine, that’s why — it’s intentional.)
chrome.storage.local— timer state and settings, streaks, your active task, your blocklist and “Always allow” list, your lifetime Pomodoro count, which tips and review requests you’ve already seen, and the date you installed the extension (used only to work out the “days installed” detail for the feedback page described below).- IndexedDB — your to-dos and session history, including the task each session was for.
- localStorage — small display preferences: your theme, whether the task list is expanded, and the breathing-exercise length you last picked.
Permissions the extension requests
- storage & unlimitedStorage — to save the local data listed above.
- alarms — to run the countdown timer reliably in the background, and to refresh the feedback page’s address once a day.
- notifications — to show local notifications when a session or break ends.
- tabs — Chrome labels this “read your browsing history,” but the extension uses it only to find tabs on sites from your blocklist and redirect them to the block page during a focus session, and to bring its own full-screen page to the front when it’s already open instead of opening another. These checks happen entirely on your machine. The extension never saves tab addresses to its storage and never transmits them. When it redirects a tab, the address of the blocked page goes into the block page’s own address, in that tab, so the “Back to …” button can return you to it once you’re allowed.
- offscreen — to play the end-of-session sound and focus sounds; Chrome extensions can only play audio from an offscreen document.
No host permissions, no content scripts, and no remote code are used.
Limited use disclosure
Yellow Tomato’s use of information received from Chrome APIs adheres to the Chrome Web Store User Data Policy, including its Limited Use requirements. Tab information accessed via the tabs permission is used solely, and on your device, to redirect distracting sites to the block page during a focus session and to find the extension’s own full-screen page. It is never transferred to us or any third party, never sold, and never used for advertising or any other purpose.
Removing the extension
Uninstalling the extension removes its chrome.storage.local and IndexedDB data. You can also clear the display preferences and other site data through your browser’s normal “clear browsing data” controls.
When you remove the extension, Chrome opens our feedback page on this website. The extension adds four details to that page’s address: its version, your operating system, your browser’s language, and how many days it was installed. Nothing else is passed on: no identifiers, and nothing from your timer, tasks or browsing.
Links, reviews and email
Links. The iOS app and the extension link to a few web pages: our Pomodoro guide and articles on productive.fish, and the App Store or Chrome Web Store page where you can leave a review. Nothing opens unless you tap or click. Some of these links carry a tag naming the app they came from (for example utm_source=extension), so we can see whether they are useful; the tag says nothing about you. The page you open is covered by that website’s own privacy policy.
Review requests. The iOS app may show Apple’s standard “rate this app” prompt, and the extension shows a card asking for a review once you’ve finished a Pomodoro. If you leave a rating or a review, Apple or Google handles it under their own privacy policy, and it is published under the name you use in their store.
Email. If you write to us — at the address in this policy, at team@productive.fish (the website’s Contact link) or at support@productive.fish (the iOS app’s settings) — we receive your email address and whatever you include. We use them only to reply and to help with your question, never for marketing or a mailing list. We delete the conversation once it’s no longer needed to help you, or sooner if you ask.
App stores
You get Yellow Tomato from the App Store, Google Play or the Chrome Web Store, and each store handles your download and your account under its own privacy policy. The stores show us statistics in aggregate, such as the number of installs by country. Apple and Google can also pass on crash reports and app usage statistics from people who chose, in their device settings, to share them with app developers. These reach us without your name or contact details, and we use them only to fix problems and to understand how many people use Yellow Tomato.
This website
yellowtomato.app
This website has no accounts and sets no cookies. It is served by Cloudflare, whose servers process your IP address to deliver the pages, as any web host’s do; we don’t use it to identify, profile or track you. The pages load the General Sans typeface from Fontshare, so your browser fetches it from their servers. The web timer, the timer demo and the focus sounds page remember their state and settings in your browser’s local storage, and the Sync page remembers which version of its survey you saw; none of this leaves your device.
Analytics
We count visits with GoatCounter, an open-source, privacy-friendly analytics service. It sets no cookies and stores no persistent identifiers, so it can’t follow you across visits or to other websites. For each page view it records the page address and the page you came from, your browser and operating system, your screen size and language, and your approximate location (country and region), worked out from your IP address. Your IP address itself is not stored. We also count clicks on store buttons and a few page actions (for example, starting the web timer, or the reinstall links on the feedback page), recorded the same way as a page view, so we know which pages help people find the apps. We only look at these numbers in aggregate. See GoatCounter’s privacy policy.
Uninstall feedback
When you remove the Chrome extension, Chrome opens a short feedback page at yellowtomato.app/uninstall/. Older versions of the extension open the same page at productive.fish/uninstall/, and this section applies to it too. Every question on it is optional, and you can close it without answering. Opening it is counted like any other page view (see Analytics above), and the counted address can include the four details the extension adds.
- What the extension adds — its version, your operating system, your browser’s language, and how many days it was installed, in the page address. None of these identify you, and by the time the page opens the extension and its data are already gone.
- What we receive if you press Send — the reason you picked, anything you typed, and those four details. If you type your email address into the optional “Email me when it’s fixed” field, we receive that too.
- Where it goes — the form submits directly to Google Forms, and the answers are stored in a Google Sheet that only we can access. Google LLC handles this for us as a processor, under the Google Privacy Policy. No copy is kept on our own servers.
- What we use it for — to understand why people stop using Yellow Tomato and to decide what to fix or build next. If you leave your email address, we use it only to write to you once, when the fix or feature related to your feedback is released. We don’t add it to any mailing list, use it for marketing, or share it with anyone else.
- How long we keep it — we delete your email address after sending that message, or after 12 months if the fix or feature hasn’t been released by then. The rest of your answer is kept without the email address, for as long as it helps us improve Yellow Tomato. You can ask us to delete your answer or your email address at any time at yevhen.codes@gmail.com.
Sync survey
The Sync page (not public yet) asks a few optional questions to find out whether people want device sync. Nothing is sent unless you press the submit button.
- What we receive — your answers, the page or link that brought you to the survey, which price version you saw, and the page language. If you type your email address into the optional field, we receive that too.
- Where it goes — like the feedback form, the survey submits directly to Google Forms and the answers are stored in a Google Sheet that only we can access, with Google LLC as our processor. Google receives your IP address as part of handling the request; the page doesn’t send your Google cookies.
- What we use it for — to decide whether and how to build Sync. If you leave your email address, we use it for one thing only: a single message when Sync launches. No newsletter, never shared, never sold.
- How long we keep it — we delete waitlist email addresses after sending the launch message, or as soon as we decide not to build Sync. Your other answers are kept without the email, to inform the product. You can ask us to delete your answers or your email address at any time at yevhen.codes@gmail.com.
Data storage & deletion, at a glance
None of the apps sends your data to us — we have no way to receive it. Your information lives on your device (on iOS, within the app and its App Group container, and in any device backup you make; on Android, in the app’s private storage, which is left out of backups; on Chrome, in the browser’s local extension storage, which does not sync across machines). You remove it by deleting the app or removing the extension. The only data that reaches us is what you choose to send: through the uninstall feedback form, the Sync survey or an email. You can ask us to delete it at any time.
Permissions, explained
iOS: Screen Time / Family Controls authorization is requested only to apply your chosen blocks during a focus session, and only when you enable “Block distractions.” Notification permission, if granted, is used only for local reminders.
Android: the Accessibility service is used only to recognise the app in front of you during a focus session, and only when you enable “Block distractions”. The app sees which apps on your phone have a launcher icon only so you can pick the ones to block. Notifications, alarms & reminders, run at startup and Advanced Protection status are explained in the Android section above.
Chrome: the extension requests storage / unlimitedStorage (local data), alarms (the timer), notifications (local alerts), tabs (to redirect distracting sites to the block page during a session, and to find its own full-screen page, locally), and offscreen (to play sounds). It requests no host permissions and uses no content scripts or remote code. See the extension section above for the full explanation, including the Limited Use disclosure for the tabs permission.
Children’s privacy
Yellow Tomato is a general-audience productivity tool. It is not directed at children. The apps and the extension collect no information from anyone, children included, and we do not knowingly collect personal information from children through the uninstall feedback form, the Sync survey or email.
GDPR
The apps and the extension collect, transmit and process nothing off your device, so in running them we do not process any personal data as a controller or processor.
On this website, Cloudflare (hosting), Fontshare (fonts) and GoatCounter (analytics) process your IP address and basic browser details to deliver and count the pages, as described under “This website” above; the analytics store no personal identifiers. We rely on our legitimate interest in running the site and in understanding, in aggregate, how it is used (Article 6(1)(f) GDPR).
We also process personal data that you choose to send us. If you send the uninstall feedback form or the Sync survey, we are the controller of what you send: your answers and, if you give it, your email address. We process them on the basis of your consent, which you give by sending the form and can withdraw at any time by asking us to delete them; Google acts as our processor. If you email us, we process your message to answer it, on the basis of our legitimate interest in replying to you (Article 6(1)(f) GDPR).
Some of these providers are based outside the EU — Google and Cloudflare in the United States, and Fontshare’s maker, the Indian Type Foundry, in India — so this data may be processed outside the EU, under the safeguards each provider describes in its privacy policy.
You can ask to access, correct, delete or receive a copy of this data, to restrict how we use it, or to object to it, at yevhen.codes@gmail.com. You also have the right to complain to a data protection authority, in Portugal the CNPD (Comissão Nacional de Proteção de Dados).
There is no profiling, no advertising, and no data sharing beyond what is described above. If you have questions about your privacy or wish to exercise any rights you believe apply, you can contact us at yevhen.codes@gmail.com.
Changes to this policy
If this policy changes, we’ll update the “Last updated” date above and, where a change is significant, note it on this page. Continued use after an update means you accept the revised policy.
Contact
Yellow Tomato is maintained by an individual developer in Portugal. For any privacy question, email yevhen.codes@gmail.com.