This page covers what Play Moehr Games collects, why I collect it, who else touches it, and how to get it deleted. Same rule as the Terms: plain English, no hiding behind vocabulary.
The short version: no ads, no data brokers, nothing sold, ever. Playing a game anonymously puts a random ID in your browser and nothing else. Analytics only run if you say yes to the banner, and you can change that answer any time from the footer. Join the Beta Club and I keep your email until you tell me to stop.
Who is responsible for this
Tim Moehring, running Play Moehr Games as an individual in Washington State, USA. Under GDPR and UK GDPR I am the data controller. There is no data protection officer, because there is no company: the email goes to me, and I answer it.
Contact: tim@playmoehrgames.com.
What I collect, and when
When you just play a game
Nothing is required of you. No account, no name, no email.
If you accepted analytics, PostHog records page views, which game you opened, and the usual technical details: browser, operating system, screen size, referring page, and an approximate location worked out from your IP address. PostHog gives your browser a random ID so it can tell one visit from another. If you declined, none of that loads and no analytics cookie is set.
When you vote or send feedback
The first time you use the in-game widget, your browser generates a random ID and saves it locally as mg_voter. It is not connected to a name or an email, and I cannot work out who you are from it. Tied to that ID, I store:
- Your thumbs up or thumbs down on a game, with a timestamp
- Any note you send: the text (up to 500 characters), which game it came from, and when
The note is a free text box, so whatever you type is exactly what I receive. Please keep personal details out of it.
When you join the Beta Club
- Your email address, your membership tier and status, and the time you last signed in
- A hashed copy of each magic sign-in link (SHA-256, so the working link is never stored), which expires 30 minutes after I send it
- A delivery record per announcement: which email went to which address and when, so nobody gets the same message twice
To keep the site standing up
Sign-in and the admin login are rate limited, and counting attempts means storing who is attempting. So I store your IP address as a key like ip:203.0.113.5 (and adminlogin:ip:... for the admin door) with a counter and a time window. Email addresses used in sign-in attempts get counted the same way, as email:... keys.
That rate limit table is the only place I put an IP address in my own database. My hosting and email providers also keep their own request logs, which include IP addresses. That is true of every website you visit.
Cookies and browser storage
One cookie is mine:
mg_session: set only after you sign in to the Beta Club or the admin area. It is signed with HMAC-SHA256, and marked HttpOnly, Secure, and SameSite=Lax, so JavaScript cannot read it and it does not follow you to other sites. It lasts 30 days for the Beta Club and 8 hours for admin. This one is strictly necessary and does not ask for consent: without it, signing in does not work at all.
PostHog sets its own cookies, and only after you accept the banner.
These live in localStorage, which is not a cookie and never travels to a server on its own:
mg_voter: the random voter ID described abovemg_vote_<game>: your own vote on a game, so the button remembers itselfmg_feedback_queue: a note you typed while offline, waiting to sendmg_consent: your answer to the cookie banner, so I stop asking
Games also save their own progress in localStorage. That data stays in your browser and never reaches me.
Your choice about analytics
Your first visit gets a banner with two real options: accept or decline. Nothing analytics related loads until you pick, and declining is one click, same as accepting.
Change your mind any time with the Cookie choices link in the footer of every page. Withdrawing consent is exactly as easy as giving it, which is the point.
If your browser sends Global Privacy Control or Do Not Track, I treat that as a decline and skip the banner entirely.
Why I am allowed to do this
For visitors in the EU and UK, here are the legal bases:
- Analytics: your consent, Article 6(1)(a). Withdraw whenever, and it does not undo what was already collected.
- Votes and feedback: your consent, given by pressing the button and sending the note.
- Beta Club: performance of the arrangement you signed up for, Article 6(1)(b), plus consent for the announcement emails.
- Rate limiting, including IP addresses: my legitimate interests, Article 6(1)(f), in keeping the site from being hammered or abused. I weighed that against your privacy: the data is tiny, it is not used to profile anyone, and it is deleted on a schedule.
None of this involves automated decision-making or profiling that produces legal effects.
Who else touches your data
Four providers, and that is the whole list. No advertisers, no data brokers, no sale of anything to anyone. Not now and not later: if that ever changed, this page would change first and I would ask you before it did.
- Vercel: hosting, edge and serverless functions, request logs. USA.
- Neon: the Postgres database holding votes, feedback, Beta Club members, and the rate limit counters. Region aws-us-west-2 (Oregon, USA).
- PostHog: analytics, US cloud, project 546218. Receives nothing until you accept the banner.
- Resend: sends magic links and announcement emails. Receives your email address and the message.
I would also hand something over if the law actually required it, which has not happened.
Where your data lives
All of it sits in the United States. If you are in the EU or the UK, that is an international transfer. Each of those four providers offers Standard Contractual Clauses in its data processing agreement, and that is the transfer mechanism I rely on. The practical version: this is US infrastructure under US law, and you should weigh that when you decide what to send me.
How long I keep things
A job runs once a day and deletes:
- Rate limit rows, including the IP addresses: after 30 days
- Feedback notes: after 24 months
- Magic sign-in links: on the first run after they expire, so within about a day of going stale
- Email delivery records for people who are no longer members: once they have left, on the first run after the announcement itself turns 30 days old
Kept longer, on purpose:
- Votes: they are the score on a game's card. They are tied to a random ID rather than to you, and they stay while the game is on the site.
- Beta Club membership: your email stays until you ask to leave or I close the club, and then it goes.
- Analytics: events sit in PostHog under that project's own retention settings. I do not export them or copy them anywhere else.
Your rights
Wherever you live, you can ask me what I have about you, get a copy, correct it, delete it, or tell me to stop. I am not going to make you prove you are in a qualifying jurisdiction first.
If GDPR or UK GDPR covers you, those rights are formally: access, rectification, erasure, restriction of processing, data portability, objection, and withdrawal of consent. You can also complain to your national supervisory authority, and in the UK that is the ICO. No fee, and I will answer within 30 days.
If you are in California, the CCPA and CPRA give you the right to know, delete, and correct, and to opt out of sale or sharing. I do not sell or share personal information as those laws define it, and I do not do cross-context behavioral advertising. Asking will never get you a worse experience on the site.
To use any of it, email tim@playmoehrgames.com.
One catch worth knowing about: votes and feedback are keyed to that random mg_voter ID, not to your email, so I cannot find yours from your email address alone. Get the ID from your browser console on this site with localStorage.getItem('mg_voter'), paste it into the email, and I can pull every note and vote attached to it. Clear your browser storage and that link is gone for good, including for me.
Children
The site is not directed to children under 13 and I do not knowingly collect anything from them. If you are a parent or guardian and you think your child sent me feedback or joined the club, email me with whatever detail you have and I will find it and delete it. No forms, no runaround.
Security
TLS on everything. Sessions are signed with HMAC-SHA256 in HttpOnly, Secure cookies. Magic links are hashed before storage, expire in 30 minutes, and burn on first use. The admin door is a password behind the same rate limiting. The database is not exposed to the public internet.
The honest part: this is a one person hobby site, not a bank. I built it carefully and I still would not put anything sensitive into a feedback box on it.
Changes to this policy
I will update this page as the site changes, and the "last updated" date at the top moves when I do. Anything material also gets a note in What's New, so you do not have to keep an eye on this page.
Contact
Questions, requests, or something here that looks wrong: tim@playmoehrgames.com. I read everything that comes in.