Skip to content

Privacy

I collect as little as I can. Readers aren’t tracked. If you send a photo, the only things that leave your phone are the photo, where it was taken, and anything you choose to add.

Last updated 11 October 2026.

If you’re reading

No cookies, no ads, no accounts, no tracking. I don’t know who you are and I don’t try to find out.

To see how many people visit, I use Cloudflare’s built-in Web Analytics. It counts page views without cookies, without fingerprinting, and without following you to other sites. That’s it: nothing else.

Everything you load comes from this site (pages, photos, the map, the map’s fonts), apart from Cloudflare’s small analytics script. The site is hosted by Cloudflare, which, like any host, handles your IP address and browser details to deliver pages and fend off attacks. I don’t collect or look at that data.

Links to Google Maps, WhatsApp and X take you to those services only when you tap them.

If you send a photo

  1. On your phone

    Your browser redraws the photo at a smaller size before sending it. This strips out everything hidden inside the file: the phone model, camera settings, and any embedded location. The location used comes from the photo, from your phone if you allow it, or from a pin you place yourself. You see which one before you send.

  2. What’s sent

    The photo, its location (latitude and longitude), the time it was taken, and your note and name if you add them. Both are optional. If you send it from a footpath’s page as an update, also that footpath’s number and whether you say it is fixed; the location is then the footpath’s own, unless your photo carries one close by.

  3. The spam check

    Cloudflare Turnstile checks that you’re a person, not a bot, without puzzles. It runs in your browser and Cloudflare processes signals about your browser to do it, under Cloudflare’s privacy policy. It’s the only outside service on that page.

  4. On my server

    To limit each person to 20 photos a day, your IP address is turned into a scrambled code using a secret that changes every day. The raw address is never stored, and the codes can’t be linked from one day to the next. To show you a street name, the coordinates alone (nothing about you) are looked up on OpenStreetMap’s Nominatim service.

  5. Waiting for review

    The photo and its details are stored privately on Cloudflare (R2 storage and a D1 database) until I review them. Nobody else can see them.

Review, publishing and deletion

I look at every photo before it can go up. Rejected photos are deleted at once. Photos nobody reviews within 14 days are deleted. Approved photos are published, with faces and number plates blurred where I or the AI spot them, and the uploaded copy is deleted from online storage within a day of publishing. I keep one offline copy (the photo as you sent it, with its location, time, note and name) so I can re-process it if the blurring needs fixing.

What gets published: the photo, with no hidden data and with faces and number plates blurred where spotted; the location of the footpath; the date and time the photo was taken; your note; and your name, if you gave one, as “Photographed by …”.

What never gets published: your IP address, anything about your phone, or anything else about you.

Where AI is used

After I have approved a photo, an AI model drafts its title and caption, sorts it into problem types (missing slab, garbage, and so on) and tries to find faces and number plates to blur. It misses some, which is why I ask people not to photograph them in the first place. It is sent a smaller copy of the photo, with hidden data removed and any blurring already known applied, along with the uploader’s note. For an update to a footpath already on record, it is also sent the earlier published photos of that footpath and what the sender said about it, and judges whether it is the same place and whether it is now fixed. Every such verdict is checked by me before it changes the record.

Usually that model is Google’s Gemini, on Google’s paid service, under which Google does not use what I send to train or improve its models and keeps it only briefly to monitor abuse (Gemini API terms).

If Gemini is unavailable, or if I find DeepSeek does the job better, I use DeepSeek instead. DeepSeek is a Chinese company: it stores what it receives in China and, under its privacy policy, may use it to develop and improve its services (DeepSeek privacy policy). It receives exactly the same small, stripped copy and note. Every entry records which model wrote it. Spending on both is capped.

The model never decides what gets published; I do. The facts of each entry (the photo, the place, the date) come from the photo itself, never from the model. The jokes may come from the model. The titles are satire, and they’re about the city’s neglect, never about anyone in the photo.

What it’s built with

The site
Astro, built into plain pages ahead of time
Hosting
Cloudflare Workers, with a small program that receives uploads
Storage
Cloudflare D1 (database) and R2 (photos awaiting review)
Spam check
Cloudflare Turnstile, on the upload page only
Visit counts
Cloudflare Web Analytics: no cookies, no tracking
Map
MapLibre, with OpenStreetMap data from Protomaps, served from this site
Street names
OpenStreetMap Nominatim, coordinates only
Photos
Resized, blurred and stripped of hidden data with sharp
Titles and blurring
Google Gemini Flash (paid tier), with DeepSeek as backup; after my approval

The data is open under CC BY 4.0: GeoJSON, CSV.

Taking something down

You can ask me to remove your photo, your note or your name, or to blur something I missed. I don’t hold anything that identifies you, so tell me the entry number (for example, 018) or roughly when you sent it. Write to bhuvan@bebhuvan.com. I aim to act within 72 hours, in keeping with India’s Digital Personal Data Protection Act, 2023 and the IT Rules.

More on corrections and takedowns is on the About page.