The Pinpoint App — Civic tech | An App Idea LLC

Find your reps, send a real message, and organize neighbors around the issues that matter.

Editorial Ink design systemFirestore + Cloud FunctionsPostmark outreach relayOpenStates proxy
Postmark relayOutreach
Pinboard + PossesCommunity
Live statusDelivery
TimelineSolo build + Editorial Ink rebuild
TeamFounder-led: app, backend, admin
PlatformiOS · Android · Web
ImpactReps · Outreach · Pinboard · Posses
Problem

The challenge

Civic apps tend to dump raw government data on people or trap "contact your rep" behind a dead-end form. The Pinpoint App needed to carry a constituent from "who represents me?" all the way to a sent message and an organized group of neighbors — without burying them in screens.

Approach

How we built it

I rebuilt the app around four tabs — Reps, Pinboard, Posses, and You — plus a guided Outreach flow. Officials resolve from GPS or a typed ZIP through an OpenStates backend proxy; the Outreach composer relays a constituent message via Postmark with a DMARC-safe sender and the user as reply-to, enforcing daily caps, per-office cooldowns, and content screening, and falling back to copy/call/web-form when an office has no public email. The Pinboard and Posses run directly on Cloud Firestore, while a separate set of Firebase Cloud Functions owns the derived counters, consensus, and moderation.

Outcome

What shipped

The Pinpoint App now reads like a tool, not a data dump: you find your representatives, send a real message with live delivery status, raise a local issue, and organize a moderated group around it. The print-inspired Editorial Ink design system — paper, ink, and oxblood in light; charcoal, off-white, and brass in dark — ties the whole experience together across iOS, Android, and web.

Results

Outcomes

  • Rebuilt the product around four focused tabs — Reps, Pinboard, Posses, and a guided Outreach flow — under a custom "Editorial Ink" design system.
  • Shipped a Postmark-backed outreach relay with DMARC-safe sending, per-user caps, content screening, live delivery status, and copy/call/web-form fallbacks when an office takes no email.
  • Built a Firestore-backed issue Pinboard and group "Posses" with community-consensus resolution and moderation, with counters and safety logic owned by Firebase Cloud Functions.
Engineering

Tech stack

React NativeExpo SDK 54Expo RouterTypeScriptFirebaseFirestoreCloud FunctionsExpressPrismaPostgreSQLOpenStatesPostmark
Civic TechMobile + WebOutreachCommunity
Links

Resources

← All workCivic tech
Contact