devsan
All work

Case study

Election Community Platform

Location-aware candidate discovery with Stripe-powered donation flows.

shippedLeadFull StackPayments2024
Election Community Platform project cover: Location-aware candidate discovery with Stripe-powered donation flows.sanitized project cover

Summary

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

browse + comparelookup slateballot lookupcandidate enrichmentfresh contextdonateVoterlocation-awareRails App+ React UIDiscovery Layercached retrievalGoogle Civicballot dataBallotpediacandidate factsPerplexityfresh contextStripedonations + receipts
UserServiceExternal
Discovery isolates upstream data sources so the product layer can iterate freely.

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?

Let's talk.

Get in touch