Public Toilet Finder

How it works

1. We find your location

When you load the map, your browser asks for permission to share your location. We use it only in-browser, only for centring the map and computing distances — your coordinates never get logged or stored on our servers.

If you skip the prompt, we fall back to a coarse country-level guess from your IP (also not stored), or you can search any city or address by hand.

2. We load nearby toilets

Toilet locations come from OpenStreetMap — every "amenity=toilets" tag in the country you're in. We cache each country's snapshot in a database and refresh it weekly so the first load is fast.

If you're near a border we also pre-load the neighbouring country, so the map doesn't go blank when you cross into a different jurisdiction.

3. You filter and pick

The chip row at the top of the bottom sheet filters by free, paid, wheelchair-accessible, baby-changing, and more. The list re-sorts in real time by distance from where the map is centred.

Tap any pin to open its detail card: opening hours, access info, cleanliness band (Pristine / Clean / Average / Poor), individual reviews, and a one-tap "Navigate" button.

4. Walking directions

When you tap "Navigate", we ask OSRM (an open-source routing engine) for the shortest walking route. The map shows the path; the bottom sheet steps through each turn.

5. Reviews

Anyone can leave a cleanliness review — a 1-to-5 score and a short note. Reviews are stored in a simple Supabase database. We aggregate them into the cleanliness band shown on each pin.

No signup. No spam-prevention beyond rate limiting. We rely on the same goodwill that makes OpenStreetMap work.