Case study
Election Community Platform
Location-aware candidate discovery with Stripe-powered donation flows.
sanitized project coverSummary
Owned major delivery of a Rails-based community platform. Location-based discovery via Google + Ballotpedia + Perplexity, upvotes, comparisons, and recurring Stripe donations.
Problem
Voters want to know which candidates are on their ballot and what those candidates stand for, without sifting through ten different sites. The data is public but scattered across Google's civic surface, Ballotpedia, and ad-hoc news. Building a community around that requires location-aware discovery, comparisons, and a donation path that does not feel sketchy.
Approach
I led delivery of a Rails-based community platform. The discovery surface is location-aware: a user enters where they are, and the platform pulls the relevant slate from Google's civic data, enriches with Ballotpedia, and uses Perplexity for fresh context when the structured sources are thin. Profiles are synthesized on demand and cached so repeat lookups stay fast. On top of discovery, I built the community layer — upvotes, candidate comparisons, and a clean profile view that respects the data we actually have. Donations run through Stripe with full receipts and recurring billing where the candidate or org supports it. The stack is Rails with a React front end on the heavier interactive surfaces. Concept to production happened in months, not quarters, because the data integrations were boxed off behind a clean retrieval layer so the product team could iterate without touching the upstreams.
Architecture
Result
The platform shipped with location-aware candidate discovery, comparisons, upvotes, and Stripe-powered donations including recurring billing. It moved from idea to production in months and went live for real users during a real election cycle. Shipped, indexed, and finding its first real users.
Highlights
- Candidate profiles synthesized from public data on demand
- Stripe donation flow with receipts and recurring billing
- Concept to production in months, not quarters
Have something similar?