Deckhand
PricingSign in

Privacy

What Deckhand stores, why it stores it, and how to get rid of it. Last updated 13 October 2026.

The short version

Deckhand keeps your email address and a list of which cards you own. It has no analytics service, no advertising and no trackers. One part of the phone app does send something to a third party: Google’s text recognition, which reads a card’s name, sends Google technical information about the device and how the recognition ran. That is not linked to your account and not used for tracking — see Who else sees it. What your browser or phone keeps is yours: the session that keeps you signed in, your own settings, and — if you are part way through scanning a pile of cards — that batch, so that closing the tab does not lose it. Nothing is stored for advertising. If you arrived from an advertisement, the name of the campaign travels in the web address and is never written to your browser. Photographs taken by the scanner never leave the device you are scanning on — your phone, or the browser tab on your laptop. You can delete everything at any time, from inside the app.

What is stored

  • Your email address and password. Handled by Supabase Auth. The password is stored only as a hash, and Deckhand never sees it in a form it could reuse.
  • Your collection. Which cards, how many of each, when the row last changed, and whether it arrived by hand, by scan or by import.
  • What your browser or phone keeps. Three kinds of thing, none of them advertising and none of them readable by another site. A sign-in session, so you are not asked for your password on every page; signing out removes it. Your settings, and a few small technical markers, which never leave your browser or phone at all: light or dark, which game you were last in, how you like your collection laid out, the scanner’s zoom and settings, the order the deck builder lists its suggestions in, a deck you are part way through building, a marker that keeps the browser scanner on one thread after it once failed to start on several, a flag that stops a page reloading itself in a loop, and how fast the playtest’s bot plays its turn while you watch. The phone app keeps its session and the same kind of settings in the app’s own storage on the phone. On iPhone the app also asks the App Store which country your account’s storefront is in, so that it says where plans are sold only where Apple allows that; the answer is read on the phone, not stored and not sent to us. And, while a scan is in progress in the browser, the batch itself — the cards counted so far — so that closing the tab does not lose them; that one is sent to us when you commit the batch, which is the point of it, and is discarded when you finish or discard the scan.
  • How you found us. If you reached this site from an advertisement, the campaign named in that link is stored against your account when you create one — the name of the campaign, and nothing about you. It is how we tell which advertisements are worth paying for. It is written once, never updated, and deleted with your account like everything else. If you did not arrive from one, there is no record at all.
  • Decks you save or mark as built. A reference to a deck in the public corpus, and which of those two it is.
  • Scan sessions. The cards counted in a batch, until you commit or discard it.
  • A per-account usage count, so tier limits can be enforced — and, on a free account, the date of the last inactivity warning (see How long it is kept), so it is sent once.
  • Which plan you are on, and if you pay for it, three references to the subscription at Stripe: a customer id, a subscription id, and when the paid period you are in ends. See Payments below.

That is the entire list. There is no field for rarity, set, condition, purchase price or where you bought anything — not as a privacy measure but as a product decision, and the effect on privacy is the same.

What is not stored

  • Photographs. The scanner reads the card’s name on your device — in the browser tab, or on the phone — and sends only the text it read. Each captured frame is deleted immediately after it is read. No image is uploaded, and none is kept. There is no code in either app that could upload one: the path that would have sent a photograph to an outside recognition service was removed in September 2026, and nothing replaced it. If that ever changes, this page will say so and the app will ask before it sends anything.
  • Your duels. A playtest runs entirely in your browser. What your browser downloads to run one is the rules engine, the card scripts, the card table and the list of card names — the same files for everyone, cached like any other file on this site — and the two deck lists it plays come down with the page, from decks already stored here or in the public corpus. Nothing about the duel goes back: no move, no result, no simulation statistic is sent to us or stored anywhere but on your screen. There is no code in the playtest that could send one. A replay is a file your browser saves on your computer when you ask for it, and a replay you open is read in your browser and never uploaded.
  • Location, contacts, calendar, photo library, microphone. The app asks for none of them and never uses them.
  • Advertising or analytics identifiers. Deckhand creates none. No advertising ID, no device fingerprint, no cookie that follows you between sites, and no analytics service in the app or on this site. The one identifier the phone app sends anywhere is the one Google’s text recognition creates for this installation of the app, for its own diagnostics — see Who else sees it. It is not an advertising identifier and is not linked to your account. The campaign described above is carried in the web address of the page you are on, never written to your browser, and never readable by anyone else’s site.

