← Back to map
Hanap-Bidet

Privacy Policy

Last updated · April 28, 2026

Plain-language summary. Hanap-Bidet does not collect personal information. There are no accounts, no tracking cookies, no analytics, and no advertising integrations. Camera and GPS permissions are used only at the moment you submit a contribution or request walking directions, and they are released immediately after. Contributions are stored without any link back to who submitted them.

This summary is informational. The numbered sections below are the binding policy.

1. The short version

  • No account. No login. No sign-up. Ever.
  • We do not collect your name, email, phone number, IP address, device ID, or any other identifier that could be used to recognize you across visits.
  • We do not use cookies for tracking. We do not integrate analytics, advertising pixels, or session-replay tooling.
  • Geolocation and camera permissions are only requested at the exact moment you use a feature that needs them (directions, locate, or contributing). They are released immediately after.
  • Contributions are anonymous. The photo and the GPS coordinates of the building are stored. No identifier of who submitted them is captured.
  • The site is open source. Anyone can audit exactly what code runs in your browser and on the server.

2. What we do not collect

In the course of normal use, the site does not request, store, or transmit any of the following:

  • Your full name, nickname, alias, or username.
  • Your email address, phone number, or other contact details.
  • Your UP student / employee ID or any institutional identifier.
  • Your social media handles or profiles.
  • Your IP address (beyond what your hosting provider sees at the network layer for routine request handling — see Section 6).
  • Your device's advertising ID, IDFA, or fingerprint.
  • Your contacts, calendar, microphone, or files unrelated to a photo you choose.
  • Your browsing history, both on this site and elsewhere.
  • Any payment information — the site is free.

3. What we do collect, when, and why

Only the following data is handled, and only for the corresponding feature:

Geolocation (GPS)
When
When you tap “Get Directions”, the locate button, or “Use my current location” inside the Contribute flow.
What
Your latitude, longitude, and the GPS accuracy reported by your browser.
Why
To draw a walking route from your position to the destination, to recenter the map on you, or to attach precise coordinates to a contribution.
How long
Coordinates used for routing or recentering live in your browser tab only and are dropped when the tab closes. Coordinates submitted with a contribution are stored alongside the contribution.
Camera
When
When you tap “Take a photo” inside the Contribute flow or the photo upload form on a building.
What
The single still image you select with the device camera.
Why
To verify the building exists and that the bidet is real before incorporating it into the public dataset.
How long
The photo is uploaded to our Supabase storage bucket. If you submitted it with a contribution it is associated with that contribution row. Approved photos are publicly visible on the map; rejected ones are deleted.
Building name, gender, and access attributes
When
When you submit a contribution.
What
The text and dropdown values you typed/selected in the Contribute form.
Why
So a maintainer can review the entry and so the pin can be rendered on the map with accurate metadata.
How long
Stored alongside the contribution. Once approved, becomes part of the public dataset.
Photo report comments
When
When you flag an existing photo as troll/incorrect.
What
The text you typed in the report form.
Why
To give the dev context for whether to remove the photo.
How long
Stored on the open report. Dropped when the report is resolved.

That is the complete list. There is nothing else.

4. Anonymity of contributions

Contributions and reports are submitted without any user identifier. The site does not generate a user id, does not persist a session cookie that could link entries together, and does not store the IP address of the submitter alongside the row. From the maintainer's point of view, every submission is from “someone” — never from a named or trackable individual.

That also means we cannot send you a confirmation email, we cannot follow up if a submission is unclear, and we cannot restore a contribution to “your account” if you reinstall your browser. That trade-off is intentional.

5. Permissions in detail

Both geolocation and camera access happen through the standard browser permission system. The browser, not the site, owns the permission state. You can revoke either at any time from your browser's site settings, and the site will simply stop being able to use the corresponding feature.

  • Geolocation uses navigator.geolocation.getCurrentPosition. It runs once per request and is not kept open in the background. There is no continuous tracking.
  • Camera uses an HTML file picker with the capture attribute. The browser opens the native camera UI. The site never receives a live video stream — only the still image you pick after taking the shot.

Photos are compressed in your browser before upload to minimize bandwidth and to strip large amounts of EXIF metadata that some camera apps embed. We don’t inspect EXIF values, but we recommend assuming nothing about EXIF survives the compression pass.

6. Local storage in your browser

The site uses your browser's localStorage for a few small, non-tracking conveniences:

  • Whether the location permission explainer has already been shown.
  • Your light/dark theme preference.
  • A local cache of contributions you submitted yourself, so they appear immediately on your map even before the network round-trip completes.

These values never leave your device. Clearing site data in your browser wipes them. None are used to identify you.

7. Third-party services

The map is composed of several upstream services. When your browser fetches resources from them, those services see your network-level information (IP address, user agent) the same way they would for any website that uses them.

  • OpenFreeMap and CARTO serve basemap tiles.
  • OSRM (project-osrm.org or a self-hosted replacement) computes walking directions when you request them. Only the start and end coordinates of the route request are sent.
  • Supabase stores approved photos, photo reports, and contribution records. Anonymous keys are used; no per-user authentication is performed.
  • Vercel (or the project's chosen host) serves the static site. Like any web host, it observes request metadata for operational and abuse-prevention purposes.

Each provider has its own privacy policy that governs what they do with the network-level information they see. Hanap-Bidet does not pass any extra identifying data to them.

8. Data retention

Approved photos and approved contribution metadata are retained indefinitely as part of the public dataset. Pending entries that are rejected during review are deleted from the database, and their photos are removed from storage. Outstanding photo reports are removed once resolved.

Because the project is open source, prior versions of the public dataset may persist in the Git history of the repository. If you submitted something and want it removed after the fact, see Section 11.

9. Security

We use the standard security primitives of our hosting providers (TLS in transit, role-based access keys for the database, signed URLs for storage where appropriate). No system is invulnerable, but the attack surface is small: there is no login system to compromise and no user accounts to leak.

10. Children

The site is not directed at children under 13 and is not designed to collect any personal data from anyone. If you are under 13 and would like to contribute, please ask a parent or guardian to help.

11. Removal requests

Because submissions are anonymous, we cannot match a removal request to “your” submission by identity alone. If you would like a specific photo or contribution removed, the easiest path is to use the in-app Report action on the photo, which opens a report visible to the maintainers.

Alternatively, open an issue or send a message via the project's public repository describing the photo or pin (e.g. building, approximate time of submission). We act on good-faith removal requests promptly.

12. Open source transparency

You don't have to take this policy at face value. The full source code of the site is available in the project's public repository — including every network call, every storage write, and the SQL schema for the database. Independent audits and pull requests are welcomed.

13. Changes to this policy

If this policy changes in a way that affects how data is handled, the “Last updated” date above will move and a brief note describing the change will be added to the project changelog. Continued use of the site after a change means you accept the new version.

14. Contact

For privacy questions, takedown requests, or anything else related to this policy, please open an issue in the project's public repository (linked from the footer of the README). For urgent content concerns, the in-app “Report” button on a photo is the fastest path.