Challenge
The Roanoke Assembly is a private membership organization founded in 1928. Its members-only website holds the directory, the events calendar, the bylaws, and annual dues.
Dues were collected through a PayPal form layered onto the site, and over time the membership records had drifted. The business manager had spent weeks chasing discrepancies between who had paid and who appeared on the member lists.
Approach
I built the Assembly’s site in 2019 and have maintained it since. This work replaced the payment system and rebuilt how membership itself is tracked, so that each member’s status, payments, and access come from a single record instead of being pieced together.
Before changing anything, I took a full snapshot of the site and its member data. Every bulk change ran first as a dry run that reported exactly what it would do.
Delivery
Members now pay dues by card through Stripe, with late fees calculated automatically and the amounts set by the board rather than by a developer. Each year the system resets members to not yet renewed, moves anyone past the grace period to dropped, and closes the members-only site to people who have resigned or lapsed.
A new Member Management screen gives the business manager filters, bulk actions, and exports that include each member’s last payment. An importer brings spreadsheets in safely, previewing every change before it is made, and a written manual covers the system for the board.
One bug shows the kind of problem this work involves. A security plugin was blocking Stripe’s payment confirmations from reaching the site, so a member’s payment could succeed at Stripe without the site ever recording it. The fix was small. Finding it was not.
Outcome
The member lists now show 39 members who had been missing from every admin screen and export, almost all of whom had paid. That single finding accounted for most of the discrepancies the business manager had been chasing.
The fee review also changed a board decision. PayPal payments routed through Stripe carry a surcharge that the Assembly’s flat processing fee did not cover, so the organization had likely been absorbing part of the cost of every PayPal payment. On that analysis, the board moved dues to cards only.
My vote is to go with that recommendation as most pay with a credit card through stripe rather than PayPal and we avoid additional fees. Thank you William!