Who else sees it

Supabase hosts the database and the authentication service, so your account and your collection are stored on their infrastructure. They are a processor: the data is not theirs to use.

Card images come from YGOPRODeck (Yu-Gi-Oh!) and Scryfall (Magic: The Gathering), and they are fetched by this server rather than by your device — so browsing the app does not tell them anything about you.

Stripe sees your email address if you buy a plan, and nothing otherwise — see Payments below.

Google ML Kit is the text recognition the phone app uses to read a card’s name. The recognition runs on the phone and the photograph is not sent anywhere. ML Kit does send Google information about its own operation: the device model and system version, the app’s name and version, an identifier it creates for this installation of the app, how often and how quickly the recognition ran, and error and diagnostic reports. Google declares that this is not linked to you or your account and is not used to track you across apps or websites, and Deckhand never receives it. There is no setting that switches it off. The scanner on this website does not use ML Kit and sends Google nothing.

Expo delivers updates to the phone app. When the app opens it asks Expo’s update service whether a newer version of its own code is available, sending the platform, the app’s version and release channel, and an identifier it creates for this installation of the app. Nothing about your account or your collection is part of that request.

Nothing is sold, and nothing else is shared with anyone. No third party receives a copy of your account or your collection for any purpose.

Payments

Paid plans are billed by Stripe, who are the merchant of record: the seller named on your receipt, and the party responsible for collecting any sales tax or VAT. The checkout page and the billing portal are Stripe’s own. Deckhand never sees your card number, and there is no code in it that could store one.

When you start a checkout, Deckhand tells Stripe your email address and an identifier for your account, so that the payment can be matched back to it. Stripe tells Deckhand which plan was paid for and until when, and that is what is stored: the customer id, the subscription id and the end of the current paid period, so your account page can say when the plan renews without asking Stripe each time. Nothing about the payment itself — amount, card, address — comes back to Deckhand.

The billing record — your name and address as you gave them at checkout, the card, and every invoice — is held by Stripe under Stripe’s privacy policy. Changing the card, downloading an invoice or cancelling is done in their billing portal, reached from your account page.

Deleting your account cancels the subscription first, so nothing renews against an account that no longer exists — you do not have to cancel separately. The cancellation is immediate, so any time left on a paid period is not refunded; if that matters, cancel from your account page instead, which runs the plan to the end of what you have paid for, and delete the account once it has ended. The delete button says the same before you press it. If we cannot reach Stripe to cancel, the deletion is refused and says so rather than going ahead and leaving you being charged; try again, or cancel in the billing portal first.

Server logs

Requests are counted per account, and per network address where there is no account yet, so that the service cannot be overwhelmed by one caller. Those counters live in memory, are never written to a database, and are gone when the server restarts.

How long it is kept

For as long as you have an account, with one exception: on a free account nobody has used for 30 days, the decks you have saved or marked as built may be removed to keep the free tier’s storage bounded. Your collection and the decks you wrote yourself are not touched by this. Paid accounts are never subject to it.

You are warned first. A week before it would happen, one email goes to the address on the account naming the date and how many decks; signing in once before then keeps them, and nothing is removed until at least a week after that email was sent. It is a notice about your own account, not marketing, and it is the only email Deckhand itself sends.

Using Deckhand resets the clock — you do not have to sign in again. Opening any screen while signed in counts, as does saving a deck or marking one built. We say this precisely because the obvious reading would be wrong: your sign-in lasts a long time and renews itself quietly, so somebody who uses Deckhand every day may not have typed a password in months, and counting only sign-ins would treat the most active free accounts as the most abandoned ones.

Deleting your account

Open your account page on the web, or tap Account in the app and choose Delete account. It is immediate and it is permanent: your collection, your saved decks and your scan sessions are removed along with the login, and there is no copy kept and no recovery window.

Children

Deckhand is not directed at children under 13 and no account is knowingly created for one.

Contact

Questions about any of this go to [email protected].

Trademarks

Yu-Gi-Oh! and all associated names are trademarks of their respective owners. Deckhand is an independent tool for organising a collection you already own. It is not produced, endorsed by, or affiliated with them, and it sells no cards.