MoiCheck

← Back to MoiCheck

Privacy Policy

Last updated: 31 October 2026

MoiCheck ("we", "us") is a small, independent bucket-list app for Groningen, run by one person, D. Blayzer, as a side project. D. Blayzer decides what happens to your personal data and is responsible for it — the "controller", in GDPR terms — and you can reach them at hallo@moicheck.nl. This policy explains what personal data we collect, why, on what legal basis, how long we keep it, and how you can access or delete it. We try to collect as little as possible.

1. What we collect

DataWhenWhy
Email address When you sign in with a magic link or with Google To identify your account and sync your progress across devices. Legal basis: contract — it is what makes the account you asked for work.
Name (from your Google profile) When you sign in with Google Displayed back to you in the app; not used for anything else. Legal basis: contract.
Bucket-list progress & memory notes When you tick off an item or add a free-text note To show your progress, badges, and memories, synced to your account. Progress you made before signing in, in the same browser, is added to your account when you sign in. Legal basis: contract.
Name, email, subject & message When you submit the contact form To read and reply to your feedback, bug report, or suggestion. The function that relays the message also reads your IP address to limit how many messages one sender can submit in a minute; it is held in memory for that minute and never written down or sent on with your message. Legal basis: legitimate interest — answering people who write to us, and keeping the form from being flooded.
Theme, language, and (if not signed in) progress Always, stored only in your browser To remember your preferences and let you use the app without an account. Legal basis: none needed — this stays on your device and never reaches us (section 6).
Your location — checked, never collected Only when you tap "I'm here" on an event that is happening right now, and only for that one tap To confirm you are actually at the event before awarding its badge. The check happens entirely on your device: your browser compares your coordinates to the event's location and then discards them. They are never sent to us, never written down, and we never learn where you were or whether you were anywhere at all — the only thing saved is your own device's note that you earned the badge. We never read your location in the background, and if you decline the permission nothing happens except that you don't get that badge. Legal basis: none needed — your coordinates never leave your device.
Aggregate usage statistics When you open the main MoiCheck page, and when you switch between the list, map and events views To count visits, see which sites link here, and count how often each view (list, map, events) is opened, so we can tell whether MoiCheck is useful and which parts of it people actually use. These are counts only — no record of who opened what. No cookies are set. Like any web request, the request itself carries your IP address, your browser details, and which page you are on and which site you came from; Vercel uses these only to build the aggregates, and we only ever see those aggregates — nothing that identifies you or follows you to other websites. Legal basis: legitimate interest — knowing whether MoiCheck is useful.
Error reports Only when something on the page breaks, at most five per visit To find and fix bugs that happen in your browser and would otherwise go unnoticed. A report holds the error message, where in our code it happened, the page path (without anything after it in the address), and your browser's name and version. It holds no account or sign-in details, and the reporter strips email addresses and sign-in tokens out of the error text before sending it — though, like any automatic filter, it can miss an unusual form, which is one reason reports are deleted after about a month. We don't store your IP address with it, and nothing is saved on your device. Reports are kept in our database for up to 31 days (section 4). Legal basis: legitimate interest — keeping the app working.

We do not collect payment information, government IDs, or any special-category data. If you never sign in or use the contact form, we hold no personal data about you, except anything in an error report that the filter described above fails to remove — though, as with any website, simply loading the page or the map sends standard request metadata (your IP address, browser details, and the page requested and referring site) to the providers described in section 2. Serving the page, and loading the map when you open Map view, rest on our legitimate interest in running the site. Loading Google's sign-in button when you open the sign-in dialog, before you have chosen how to sign in, rests on our legitimate interest in offering sign-in with Google (section 2 explains what that request tells Google).

What the legal bases mean. Contract means we need the data to give you the account you asked for. Legitimate interest means we have a reason of our own — the one named in each row — that we have weighed against your privacy, and concluded that your privacy does not outweigh it; you can object to it (section 5). We do not rely on your consent for anything.

Do you have to give us anything? No. No law requires it, and the app works fully without an account. An email address is needed only if you want one: without it your progress stays in that one browser. Likewise, we need a name and email address only to reply to a message you send.

2. Who processes your data

We do not sell your data or share it with advertisers. Where each of these providers handles your data, and what covers the parts of it that leave the EU, is section 3.

3. Where your data is processed

