A member portal for Lane County’s mountain bike trail stewardship club. The goal: bring memberships, payments, waivers, and volunteer records together, with less administrative work for the club.
01 / 06
Membership, in one place.
Members find their card and status themselves, so organizers spend less time answering routine questions.
Under the hood
Google Wallet
The member card connects to Google Wallet. Its QR code opens a live membership check, so a shop can verify current status even when the saved card is out of date.
02 / 06
Members manage their account.
Clear dues and renewal details help members stay current and reduce billing questions.
Under the hood
Stripe + PostgreSQL
Stripe payment events update membership records. Database constraints prevent duplicate records when an event is delivered twice. Midyear plan upgrades preserve the existing renewal date.
03 / 06
Waivers and family records.
Keep signed agreements and family coverage together, so staff can check records without chasing paperwork.
Under the hood
Versioned records
Each signature links to the exact waiver version signed. A saved document includes the wording, acknowledgments, timestamp, and a SHA-256 content hash. Guardian records also preserve who was covered at signing.
04 / 06
See the work add up.
See where volunteer time goes, so you can plan work and share progress with the board.
Under the hood
API + CSV imports
TrailWerk API data and CSV imports feed the reporting system. The API sync matches members, standardizes trail names, and keeps unmatched entries for later. Repeated syncs update existing records without duplicating hours.
05 / 06
Make updates without code.
Staff can update content, sponsors, and records themselves, without waiting on a developer.
1 / 2
Admin toolsMember search
Under the hood
PostgreSQL + admin controls
Content lives in PostgreSQL. Admin forms check permissions, validate edits, and refresh the public pages. FAQs, board profiles, and sponsor listings can be maintained without a code change or redeploy.
06 / 06
Agentic workflows.
Turn error alerts into proposed fixes for review, with less manual investigation and coordination.
1 / 2
Slack triagen8n workflow
Under the hood
n8n + Claude Code + Slack
n8n calls Claude Code over SSH to investigate Sentry errors. Approval in Slack starts a separate agent run to implement the fix and open a PR; another checks the Vercel preview.
Actual captures from Vercel Preview, Slack, and n8n. Select an image to enlarge.