Privacy Policy
Effective date: upon owner-approved publication of this revised policy on playyaoku.com.
YAOKU at playyaoku.com is operated by Elijah Maxwell. This Privacy Policy explains how information is handled when you play puzzles, use shared links, or contact us. “YAOKU,” “we,” “us,” and “our” refer to Elijah Maxwell as the operator of the service. Privacy questions and requests may be sent to privacy-policy@playyaoku.com.
1. Playing and saving progress
An optional local player name can be saved under yaoku-player-profile-v1 for the Daily display and local statistics. It is editable and removable, is not a unique or verified public identity, and is separate from any public guest credentials. The application does not transmit this local name through gameplay analytics, puzzle sharing, result links, or leaderboard submissions. Optional Daily competition, public score publication, and Daily Rivals are separate opt-in flows described in section 3a. Ordinary play does not create a public profile or submit a competitive score. Deleting local gameplay data also removes the local name.
The visit streak is saved only in this browser under yaoku-visit-streak-v1. It remembers the last America/Chicago visit date, current consecutive-day visit count, and best visit streak—not a browsing history, identity, or puzzle-completion requirement. Opening or actively using YAOKU records a visit; same-day visits count once. A skipped day breaks the current streak. Deleting local gameplay data also clears this streak.
You do not need an account to play. Random puzzles are generated in your browser. Daily puzzles are generated by the server; the server-authoritative puzzle is shared by everyone for each calendar day in America/Chicago and changes at Chicago midnight, including daylight-saving-time changes. Daily puzzles have a verified unique solution.
The game uses browser local storage to remember your puzzle, entered numbers, pencil notes, elapsed time, hints, completion records, best times, recent undo history, and color-theme preference. Random saves also include the puzzle definition and a locally generated puzzle identifier. These records use the storage keys yaoku-game-v1, yaoku-progress-v2, yaoku-stats-v1, and yaoku-theme. When gameplay analytics is enabled, the saved game also includes a random per-game analytics identifier and delivery counters. A separate yaoku-analytics-queue-v1 local-storage record temporarily holds unsent gameplay events for retry. The analytics identifier expires for reuse after 30 days; expiry does not erase your locally saved game.
Your entered numbers, pencil notes, undo history, and saved puzzle-progress content are not uploaded for account storage or synchronization. If you separately choose to submit a competitive result, completed cell digits are sent once for server validation as described in section 3a; that exception is not an upload of your ongoing saved game or move history. They remain in this browser on this device. Limited gameplay summaries are sent separately as described in section 2. Other people using the same browser profile may be able to see local records. Private browsing, browser settings, storage limits, or clearing site data may prevent saving or erase your records. YAOKU does not provide cloud backup or cross-device synchronization for these records.
Local achievement progress is derived from browser-local completion and visit records. Small local assistance/eligibility flags and the bounded yaoku-fair-achievements-v1 record help preserve skill-badge rules after Undo, restarting, or reloading; these achievement markers are not uploaded. The optional dated challenge keeps only a joined flag, up to three credited Daily dates, and up to fourteen assistance-disqualified dates within the fixed challenge window under yaoku-daily-challenge-v1. It checks the existing public Daily endpoint on joining or recording a completion to confirm the server date; it sends no challenge progress, cell digits, or achievement event with that request. Browser storage can be edited or cleared, so local badges are not verified global rarity or competitive evidence.
2. Gameplay analytics
YAOKU uses a first-party gameplay analytics service hosted on Cloudflare Workers with a Cloudflare D1 database. Its purpose is to understand puzzle starts and completions, approximate active solving time, difficulty and mode preferences, hint use, restarts, and games that remain unfinished, so we can improve the puzzles. Loading a page alone does not count as starting a game. The game checks puzzle completion in your browser before sending a completion event; the server does not receive your entered answers as part of that event.
The collector sends a limited set of fields: event type (start, progress, completion, or restart), random per-game identifier, difficulty, game mode (Random or Daily), approximate active seconds, hint count, and an event sequence number used to prevent duplicates. Random attempts use the random per-game identifier without uploading the generated puzzle definition to the analytics service. The server records when it receives each event. Progress updates are periodic or tied to meaningful game and page-lifecycle events; the collector does not send every click, keystroke, entered digit, or pencil note.
The random identifier associates events for one puzzle attempt and helps prevent duplicate starts or completions after a reload. It is not an account or advertising identifier, is not reused to link separate puzzle attempts, and is not used to identify you. It expires for reuse after 30 days, and restarting creates a new identifier for the next attempt. These event records are pseudonymous rather than a guarantee of anonymity. The system does not measure unique people, build cross-game player profiles, or track your browsing outside YAOKU. Restart counts and resuming the same attempt are not proof of how many people return.
The gameplay database does not store raw IP addresses, player names, email addresses, precise locations, device fingerprints, advertising identifiers, browser user-agent strings, or referrer URLs. Cloudflare nevertheless processes connection and request information to deliver and secure the service. A short-lived rate-limit key derived from connection information may be processed by Cloudflare to limit event spam; it is separate from gameplay records and is not a player profile. Infrastructure processing and provider records are described further below.
Active time is an approximate browser measurement. It excludes manual pauses, hidden-page time, and extended inactivity. Client-reported events can be incomplete, blocked, delayed, or altered; the statistics are not independently verified records. Extremely short completion times are excluded from solving-time summaries. A game without a recorded completion is reported as unfinished, not automatically abandoned.
The application schedules daily deletion of raw event rows older than 30 days and per-game server summaries with no event in the preceding 30 days. Aggregate weekly statistics and report-delivery records are scheduled for deletion after 397 days, approximately 13 months. Aggregates do not contain per-game identifiers. These application deletion schedules do not guarantee immediate deletion from Cloudflare-managed recovery copies, infrastructure records, or copies already held outside the database. Unsent browser events expire from retry eligibility after 30 days and are limited to a bounded queue; clearing site data removes the local queue.
Aggregate statistics are used to prepare private weekly reports for the operator. Reports contain totals and puzzle-level statistics, not per-game identifiers or raw event records. Where report email sending is enabled, Cloudflare sends these aggregate reports to Business@playyaoku.com, with delivery and storage also involving the receiving email provider. The database retention schedule does not automatically delete emailed reports or provider-held copies.
The gameplay collector does not send events when your browser exposes an enabled Do Not Track or Global Privacy Control signal. Blocking these analytics requests does not prevent normal puzzle play, though browser storage restrictions may affect saving. The same minimum-age restriction described below applies to gameplay analytics.
3. Shared puzzles and optional result links
After completing a puzzle, you may choose to share a result showing your elapsed time, hints, difficulty, puzzle mode/date, and current visit streak when present. These player-reported numbers are encoded in the public result URL, not added to a player profile or a results database. The result page and downloadable preview image let others view those numbers and open the same puzzle; they do not expose your entered answers, notes, or local completion history. Results are not independently verified competitive records. Hosting providers process the requested URL, and social or messaging platforms may retrieve, cache, and keep the preview if you share it. Clearing browser data cannot recall a copied result URL or a platform’s cached preview. Puzzle-link sharing remains available without showing your result.
Sharing a puzzle uses a six-digit random code at a /p link. Opening “Share this puzzle” starts a request to save the puzzle definition, even if you do not send the link. Random puzzles are generated in the browser; Daily puzzles are generated by the server and are shared for their America/Chicago calendar day. Existing shared puzzles continue to work.
The definition includes the puzzle layout, clues, fixed numbers, solution, Loose Cards, generation seed, and difficulty. The registry stores the definition, its share code, and a hash used to recognize duplicate definitions. It does not store your entered numbers, notes, elapsed time, hints, undo history, or local progress records as part of that definition.
Shared definitions are stored using Cloudflare Durable Objects. Anyone who has or guesses a valid code can retrieve the definition, including its solution. These links are public puzzle identifiers, not private access credentials, and are not tied to a player account. Do not use them to communicate confidential information.
The registry currently has no automatic expiration and no player-facing deletion control. Clearing browser data does not delete a shared definition. You can ask about removal at privacy-policy@playyaoku.com, including the puzzle code. A code alone does not establish who created a puzzle because the registry has no creator-ownership records. We cannot remove copies of a link or definition held outside our control.
3a. Optional Daily competition: leaderboard and Daily Rivals
Daily competition is optional and separate from ordinary puzzle play and local achievements. No account, email address, phone number, payment, or personal-information form is required. Starting a timed attempt, publishing a score, and joining Daily Rivals are separate choices. Before an attempt starts, the game asks you to choose the competition privacy notice. Declining does not prevent normal play. Merely playing a puzzle does not enroll you or submit a competitive result. Daily Rivals enrollment and waitlisting are available only after this complete amendment has been approved, published, and the feature activated; before then, the service does not accept competitive attempts, results, or Rivals waitlist entries.
When you explicitly start a timed attempt, the service creates a random one-use attempt token and a random guest credential. The browser keeps the returned credentials under yaoku-competition-local-v1, with the Daily date, difficulty, expiry, and small attempt-status flags, for later submission, Rival lookup, and deletion. It keeps at most 30 such records; no account or cross-device recovery is provided. This competition key and its credentials are excluded from YAOKU’s local backup export and restore. Clearing site data or using YAOKU’s Clear Local Data control may remove the browser-held credentials without deleting server records, so use the deletion control first if you want to request deletion. The server stores cryptographic hashes of these credentials, not the original credentials, alongside attempt start and expiry times, the Daily date and difficulty, whether the attempt was used, and counts of reported Hint, Check, or Start Over assistance. These are pseudonymous records, not a guarantee of anonymity. Credentials must not be shared or placed in public links.
The server chooses the Daily board, date, and difficulty using the existing verified puzzle registry and the America/Chicago calendar. It measures elapsed wall-clock time from the start request to a valid completed submission. The clock continues during pauses, closed or hidden pages, and time offline. Browser-reported solve times are not accepted as competitive timing. Hints, Check, and restarting disqualify that timed attempt from ranking and Rival matching, without preventing ordinary play. Hints provide deduction tips rather than filling a cell or displaying an answer.
If you choose to submit a competitive result, the browser sends the attempt token, guest credential, Daily date, difficulty, and your completed cell digits once for comparison with the stored verified Daily solution. The service validates the board, credential, timing, expiry, and reported assistance, and atomically consumes the token to prevent replay or duplicate acceptance. The completed digits are processed for validation but are not saved as competitive move history. Competition endpoints do not return the solution or your submitted digits. This is an exception to the ordinary local-only handling of entered numbers described in section 1; ordinary play does not upload those numbers through this competition flow.
Public leaderboard publication and Daily Rivals each have a separate, initially unselected choice. A public score requires a chosen handle of 2–20 permitted characters (letters, digits, spaces, underscores, or hyphens, subject to service validation); do not use your real name, email address, phone number, or other personal information. The handle is separate from your optional browser-local player name, which is not automatically copied or uploaded. If you choose publication, the public Daily list may show your handle, rank, Daily date, difficulty, and verified elapsed time. Lists show up to the top 100 public results for an available date, not every result. Handles are not verified or necessarily unique. Anyone can read or copy public scores; search engines, screenshots, or other copies outside our control may remain after deletion. Public leaderboard publication is independent of the Rivals threshold: it does not require 20 submissions and does not count toward that threshold unless you also separately opt in to Rivals.
If you choose Daily Rivals, the service accepts your valid completed result into an opted-in Rivals waitlist after the full amendment has been approved, published, and the competition activated. The separate Rivals choice states: “I opt in to Daily Rivals. My valid result will be kept in the same-date Rivals waitlist and counted toward its 20-submission threshold. No opponent is shown before the threshold is met; matching may happen later and is not guaranteed.” Until at least 20 valid, completed, retained, unexpired Rivals submissions exist for that same America/Chicago Daily date, no Rival match is created or shown and no opponent information is displayed. This threshold counts submissions, not verified unique people: different guest credentials do not establish different people. The service does not track visitors or use the threshold as a visitor or people count. The public availability indicator reports the qualifying submission count and the 20-submission threshold for the Daily date, not credentials or individual private results. Public leaderboard listing is a separate opt-in and is not delayed by or subject to the Rivals threshold. Once the threshold is met, matching is asynchronous rather than a live head-to-head session: a match may be created while accepting the threshold-reaching or a later submission, including for results already waiting. It may pair only opted-in results with another result having a distinct guest credential and the same Daily date and difficulty; it is not guaranteed. The threshold is reevaluated when submissions are accepted and when records are deleted or expire. If the count falls below 20, existing match and opponent details for that Daily date are hidden; they may become available again if the count rises to 20 or more while the relevant records remain valid. There are no invented opponents, live presence, chat, or move-by-move monitoring. The service stores a match identifier, references to the two result records, the Daily date, and match creation time. Your valid guest credential lets you check for a match. A matched peer can see your verified elapsed time and, only if you also chose public leaderboard publication, your chosen public handle; otherwise the peer sees the generic label “Rival.” Choosing Rivals alone does not place you on the public leaderboard. Choosing the leaderboard alone does not enroll you in Rivals. Choosing neither and not submitting keeps your result local.
To limit spam, the service uses Cloudflare’s existing request-rate limiter and a short-lived keyed cryptographic digest derived from the connection IP address and a five-minute time bucket. The raw IP is processed transiently to derive that key but is not saved in the competition database. The limiter key changes with its bucket, is not stored with a score or match, and is not intended as a persistent player identifier. Cloudflare processes these limiter keys under its own infrastructure practices. No device fingerprint, user-agent record, email address, browsing history, advertising identifier, visitor activity stream, or click/keystroke stream is collected by this competition implementation. The Rivals threshold is a count of eligible submissions, not visitors or people. Small record-count caps stop new competitive requests when capacity is full rather than enabling paid services. Existing hosting and provider technical processing described elsewhere in this policy still applies.
Attempt tokens expire 24 hours after starting, whether or not submitted. Guest credentials expire 30 days after starting if never successfully submitted, or 30 days after successful submission. Competitive scores, including Rivals waitlisted results, expire 30 days after submission; match records expire 30 days after match creation and also become unavailable if either result expires or is deleted. Public date lists are limited to today and the previous 29 America/Chicago dates, so some results may stop appearing sooner. Expired credentials and records are rejected or excluded when accessed. Threshold counts include only valid, completed Rivals submissions still retained and unexpired for that Daily date, and are reevaluated as records are deleted or expire. The application’s existing daily scheduled cleanup physically removes expired attempt, guest, score, and match rows; deletion can therefore lag expiry until the next scheduled run, normally within one daily interval, and operational failures can delay a run. These application rules do not guarantee immediate removal from Cloudflare-managed recovery copies, security records, or copies already made by other people.
Use “Delete my competitive records” in the competition controls while your guest credential is valid to delete that credential’s server-side attempts, scores, guest record, and associated Rival matches. Deletion also removes that submission from the Rivals threshold count; any resulting threshold drop can hide existing matches for that Daily date. This does not delete the other player’s independent score or your ordinary local puzzle progress. Delete server records before clearing browser storage: clearing site data removes the local credentials but does not itself delete server records. If a credential is lost, the service has no account recovery and may be unable to identify a record as yours; records still expire under the rules above. Privacy requests can be sent to privacy-policy@playyaoku.com; a public handle alone is not proof of ownership.
These protections deter casual abuse and duplicate submissions; they do not prove that a person solved unaided or that different guest credentials represent different people. A modified browser can omit assistance reports, obtain another credential, automate solving, or consult outside help. The existing ordinary Daily and shared-puzzle services make puzzle definitions, including solutions, retrievable as described in section 3. Their preservation limits the strength of competitive anti-cheat. A server-validated result is not a cheat-proof result, a verified identity, or a guarantee of fair play.
Local badges, skill tiers, and any explicitly date-bounded achievement challenges remain browser-local and are not sent to the competition service. They are personal milestones, not globally audited rarity claims or competitive credentials. Existing gameplay analytics remains a separate flow described in section 2. Do Not Track and Global Privacy Control suppress that analytics collector; they do not block a competitive request that you separately choose to make, or the connection processing needed to serve it.
4. Hosting, fonts, and technical information
Cloudflare hosts the website and sharing service. Delivering pages, assets, and shared puzzles involves processing connection and request information, such as your IP address, requested URL, and browser-provided headers. The puzzle-registry table does not include visitor IP-address or player-account fields; this does not mean hosting or security infrastructure keeps no technical records.
The stylesheet loads fonts from Google Fonts. Your browser sends requests to Google to retrieve the stylesheets and font files. These requests disclose your IP address, requested resource, and browser-provided headers, which can include browser, operating-system, and referring-page information. See Google’s font privacy information and Google’s Privacy Policy. Cloudflare describes its handling of information in its Privacy Policy.
The game’s application code does not include an advertising SDK, third-party advertising tracker, tracking pixel, or a command that sets browser cookies. It does use local storage and first-party gameplay analytics as described above. This description is limited to the application: hosting, security, font, and email services also process information, and their own features, settings, and policies may apply. It should not be read as a statement that no technical data is processed or that every provider operates without cookies.
5. Email and information you provide
If you email us, the information involved may include your email address, message, attachments, and message headers. The purposes of handling correspondence include responding to questions, troubleshooting, considering puzzle ideas or business inquiries, and addressing privacy or legal concerns.
The published YAOKU addresses use Cloudflare Email Routing to forward incoming messages to the mailbox used for correspondence. Email delivery and storage also involve the sending and receiving email providers. We do not publish the private forwarding destination. Please include only information needed for your request; do not send passwords, payment-card details, or unnecessary sensitive information.
6. Information use, disclosure, and retention
The application’s information flows support delivering the website, remembering games and achievements locally, making shared puzzles retrievable, measuring aggregate puzzle performance, and providing the separately chosen competitive flows described in section 3a. The game code does not send gameplay records to advertising services or include a mechanism for selling player data. This describes the game’s functionality, not an assurance about every independent practice of an infrastructure provider.
Information may also need to be disclosed where required by law or to address security incidents, abuse, or legal claims, subject to applicable law. This does not provide us with remote access to records saved only in your browser.
Local game records remain until removed or overwritten by you, the application, or your browser. Shared definitions have no programmed expiration in the current registry. There is no single fixed retention period stated in this policy for email, hosting records, or provider backups. Do not assume those records are deleted when you close the website or clear your browser. For questions about information associated with a particular message or request, contact privacy-policy@playyaoku.com. A request does not guarantee that every record or externally held copy can be deleted, and applicable legal requirements may affect the response.
7. Your choices and requests
You can remove locally saved games, statistics, and preferences by clearing YAOKU’s site data in your browser settings. YAOKU has no account-based recovery for those records. Blocking local storage may prevent saving. Clearing site data or using YAOKU’s Clear Local Data control does not erase shared definitions, correspondence, or competitive records already received by the server. Use the competition deletion control before clearing site data or local data if you want to remove competitive records using your guest credential. Avoid opening the sharing dialog if you do not want that puzzle definition saved on the server. You can prevent the gameplay analytics collector from sending events by enabling a browser setting that sends Do Not Track or Global Privacy Control, where your browser supports one of these signals. This applies to the gameplay collector, not to the technical processing needed to deliver the website, fonts, shared puzzles, or email. Clearing local storage does not delete analytics events already received on the server.
Depending on where you live and the laws that apply, you may have rights to request access, correction, deletion, restriction, objection, or a portable copy of personal information, or to complain to a relevant privacy regulator. Send requests to privacy-policy@playyaoku.com. We may need proportionate information to understand the request and verify that it concerns you. Applicable exceptions may limit a request. We cannot retrieve gameplay-progress content that exists only in your browser. Because gameplay analytics has no player account, we may be unable to locate particular event records without their random per-game identifier. Competition deletion and Rival lookup use the separate private guest credential described in section 3a; public handles alone do not establish ownership. Do not send unrelated sensitive information to establish a connection.
8. Children under 13
YAOKU is for people age 13 and older. We do not knowingly allow children under 13 to use our services. Children under 13 must not use YAOKU or send us personal information; parental permission does not override this minimum age. Users age 13 or older who have not reached the age of legal majority where they live must have a parent’s or guardian’s permission to use the service.
If you believe a child under 13 has used YAOKU or provided personal information, contact privacy-policy@playyaoku.com. Provide only information necessary to identify the concern. If we learn that we have collected personal information from a child under 13, we will take appropriate steps to stop further collection and delete the information as required by applicable law.
The website does not currently verify ages or provide a parental-consent process. This restriction does not mean children’s access is technically prevented, and it does not replace any obligations imposed by children’s privacy law.
9. Security and policy updates
No website, browser-storage system, or email service can guarantee absolute security. Do not use puzzle links for confidential information. If you share a device, consider who can access the browser profile containing your saved games.
We may update this policy to reflect changes in the service or applicable requirements. Updates will show a revised effective date. Where additional notice or consent is legally required, posting an updated page alone will not replace that requirement.
10. Contact
Operator: Elijah Maxwell, operating YAOKU.
Privacy and children’s privacy: privacy-policy@playyaoku.com.
Help: support@playyaoku.com.
See our Terms of Service and contact page for additional information and the other YAOKU email addresses.