Hang Habit

Privacy Policy

Hang Habit is provided by Alliterate Labs LLC. This policy explains workout data, optional Hangouts sharing, purchases, optional app analytics, feedback, name reports and website services.

Your history and Apple Health

Hang Habit stores hang history, records and settings on your devices. Your paired iPhone and Apple Watch exchange session information. Your device backup may contain app data according to your Apple settings.

With your permission, supported Watch and AirPods workout features use Apple Health to save workouts and access workout energy and heart-rate information. Manual iPhone timing saves local history in Hang Habit and does not create an Apple Health workout. Motion sensors on supported Watch and AirPods devices help time exercises.

Hangouts and iCloud sharing

Starting with version 2.3, you can choose to host or join a Hangout. Before sharing, the app asks for your agreement and the display name friends will see. Your agreement covers ongoing status sharing in every Hangout you host or choose to join, including Hangouts you join later. After you have agreed, joining another Hangout does not show the Hang Habit consent sheet again. Hangouts use Apple's iCloud and CloudKit sharing.

Members of your Hangout can see your display name, an optional distinguishing initial, whether you use a daily or weekly goal, and your daily status: whether you hung, met your daily goal and met your weekly goal. If another member enables the daily digest, their phone may include your display name and hang or goal status in a local notification. Its visibility outside the app depends on that member's notification and preview settings. The records include the date of that status. The host's chosen Hangout name is also shared. CloudKit uses record and participant identifiers and service metadata to manage the shared records and membership.

Hangouts do not upload hang durations, heart-rate readings, calories or HealthKit workout records to their shared CloudKit records. Sharing a time in Messages is a separate action you choose. Optional exercise analytics are described below and have their own controls.

The host controls invitations and can remove members or end the Hangout. Invite links should be shared only with people you intend to invite. Apple's sharing interface may display participant or invitation information associated with iCloud sharing. Hang Habit also reads the pending-invitation names, email addresses or phone numbers and participant identifiers that CloudKit makes available to the host. It displays these in the host's invitation list and keeps them, with locally recorded invitation dates, in its local Hangout cache. This cache uses ordinary app storage and may be included in device backups according to your Apple settings. Avoid putting private information in your display name or Hangout name.

You can leave a Hangout or stop Hangouts sharing. Cloud cleanup requires a working iCloud connection and the iCloud account associated with each request. Reopen Hang Habit while signed into that account to retry pending work. A request made under another account stays pending until that account is available; deleting or reinstalling the app is not confirmation that cloud cleanup finished.

Hidden names

Hang Habit can replace a person's displayed name, and the names of Hangouts they host, using a public CloudKit list published by Alliterate Labs. Each entry contains a short identifier derived by hashing the iCloud account identifier of the person whose name is hidden, plus a schema version. Entries do not contain the name, report text or workout status. Any copy of the app can read this list.

Hiding changes how supported app versions display the names; it does not delete the original shared records, remove membership or stop status sharing. Public moderation entries have no automatic expiry in the app and remain until removed through moderation. Leaving Hangouts or deleting sessions does not remove a public entry. Contact support@alliteratelabs.com to request review or removal. Phones using a saved copy may continue hiding the names until they successfully refresh the list.

Your phone keeps a copy of the list so hidden names stay hidden without a network connection. The app reads the list again at most once every 15 minutes. If a read fails, the phone keeps using its saved copy, so a change to the list may take time to reach your phone. Older app versions do not read the list.

Hangout data on your phone and retention

Your phone keeps Hangout state and a local cache so it can display and update your Hangouts. For Messages recipients you choose, the phone's device-only Keychain stores the selected phone number or email address, contact-card identifier, confirmed member name and associations with Hangout members, including any shared-address confirmations. It also stores blocked member identifiers and names, and, for each person you Block and remove, one removal record: the Hangout, that member's iCloud user record name, a request identifier and the removal's status. The record lets the app show the removal's progress after a relaunch and has no automatic expiry. The app attempts to delete it when you unblock the person. Delete All Sessions also requests removal of these Keychain items with the rest of this phone's Hangout data. If protected-storage deletion fails, the record may remain on this phone. The invitation details received from CloudKit use the separate app cache described above.

