Working Families Party

Working Families Party

voter mobilization app for 2024 election

React // Node.js // tRPC // React Router // Postgres // Drizzle ORM
overview
challenge
approach
outcome

Overview

Working 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.

Challenge

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.

Approach

Custom full-stack framework

Built using Fastify, tRPC, and React Router. tRPC enabled type-safe communication between client and server, streamlining full-stack development and database integration.

UI development

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.

Project management

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.

Database design

Designed Postgres schema with Drizzle ORM to support complex querying needs across different user roles and permission levels.

Outcome

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.

|
Study: Silknode