Volunteer operations for conservation nonprofits
Everything a river cleanup needs. Built for the people who run one.
One platform for the whole arc of volunteer work: the signup on a flyer, the check-in in a muddy parking lot, the grant report a year later. It treats volunteers as people with a history, runs the day even with no signal, and proves its own numbers.
- Grant-ready hour valuation
- Works offline on the day
- No volunteer accounts
- Any event type, one system
Why it is different
Four decisions the rest of the category did not make.
Most volunteer tools are a sign-up sheet with email attached. These are the choices underneath Headwaters that show up on grant day and on the riverbank.
People, not per-event rows
One record per human across every program and year. Registrations, hours, consents and affiliations hang off that identity, and an auditable hours ledger turns them into an in-kind match figure that survives even a corrected event date.
Runs the day from a phone
A coordinator opens one signed link, no account, no wp-admin, and runs check-in from the parking lot. Lose signal and it keeps working: every tap is saved on the phone and sends itself when the bars come back.
One platform, many kinds of day
A river cleanup and a weekend work day are the same machinery with different options. Event types are data, a switchboard turns whole subsystems on and off, and a starter kit configures the entire platform in one choice.
Safe by construction
Emergency contacts are gated separately from names. Consent is frozen to the exact waiver wording signed that day. The audit log can only be appended to. And a minor is never in a mailing list: the rule lives in the code, not the settings.
How it works
Three acts: the volunteer, the day, the office.
The same records flow through all three. A signup becomes a check-in becomes an approved hour becomes a line in a grant report, and nobody re-keys anything.
Find an event
An upcoming-events list is the front door from a flyer or a link. A poster carries a short /join/<slug> link, or its QR, that lands straight on the right event.
Sign up with no account
The form builds itself from the event type. When the event is full it becomes a waiting-list button, and promotes people automatically when a seat opens.
Save the day
The confirmation offers an add-to-calendar button and a real .ics file, served so even calendar apps that do not follow redirects still get the appointment.
Check in on the day
A self or group check-in page, or a walk-up welcome-table kiosk. Families check in together, and nobody needs to remember a login.
Log hours, see a dashboard
A self-service hours log and a personal account portal, their history and their contribution, reached by a signed link rather than a stored password.
The console, on a phone
A signed coordinator link opens the whole day, roster, check-in, results and incidents, with no WordPress login. The signature covers the event, its expiry and the access level together.
Check people in, offline-safe
Lose signal and a tap reads saved on this phone, keeping its own arrival time so hours count from when they arrived, not when the network came back. It refuses to queue only what it cannot queue safely.
On site now vs arrived
On site now rises and falls as people come and go; Arrived is the day's running total. A mis-tapped checkout is one check back in away.
Crews, route sheets, equipment
Optional crews with a leader who must be a real registered person. Printable route sheets made for a wet pocket, each with a QR. Gear tracked as needed against available, out and back per team.
Incidents and announcements
An offline-capable hazard channel that appends rather than edits, and the one alert nobody can mute. Mid-event announcements carry per-crew read receipts, so you see which teams have not answered.
Wrap up in one action
Closing the event checks out anyone still on site, freezes the results, thanks each attendee with their own contribution, and leaves the safety picture visible for the record.
People and segments
Filter the roster, select across every page, then set attributes, copy emails, export or archive as a group. Board members and willing leaders are facts you can filter and reach.
Campaigns that report back
Audiences are opt-in axes, interests, followed programs, willing-to-lead, never everyone with an email and never minors. A batched sender resumes after a failure, open and click tracking turns the report into follow-ups, and a Mailchimp sync keeps the audience current on its own.
Ask, with real anonymity
Post-event surveys and standalone questionnaires. Who you asked is stored apart from what they said, so anonymity actually holds while reminders still reach the people who have not answered.
Reports and the grant CSV
Approved hours only, valued at each hour's own year rate, with a grant-ready CSV under every report. The number you file this year still reconciles when you re-run it in three.
The system underneath
The abilities you will not find on a feature comparison.
The quiet engineering a casual demo never surfaces, and the reason the data still holds up years later.
Rates that survive a date fix
Every hour freezes the valuation rate that applied on its own date. Correcting an event’s date years later does not rewrite the match figure you already filed.
Standing signups
A yes to a series including events that do not exist yet. New events auto-register the committed people into their role and site.
Versioned by hash
A signature points at the exact waiver wording shown that day. Editing next year’s waiver can never rewrite last year’s agreement.
Links that expire, no account
Deterministic coordinator and volunteer links. Rotate one secret and every outstanding link is invalidated at once.
Cross-org email resolution
Former email addresses are kept, so an old link from a person who changed jobs still resolves to the right human.
A queue that will not lose data
The offline console keeps its own timestamps and flatly refuses to queue what it cannot send safely, rather than pretending it saved and dropping it.
KML and KMZ that follow the link
Imports real KML, unpacks KMZ, and resolves the NetworkLink files a Google My Maps keep-up-to-date export produces, instead of reporting no places found.
QR with no server
A hand-rolled QR encoder draws codes with no image library and no network call, for route sheets and share pages that print anywhere.
An append-only audit log
The change log has no update or delete path in code, only new rows, aging out on a schedule. History you can trust because it cannot be quietly rewritten.
Self-healing pretty routes
A route registry re-flushes missing links after an upgrade, so /join/ and the calendar files cannot silently start failing.
Integrity tooling and safe demo
A read-only sweep walks every parent-to-child relation and reports orphans; demo data seeds through the real write paths and removes exactly what it made.
Builds on your builder
Block editor, Divi and Elementor each get the correct markup, and a single brand color derives every readable shade on the public pages.
Modules and kits
Turn on what you run. Leave the rest dark.
A switchboard takes whole subsystems on and off cleanly: the tab, the public pages, the emails and even the guided tours go together. A starter kit sets it all at once, after a preview.
The chapter default
The empty starting point: cleanup event types, crew vocabulary, the metrics a riverbank counts, and the volunteer story pages. One choice that configures modules, wording, measures, roles and branding together.
- event types
- vocabulary
- metrics
- roles
Stream sampling and trends
The Hoosier Riverwatch biological protocol, scoring water health by the taxa present rather than counting organisms, and turning a long run of samples into a per-site trend. A public river-health page explains the scores.
- PTI scoring
- per-site trends
Field notes and readings
Dated notes and numeric readings at your sites, in your own units. Deliberately the everyday field log, not the science form, so any kind of program can record what it saw.
- site history
- custom units
Vocabulary, measures, roles
Rename the load-bearing nouns, add the measures your org reports, and compose narrow roles, all without touching platform configuration, which stays with the administrator.
- diff-only vocab
- scoped roles
How we know it works
Every build is proven before it ships.
Software that holds volunteer records and grant figures should not be trusted on a promise. A release harness re-checks the whole surface on a fresh install, static analysis, scripted journeys, and a robot that clicks every control, and a build that fails any of it does not go out.