Your account, your progress and your notes, and the error reports from section 1, are stored in the European Union. The Supabase project behind MoiCheck runs in Ireland (AWS region eu-west-1), and the app copies them into no other service's store. That claim is narrower than it may sound, so here is what sits outside the live database rather than leaving you to assume there is nothing. Supabase takes automated backups of it as part of the same project, so data you have deleted persists in them until they age out — section 5 says what that means for deleting your account. Your own browser keeps your progress and notes on the device you are reading this on, which is what section 6 sets out: that copy stays in that browser, and clearing your site data removes it. And your email address reaches the providers that carry mail for us, which is the paragraph below and section 4. Supabase is itself a United States company, so its staff can reach that infrastructure to run it; that access is covered by the safeguards described at the end of this section.

Stored in the EU is not the same as never leaving it, and one piece of account data does leave. If you sign in with a magic link, the email carrying that link is sent through Resend in the United States, with your address on it — and not merely in passing: Resend's own stated retention for email data is in section 4. Signing in with Google instead does not go through Resend at all — Google handles it, as section 2 describes.

The contact form. Your message is handled by a small function running on Supabase. Functions like it normally run in whichever data centre is nearest the person using them — which would mean a message sent from outside Europe was processed outside Europe. We pin ours to Ireland, so every submission is handled in the EU no matter where it is sent from. The trade-off is that the form does not move elsewhere if that region has an outage: it simply fails, and you can email hallo@moicheck.nl directly instead, which reaches the same inbox.

What does leave the EU. Handling your message in Ireland is not the end of its journey. From there it goes to Resend, then through Cloudflare Email Routing into our Gmail mailbox — and that mailbox is where it stays. Resend, Cloudflare and Google are United States companies, and none of them confines its processing to the EU. The same holds for Vercel, which serves this site and produces the visitor counts described in section 1, and for the sign-in emails above, which take the first of those same steps. So if you write to us, sign in by magic link, or simply load the page, part of that is handled outside the EU/EEA.

What makes that lawful. Supabase, Resend, Cloudflare and Vercel handle data on our behalf under contract, and each publishes a data processing agreement setting out the safeguards for moving it out of the EEA: the European Commission's Standard Contractual Clauses, and, for the providers certified under it, the EU–U.S. Data Privacy Framework. We rely on the terms they publish rather than on an audit of our own, and we chose providers that offer them. You can ask us which applies to a particular provider, at the address in section 9.

The mailbox, stated plainly. You will notice Google is not in that sentence, and the reason is worth giving rather than hiding. First, where your message actually ends up: hallo@moicheck.nl is not itself a mailbox but an address Cloudflare Email Routing accepts mail for and forwards on, and it forwards into a personal Google account — an ordinary Gmail inbox, in the United States. That is where your message comes to rest, and it is equally true if you skip the form and email us directly; it is the same inbox either way.

That account is held under Google's consumer terms, not a business agreement with a data processing contract behind it. So this last hop, unlike the four providers above, is not covered by one, and we would rather write that down than round it up to a safeguard we do not have. What we can tell you is concrete: the account requires two-factor authentication, nobody but us reads it, and your message is kept only as long as we need it to answer you. MoiCheck is one person's side project, and the inbox is run accordingly — if that is not a trade you want to make, please don't use the form, and don't email us either: anything you send arrives in the same place.

The map is different, and we should be straight about it. Leaflet's files come from unpkg and the tiles come from OpenStreetMap, and neither is a provider we have an agreement with. Your browser fetches from them directly, the way it does with anything a page embeds, so what they see is the request itself — your IP address and the usual browser details — and they serve it from whichever of their own locations is nearest rather than from the EU. We cannot promise safeguards on your behalf with parties we have no contract with, so we are not going to. Nothing reaches either of them unless you switch to Map view; if you stay on the list, no request is made at all.

4. How long we keep it

5. Your rights

Under the GDPR, you can ask us to:

There is no consent for you to withdraw, because none of our processing relies on consent (section 1).

No automated decisions that affect you. MoiCheck does no profiling and makes no automated decision with a legal or similarly significant effect on you. The only things it decides automatically are badges: milestones are counted from the items you tick off, and an event badge is awarded when your device confirms you are at the event. Neither has any effect outside the app.

