A Chrome and Firefox extension, built in-house for campaign staff, that reworks the parts of VAN they use most when building lists and cutting turf for get-out-the-vote.
What it does
- Checkbox Targets. VAN’s collapsed Targets tree becomes a flat, grouped list of checkboxes, so picking several targets takes one click each instead of a trip through a dropdown.
- GOTV Turf Cutting mode. One switch strips the list-building form down to what turf cutting needs: county and precinct, the doors target, and every suppression, preset and locked so a search can’t go out with the wrong filters.
- Turf naming prefill. When a turf is saved, its name and folder are filled in from the precinct chosen earlier, following the campaign’s turf plan, so nobody retypes them for each of thousands of precincts. After “Save & Finish” it goes straight back to list building for the next precinct.
The hard part
VAN’s pages aren’t a public API, so the extension has to work with them without breaking them. It drives VAN’s own widgets the way a click would, rather than editing the form data they submit, so VAN does its own bookkeeping. Locked controls are blocked from changes but never disabled, because a disabled checkbox isn’t submitted with the form, which would silently drop a suppression from the search. And if VAN changes a page and something expected isn’t there, the extension leaves the page untouched instead of hiding a control it can’t replace.
The precinct table is generated from a BigQuery export at build time, so the extension holds no credentials and queries nothing while it runs.
Built with
JavaScript (Manifest V3), with Node and Python build tools for the precinct table, icons, and signed Chrome and Firefox releases.
Not affiliated with or endorsed by NGP VAN.