Privacy Policy
Last updated: October 29, 2026
Card Genie is owned and operated by Blue Wave Development, LLC. References to “we,” “us,” and “our” below mean Blue Wave Development, LLC, doing business as Card Genie. We are the data controller for the information described in this policy.
What we collect
- Customer name, email, and shipping address (for fulfillment)
- Stripe payment token (we never see your full card number)
- Uploaded child photo (used only to generate the card)
- Player details (name, jersey number, team, league, city)
- IP address and consent timestamp at checkout
How we use it
To generate your card, process payment, and ship the physical product (when applicable). We do not sell your data, and we never use it to train any AI models.
When you make a card we may ask for your email first. We use it to email you the card preview and a link back to your card, and we may send a reminder if a card is left unfinished (every reminder has an unsubscribe link). We note when you open a link we sent, and we use the email to limit how many cards one address or network can make, so the service stays available for everyone.
With your consent we do share a limited amount of advertising-measurement data. Under California law, loading an advertising tag counts as “sharing” for cross-context behavioral advertising even though no money changes hands. Exactly what is shared, on which pages, and how to switch it off is in Advertising measurement below.
Image retention
Uploaded photos are deleted by default. The photo you upload is used to generate your card and is then automatically deleted from our servers: within hours for abandoned checkout sessions, and otherwise within 1 year of upload (kept so you can come back, finish a purchase, fix a card, or reorder without uploading again). If you’d like us to keep your uploaded photos — so reorders don’t need a fresh upload — you can opt in under Account → Settings → “Uploaded photos,” and change that choice anytime.
Generated card images for cards you order are retained in private storage so you can re-download or reorder them.
You never have to wait for that window. You can delete everything we hold for your family yourself, at any time: signed in, go to Account → Settings → “Your family’s data”; without an account, use cardgenie.shop/privacy/delete and we email you a link to confirm. The deletion runs 24 hours after you ask, and the email we send you has a link to cancel it until then. You can also still ask by replying to your order confirmation email.
When you upload a photo, we ask who you are to the person in it: their parent or legal guardian, a family member or friend with the parent’s permission, or the person themselves if they are an adult. We keep a record of your answer, the exact wording you saw, and when you answered, so we can show who agreed to each card.
If someone else made a card of your child without your permission, report it at cardgenie.shop/report-a-card. You don’t need an account or an order. We hide the card and stop any printing of it while a person reviews your report, and we email you what we decide.
Who we share with
We use these outside services to run the site, make cards, take payment and ship orders. Each receives only what it needs for that job.
- Supabase — Our database, sign-in and private file storage
- Vercel — Hosts the website and runs its server code
- OpenAI — Draws the card from the uploaded photo, and checks finished cards for mistakes (automated image review)
- fal.ai — Image tools for printing: cutting the AI-drawn player out of its background, filling the print margin, foil masks and upscaling
- Stripe — Takes payments and calculates sales tax; pays leagues and partners
- QPMN (QP Market Network) — print partner — Prints and ships the physical cards
- EasyPost — Shipping labels and tracking for orders we ship ourselves
- Resend — Sends order confirmations, card previews, reminders and (from a separate account) league marketing email
- Mailgun — Sales email to leagues, and receiving our print partner’s order-status emails
- Sentry — Error reports so we can fix bugs
- Google (Analytics, Tag Manager, reCAPTCHA, Ads) — Site analytics, spam and bot protection, and — with advertising consent — measuring whether our ads led to a purchase
- Meta (Facebook / Instagram ads) — With advertising consent, measuring whether our ads led to a purchase
- HubSpot — Our sales records for leagues and other organizations
- EmailListVerify — Checks that a league contact’s email address exists before we write to it
Your uploaded photo goes only to our hosting and storage providers and to OpenAI, which draws the card. fal.ai and our print partner receive the AI-drawn card, never the photo you uploaded — and to fill the print margin, fal.ai receives only the card’s outer edges, with the middle blanked out.
What each service receives is listed on our service providers page.
Advertising measurement (pending counsel review)
With your consent, we use advertising measurement tags (Google Ads, Meta) to understand whether our ads led to a purchase.
What the tags receive from your browser. A page visit, and on a purchase: the order value and currency, the number of items, our own cart number and cart ID, and the sport and template of the card. That is the complete list — it is a fixed allowlist in our code, so a field we have not named here cannot be added by mistake. Never uploaded photos, player or child names, jersey numbers, or anything else printed on a card.
What we send from our own server. If you reached us by clicking one of our ads and advertising consent was in place when you bought, we also report that purchase to the ad platform directly from our server, so the sale is counted even if your browser blocked the tag. That report carries the same order details above, the ad-click identifier, and your own email address in one-way hashed (SHA-256) form — which the platform can only use to match the purchase to the click. It is the buyer’s email, never a child’s, and we never send a name in any form, hashed or otherwise.
Where they run. Only on our marketing pages and the two ways to order a card: the “create” checkout and the team links coaches share with families. If advertising consent has been given in that browser, a tag on those pages may set a cookie that identifies the browser.
Where they never run. The pages made to be shown to a child — a shared card, a pack reveal, a claim link — and Kids Mode, accounts, and the coach, league and partner portals. No advertising tag loads on those pages, whatever the cookie choice in that browser.
Parents and guardians: to switch the tags off entirely, choose “Reject non-essential” on the cookie banner in the browser your child uses, or enable Global Privacy Control — we honor that signal automatically and it overrides any previous acceptance. You can change the choice at any time through the “Do Not Sell or Share My Personal Information” link in the footer. See the Cookie Policy.
COPPA
This service is directed at parents, guardians, coaches, and leagues — not at children. Accounts, photo uploads, and purchases are made by adults on a child’s behalf.
Some pages are meant to be shown to the child: a shared card, a pack reveal, a claim link, and Kids Mode. We collect no account data, photo, or card content from anyone viewing those pages, and no advertising tag loads on them. Advertising tags run only on our marketing pages and ordering pages, and only with consent in that browser — see Advertising measurement above.
If you believe a child has been identified by an advertising tag without your permission, email orders@cardgenie.shop and we will delete the associated data and tell you what was held.
Your rights
California residents have the right under CCPA to request access to, deletion of, or correction of their personal data, and we offer the same to every family.
Download your data. Signed in, Account → Settings → “Your family’s data” → “Email me my data” builds a ZIP of your orders, profile and consents (as readable files) and every card image and uploaded photo we still hold, and emails you a link that works for 7 days. You can do this once a day.
Delete your data. From the same page (or cardgenie.shop/privacy/delete without an account). We delete your family’s uploaded photos, card images, cards, collections, saved drafts and your account 24 hours after you ask, unless you use the cancel link we email you. If an order is still being printed or shipped, the deletion waits until it is out, so we don’t break your order.
What we keep, and why. Order and payment records that tax law requires us to keep (amounts, dates, tax and the order number), with names, street addresses, phone numbers, emails, gift notes and the child’s name and details removed; the record of the consents you gave (any permission to use a card in our promotion is withdrawn); a log of the deletion itself; and a scrambled (one-way hashed) copy of your email so we never send you marketing again.
What deleting does not reach. Copies of a card that another family saved or traded into their own collection belong to that family and are not removed. Our database backups keep deleted records for up to 7 days before they roll off; photos and card images are not in those backups and are gone immediately. A print partner that already received an order’s files keeps its own copy.
You can always make any of these requests by replying to your order confirmation email instead. We keep an internal log of who performed each deletion and when.

