Privacy policy
Effective date: 2026-07-28 Last updated: 2026-10-16
Laurels ("Laurels", "we", "us") is a daily puzzle game. This policy explains what we collect, why, who we share it with, and what control you have.
Laurels is operated by Cameron Dang, an individual developer based in California, United States. Questions or requests: [email protected].
1. Short version
- We identify you by phone number, because that is how you sign in. There are no passwords, and email is not an account or sign-in field.
- We store your profile (display name, username, timezone) and your gameplay (which puzzles you played, your scores and times).
- If you join a group, we store your membership, the group's identity, invitations, reactions, and rival connections. There is no in-app group chat in this release.
- If you choose Play Online, we match you with other players, who may not be in your groups. They can see your username, chosen avatar, and results in that lobby. We store lobby participation, readiness, connection-presence times, and round rosters to run games and recover your room after a restart.
- If you buy Laurels Gold, larger groups, or additional group-member packs, we store the access you purchased and the store it came from. For member packs we also keep a purchase identifier and its allocation to one group, to deliver the purchase, recover interrupted purchases, and process refunds. We never receive card details.
- We store the current Terms/Guidelines version you accepted, your blocks, and limited safety reports and moderation records so we can enforce the rules and protect players.
- If you enable notifications, we store a device push token, a random app-installation identifier, and your notification choices so we can tell you about new group games, challenges, and activity or remind you about daily games you have not opened. A challenge push names the challenger, game, and shared group. You can turn these off at any time.
- We do not show advertisements or use advertising or cross-app tracking SDKs. We use RevenueCat for purchase functionality, purchase history and aggregate purchase analytics. We do not sell your personal information or share it for cross-context behavioural advertising, and we do not track you across other companies' apps or websites.
- Our update and hosting services process technical identifiers, request metadata, and limited error information to deliver updates, keep sign-in working, and diagnose faults. Online Wikihistory images are loaded from Wikimedia, which receives those requests.
- You can delete your account from inside the app, or request deletion through the public process in section 7 if you no longer have the app installed.
2. Information we collect
2.1 Information you give us
| What | Why |
|---|---|
| Phone number | The only sign-in method. A one-time code is sent by SMS to verify it's you. |
| Legacy display name | Older accounts may retain this profile fallback. The current app does not offer a display-name editor or accept new direct changes. |
| Username | Unique public handle so friends can find and add you. |
| Avatar choice and colour | Personalises your profile; this is not an uploaded photograph. |
| Timezone | Determines when your daily puzzle rolls over. |
| Group names and invite codes | Lets you create and share a private group. |
| Notification choices | Controls daily reminders, group updates, and how long untouched group games stay available. |
2.2 Information generated by playing
| What |
|---|
| Which puzzles you started and finished, and when |
| Scores, durations, and per-game detail such as words found |
| Puzzles you created or were served |
| Which days you won the laurel in a group |
| Group membership and role |
| Invitations, selected rivals, and emoji reactions to results |
| Online rooms, participation, readiness, join/leave and last-seen times, and round rosters |
| Suggested rivals and rankings derived from your submitted results |
| New-game, direct-challenge, and result activity, including whether you have read it |
| Which local daily reminder slots were checked and whether a reminder was eligible |
| An Expo push token and random installation identifier, if notifications are enabled |
2.3 Safety and policy records
| What | What it contains | Why |
|---|---|---|
| Terms and Community Guidelines acceptance | Your account ID, the accepted policy version, and server acceptance time. The version record contains the exact Terms/Guidelines URLs and SHA-256 hashes of their committed source and published HTML. | Proves which safety rules you affirmatively accepted before creating a username or group name. |
| Blocks | The blocking and blocked account IDs and server creation time. | Enforces your choice to prevent new search, invitation, and group-joining contact paths. |
| Safety reports | Reporter and target IDs, report reason and status, server timestamps, and the username or group name captured by our server when the report was submitted. | Preserves the content actually reported so it cannot be erased by a later rename or deletion, and lets us investigate abuse. |
| Moderator alert delivery | Report ID, closed reason category, target type, receipt time, delivery attempts, and provider message ID. Alert email contains no username, group name, reporter identity, target identity, or report snapshot. | Notifies the authorised moderation team promptly and retries delivery without exposing the reported content through email. |
| Moderation records | Actions, resolution, authorised operator identity, private moderator note, and server timestamps linked to a report. | Records review and safety action, supports consistent enforcement, and provides a limited audit trail. |
Reports and moderation records are available only to the small authorised moderation team and service operators who need them for safety work. They are not shown to the reported player, other players, or the person who submitted the report. The report form has no free-text field: a player selects a closed reason category and our server captures the visible username or group name.
Terms and Community Guidelines acceptance is not consent to advertising, profiling, or unrelated processing.
2.4 Support, feedback, and deletion correspondence
If you email [email protected], the correspondence may include your sender email address and profile name, your message and any material you choose to include, and the mail service's delivery metadata. For an external account-deletion request, we also ask for your Laurels username and account phone number and may exchange additional account-verification details.
We use this information only to respond to the message, investigate support reports, consider feedback, verify account control, fulfil account-deletion or privacy requests, prevent unauthorised deletion, and keep a reasonable record that a request was handled. This correspondence is not added to your Laurels profile or used for advertising.
2.5 What we do not collect
The current app does not ask for a legal name or email address as an account field. Older profiles can retain a legacy display name. We may also receive a name or email address if you provide it in correspondence described in section 2.4. We do not access your device's address book, photo library, camera, microphone, GPS, or health data, and do not request an advertising identifier for advertising. We do store the in-app social connections described above; those are separate from your device's address book. Internet services receive your IP address when handling requests, and an IP address can reveal an approximate location. See sections 2.8 and 4 for this processing.
The app asks only for system notification permission, and only after you choose to enable notifications. It does not request contacts, location, camera, microphone, photos, or tracking permission.
We do not embed a separate general gameplay-analytics, attribution, or advertising SDK. RevenueCat supplies the purchase-related reporting in section 2.6. Expo Updates can send limited fatal-error information as described in section 2.8; the absence of a separate crash-reporting SDK does not mean that no diagnostic information is transmitted.
2.6 Purchases
Laurels offers lifetime Gold and monthly subscriptions for larger groups and additional group capacity. Previously purchased one-time upgrades remain recognized. Monthly extra capacity is selected as a pack-count tier, with each ten-member pack assigned to a specific group. Apple or Google processes the payment. RevenueCat verifies purchase records and supplies our server with the account's current access and valid member-pack purchases. We do not receive or store card numbers or billing addresses.
For account unlocks, we store the entitlement, product, store platform, grant time, and any verified expiry. For monthly extra capacity, we store the subscription product, verified pack count and expiry, and each numbered pack's group allocation. Expiry or a downgrade can reduce room for new members but does not remove existing members. For legacy member packs, we store a RevenueCat purchase identifier, product identifier, purchaser's internal account ID, store, purchase time, test/live status, current validity, and the group allocation. We also record an in-progress purchase's identifier and intended group so an interrupted payment can be recovered without charging again. These records are not public and are not used for advertising.
RevenueCat receives the account identifier, store purchase records, and technical information needed to operate its SDK, such as device/operating-system information. Its dashboard also provides purchase history and aggregate purchase analytics so we can investigate purchase issues and understand purchase performance. This reporting is not used for advertising or tracking across other companies' apps or websites. Apple, Google, and RevenueCat provide their own information about their processing.
Deleting your Laurels account removes account-unlock rows, monthly capacity records, monthly pack allocations, and pending purchase attempts. Limited legacy member-pack purchase records remain as described in section 6, so the group keeps its purchased allocation and a later refund can still be applied. Deletion does not cancel or refund a store purchase or subscription. Manage or cancel subscriptions through the store; refunds are handled by the store.
2.7 Group chat
Group chat is not available in this release, and we do not collect chat content. If it becomes available, this policy will be updated before that release ships.
2.8 Technical requests and diagnostics
Expo Updates receives a persistent random installation identifier, app/runtime version, request metadata including IP address, and, when recovering from a fatal error, a limited error message. This helps deliver compatible updates and diagnose failures. Supabase records authentication events and related technical information, which can include an account identifier, time, IP address, and user agent, for security and troubleshooting. These service records can be linked to an account or device; we do not describe them as anonymous simply because they contain an identifier instead of a name.
Online Wikihistory cards request images directly from Wikimedia servers. Wikimedia receives the image request, IP address, and network/device request metadata under its privacy policy. The app does not include your Laurels account ID in the image URL. An IP address may still reveal an approximate location to the receiving service.
Guest daily and practice progress is stored on your device and is not submitted as an account score. Those local Wikihistory cards do not request images, but guest play can still make the update requests described above. After signing out of an account that used purchases, RevenueCat can also maintain an anonymous SDK identifier; signing out is not a request to erase provider records.
2.9 Games shared through Messages
The standalone Laurels Messages extension lets you send puzzle challenges and friendly results through Apple's Messages app. Shared messages contain the puzzle reference, challenge identifier, scores, durations and game-result details, together with a random player identifier stored by the extension on your device. Conversation recipients can receive this information when you send a challenge or result. This identifier is separate from your Laurels account and does not include your account phone number.
These challenges and results are not sent to Laurels' servers, do not award laurels, and do not enter account leaderboards. Apple handles the conversation under its own privacy policy. Deleting your Laurels account does not delete messages already shared with other people or copies held in their conversations.
3. Why we process it, and the legal basis
| Purpose | Legal basis (UK/EU GDPR) |
|---|---|
| Authenticating you and keeping you signed in | Performance of a contract (Art. 6(1)(b)) |
| Running the game: serving daily puzzles, recording scores, ranking groups | Performance of a contract |
| Matching players in online lobbies, running rounds, and recovering an active room | Performance of a contract |
| Suggesting eligible group-mate rivals from your results | Performance of a contract — personalising the in-app game experience |
| Showing in-app group activity and sending notifications you enabled | Performance of a contract; your device permission and settings control push delivery |
| Delivering and restoring purchases, recovering interrupted payments, and processing refunds | Performance of a contract and legitimate interests in preventing purchase fraud |
| Reviewing purchase history and aggregate purchase analytics | Legitimate interests in investigating purchase issues and understanding purchase performance |
| Verifying scores server-side to stop cheating | Legitimate interests (Art. 6(1)(f)) — fair leaderboards |
| Preventing fraud and abuse of the service | Legitimate interests |
| Delivering compatible updates and diagnosing service failures | Legitimate interests in maintaining a reliable and secure service |
| Recording policy acceptance and operating report, block, and moderation controls | Performance of a contract and legitimate interests in protecting players, enforcing our rules, and keeping a limited safety audit |
| Responding to support or feedback and handling account-deletion or privacy requests | Performance of a contract, legitimate interests in supporting the service, and compliance with legal obligations |
We do not process your data for advertising or advertising profiling, and we do not make automated decisions that produce legal or similarly significant effects about you.
4. Who we share it with
We do not sell your personal information, and we do not "share" it for cross-context behavioural advertising as those terms are defined under the CCPA/CPRA.
We use a small number of service providers and app-store distributors. Service providers process application data for us; app stores may also collect information independently under their own privacy policies:
| Provider | What they receive | Purpose |
|---|---|---|
| Supabase, Inc. | In-app account, profile, gameplay, match, group, UGC-safety, and purchase data listed in sections 2.1, 2.2, 2.3, and 2.6; authentication and technical request records described in section 2.8 | Database, authentication, backend hosting, purchase fulfillment, safety operations, and troubleshooting (on AWS infrastructure) |
| Twilio Inc. | Your phone number and the one-time code | Delivering the sign-in SMS |
| Apple Inc. | Download and crash information Apple collects itself; notification delivery data if you enable push | App distribution, TestFlight, and delivery through Apple Push Notification service |
| Google LLC | Download, install, device, performance, and crash information Google Play collects itself; notification delivery data if you enable push; correspondence sent to [email protected] | App distribution and testing through Google Play, Android notification delivery, and email delivery and hosting |
| RevenueCat, Inc. | Your Laurels account identifier, store purchase records for account unlocks and member packs, and SDK technical information described in section 2.6; not your card number or billing address | Verifying purchases, restoring access, recovering interrupted purchases, notifying our server of changes and refunds, and providing purchase history and aggregate purchase analytics |
| Resend, Inc. | Moderator inbox address plus a safety report ID, closed reason category, target type, and receipt time; no reported name, reporter identity, target identity, or complaint snapshot | Delivering private new-report alerts to the authorised moderation inbox |
| Expo (650 Industries, Inc.) | Persistent installation identifier, device/app/runtime metadata, IP address, and limited fatal-error information for updates; Expo push token, notification title/body, and routing data if push is enabled | Building the app, delivering compatible updates, diagnosing update failures, and routing notifications to Apple/Google |
| Wikimedia Foundation | Online image requests, IP address, and network/device request metadata; no Laurels account ID is added to the image URL | Hosting the historical images displayed in online Wikihistory cards, subject to Wikimedia's own privacy policy |
Other players can see your username, selected avatar, and eligible results on shared group surfaces. Choosing Play Online also makes your username, avatar, readiness, and current-round results visible to eligible players in that lobby, including people who are not in your groups. It does not give them access to your private group history or phone number.
We may also disclose information where required by law, to enforce our terms, or to protect the rights and safety of our users.
5. Where your data is stored
Application data is stored in our Supabase project hosted on AWS in US East (Ohio),
us-east-2. If you are located outside the United States, your information will be
transferred to and processed there. For transfers out of the UK/EEA we rely on the European
Commission's Standard Contractual Clauses as incorporated into our providers' data
processing agreements.
6. How long we keep it
We keep your account data for as long as your account exists, subject to the purchase and safety-record rules below. When you delete your account (section 7), the following is permanently deleted immediately:
- your authentication record, including your phone number
- your profile — display name, username, timezone
- your scores and gameplay records
- your group memberships
- your account-linked online-lobby membership and round-roster rows
- your purchase-unlock rows — which access you hold, its product/store platform,
grant time (
granted_at) and verified expiry - your monthly capacity subscription record and monthly pack allocations
- your pending member-pack purchase attempts
- your Terms/Guidelines acceptance records
- block relationships in which you are either person
- your notification preferences, activity threads, and registered device tokens
Some game records are retained in anonymised form so that other players' history stays intact — for example, a group's record of who won on a given day keeps the win but no longer identifies you.
Legacy one-time member-pack purchase records follow a separate rule: the purchase identifier, internal purchaser ID, product/store information, validity, and allocation history are retained after account deletion. They contain no phone number or profile, but are treated as restricted purchase data, not anonymous data. They let us maintain the paid group's capacity, apply later refunds, and prevent one purchase being allocated twice. Deleting the group retires its allocation rather than making the purchase reusable. These limited records currently have no automatic expiry; contact us using section 7 to request review of their retention. Store and RevenueCat records are subject to their separate retention and deletion processes.
Safety reports follow a separate, limited rule:
- If the reporter deletes their account, the report remains but its reporter account ID is removed.
- If a reported account or group is deleted, its target ID is removed, but the username or group name our server captured at submission remains with the complaint. This prevents deleting an account or group from erasing an open safety report. Because the captured name may still be identifying, we treat the retained report as restricted personal information rather than claiming it is fully anonymous.
- Reports that are open or under review remain available to the moderation team until they are resolved. Escalating a report does not by itself resolve it or start retention.
- A report marked actioned or dismissed, together with its linked moderation actions and private notes, is permanently deleted 90 days after the server resolution time.
These records are used only for safety, abuse prevention, enforcement, legal compliance, and the limited moderation audit described in section 2.3.
Aggregate, non-identifying statistics (such as how many people played a given puzzle) may be retained indefinitely.
Support, feedback, and deletion correspondence described in section 2.4 is kept only as long as needed to respond, investigate, verify and fulfil the request, and document its completion. Unless a longer period is required by law or needed to establish or defend a legal claim, we delete that correspondence no later than 12 months after the last exchange. This mailbox correspondence is stored separately from your Laurels account; deleting the account does not itself erase the correspondence, which follows this retention rule.
Authentication/security logs and update-service diagnostics are separate from the application records listed above. Deleting your account does not automatically erase all historical service logs or provider records. Their retention depends on the provider and configured service; contact us to request access or deletion review. Wikimedia's request records are governed by its own privacy policy.
7. Your choices and rights
Delete your Laurels account
In the app: go to Profile → Edit Profile → Delete Account. You will be asked to confirm twice, and deletion takes effect immediately.
If you cannot access the app, including after uninstalling it: request account deletion by emailing [email protected] with the subject Delete my Laurels account. Include your Laurels username and the phone number on the account, including its country code. We will reply with the steps needed to verify that you control the account; we do not delete an account based only on an unverified email request. Once verified, the request deletes or anonymises the same data listed in section 6. We will fulfil a verified external deletion request as soon as practicable and no later than 30 days after verification. You do not need to reinstall the app to use this process.
Notifications. In the app: Settings → Notifications. You can turn daily reminders, new-group-game/challenge notifications, and game-activity notifications on or off independently and choose the group-game availability window. By default, daily reminders are evaluated around midnight when new daily puzzles release in your saved timezone. You can opt in to reminders at about 10 AM, 2 PM, 7 PM, and 10 PM instead; those reminders stop once every daily has been opened. You can revoke system notification permission in iOS or Android Settings. Signing out unregisters that installation's stored push token when the server is reachable. A random installation identifier and increasing ownership number remain as a non-delivery tombstone so a delayed request cannot silently turn notifications back on after logout.
Depending on where you live, you may also have the right to:
- access the personal information we hold about you, and receive a copy;
- correct inaccurate information (username and timezone can be updated in the app, subject to safety and username-change limits; contact us about a legacy display name);
- delete your information;
- port your information to another service;
- object to or restrict processing based on legitimate interests;
- withdraw consent where processing is based on consent;
- not be discriminated against for exercising any of these rights.
To exercise another right we cannot serve in the app, email [email protected]. We will respond within the timeframe the applicable law requires (30 days under UK/EU GDPR; 45 days under the CCPA/CPRA, extendable once). We may need to verify that you control the phone number on the account before acting.
If you are in the UK or EEA and believe we have handled your data improperly, you may complain to your local supervisory authority.
8. Children
Laurels is not directed to children under 13, and we do not knowingly collect personal information from them. If you believe a child under 13 has given us information, contact [email protected] and we will delete it.
9. Security
- All traffic between the app and our servers uses HTTPS/TLS.
- Database access controls, including row-level security and server-authorised functions, restrict unauthorised access to private records. Shared-group profiles, online-lobby identities and results, and other intended social features expose only the data allowed by those rules.
- Account leaderboard scores are validated and written server-side only — the app cannot write a leaderboard score directly. Guest/practice scores stay on your device. Friendly Messages results may be shared with conversation recipients, but are not sent to Laurels' servers or included in these authoritative leaderboards.
- Sign-in uses one-time SMS codes; there is no password for an attacker to steal or reuse.
No system is perfectly secure, and we cannot guarantee absolute security. If a breach affects your personal information, we will notify you and any required regulator as the law requires.
10. Beta and test distribution
When Laurels is distributed through TestFlight, Apple collects information about beta installs and crashes under Apple's privacy policy. When Laurels is distributed through a Google Play testing track, Google collects information about installs, devices, performance, and crashes under Google's privacy policy. Test builds may be less stable, and test data may be reset between releases.
11. Changes to this policy
If we change this policy we will update the "Last updated" date above. For material changes — new categories of data, a new subprocessor, or a new purpose — we will notify you in the app before the change takes effect.
12. Contact
Cameron Dang — individual developer, California, United States [email protected]
A postal address is available on request to the address above; we do not publish a home address.
This policy is governed by the laws of the State of California, United States.