MODULE D.U.C.K.← Back to the site

Cookies & Storage Notice

Module D.U.C.K. · Last updated: 7 October 2026

This notice explains exactly what Module D.U.C.K. stores on your device, why it is stored, and how long it lasts. It covers the Module D.U.C.K. mobile app and the small number of web pages we serve, including this one. It sits alongside our Privacy Policy and Terms of Use.

The short version

Contents

  1. No cookies, no tracking
  2. What local storage is, and why we use it
  3. Everything we store, item by item
  4. Why there is no consent banner
  5. How to see, clear, or stop it
  6. Our web pages outside the app
  7. One thing storage does not cover: IP addresses
  8. If this ever changes
  9. Contact

1. No cookies, no tracking

Most notices like this one open with a long table of cookies. We have none to list, so here is the complete negative inventory instead:

We state this flatly rather than hedging it, because it is simply what the code does today. It is also the unusual case where the honest answer is the good one, so we would rather say it clearly than bury it. If it ever stops being true, see Section 8.

2. What local storage is, and why we use it

localStorage is a small store built into your device that an app can write short pieces of text into. Two differences from a cookie matter here:

Module D.U.C.K. uses it for three purposes, and nothing else:

Everything stored is either your own content, a setting you picked, or the token that proves you are you. None of it describes other people, and none of it is transmitted anywhere as a consequence of being stored.

3. Everything we store, item by item

This is the complete list. If you find something on your device that is not on it, please tell us. That would be either a bug or an error in this document, and we want to fix whichever it is.

What it is What it is for How long it lasts
Supabase authentication session token
Written by Supabase, our authentication provider
Proves you are signed in, so the app can load your account instead of asking for your password on every launch. Strictly necessary. Without it there is no signed-in service to provide. Until you sign out, or until the token expires and is not renewed. Removed on sign-out and on account deletion.
Your cached profile, drink logs and preferences
Keys prefixed duck_
A local copy of your own data so the app opens instantly and keeps working offline. It is the same information you already see in the app; caching it creates no new data about you. Two items exist only here: your weight and sex, if you enter them for the BAC estimate (they are never sent to us), and a note that you have completed the consent step, so the app does not ask again on every launch. Strictly necessary for the offline behaviour you asked for. Kept and refreshed while you are signed in. Cleared on sign-out; removed entirely if you delete the app.
Language preference Remembers which language you chose (English, Spanish, Catalan, German, French or Korean), so the app opens in it, including on the sign-in screen, before we know who you are. A preference you set. Kept after sign-out, deliberately, so the app does not revert to English and lock you out of a screen you cannot read. Removed if you delete the app, or if you clear it yourself.
Currency preference Remembers the currency you chose for showing what your drinks cost. A preference you set. Until you change it, or until you sign out.
Map check-ins Keeps the venue check-ins shown on your map available on the device, so the map has something to draw without a connection. Strictly necessary for the offline map. Until you sign out, or until you delete the app.
Nearby-venue cache A short-lived copy of the venue results near you, so the app does not re-query the venue service every time you open the map. Saves your data allowance, your battery, and load on a free public service. Strictly necessary for the venue search you requested. 15 minutes. Then it is discarded and re-fetched the next time it is needed.
Last known approximate position Your most recent coarse location, kept on the device so the map can open roughly where you are instead of blank while a fresh fix is taken. Strictly necessary for the map to be usable. Overwritten each time a new coarse fix is taken. Cleared on sign-out.

Note the difference between storing and sharing. The last item is a rough position kept on your own device to draw a map. Sharing location with other people is a separate matter entirely: coarse location shared with accepted friends while the app is open, which Ghost Mode turns off, and Safe Mode, which uses precise location and shares it by link only while a session is running. Both are explained in full in the Privacy Policy.

Under the EU ePrivacy rules (and the UK's PECR), consent is required before storing information on someone's device unless that storage is either done purely to carry out a communication, or is strictly necessary to provide the service the person actually asked for. Storage for analytics, measurement or advertising never qualifies. That exception is the reason almost every website has to ask you, and it is the reason we do not.

Every item in the table above falls into one of two buckets:

There is no third bucket. Nothing is stored for measurement, nothing for advertising, and nothing on behalf of anyone but you. Putting an "Accept cookies" box in front of storage that is either required or specifically requested would be theatre, and it would train you to click through a box that means nothing. So we do not show one.

If that ever changes, we will ask first. If we ever add analytics, advertising, attribution, third-party crash reporting, or any other storage that is not strictly necessary, we will update this notice and request your consent before it is switched on, with a real ability to say no, and to change your mind afterwards. We will not quietly stretch the words "strictly necessary" to cover something new.

Separately: if you have opted in through your own iOS settings, Apple may show us anonymous, aggregate App Store statistics. That is handled by Apple under Apple's terms, involves nothing stored on your device by this app, and does not let us identify you.

5. How to see, clear, or stop it

There is no separate "cookie settings" screen, because there are no cookies to configure. The controls that genuinely matter live in the app and in your device settings: Ghost Mode, per-post visibility, hiding a post from specific people, and the operating-system permissions for location, contacts, camera, photos and notifications.

6. Our web pages outside the app

A small number of pages are served on the open web rather than inside the app. They are deliberately plain.

These policy pages

This notice, the Privacy Policy and the Terms of Use are single, self-contained HTML files. They load no images, no web fonts, no scripts and no third-party code. They set no cookies and they store nothing on your device. As with any web page, the server that hosts them necessarily receives your IP address and browser user-agent in order to send you the page.

The Safe Mode viewer page

When you start a Safe Mode session, the app gives you a link you can send to someone you trust. That page shows your location on a map while the session is running. What it does:

Inside the app, the same mapping library and tile provider draw the map, and venue searches go to OpenStreetMap / Overpass API. Those requests reveal your IP address to those providers. None of them place cookies through the app. Every recipient is named in the Privacy Policy.

7. One thing storage does not cover: IP addresses

For completeness. Even with no cookies and no tracking, a connected app has to make network requests, and whoever receives a request necessarily sees the IP address it came from. That applies to our backend provider Supabase (hosted on AWS), and to the map, tile and CDN providers named above. That is how the internet works, not a tracking decision, and we do not use IP addresses to build a profile of you or to target anything at you. Who receives what is set out in the Privacy Policy.

8. If this ever changes

We will update this notice whenever what we store changes, and the "last updated" date at the top will always reflect the current version.

9. Contact

Questions about anything in this notice, or something on your device you cannot account for:

Module D.U.C.K. · Nariman Mammadov (Məmmədov Nəriman Bəxtiyar oğlu), a sole trader registered with the State Tax Service of the Republic of Azerbaijan, taxpayer number (VÖEN) 1310036412
General Akim Abbasov St. 16, apt. 58, Yasamal District, Baku AZ1141, Azerbaijan
Email: ocag.bynm@gmail.com

One legal operator, not a company. Module D.U.C.K. is run by a sole trader registered in Azerbaijan, so there is no limited company between you and the person who operates it, and the registered address is a residential one. A small team helps with operations and marketing and acts on the operator's behalf; the operator stays the one responsible to you.