Privacy Policy

Last updated: November 14, 2026. Stringle is operated independently by Ali Alahmad in Ontario, Canada. Contact and privacy enquiries: contactstringle@gmail.com.

The current game

Stringle is a free word-ladder game. The game does not currently display live ads or include analytics, payments, a contact form or a game-account system. The website does load Google’s advertising library for consent testing, as described below. Normal play keeps progress on your device. Completing a Daily puzzle automatically sends its completed ladder to the results service to display the Daily comparison. Endless play remains on your device.

Discord Activity

Stringle is also available as a single-player Discord Activity. The Activity uses the same game rules but keeps its progress separately from the website under stringle:discord:state:v1 in the Activity browser's localStorage. Website saves are not copied into Discord. Storage may be partitioned, blocked or cleared by Discord or your device, and does not automatically synchronize between devices.

Solo play does not require Discord profile authorization. Where verified Daily sharing is enabled, choosing Share asks for Discord's identify permission to verify your basic Discord identity. Stringle exchanges the authorization code on its server and checks your identity and active Activity instance with Discord. Verification uses your Discord user ID, display name, Activity instance, server and channel IDs, and timezone. Authorization codes and Discord access or refresh tokens are not saved to Stringle's database or browser storage. Temporary sharing sessions last one hour; session tokens are stored as hashes on the server and kept in memory in the Activity.

Sharing sends your completed Daily ladder to Stringle's separate Discord database service for validation. Stringle checks the puzzle date, dictionary edition, endpoints and every move, then computes the score. The complete word history is processed for validation and is not retained. The database keeps your user ID, puzzle date and edition, move and optimal counts, the spoiler-free share text including your display name, and the time your result was accepted. Only the first shared result for each user, date and edition is recorded. This verifies a valid ladder and account identity; it does not prove unaided or manual play. Shared result records are retained for 30 days and removed by hourly cleanup, so deletion can take up to an additional hour. Expired authorization challenges and sessions are also removed by hourly cleanup.

You choose the destination and confirm or cancel sending in Discord's native share picker. Choosing Share may create a verification record even if you then cancel the picker. Playing without choosing Share does not upload a ladder or create these result records. Sharing does not enroll you in reminders or server leaderboards. You can delete your stored shared records and sharing sessions through the Activity menu under Discord sharing. This does not delete messages already sent in Discord, withdraw the Discord permission grant, or change local games, statistics or streaks. You can manage the permission grant through Discord's Authorized Apps settings.

The Activity does not submit to the website's community-results database, use advertising or analytics, or provide shared multiplayer state. It is served by Cloudflare through Discord's proxy, and its verification records are hosted on Cloudflare. Both providers process connection and request information to deliver these features. Discord's own privacy policy and platform rules apply to your use of Discord. Review Discord's Privacy Policy. Clearing the Activity's local data removes its saved progress but does not clear website saves or server-side shared records.

The website may fetch aggregate Daily counts while you play to prepare the results chart. This read-only request does not submit an unfinished ladder.

Browser storage

Stringle uses stringle.net as its main address; www.stringle.net redirects there automatically. Browser saves on the two addresses are separate and are not automatically transferred. If you previously used the save-transfer feature, its backup and transfer marker may remain in your browser under stringle:www-backup:v1 and stringle:canonical-transfer:v1 until you clear site data. The transfer feature is no longer active.

The game reads and writes localStorage under stringle:state:v2. A one-time clean-start revision clears earlier Stringle game progress, completion statistics, streak history, comparison receipts and transfer backups while retaining valid theme, sound and onboarding preferences. The new storage namespace prevents this reset from repeating on normal visits or later deployments. Unrelated browser storage is not cleared. Earlier saves on www are not read by the main site. It stores theme, sound and onboarding preferences, daily/endless puzzle details and word history, hints, start/completion timestamps and completed results for local statistics and streaks. This storage supports resuming play and remembering settings. It is not an advertising identifier.

There is no automatic expiry. Data remains until cleared by you, removed by the browser or overwritten by play. Use your browser’s site-data settings to remove it; playing afterward starts a new save. Storage can be blocked in browser settings, and the game attempts to remain usable for that session. Progress is not encrypted and should not contain sensitive information.

Daily comparisons

Completing a Daily puzzle, or reopening its completed screen, automatically sends today’s completed ladder, puzzle date, hint count and a random day-specific submission code to Stringle’s same-origin results service. The ladder is validated in memory; the database stores the date, derived move count, hint count and a SHA-256 hash of the day-specific code and a day-specific, secret-keyed hash of the source IP address (IPv6 addresses are grouped by network prefix), not the ladder or raw IP address. These records support aggregate comparisons, duplicate prevention and abuse limits. Aggregate move buckets and quota counters are maintained alongside results. No player name, email or cross-day game identifier is requested. This is pseudonymous processing, not a promise of anonymity.

The code and a server-signed daily receipt are saved in localStorage under stringle:daily-submission:v1 and replaced when you submit on a different day. It otherwise remains until site data is cleared. Your first accepted submission for that code and date is counted. A new submission requires server-verified Cloudflare Turnstile proof; reopening the result uses a signed receipt when available. Shared-network and global daily limits may temporarily prevent new submissions without affecting local play. Comparisons show only aggregate move counts and are not verified unique-player rankings. Endless mode does not submit results. Daily results are submitted automatically when the completed screen opens.

