Tempo — Privacy Policy
1. Who we are
Tempo is a free, ad-free interval workout timer for iOS and Android. It is operated by an individual developer ("we", "us"). Tempo has no user accounts, no sign-up, and no login. You can use the app fully anonymously.
This policy describes what limited data Tempo collects and how it is used.
2. What data we collect
2.1 Crash reports and error diagnostics
Tempo uses Sentry to capture crashes and runtime errors. The reports include:
- Stack traces of the crash
- Device model, OS version, app version, build number
- A trail of recent in-app actions ("breadcrumbs") — for example "user opened the create screen", "AI request returned 429"
- A randomly generated, anonymous session ID
We do not send Sentry:
- Your name, email, phone number, or any identifier you control
- The text of your AI prompts or voice recordings
- The contents of workouts you create
Breadcrumbs are designed to capture what happened (URL paths, status codes, latency) and never what you typed.
2.2 Anonymous product analytics
Tempo uses PostHog to count three events per install:
workout_created— when a workout is loaded into the timerworkout_started— when you press playworkout_completed— when you finish a workout
Each event carries non-identifying metadata such as the number of
intervals, total duration in milliseconds, and the creation method
("ai", "preset", or "manual"). We never call PostHog's
identify() function, so events stay tied to an anonymous
per-install device ID and are not linked to you.
2.3 AI workout generation (OpenAI)
When you generate a workout from a text prompt or a voice recording, the prompt or audio is sent through our serverless proxy to OpenAI.
- Our proxy does not store prompts or audio. It forwards them to OpenAI in-memory during the request and discards them when the response returns.
- OpenAI processes the request under their API data policy. As of this writing OpenAI states they do not use API requests to train their models, and they retain API inputs for up to 30 days for abuse monitoring before deletion. See openai.com/policies/api-data-usage-policies.
- Voice recordings are sent only when you tap the microphone button and stop recording. We never record in the background.
2.4 Daily request counter
To protect the budget of the free AI proxy, we keep a single global counter of AI requests per day in Vercel KV (an encrypted key-value store). This counter is not per-user — it is a single number across all installs that resets at 00:00 UTC each day. It contains no personal data.
2.5 App integrity attestation (iOS)
On iPhones running iOS 14 or later, Tempo uses Apple's App Attest service to prove to our proxy that AI requests originate from a genuine, unmodified copy of the app. The attestation is keyed to your device and not linked to any identity. The public key and attestation token are stored in Vercel KV with a 90-day expiry. No personal data is included.
3. What we do not collect
- We do not require an account, email address, or phone number.
- We do not use cookies. Tempo is a native mobile app, not a web app.
- We do not use advertising SDKs, tracking pixels, or third-party advertisers.
- We do not track location, contacts, photos, calendar, or microphone outside the explicit voice-prompt button.
- We do not sell or share data with data brokers.
4. Where data is sent
| Service | Provider | Purpose | Data sent |
|---|---|---|---|
| Sentry | Functional Software, Inc. | Crash and error reporting | Stack traces, device info, anonymous breadcrumbs |
| PostHog | PostHog Inc. | Anonymous usage counts | Three event types with non-identifying metadata |
| OpenAI | OpenAI, LLC | AI workout generation | The text prompt or voice recording you submit |
| Vercel KV | Vercel Inc. / Upstash | Daily request counter, attestation cache | Aggregate counts; device-keyed attestation tokens |
All providers handle data under their own privacy policies, which you can read on their respective websites.
5. Data retention
- Sentry: crash reports retained per Sentry's default retention (currently 90 days for free-tier projects).
- PostHog: events retained per PostHog's default retention.
- OpenAI: API inputs retained up to 30 days for abuse monitoring per OpenAI's API policy, then deleted.
- Vercel KV daily counter: reset every 24 hours.
- Vercel KV attestation cache: entries expire after 90 days of inactivity.
6. Your rights
Because Tempo collects no personal identifiers, we cannot look up "your data" the way a service with accounts can. You can still request:
- Deletion of crash reports or analytics events linked to a time window or device by contacting us (see section 9). We will manually delete matching records in Sentry and PostHog where technically possible.
- A copy of any data we hold that we can attribute to you on request.
Under the EU General Data Protection Regulation (GDPR / RODO), you also have the right to lodge a complaint with your local data protection authority.
7. Children's privacy
Tempo is not directed at children under 13. We do not knowingly collect data from children. If a parent or guardian believes their child has used Tempo and generated crash or analytics events, contact us and we will delete matching records on request.
8. Changes to this policy
We may update this policy as Tempo evolves. The current version always lives at tempo-eta-kohl.vercel.app/privacy. Substantive changes will be announced inside the app on the next launch after publication.
9. Contact
Questions, deletion requests, or complaints:
- Email: mateusz.w.twardy@gmail.com
- Response time: best effort, typically within 7 days.