Civic tech

Civic TechMobile + WebAI VoiceAdmin Ops

Pinpoint

A civic engagement platform across iOS, Android, and web that combines official data, legislation, AI voice chat, surveys, and moderation tooling in one system.

Civic engagement platform

Pinpoint

Officials, legislation, AI voice chat, and moderation in one product.

Expo SDK 54Express APIPrisma ORMRailway deploys
AI voice
SSE + TTS
Search proxy
6 hr cache
Ops trail
Decision ledger

What shipped

  • Shipped one shared product across iOS, Android, and web instead of a disconnected set of prototypes.
  • Built streaming AI official chat with personality modes and ElevenLabs voice responses.
  • Added durable moderation workflows, searchable civic data proxies, and an operator-facing admin dashboard.
Timeline
12-month solo build
Team
Founder-led with admin tooling
Platform
iOS · Android · Web
Impact
AI chat · surveys · moderation

Core stack

React NativeExpoTypeScriptExpressPrismaPostgreSQLGeminiElevenLabs
Problem

Most civic products either expose raw public data without useful context or bolt AI onto a narrow chat surface. Pinpoint needed to unify officials, legislation, surveys, community features, and moderation across mobile and web without becoming a pile of disconnected screens.

Approach

I built the stack around Expo, Express, Prisma, and PostgreSQL, then added direct Firebase token verification via Google JWKS, SSE-based Gemini chat, text-to-speech proxying, civic-data search proxies, and a durable moderation ledger. On the product side, the interface centers on a swipe-based dashboard, deep links, and dedicated admin workflows.

Outcome

The result is a real platform rather than a civic-tech demo: one codebase serves iOS, Android, and web, AI chats stream with voice responses, moderation decisions stay auditable, and the release process is backed by CI, secret scanning, and reliable Railway deploys.

Need this level of product depth for your own build?

The same mix of product direction, interface work, and backend systems can be applied to your next app.