A daily cleanup is configured to remove result rows, aggregate buckets and abuse counters dated more than 30 days ago; a failed job may delay deletion. Provider backups can retain deleted records temporarily. Cloudflare documents D1 recovery windows of 7 days on Workers Free and 30 days on Workers Paid: D1 backup documentation. To request deletion of a submitted result, contact the privacy email with its date and day-specific code if still available. Clearing browser data does not delete an already submitted server result.

Hosting and cookies

The configured production hosting and results provider is Cloudflare (Workers and D1). Delivering the site and handling API requests involves connection information such as IP addresses, requested URLs and browser/request metadata. The API uses your IP address for short-lived rate limiting and derives a secret-keyed daily network hash for daily quotas. The hash is stored with the result and quota counters for the result-retention period. Raw IP addresses are not written into the results database. Worker observability logging is disabled in the deployment configuration, and the application does not log submission bodies. This does not disable Cloudflare’s own operational or security processing.

The game itself sets no application cookies and includes no marketing analytics. The website loads Google’s AdSense library for consent preview; this third-party processing is described under Advertising and privacy choices. When a new Daily submission needs verification, it loads Cloudflare Turnstile scripts and frames from challenges.cloudflare.com. Cloudflare processes request, browser, device and challenge-interaction information to distinguish automated traffic; the API sends the verification token and source IP to Cloudflare for validation. Turnstile is configured without pre-clearance cookies. See Cloudflare’s Turnstile Privacy Addendum. Blocking verification does not prevent playing, but can prevent a new community result from being counted. Provider security features may introduce their own cookies if configured. Cloudflare’s processing may occur outside Ontario or Canada. The D1 database was created in Cloudflare’s ENAM region; this is not a guarantee of Canadian residency. See Cloudflare’s Privacy Policy and D1 data location documentation. Exact provider operational/security log retention and processing locations are not established by the application code and should not be inferred from the game’s 30-day database cleanup.

Sharing and email

Only when you choose Share, the game passes your result summary and the site URL to your device’s share interface or clipboard. The summary includes the puzzle date/number or Endless label, score, moves, optimal moves and hints, without the word ladder. Your chosen destination handles information under its own policies.

If you email Ali Alahmad, your address, message and attachments are received through Gmail. They are used to respond to the request, investigate issues and maintain necessary correspondence, not to subscribe you to marketing. Avoid sensitive information. Information should be kept only as long as needed to address the request, maintain necessary records or meet applicable obligations.

Requests and complaints

Ali Alahmad is the privacy contact at contactstringle@gmail.com. You may ask about information held by the operator, request access/correction/deletion, object to processing or raise a complaint. Applicable rights and exceptions depend on your location and the processing involved. We may need proportionate verification to handle a request. The operator cannot retrieve browser-only progress; you control it through site-data settings. Requests involving information held by the production hosting provider may require coordination with that provider.

Advertising and privacy choices

Current status: Google consent preview is active; live ad requests remain paused. Google’s consent library may communicate with Google and read existing Google cookies. Consent records can be stored by the real published message. The advertising description below remains conditional until live ad serving is separately enabled.

The website loads Google's AdSense library to deliver its published consent message. This contacts Google, exposes connection information such as your IP address and browser details, and may allow Google to read existing Google cookies. Google may store consent decisions in cookies or similar browser storage. This occurs separately from Stringle's local game save. Publishing a consent message does not mean that advertising is currently shown.

The initial European message uses Google Advertising Products (IAB vendor ID 755) as the only selected advertising partner. Additional common partners are not automatically included. The message offers Consent, Do not consent, and Manage options for EEA, UK and Swiss visitors. Consent optimization and automatic message creation are off; legitimate-interest options are not selected by default. Stringle has not added purposes for its own advertising or analytics use. The message's vendor and purpose screens provide the applicable choices; no fixed cookie duration or data-storage country is asserted here.

Use Privacy choices in the site menu to open the privacy panel. When Google’s consent API is available, its button requests the applicable message so you can change or withdraw your decision. The panel reports when the API is unavailable; opening the panel is not a consent decision. Delivery of the published Google message is still being investigated, and live advertising remains disabled until the real consent flow is verified. Information pages also provide a Privacy choices link when the consent integration is active. The message can depend on your region, and Google may take time to propagate a newly published message. Blocking Google scripts can prevent the message and its controls from loading, but does not prevent playing Stringle. Playing, dismissing How to play, or accepting game hints is not advertising consent. Refusing optional advertising consent does not prevent playing.

If live advertising is enabled after approval and testing, Google may use cookies or similar identifiers to serve ads based on visits to this and other websites. Advertising processing can include IP addresses, device/browser details, impressions, clicks, consent signals, measurement and fraud prevention. Non-personalized ads can still use cookies; they do not replace consent where required. Before any live-ad activation, this policy and the actual partner, purpose, regional-message and retention setup must be reviewed again. US-state messages and other regional obligations remain subject to that review; the European message is not described as covering every jurisdiction.

Google's advertising controls are available at My Ad Center; some third-party choices are available at AboutAds. These are separate from deleting local game progress. See how Google uses information from partner sites, Google advertising technologies, and Google's Privacy Policy.

Children and changes

The game is general-audience and is not designed or marketed specifically to children. Younger users may access it; no age gate is implemented. Do not send children’s personal information unnecessarily. Advertising may be introduced later, but is not enabled now. Before advertising, analytics, accounts, cloud saves or other new processing starts, this notice and any required controls must be reviewed and updated. Continuing to play is not consent to new tracking.