If you host the Hangout, Block and remove first asks you to confirm and warns that if you invite the person again, what was shared before might not come back. It then blocks the person on this phone and requests removing them from that Hangout. While the removal waits for iCloud, the app shows Removing… and Unblock is unavailable. If an iCloud membership check confirms that the person is still a participant, the app says it couldn't remove them, keeps them blocked on this phone and offers Try again. If the outcome cannot be confirmed, the app keeps showing Removing… and leaves Unblock unavailable until it can establish the result. A removal cannot be cancelled. After a removal, Unblock only stops hiding the person on this phone; to bring them back, invite them again.

If you are a member, Block hides that person's member figure and activity from your Hangouts and daily digest on this phone only. It does not change Hangout membership, and it does not stop them accessing your shared name and status; leaving requests a change to that Hangout's iCloud membership; the app offers to leave after you block. If you block the Hangout's host, the Hangout carries on, the host still sees your name and status, and Unblock brings the host back on this phone. Removal and leaving are cloud membership changes and require a successful iCloud connection. Previously cached names and status may remain visible until the phone successfully refreshes current membership. A locally displayed member list is not confirmation of current iCloud access. Leaving or removal does not recall messages or copies someone has already made.

During sync, the app requests deletion of your own daily-status records whose dates are more than 14 calendar days old. This is not a guaranteed 14-day deletion deadline: offline devices, iCloud errors and delayed sync can postpone deletion. Display-name and Hangout-membership records follow membership and sharing cleanup rather than this daily-status window. After a member leaves or is removed, the host's app also attempts to clean up that member's records when it can confirm their departure.

Delete All Sessions also requests leaving every Hangout you joined and ending every Hangout you host for everyone, and requests removal of your saved display name, Hangout cache, invitation records, Messages addresses and blocked people from this phone. If the app cannot save the leave requests or clear protected storage, local removal remains pending and is retried when the app next becomes active. The phone keeps unfinished membership requests and their account identifiers so it can retry them. It also retains the last verified iCloud account identifier and its cached hidden-names list after requests finish. If a stored membership-request list cannot be read, the app preserves a separate recovery copy that can contain account, Hangout, member and title information. Delete All Sessions does not remove these recovery copies, and the app does not automatically expire them. Apple Health records, Apple device backups, previously sent feedback and analytics, and messages sent to other people are handled separately.

Optional app analytics

Starting with version 2.1 build 83, two independent choices in Settings → Analytics Sharing are off by default, including when upgrading. Declining either choice preserves every workout feature. Apple Health permission does not enable analytics.

App diagnostics: if enabled, the iPhone sends reviewed feature-use and reliability events, including save/sync errors, to Alliterate Labs through TelemetryDeck.

Exercise tracking: if enabled, the iPhone sends hang durations, grip types, personal-record and streak information, session counts, progress and limited motion measurements from rejected hangs. We use these to improve Hang Habit's exercise timing and progress tracking. This can include summaries of Watch and AirPods workouts received by the phone. We do not include heart-rate readings, calories, shoulder-pain answers, physiological recovery triggers or friend-timer workouts in these analytics.

With Exercise tracking enabled, Hangouts feature-use events can also be sent, such as seeing the Hangouts card, opening the hosting unlock, the purchase outcome, hosting becoming unlocked, sending an invitation and joining a Hangout. These events use fixed event names, grouped counts and limited categorical details. Hosting-unlock events can include whether the unlock came from a purchase or an offer-code redemption and, for a code redemption, the app's offer reference name. They do not include display names, Hangout names, CloudKit record IDs, hang times, payment-card details or the redemption code itself.

Shared events include app/build version, device model, operating system, platform, language/locale, distribution context, event time and a generated identifier processed through TelemetryDeck's hashing system. We do not use this data for advertising. TelemetryDeck states that it applies an additional server-side hash and does not store IP addresses in its analytics service.

These choices control uploads from this iPhone. The updated Watch no longer uploads analytics directly. Older app and Watch versions can retain their previous automatic analytics behavior until updated; update both devices.

Turn a choice off in Settings to stop future collection for that category and cancel pending uploads. The switch cannot recall information already received by the provider or delete it. Events queued before consent, and events left from earlier app launches, are not uploaded by the new version.

Purchases

