Canvassing app for a local campaign
Thirty volunteers, one live map, and 14,384 homes flyered.
Client details are private. Every screen here is a copy of the real tool running on made-up data.
The situation
A volunteer-run local campaign set out to put a door hanger on every single home in the district. That means dozens of people in different neighborhoods at the same time, each needing to know which doors are done, which are next, and who is covering what, without anyone walking the same street twice.
What I built
- An admin draws a shape on the map. The app fills it with every home inside, from county property records, in walking order, and assigns it to a volunteer.
- Volunteers sign in with their email and get their own color on the map. They tap a house to log a door hanger or a knock, tracked as separate passes so one never overwrites the other.
- Everyone sees who is out, which zone each person is working, and which houses are already done, updated in real time. If a phone loses signal, results save on the device and send when it reconnects.
- The phone highlights the nearest house not yet done, several houses can be marked at once with an undo, and team chat announces each finished zone. A weekly leaderboard kept it a little competitive.
One rule mattered more than any feature: county records list both a mailing address and a physical address for each property, and showing the wrong one sends a volunteer to the wrong city. The map only ever labels the physical address.
The result
The campaign flyered every home in the district, 14,384 in all, with about 30 volunteers working at once. The only homes skipped were the ones with a No Soliciting sign. The tool is what made that coordination possible: because everyone could see who was out and which areas were covered, volunteers stepped in to help or finished each other's zones in real time, with no texting back and forth about what was done.
For your business
For a business, swap doors for service stops and volunteers for crews.
Why custom
Commercial canvassing apps are built for big campaigns: one kind of visit per house, a heavy account setup for every volunteer, and pricing to match. This campaign needed two passes on the same homes, thirty volunteers who could start in seconds, and the county's physical addresses rather than owners' mailing addresses. A custom build fit all three, with no per-volunteer cost.

Built with
Leaflet maps · Google Sheets + Apps Script · GitHub Pages · automated tests · built with Claude Code
Have a workflow like this?
Most projects scope in a 30-minute call. Tell me where the time goes.

