Contribuir

This map is only as good as the records behind it, and the camera layer in particular is built entirely by volunteers. Here is how to improve it.

One rule, before anything else

Contributions are about devices, buildings, agencies and policies — never people. Do not submit photographs of people, licence plates, or anything identifying a private individual, an officer, or an agent. Do not submit anything you obtained by trespassing. A contribution that describes a person will be rejected.

Mapping a camera

The ALPR layer is pulled from OpenStreetMap using the tagging convention DeFlock established. That means a camera you add to OpenStreetMap improves this map, DeFlock, and every other project built on the same data — rather than being locked into one site's private database. It is the single highest-leverage contribution you can make.

What to record

  • The pole or mount location, as precisely as you can place it.
  • Which way the camera faces, if you can tell — this is the direction tag, in degrees.
  • Any visible operator or agency name on the housing.
  • The manufacturer, if it is marked. Many are not.

How to add it

  1. Create a free account atopenstreetmap.org.
  2. ReadDeFlock's mapping guide, which walks through the exact tags.
  3. Add a node at the camera's position with at minimum:man_made=surveillance, surveillance:type=ALPR, andsurveillance=public.
  4. Add manufacturer=Flock Safety only if it is actually marked as such. Guessing the vendor makes the data worse.

Our ingest re-queries OpenStreetMap on each refresh, so your addition appears here without anyone needing to approve it.

Staying safe while doing it

  • Everything worth mapping is visible from a public sidewalk or road. Stay on public ground.
  • You are recording infrastructure, not conducting surveillance. Do not photograph people.
  • There is no need to interact with anyone about it. Note the pole, move on, map it later.

Adding a community campaign

The data-centre layer records facilities, but not whether anyone is organising about them — which is often the thing an organizer most needs to find. That field is community-maintained indata/community/data-center-campaigns.json.

Open a pull request adding an entry with the facility name and city, the campaign or petition URL, the group's name, and a public source for the claim. Entries describe organisations and campaigns, never individual organisers.

Correcting a record

Most corrections belong upstream, and will flow here automatically on the next refresh:

  • Cameras — edit the node in OpenStreetMap.
  • 287(g) agreements and detention facilities — these mirror ICE's published lists exactly. If ICE's list is wrong, we reproduce the error faithfully; tell us and we will note it in the layer's known gaps.
  • Redlining zones — georeferencing is Mapping Inequality's work; report issues to them.

For anything else — a geocoding mistake, a bad county match, a misleading label — open an issue on the repository.

Contributing code

The stack is Astro, TypeScript and Tailwind, with a dependency-free Node ingest pipeline. Adding a layer means writing one script that emits the shared schema and adding one entry to the layer registry — the map, legend, filters, detail panels, sources page and downloads are all generated from that.

Two contributions we would particularly welcome: extending the ingest nationally (the geocoding already keys on Census identifiers, so it mostly needs a national county reference), and completing the Spanish translation.

Repository and issue tracker →