The hosting unlock is an in-app purchase handled by Apple. Hang Habit uses StoreKit purchase and entitlement information on your device to determine whether hosting is unlocked and to restore eligible purchases. Purchase-related analytics events are described above. Apple's purchase handling is separate from your Hangouts status sharing.

Feedback and support

When you choose Send, the note you write, optional rating/experiment, app/build and operating-system information, distribution channel and request time are sent to our Cloudflare-hosted feedback endpoint and forwarded to our Slack workspace for review. For ordinary feedback notes, no name, email address or analytics identifier is automatically attached. Name reports are different, as described below. A note can still contain identifying information you choose to type; avoid including sensitive information.

Feedback is accessible to authorized workspace members and connected apps with access to the feedback channel. It is not a public internet post. A local copy of the most recent 50 submitted notes is retained on your device. Feedback submission is independent of the optional analytics choices.

When you report a person's name or a Hangout name, the report includes the displayed name and a hashed identifier for the reported member or host, together with app/build, operating-system, distribution and request-time information. The app sends the report to our Cloudflare-hosted feedback endpoint, which forwards it to our Slack workspace. Reporting is separate from optional analytics. A name you report may itself contain personal information. The name rules and Hangout controls are in Hangouts: Name rules.

Reports are accessible to authorized workspace members and connected apps with access to that feedback channel. The Slack feedback retention described below also applies to reports received there. We cannot identify or contact a host from the hashed identifier alone. Contact us through hanghabit.com/support about a report or data request, and include enough context for us to locate it without adding unnecessary sensitive information.

Website and earlier app versions

The hanghabit.com website has separate analytics from the iPhone app. Outside the privacy, terms and support pages, the website uses TelemetryDeck for page visits, link interactions and web-timer usage, including timer durations. The website stores a generated identifier in your browser’s local storage. The iPhone Analytics Sharing switches do not control website analytics.

Those website pages also use Microsoft Clarity to understand page interaction through session playback and heatmaps. Clarity can process interaction, device/browser and identifier information. Microsoft describes ordinary playback retention as 30 days and click/heatmap data and labeled or favorited sessions as 9 months. See Microsoft’s privacy statement and Clarity retention documentation for its processing. The privacy, terms and support pages do not initialize either analytics service. Web pages load fonts from Google; font requests also reach Google’s servers.

The original App Store version 1.5 automatically sends session duration, grip and record information, available Watch workout calorie values, feature-use events and error diagnostics through TelemetryDeck. The optional analytics controls and calorie exclusion described above apply starting with version 2.1 build 83; they do not change older installed apps.

Earlier app and TestFlight versions used automatic analytics, and some earlier TestFlight versions included Microsoft Clarity. Build 83 does not include the Clarity SDK. Updating stops that SDK’s collection from the updated app; it does not erase information previously received by providers. We have not independently confirmed the contents of all historical recordings or arranged their deletion. Contact us about historical-data questions or requests.

Retention and data requests

  • Local app history and settings: remain on your devices until removed through available app/device controls. Apple Health records and device backups are managed separately through Apple settings.
  • Local feedback history: the app keeps the most recent 50 submitted notes; this local copy is separate from Slack's copy.
  • Slack feedback: our current free Slack plan keeps messages for up to one year. Only the most recent 90 days may be visible/searchable; that viewing limit does not mean deletion. We may delete individual feedback earlier when no longer needed or in response to a request.
  • TelemetryDeck analytics: we have not established an automatic deletion schedule. TelemetryDeck's query-retention window does not mean deletion; older events may remain in cold storage until deletion is arranged with the provider. Turning off sharing affects future collection, not previously received events.
  • Hosting: Cloudflare processes request/network information to deliver and secure the website and feedback endpoint. Cloudflare Web Analytics also measures page views and website performance, including on the privacy, terms and support pages. These website measurements are separate from the app analytics switches. Its processing and retention are described in its privacy policy. The feedback function does not maintain its own feedback database. The feedback service also processes request IP information for rate limiting and abuse prevention.

For questions or deletion requests, contact Alliterate Labs LLC at support@alliteratelabs.com. Describe the feedback and approximate submission date if requesting removal of a note. We will review what we can identify and remove; we cannot promise to locate analytics events from a name or email because those are not sent with analytics.

Provider information

Last updated: October 20, 2026