Effective date: 26 September 2026
1. Who we are
This policy covers the Tennis Social iPhone app and the CourtGather website. CourtGather is the website brand; Tennis Social is the tennis service.
Individual operator: Carey Fang
Contact address: 2F., No. 10, Lane 210, Wende Road, Neihu District, Taipei City, Taiwan
Privacy contact: courtgather.support@gmail.com
2. Information we handle
- Account and identity: Apple or Google sign-in identifiers, the name/email supplied through login, authentication sessions, display name, private birth date, and optional gender, ratings, biography, and profile photo.
- Family and social connections: guardian relationships, consent records, friend requests, friendships, blocks, and messaging preferences.
- Sessions and coaching: courts and coordinates, schedules, lesson details and prices, requests, approvals, attendance, proposed changes, cancellations, reasons, and responses.
- Messages and content: text, photos, videos, reviews, community skill assessments, reports, moderation records, and private support cases/replies or email correspondence.
- Service activity: a deduplicated account-linked daily record when you use the app in the foreground, used for active-account statistics. This record does not include message content, screen-by-screen activity or location.
- Location and service operation: device location when permission is granted for nearby search, court-search queries, notification/device identifiers, and service logs or diagnostics described below.
- Coach subscription: Apple purchase/transaction identifiers and entitlement status used to check coaching access. Payment-card details are handled by Apple, not entered into Tennis Social.
3. How information is used
We use this information to authenticate accounts; operate player and guardian profiles; find sessions; coordinate requests, approvals and schedules; deliver messages and notifications; check coaching eligibility and subscription access; establish review and skill-assessment eligibility, calculate community skill aggregates and active-account statistics; and respond to reports, disputes, and support requests.
Court coordinates are used for maps, distance search, and court weather forecasts. You can search by court or city without granting device-location permission. Declining location or notification permission may limit those optional features, but does not require publishing your device location.
4. What other people can see
Your display name, approved photo, public biography, visible ratings, and reviews may be shown to other users. Optional gender and adult-age visibility follow your profile settings. Birth dates and minors’ exact ages are not public. Your device’s current location is not displayed to other players.
Session listings show court and scheduling information. People involved in a booking receive the details needed to manage it, including guardian-managed status where applicable. Cancellation reasons are shared with affected parties, not published as part of general discovery. Messages are available to the participants and, for managed children, their authorized guardian. Community skill averages and contribution counts may appear on player profiles, including minors; individual assessors and their scores are not publicly listed.
Public coaching details require an eligible subscription. Losing coaching entitlement does not erase the player profile or remove previously confirmed lesson information from the people involved.
5. Children and guardian controls
Under-13 players use guardian-managed profiles. The adult guardian operates their bookings, conversations, and feedback. From age 13, players may use their own supported login with linked guardian consent; guardian-managed profiles can continue until adulthood, and that consent does not give the guardian access to the teen’s private conversations. Coaching requires age 18 or above.
Profile handover is intended to preserve the participating person’s identity and history. Guardian authority ends at adulthood. Birth-date corrections go through support. Guardian consent and withdrawal are managed through Profile → Family & guardian consent.
How guardian consent works: Before creating a child profile or accepting a teen's invitation, the adult sees a guardian notice in the app and confirms it; we record the notice version and the time. A teen (13+) with their own login creates a single-use invitation code, valid for 24 hours. The adult enters it in Profile → Family & guardian consent and chooses Review and grant guardian consent. A player can have only one guardian at a time, and only adults can be guardians. Birth dates are self-reported: we do not check ID documents or verify legal guardianship. A guardian can withdraw consent in the app; this cancels the player's upcoming bookings under the normal cancellation rules. Withdrawing consent for a managed child hides that profile from search and from the guardian's list, but does not delete it. If you think a guardian link is wrong, contact support. We first ask the linked adult to withdraw consent. If they don't, or there is a safety concern, we can suspend that adult's account, which also pauses the linked teen's account, and we correct birth dates where needed. We never ask for routine copies of ID documents. We reply within 2 business days and aim to give a decision or progress update within 7 business days after receiving the details we need.
6. Services that help operate the app
| Service | Role |
|---|---|
| Supabase | Authentication, database, private media storage, server operations, and realtime updates. |
| Apple | Sign in with Apple, App Store billing, push delivery, Maps/court search, and WeatherKit forecasts. |
| Google / Firebase | Google Sign-In, Firebase Messaging/Installations for push notifications, and related service processing. |
| Resend | Delivers operational alerts to the owner. Alerts use service/status information, not chat bodies or uploaded media. |
| Cloudflare | Hosts courtgather.com (Cloudflare Pages), stores encrypted backup copies (R2), and forwards requests for the operator's admin dashboard (Workers). |
| GitHub | Runs our automated backup jobs. Backup data passes through these jobs briefly, typically in the United States, and is encrypted before it is stored. |
| OpenAI | Hosts the operator’s private admin dashboard (OpenAI Sites). |
| Support email | Gmail, provided by Google, is used to receive, store, and reply to support and privacy correspondence. |
These services handle relevant information under the applicable service arrangements and their own policies. Public profile content and booking information are also shared with users as described above. Requests from authorities, legal obligations, and protection of rights may require limited disclosure where permitted or required by applicable law.
Where information is processed: The app's database, file storage and server functions run in Supabase's Tokyo, Japan region. The other services listed above, including Apple, Google and Firebase, Cloudflare, GitHub, Resend, OpenAI and Gmail, may process information in other countries, such as the United States, under their own data-protection terms. We limit what each service receives to what its role needs, and backup copies are encrypted before they are stored outside Supabase.
7. Media, safety, and staff access
Profile photos are reviewed before they are published. Authorized staff can review reports, investigate attendance disputes, and inspect reported chat media when needed for moderation; these moderation actions are audited. Messages, photos and videos are not end-to-end encrypted. HTTPS, authenticated access, private storage and temporary media authorizations protect access; the backend can process content. The owner dashboard permits report-scoped investigation rather than general browsing of private conversations. Private staff notes are separate from replies visible to a support requester.
Removing a friend or blocking someone does not erase their copy of a conversation, existing bookings, or earned review rights. Clearing chat history hides that history for the selected profile; it is not the same as deleting your account or the other participant’s history.
Report handling and appeals: CourtGather is operated by Carey Fang. Reports and pending profile photos are reviewed during Monday–Friday, 09:00–18:00 (UTC+08:00). Reports may be submitted in the app at any time; safety concerns receive priority when reviewed. This is not a continuously monitored emergency service. Use Profile → Contact support for a private case, replies and progress, or email us if you cannot sign in. Use the report action on the relevant content for safety concerns. We aim to acknowledge support cases and appeal emails within 2 business days. To appeal, reply in your support case or email courtgather.support@gmail.com with your profile identifier, the affected content or session, any decision received, why you believe it is mistaken, and relevant information. Carey Fang will review the original decision and new information; there is no separate independent appeal team. We aim to provide a decision or progress update within 7 business days after receiving the necessary details. These targets do not replace applicable legal deadlines. Only relevant information is inspected. Moderation actions and reasons are recorded through the app’s audited tools. If a restriction affects confirmed sessions, those commitments are assessed separately. Some deleted text and media cannot be restored.
8. Retention and deletion
You can request account deletion inside the app. This cancels active commitments under the normal cancellation rules, replaces direct identifiers in associated profiles, removes authored reviews and message content, revokes guardian access, and disables notification delivery. Some records remain; the schedule below lists what is kept, why, and for how long.
Retention schedule and reasons: • Your account and profile: kept while your account is open. When you delete it, access ends at once and your profile details and your own reviews and messages are removed. Automatic cleanup then deletes your stored photos and videos and your Tennis Social sign-in identity (for Sign in with Apple, it also revokes the app's Apple authorization), retrying any step that fails, within 30 days. This does not delete your Apple or Google account or cancel an Apple subscription. • Chat photos and videos: available for 90 days after sending, then deleted. A reported photo or video is kept with restricted access until 30 days after the case closes, and never longer than 180 days after it was sent. • Chat text: kept until its author deletes their account, when it is replaced by "[Deleted message]". Clearing a chat only hides it for you. • In-app notifications: kept until your account is deleted. Notifications about a support case are deleted with that case. • Support cases and support email: 12 months after the case closes; reopening a case restarts this period. Support email is reviewed and deleted by hand. • Reports, moderation and appeals: up to 24 months after the case closes. If an account is deleted while a report about its content is open, only the necessary evidence is kept, with restricted access, for at most 24 months after the report. • Days you use the app (one record per day, for active-user counts): 90 days. • Technical logs and delivery records we control: 30 days. A record still needed to finish a pending task is kept until that task completes. Kept without a fixed end date, because the service depends on them: • Shared session history: sessions you took part in stay in the other participants' history after you delete your account, shown as "Deleted player", with the date, court, agreed fees, attendance and cancellations. • Guardian consent records: who gave or withdrew guardian consent for which player, and when. • Subscription records: the link between an Apple subscription and the first account that used it, so a subscription can't be moved between accounts, and its price, currency and offer type. Apple, as the seller, keeps the payment records. Apple subscription notices that don't yet match an account (a transaction ID and two timestamps) are kept until they match. • Deletion records: what was deleted and when, without messages or other content, so deletions can be applied again if a backup is ever restored. • A private fingerprint (hash) of each deleted username, so that username can't be reused. • Fingerprints of the operator's own admin commands, which stop an action from being repeated by accident. They contain no user content.
Backups: Our database host, Supabase, makes a daily backup of the app database and keeps each backup for 7 days. We don't use point-in-time recovery. These backups don't include photos or videos. Deleted information can remain in a backup until that backup expires, at most 7 days later. If we ever restore a backup, we re-apply the deletions made since that backup before reopening the service. We will update this policy when we add further backup copies.
To reduce repeated downloads, the app keeps protected local copies of approved profile photos and authorized chat media. Media cache entries expire within seven days; approved-photo entries within 30 days. They require renewed authorization and are excluded from device backups. Sign-out, lost authority, content removal and history clearing invalidate the relevant access; an offline device cannot be promised instant physical erasure. These cache windows are not server retention periods.
Media access is revoked and storage cleanup is queued. Previously issued temporary media links can remain usable for up to five minutes. Deletion from backups follows the disclosed backup lifecycle rather than an instant-erasure promise.
9. Your choices and requests
Edit optional profile details and visibility in Profile → Edit profile. Manage friends, blocks, conversation notifications, and device permissions in the relevant app or iPhone settings. Contact us to request access, correction, a copy, or deletion of personal information, or to raise a privacy concern. We may need to check that the request is authorized.
Privacy requests: courtgather.support@gmail.com
Response process: We aim to send an initial reply within 2 business days during the support hours above. Complex cases may take longer; an initial reply is not a promise that the case will be resolved within that time. Statutory privacy-request deadlines are separate.
If information needed for account authentication, age eligibility, or a booking is not provided, we may be unable to provide that specific service. Optional profile information and device permissions remain your choice.
10. This website and policy updates
The CourtGather website provides information and links. It does not create app accounts, accept bookings, or collect payment details. This website’s source contains no advertising, analytics script, contact form, or app login. Following a link to Apple, Google, or another service takes you to that service.
Logs, cookies, and diagnostics: This website has no analytics, advertising or tracking cookies. Cloudflare processes technical request data, such as IP address, time, requested page and browser type, to deliver and protect the site, and may set strictly necessary security cookies. The app contains no advertising, analytics or crash-reporting SDKs. If you choose to share analytics with app developers in your iPhone settings, Apple may give us crash reports. Push notifications use Firebase Cloud Messaging, which processes a device token and installation ID; when you delete your account, the app asks Firebase to delete them. Supabase keeps its own service logs for a limited period (7 days on our plan).
We will keep this page’s effective date current when the policy changes and communicate material changes through appropriate service channels.