SQLMURDER.COMTerms of service · Pricing · Refunds

Privacy Policy

Effective 21 July 2026

SQLMurder is a detective game that teaches SQL. This policy says plainly what we collect, what we don’t, and how to erase all of it. The short version: you can play Chapters 1–3 free, without an account; Chapters 4–14 are a single one-time purchase, processed by Stripe (our reseller and merchant of record) — we never see or store your card details; if you sign in, we store your Google name, email, chapter progress, the authored campaign options you select, and whether you own the full game; we run no ads, no analytics, and no trackers; and you can delete everything yourself from the account menu at any time.

What we collect, and why

  • If you sign in with Google: your name, email address, profile-image URL, Google account identifier, and any OAuth tokens Google returns for the sign-in connection. We use these only to identify your account, keep you signed in, and greet you. We never see your Google password.
  • Saved progress: which chapter you’re on and how far into it you are (a chapter id, content version, narrative checkpoint, completion flag, and compatibility beat number), stored against your account so your progress follows you across devices.
  • Campaign choices: which of the game-authored options you selected at the two choice moments, including that option’s semantic id and exact authored line. This is not free-text input; it is stored so later callbacks and cross-device play can remember your choice.
  • Ownership (if you buy the full game): a record that your account owns the game, its status (active or revoked), and the Stripe transaction identifier that granted it. This is how we know to unlock Chapters 4–14 for you. We do not store your card number, billing address, or any payment details — those are handled entirely by Stripe.
  • A session cookie: one strictly-necessary cookie that keeps you signed in. No advertising or cross-site cookies.

What stays on your device only

These live in your browser’s local storage and are never sent to our servers: your typed detective name (sqlmurder.playername), your case notes (sqlmurder.notes), your SQL-dialect choice, your music-mute preference, and a last-played timestamp. Clearing your browser data removes them.

The browser also keeps local copies of chapter progress and the two authored campaign choices so anonymous play works. They stay on-device while you remain anonymous. When you sign in, previously unscoped anonymous progress and choices may be claimed by that account and sent to our server for cross-device play. We then store the signed-in account’s opaque internal id in sqlmurder.account-scope on that device solely to prevent a shared browser from mixing one account’s save into another. Progress requests send that id back as a same-account guard; the server rejects a request if the signed-in account changed while it was in flight. Signing out or switching accounts clears the scoped local game data before the next account can read or upload it.

Older local saves created before that ownership marker are ambiguous on a shared browser. We keep such a save in an isolated on-device anonymous quarantine while anyone is signed in; it is never merged into or uploaded by that account, and it returns when the browser goes back to anonymous play. Clearing browser data or choosing account deletion removes that quarantine too.

When a playtester explicitly opens the game with ?playtest=1, a visible, session-only recorder stores relative timing, semantic beat and attempt categories, hint tiers, game-authored choice values, and SQL dialect. It does not store names, account details, typed SQL, query results, notes, or database rows; it makes no network request and leaves the device only if the playtester manually exports its JSON file. Closing the browser session clears it.

What we do NOT do

  • No advertising, and no selling or sharing of personal data.
  • No analytics, tracking pixels, or fingerprinting.
  • No collection of the SQL you type: your queries run inside your own browser against a local database, and are not transmitted to us.

Where data lives

The site and its database run on Cloudflare’s network (Cloudflare Workers and D1). Cloudflare may process basic request logs (such as IP address and user agent) to operate and protect the service, as any host does. Sign-in is provided by Google; their privacy policy governs what Google does on their side.

Payments and billing

Purchases are processed by Stripe, which acts as the merchant of record (reseller) for the sale. When you buy the full game, you transact with Stripe, not with us: Stripe collects and processes your payment, handles any sales tax or VAT, issues your receipt, and manages refunds and payment disputes under its buyer terms and privacy policy. We never receive or store your card number or full billing details. From the transaction we receive only what we need to grant access — a Stripe transaction and price identifier and its status — which we link to your account so your purchase unlocks the paid chapters. Stripe retains its own transaction records for the period its legal and tax obligations require, independently of us.

Retention and deletion

We keep account data until you delete it. Deletion is self-serve: sign in, open the account menu (▾) in the game header, and choose Delete account + data. This immediately and permanently erases your user record, sign-in link, sessions, all saved progress and campaign choices, and our internal billing links (your entitlement and Stripe transaction references) from our servers, and clears the game’s data on that device. It cannot be undone. Note that Stripe, as merchant of record, keeps its own legally required transaction records on its side; contact Stripe to exercise data rights over those. You can also email us (below) and we’ll erase our copy for you.

Children

SQLMurder is a noir mystery with mature themes, and it is not directed at children under 13. We do not knowingly collect personal information from children under 13; if you believe a child has created an account, contact us and we’ll delete it.

Security

Traffic is encrypted (HTTPS), sign-in is delegated to Google, and server-side data is limited to the purposes described above. No internet service can promise perfect security. We do not store your Google password, typed SQL, case notes, or payment details.

Changes

If the game starts collecting something new, this page will be updated first and the effective date changed.

Contact

Questions or deletion requests: cashcon57@gmail.com.

SQLMURDER · CITY RECORDS MAINFRAME · THE MACHINE KEEPS LESS ON YOU THAN THE ONE IN THE GAME