Deleting your account yourself: when signed in, open your profile (the person icon) and choose Delete my account & data. After you confirm, we permanently delete your completed items and notes from Supabase, remove your sign-in record, sign you out, and clear the progress saved in that browser. This cannot be undone. Two kinds of copy outlive that deletion, and neither is a way back into your account: copies of your progress on other devices you signed in from remain in those browsers' local storage until you clear their site data, and Supabase's automated backups of the database, taken before you deleted, are not edited — they age out on their own schedule, and we do not restore from one to bring an account back. If automatic deletion is not available on this installation, the app informs you; email us and we will delete your account manually.

To exercise any of the other rights, or if you cannot sign in to use the in-app deletion, email us at hallo@moicheck.nl. We'll respond within a reasonable time and, for deletion requests, remove your account data from Supabase.

Signing out clears the progress saved in that browser, so the next person to sign in on a shared device does not inherit it. You can also clear your locally-stored data at any time by clearing your browser's site data for MoiCheck.

Complaints. If you think we have mishandled your data, you have the right to complain to a data protection authority. In the Netherlands that is the Autoriteit Persoonsgegevens. We would rather hear from you first, at hallo@moicheck.nl, but you don't have to.

6. Cookies & local storage

We don't use advertising or tracking cookies, and nothing we store follows you to other websites. Everything in the table below is kept by your own browser, on your own device.

Dutch law — article 11.7a of the Telecommunicatiewet, which implements article 5(3) of the ePrivacy Directive — requires us to ask your permission before storing anything on your device, or reading something already stored there, unless it is strictly necessary to provide the service you asked for. We don't show a consent banner because every item in the table below falls inside that exemption: each is either the feature you came to MoiCheck for, or a setting you chose yourself.

What we storeWhat it doesWhy it needs no consent
Completed items & memory notes
moiCheckState
Remembers which things you've ticked off, and anything you wrote about them. Strictly necessary: remembering your progress is the service. Without it, MoiCheck would forget everything the moment you closed the tab.
Language
moiCheckLang
Keeps the app in the language you picked. A setting you chose yourself, stored only to honour that choice.
Theme
moiCheckTheme
Keeps the light, dark, or system appearance you picked. A setting you chose yourself, stored only to honour that choice.
Theme, older name
theme
The same appearance setting, under the name an earlier version of MoiCheck used. If you have no current theme saved, we copy it across and delete it on your next visit; otherwise it just sits there unused until you clear your site data. A setting you chose yourself. Reading something already on your device falls under the same permission rule, and the same exemption.
Completed-list layout
moiCheckCompletedCollapsed
Remembers whether you left the completed section folded away. A setting you chose yourself, stored only to honour that choice.
Event badges
moiCheckEvents
Remembers which events you checked in at, so the badge you earned is still there next time. It holds the event and the date — never a location. Strictly necessary: keeping the badge is the thing you asked for by tapping "I'm here". Nothing is stored unless you tap it, and the location check that precedes it stores nothing at all.
Sign-in session
set and managed by Supabase
Keeps you signed in, so you don't have to request a new magic link on every page. Strictly necessary to provide sign-in — which happens only because you asked to sign in. If you never sign in, it is never created.
Account marker
moiCheckSyncedUser
Records which account the saved progress belongs to. Strictly necessary to sync safely: it is what stops progress being uploaded under a different account on a shared device. It is created only when you sign in and removed when you sign out; if your session ends while the app is closed, it is cleared the next time you open the app.

Confirming you are at an event reads your location from your device, which the same permission rule covers. We ask only at the moment you tap "I'm here", your browser asks you before we get anything, and your coordinates are compared to the event's and then discarded rather than stored — so what ends up saved is the badge in the table above and nothing about where you were. Section 1 describes that check in full.

The visitor statistics described in section 1 come from Vercel Web Analytics, which sets no cookies and stores nothing at all on your device, so the permission rule above does not apply to it.

When you sign out, your completed items, notes, and the account marker are cleared from that browser, so the next person to sign in on a shared device does not inherit them. Your language, theme, and layout preferences are device settings rather than personal data, so those stay. Event badges stay too, and we should be straight about the trade: they are never uploaded anywhere, so clearing them on sign-out would destroy them for good rather than restore them on your next sign-in — the cost is that on a shared device the next person can see that somebody checked in at an event. You can remove everything at any time by clearing your browser's site data for MoiCheck.

7. Children

MoiCheck isn't directed at children, and we don't knowingly collect data from anyone under 16.

8. Changes to this policy

If we change how we handle your data, we'll update this page and change the "last updated" date above.

9. Contact

Questions about this policy or your data? Email hallo@moicheck.nl.