Privacy

Small app.
Small data footprint.

This page describes the data used by the current web and iOS versions of On Break. Last updated 5 September 2026.

The short version

On Break has no accounts, profiles or free-form chat. It does not ask for your name, email address, contacts, photos, microphone or precise location. It does not use advertising or cross-app tracking.

The live break service needs temporary random identifiers and timing information. The iOS app can also send a temporary Apple Push Notification service token while a break is active. Anonymous analytics is optional and off until you enable it in My cup.

Information kept on your device

The app stores your cup choices, completed-break count, analytics preference and install-prompt dismissal. It may also store a random installation identifier used only when analytics is enabled. An active break stores a random room identifier, a random presence identifier, and its start and end times so the timer can recover after a refresh or after the iOS app has been in the background.

Active-break records are removed locally when the break finishes. Other local preferences remain until you clear the site’s storage, remove the installed web app, or delete the iOS app. The progressive web app may also cache its own files on your device so it can load reliably.

Information sent for live breaks

When you start a break, the server receives the random presence identifier and the break expiry time. Sending a reaction sends the presence identifier and the chosen preset action: high five, heart, wave, cheers or refill. The app does not send free-form messages.

If you allow notifications on iOS, the server receives an Apple push token, the random room identifier and the break expiry time. This association is used only to deliver reactions and refill offers during that break. Live presence, reaction state and push associations expire at the end of the break—no later than five minutes and thirty seconds after they are created. Refill offers expire after five seconds.

Optional anonymous analytics

If you enable anonymous analytics in My cup, On Break records app opens, break starts and completions, invitations, sent reactions, refill activity and completed web-app installations. Each event includes the platform (web, iOS or Android) and a two-letter country code supplied by Cloudflare from the network request. The app does not request location permission and does not store coordinates.

The analytics service receives the random installation identifier, immediately turns it into a secret-keyed identifier that changes each day, and does not store the original identifier in the analytics database. Stored reports contain daily event totals by country and platform plus the day-scoped identifier used to count approximate unique visitors. They are not connected to a name, email address or account and are not used for advertising or tracking across other companies’ apps or websites.

These analytics records are retained for 90 days. You can stop future analytics at any time in My cup. Anonymous aggregate records created by earlier versions before this choice was added remain subject to the same 90-day limit. The current production configuration does not enable Google Analytics, advertising analytics, Supabase analytics or a client-side crash-reporting service.

Operational logs

Cloudflare Workers observability is enabled to diagnose service failures. Invocation logs can include the request method and URL, response status, execution outcome and related network metadata. Push-delivery logs include an event identifier, Apple environment, status and error reason; the code deliberately omits push tokens and notification contents from those logs. On Break does not install a crash-reporting software development kit in the web or iOS app.

Cloudflare retains Workers logs for three days on its Free plan or seven days on its Paid plan, with seven days as the maximum standard retention.

Services that process data

These providers process information to host or deliver On Break, not so On Break can sell it or use it for advertising. Their handling of infrastructure data is also governed by their own policies: Cloudflare, Netlify, Apple and Google.

Identity, sharing and protection

On Break does not create an account or try to connect app data to your real-world identity. Random identifiers can distinguish an installation or one temporary break, but they do not contain your name or contact details. On Break does not sell data and does not share it with advertising networks or data brokers.

Network traffic uses HTTPS. Presence identifiers are transformed with a secret-keyed hash before they are stored on the live service, interaction limits are enforced on the server, and access to the private aggregate dashboard is separate from the public app.

Your choices and deletion

You can leave anonymous analytics off, or switch it off later in My cup. You can remove local information by clearing data for onbreak.coffee, removing the installed web app, or deleting the iOS app.

Temporary live-break and notification records delete automatically when the break expires. Aggregate analytics cannot be searched or deleted by name or account because neither is collected and the stored daily identifiers are deliberately not connected back to an installation. For a privacy question or deletion request about any information you believe you supplied, use the contact method below.

Contact

Contact the developer through the project’s GitHub issue tracker. Do not include private or sensitive information in a public issue.