01The short version
- Your lists are stored on your iPhone. A copy goes to our servers in the European Union only while a Pebble watch is linked, so the watch can reach it.
- You don’t create an account. The app signs in with a random, anonymous ID. We never ask for your name, email or phone number.
- When you make a list by voice, your speech is turned into text on your iPhone (by Apple) or by the Pebble app’s dictation. We never receive audio. The text is sent to OpenAI to build the list and is not stored by us.
- Apple handles payments. We use RevenueCat to know whether your subscription is active.
- We use Firebase Analytics and Crashlytics to understand how the app is used and to fix crashes.
- No ads. We don’t sell your data, and we don’t track you across other apps or websites.
02Who we are
Tasks for Pebble (“Tasks”, “we”, “us”) is an independent app for iPhone and Pebble watches. We are responsible for the personal data described here. You can reach us at hey@safareig.co.
03On your iPhone
Your lists, their items, sections, titles and subtitles, colours and icons are stored in a database inside the app on your iPhone. They are part of your iPhone’s backups, like other app data. Without a linked watch, your lists never leave your phone, except for the text you choose to send when you use voice or Autocomplete (see Voice and AI).
The app asks for the microphone and speech recognition only when you first hold the + button to speak, and listens only while you hold it. You can turn either off in the iPhone’s Settings; the rest of the app keeps working.
04Your anonymous account
When the app starts, it signs in to Firebase Authentication anonymously. This creates a random user ID that isn’t linked to your name, email, phone number or Apple ID. The ID lets our servers keep your watch’s copy of your lists apart from everyone else’s, and it is also the ID RevenueCat uses for your subscription.
The app also uses Firebase App Check with Apple’s App Attest, which confirms that requests come from the genuine Tasks app on a real device. It doesn’t identify you.
05Linking a watch and sync
Linking
When you open Tasks on a watch that isn’t linked, it asks our server for a pairing code. We store the 6-character code with a random device ID, the watch model (for example “emery” for Pebble Time 2) and a scrambled (hashed) secret. A code lasts 10 minutes and works once. When you type it in the iPhone app, we record which anonymous account the watch belongs to, and the watch receives a private token. We store only a hash of that token, along with when the watch was linked and when it was last seen.
To stop people guessing codes, we count failed attempts per hour. These counters are keyed by a hash of the IP address or account ID, not by the address itself, and expire after an hour.
Sync
While a watch is linked, the iPhone app keeps a copy of your visible lists in Google Cloud Firestore, in the European Union (Firestore multi-region eur3; our server code runs in europe-west1, Belgium). The copy contains, for each list: its title, colour, icon, position, section and whether it is archived or visible; and for each item: its text, whether it is done, its position and its section’s title. List subtitles are not synced. Only you (through your anonymous ID) and your linked watch can read it.
The watch doesn’t connect to the internet by itself. It talks to our server through the Pebble app on your phone, which also keeps the watch’s token and a cache of the lists it has shown, so it can display them quickly. Check-offs made while the phone is unreachable wait in that cache until they can be sent.
When a list or item is deleted while a watch is linked, its entry in the copy is marked as deleted so both devices remove it. The marked entry stays on our server until your data is deleted (see Keeping and deleting).
06Voice and AI
Turning speech into text
- On the iPhone, Tasks uses Apple’s speech recognition. Depending on your device and language, Apple may process the audio on the device or on its servers, under Apple’s privacy policy. The audio isn’t sent to us.
- On the watch, Tasks uses the dictation built into the Pebble app. That service is not run by us; only the resulting text reaches Tasks.
Building the list
To build a list, we send OpenAI the text of what you said, the app’s language, and some context so the result fits your lists: the titles of your lists and, if you are inside a list, its title, its subtitle and the text of its items. Autocomplete sends the open list’s title, subtitle and items. Once, after an update that added icons, the app may send the titles and subtitles of your existing lists so that each gets a matching icon.
We pass this through our server to OpenAI’s API and return the result to your device. We don’t store the transcript or OpenAI’s answer, other than as the list items you end up with. OpenAI says that data sent through its API is not used to train its models by default and may be kept for up to 30 days to detect abuse (see OpenAI’s policies). Please don’t dictate sensitive information you wouldn’t want processed this way.
When a list is made from the watch, we also keep a short-lived undo record (the IDs of the list and the new items, not their text) so you can undo it. To enforce the fair-use limit of 50 voice requests a day, we keep a daily counter per anonymous ID.
07Subscriptions
Subscriptions are sold and billed by Apple through the App Store. We never see your name, payment card or Apple ID. We use RevenueCat to manage subscriptions: the app identifies itself to RevenueCat with your anonymous ID, and RevenueCat receives the App Store purchase information for it (product, dates, renewals, country and currency). Our server asks RevenueCat whether that ID has an active subscription and remembers the answer (active or not, and until when) for a few hours.
08Analytics and crashes
Firebase Analytics (Google) receives events about how the app is used, for example that a list was created by voice, that the subscription screen was shown or that a watch was unlinked, along with an app-instance ID, device model, iOS version, app version, language and approximate country. It doesn’t receive the content of your lists. The app doesn’t ask to track you, so Apple’s advertising identifier isn’t available to it.
Firebase Crashlytics (Google) receives crash reports and some error reports: the state of the app and the device at the time (model, iOS version, free memory and similar) and a technical trace. They don’t include your lists.
Our server keeps technical logs of errors (for example that a request failed and why), which Google Cloud keeps for about 30 days.
09Who else is involved
| Provider | What for | Where |
|---|---|---|
| Google (Firebase Authentication, Cloud Firestore, Cloud Functions, App Check) | Anonymous sign-in, the watch’s copy of your lists, linking, voice requests | EU for Firestore and Functions; Authentication is a global service |
| Google (Firebase Analytics, Crashlytics) | Usage statistics and crash reports | United States and other countries |
| OpenAI | Turning text into lists, Autocomplete, icon suggestions | United States |
| RevenueCat | Subscription status | United States |
| Apple | App Store, payments, speech recognition, App Attest | Apple’s servers |
| The Pebble app and its services | Carrying messages between your watch and your phone, dictation on the watch | Run by the Pebble app’s provider, not by us |
When data leaves the European Economic Area, the providers rely on safeguards recognised under EU law, such as the EU–US Data Privacy Framework or the European Commission’s standard contractual clauses.
10What we don’t collect
- No advertising and no ad networks. We don’t sell or rent your data.
- No tracking across other companies’ apps or websites.
- No contacts, photos, calendar, health data or location.
- No audio recordings.
- No name, email address, phone number or password.
11Keeping and deleting
- Lists on your iPhone stay until you delete them or delete the app.
- The watch’s copy is kept while you use Tasks, including entries marked as deleted. Unlinking the watch (in Tasks › Settings › Pebble, or from the watch’s menu) deletes the watch’s link and token straight away and stops syncing; it doesn’t erase the copy on its own.
- Pairing codes expire after 10 minutes and are deleted once used. Failed-attempt counters expire after an hour. Undo records are kept only to allow undo.
- Voice text is not stored by us; see Voice and AI for OpenAI.
- Analytics and crash data are kept by Google under Firebase’s retention settings.
To delete everything we hold about you (the watch’s copy of your lists, linked watches, counters and subscription status), write to hey@safareig.co, for example with Contact support in Tasks › Settings. Because your account is anonymous, tell us something that lets us find it, such as the titles of a few lists and roughly when you linked your watch. We’ll delete it and confirm. Your subscription itself is with Apple: cancel it in your Apple ID’s subscription settings.
12Your rights
Depending on where you live, including under the EU and UK GDPR, you can ask us for a copy of your data, to correct it, to delete it, to restrict or object to how we use it, and to receive it in a portable format. We process your data to provide the app you asked for (our contract with you), and for analytics and crash reports on the basis of our legitimate interest in keeping the app working and improving it. You can also complain to your data protection authority; in Spain that is the Agencia Española de Protección de Datos (aepd.es).
13Children
Tasks is not directed at children under 13, and we don’t knowingly collect data from them. If you believe a child has used Tasks and want their data removed, contact us.
14This website
This website has no cookies, analytics or trackers. It is hosted on Firebase Hosting, which processes technical data such as IP addresses to serve pages. Fonts are loaded from Google Fonts, so your browser connects to Google to fetch them.
15Changes and contact
If we change how Tasks handles your data, we’ll update this page and the date at the top. If the change is significant, we’ll say so in the app too.
Questions or requests: hey@safareig.co.