
voter mobilization app for 2024 election
React // Node.js // tRPC // React Router // Postgres // Drizzle ORMWorking Families Party needed an app to coordinate voter assistance during the 2024 general election in Pennsylvania. The app would match volunteers ("Drivers") with voters needing transportation or other support, and allow coordinators ("Navigators") to manage assignments and track progress in real-time. I built the complete application from scratch and deployed it in six weeks.
The application required complex role-based workflows with distinct interfaces for different user types. Drivers needed to receive and update assignments on mobile devices in the field. Navigators needed tools to intake voters, match them with drivers, and track assistance status. Admin-level navigators required broader data visibility, CSV upload capabilities, and advanced filtering and sorting on tabular views.
App capabilities were intricately interconnected, meaning bugs in one area could cascade across the application. This created high risk during a time-sensitive election mobilization effort. Additionally, the client didn't want to be locked into an existing React metaframework, necessitating a custom full-stack architecture.
Built using Fastify, tRPC, and React Router. tRPC enabled type-safe communication between client and server, streamlining full-stack development and database integration.
Leveraged emerging tooling to rapidly iterate on page layouts, then handled polish and styling with shadcn/ui components and Tailwind configured to WFP's brand guidelines.
Setup and populated a task tracking board for the project and maintained regular check-ins with WFP's engineering director to ensure we stayed on schedule.
Designed Postgres schema with Drizzle ORM to support complex querying needs across different user roles and permission levels.
Delivered a complete, mobile-responsive application on schedule, then stayed on to implement incremental feedback beyond the brief. The app was deployed and used by hundreds of volunteers coordinating voter assistance efforts during the election, facilitating thousands of voter support tasks in the field.
Working with Ryan was straightforward and clear. From the start, he provided accurate timeline assessments and stuck to them. He made thoughtful, opinionated recommendations about the technical stack and architecture but he was never dogmatic about it. He delivered a working MVP quickly, which allowed us to gather real user feedback and iterate intelligently rather than building in a vacuum.
As needs and priorities shifted he was extremely responsive and adaptable. We went from initial plans to a fully functional application running at scale within just a few months. Ryan delivered exactly what we scoped on the timeline we agreed to upfront.

voter mobilization app for 2024 election
React // Node.js // tRPC // React Router // Postgres // Drizzle ORMWorking Families Party needed an app to coordinate voter assistance during the 2024 general election in Pennsylvania. The app would match volunteers ("Drivers") with voters needing transportation or other support, and allow coordinators ("Navigators") to manage assignments and track progress in real-time. I built the complete application from scratch and deployed it in six weeks.
The application required complex role-based workflows with distinct interfaces for different user types. Drivers needed to receive and update assignments on mobile devices in the field. Navigators needed tools to intake voters, match them with drivers, and track assistance status. Admin-level navigators required broader data visibility, CSV upload capabilities, and advanced filtering and sorting on tabular views.
App capabilities were intricately interconnected, meaning bugs in one area could cascade across the application. This created high risk during a time-sensitive election mobilization effort. Additionally, the client didn't want to be locked into an existing React metaframework, necessitating a custom full-stack architecture.
Built using Fastify, tRPC, and React Router. tRPC enabled type-safe communication between client and server, streamlining full-stack development and database integration.
Leveraged emerging tooling to rapidly iterate on page layouts, then handled polish and styling with shadcn/ui components and Tailwind configured to WFP's brand guidelines.
Setup and populated a task tracking board for the project and maintained regular check-ins with WFP's engineering director to ensure we stayed on schedule.
Designed Postgres schema with Drizzle ORM to support complex querying needs across different user roles and permission levels.
Delivered a complete, mobile-responsive application on schedule, then stayed on to implement incremental feedback beyond the brief. The app was deployed and used by hundreds of volunteers coordinating voter assistance efforts during the election, facilitating thousands of voter support tasks in the field.
Working with Ryan was straightforward and clear. From the start, he provided accurate timeline assessments and stuck to them. He made thoughtful, opinionated recommendations about the technical stack and architecture but he was never dogmatic about it. He delivered a working MVP quickly, which allowed us to gather real user feedback and iterate intelligently rather than building in a vacuum.
As needs and priorities shifted he was extremely responsive and adaptable. We went from initial plans to a fully functional application running at scale within just a few months. Ryan delivered exactly what we scoped on the timeline we agreed to upfront.