Privacy

Last updated October 9, 2026

cuewit saves your playable progress locally and submits a summary of finished daily results for daily statistics. Optional private groups let you choose a name and compare submitted results with friends. It has no accounts or cross-device sync. It uses Google Analytics to count visits and see how the daily puzzle is played, and Sentry to receive feedback you send and reports of errors in the game.

Local progress

The browser game stores progress locally using IndexedDB. This includes your daily attempt, settled ball positions, score, scratch count, shot controls and result. Each shot is saved before playback so an unfinished attempt can resume when you return.

These saves belong to the browser profile and device you use; native installations keep them in local app storage. Ball positions and shot paths are not uploaded for daily statistics, and saves do not synchronize across devices. Another browser, profile or device has its own local storage. Private browsing may remove its saves when the private session ends.

Daily result statistics

When you open a finished daily result with statistics enabled, cuewit submits the puzzle date, game rules version, win or loss, score in centimetres, shot count and scratch count to its Firebase service. A random identifier is created in local storage before submission. It identifies this browser profile or installation, without an account, and lets the service retain one result per puzzle for that identifier. It is separate from the Google Analytics identifier.

The service stores that summary with submission and expiration timestamps. Stored entries become eligible for automatic deletion 30 days after their board closes; deletion may happen later. Combined counts of wins, losses and winning scores are retained to show percentiles and score histograms. These aggregates do not contain the random identifier. Reopening a result can request updated counts using the same submission endpoint. Ordinary request information, including your IP address, is received by the service handling the request.

Gameplay and local saving work without a network connection. Winning results above 500.00 metres do not submit daily statistics or create an identifier for that submission; gameplay, local results and sharing remain available. Practice racks, result previews and older attempts without a compatible game rules version also do not submit daily statistics.

Optional private groups

On the web, opening Groups uses the same random device identifier as daily statistics. Saving a name creates a profile containing your display name and its creation time. Each group stores its name, member identifiers in join order, and creation time. Profiles and memberships have no automatic expiry. You can change your name or leave a group; the group is deleted when its last member leaves.

Group members can see your display name and whether you submitted a result for the selected puzzle. After submitting their own result, they can see members’ winning distances and losses. Groups reuse existing score summaries and do not submit or retry results. Summaries retain the expiration period described above. Missing results may mean a puzzle was not played, a submission failed, or a result was ineligible.

Your device identifier is also a credential: anyone who obtains it can access your profile and groups. It is sent in an Authorization header for group requests and is not shared with other members. Invite links let anyone holding the link join, subject to limits of 10 groups per player and 25 members per group. Links are permanent and cannot be revoked; members cannot be removed by another member.

Results are submitted by players’ devices and are not verified. Players can fabricate results. Hiding scores before your submission is a courtesy for ordinary play, not a protection against cheating; another identity with a fabricated submission can reveal them. Group membership is still required to read standings.

Clearing your data

You can remove local saves through your browser’s settings for this site, usually under site data or storage, or by clearing the native app’s data. This deletes saved progress and the random daily-statistics identifier. A later submission creates a new identifier. Clearing local data does not delete already submitted summaries or retained aggregate counts; summaries remain subject to the retention period above. Clearing storage also loses access to your named profile and groups, but does not delete the profile or memberships; those memberships continue to occupy group capacity. There is no account deletion, recovery, or cross-device transfer. cuewit has no server copy of playable progress to restore your saves from.

Requests needed to load cuewit

Firebase Hosting serves the website and game files. Loading them sends ordinary web requests to the hosting service, including your IP address and the request information your browser normally provides.

Opening the game also downloads the Flutter app and its resources. Depending on the Flutter build and your browser, the renderer or fallback fonts may load from Google’s servers, including www.gstatic.com and fonts.gstatic.com. Those services receive the information needed to handle the requests.

The website uses system fonts and adds no advertising scripts.

Analytics

cuewit uses Google Analytics for Firebase to understand how the site and game are used. Page locations omit URL fragments containing invites, and analytics events do not include device identifiers or invite tokens. It records page views and game events: how long the game took to load; whether you finished the first-visit tips or skipped them, and at which step; your first ball, pocket, ready aim and shot on each daily puzzle; whether you shoot or adjust when no clean pot is found; starting a daily puzzle; each shot (the shot number, how many balls it pocketed and whether it scratched); the final result, score, shot and scratch counts; how far an unfinished puzzle had got when you leave the page (shots taken and balls cleared); and when you share a result or streak. Game events also say whether this is the first daily puzzle played in this browser profile. In the Facebook and Instagram in-app browsers, it records whether you chose to open the game in your own browser. Like any web request, these reports include your IP address and the browser and device information your browser normally provides. Google uses them to estimate an approximate location.

Google Analytics sets first-party cookies named _ga and _ga_ followed by an ID. They hold a random identifier for your browser so return visits and sessions can be counted, and they expire after up to two years. Google signals and ad personalization are turned off, and cuewit does not use these cookies for advertising. Clearing this site’s data in your browser removes them along with your saved progress and daily-statistics identifier. You can block analytics reports with a content blocker or the Google Analytics opt-out browser add-on. For information about Google’s handling of this data, see the Google Privacy Policy and how Google uses information from sites that use its services.

Feedback and error reports

The game uses Sentry, an error-reporting service, for feedback and crash reports. The website pages themselves load no Sentry script.

When you choose Send feedback, cuewit sends your message, the email address you entered (if any), the puzzle date, where you opened the form from and the app version. Leave the email field empty if you don’t want a reply.

If the game hits an unexpected error, it sends an error report containing the error message and stack trace, the app version, recent app events leading up to the error, and browser or device details such as the browser, operating system and screen size. Error reports do not include your saved progress, shot paths or the daily-statistics identifier. cuewit redacts device identifiers and invite tokens from error and message text, relevant breadcrumb text, request URLs and their query/fragment fields, and feedback messages. Authorization headers and request bodies are omitted. In native apps, Sentry adds a random identifier it creates for the installation. cuewit turns off Sentry’s session replay and its collection of personal information by default, and does not use these reports for advertising.

Like any web request, sending feedback or an error report gives Sentry your IP address and the request information your browser normally provides. Sentry retains this data under cuewit’s account settings; see the Sentry Privacy Policy.

Back to cuewit