turnout.apppublic · no accounts · no tracking
About

One brand,
two opposite postures.

turnout is a civic-tech project with two distinct surfaces. They share a name and a typographic system. Their privacy postures are deliberately the opposite of one another.

Phase 1 · turnout.app
Public voter resource portal.

Open. No accounts. No tracking. Aggregates every public civic signal we can credibly source. Free, citable, AI-friendly.

  • · ZIP → all 7 political divisions
  • · Public MCP server for Claude/ChatGPT
  • · State voting rules + polling-place URLs
  • · Wikipedia enrichment per district
Find your ballot →
Phase 2 · canvass.turnout.app
Self-custody canvasser app.

Locked. Accounts required. End-to-end encrypted. The hosted server stores ciphertext only — voter data belongs to the organization that holds the key.

  • · XChaCha20-Poly1305 client-side
  • · Shamir 3-of-5 recovery
  • · On-device Whisper + Gemma + NLLB
  • · Open source · AGPL-3.0
See the design preview →
Why two sides

Civic data should be maximally open. Voter data should be maximally closed.

Most existing tools blur the boundary. They store civic facts (which are public) behind logins, and they store voter PII (which should be private) on servers they can read. We do the opposite of both: the public side has no accounts at all, and the private side can’t decrypt your voter file even if it wanted to.

The two surfaces share OCD-IDs as keys and nothing else. The private side reads from the public one over plain HTTPS the same way Claude or ChatGPT does.

Data sources · checking…

Every byte, sourced and dated.

turnout.app is built on public data and tells you exactly which public data — what’s in the system, where it came from, and when it was last refreshed.

political divisions
53,551
federal · state · CD · SD · HD · county · city · school
states + DC + territories
56
full coverage
public MCP tools
12
no auth, citable
upcoming elections
57
federal + state level
By division level
FEDERALUnited States1
STATEAll 50 + DC + territories56
U.S. HOUSE119th Congress districts441
STATE SENATEUpper-chamber state districts1,958
STATE HOUSELower-chamber state districts4,873
COUNTYAll US counties + parishes + boroughs3,235
CITY / PLACEIncorporated + Census-designated places32,612
SCHOOL DISTRICTUnified + secondary districts10,375
Confidence stack

Every fact on turnout.app traces back to one of five tiers. Tier-1 sources are the official authority. Tier-5 is our own plain-language summary, always labeled.

  1. 1OfficialSource of record — state SOS, Census, FEC, Congress, FVAP, EAC.
  2. 2Official-republishedOfficial-republished — VIP, CTCL BIP, Vote.gov routing.
  3. 3CuratedCurated — NCSL, BallotReady, Ballotpedia, Democracy Works.
  4. 4HistoricalHistorical / research — OpenElections, VEST, MIT, EAC EAVS.
  5. 5turnout.app summaryturnout.app summary — plain-language, always labeled.
Sources of record
1
US Census TIGER/Line 2025
geography · updated annual
Currently loaded: TIGER/Line 2024. Upgrade to 2025 (legal boundaries as of Jan 1 2025) is queued.
2026-04-15
1
US Census Geocoder
geography · updated live
2026-04-15
2
Open Civic Data Identifiers
geography · static
2026-04-15
3
NCSL voter ID requirements
voter id rules · updated election-cycle · manual entry
36 states request or require ID; 14 + DC use other verification. Verify per state against SOS pages.
2026-04-15
3
NCSL absentee + VBM rules
vbm rules · updated election-cycle · manual entry
Tracks no-excuse and all-mail states; postmark-vs-receipt rules per state.
2026-04-15
3
NCSL early in-person voting
election calendar · updated election-cycle · manual entry
2026-05-01
1
Vote.gov
registration · updated live · manual entry
2026-04-15
1
FVAP eVAG XML feeds
election calendar · updated weekly · INGEST QUEUED
Best official auto-updating source for UOCAVA. State/territory XML with deadlines, election offices, ballot rules. INGEST QUEUED.
2026-04-15
1
FEC OpenFEC API
campaign finance · updated daily · INGEST QUEUED
Wire after candidate identity matching is solid.
2026-04-15
1
Congress.gov API
officeholders · updated daily · INGEST QUEUED
2026-04-15
3
OpenStates / Plural
officeholders · updated daily · INGEST QUEUED
2026-04-15
2
Google Civic Information API / VIP
candidate filings · updated election-cycle · INGEST QUEUED
Coverage is election-window dependent. Cache + retain source metadata. Fall back to state/local official links.
2026-04-15
2
CTCL Ballot Information Project
candidate filings · updated election-cycle · INGEST QUEUED
Sources from state/local officials. Evaluate access + license.
2026-04-15
5
Wikipedia REST API (CC BY-SA 4.0)
enrichment · updated live
Per-division summaries via civic.about_division. 24h cache.
2026-04-15
1
26 USC § 7 (federal election day)
election calendar · static · manual entry
2026-04-15
15 sources · 51-state SOS authority registry seeded · expanding per phase 1 of the build plan
Nonpartisan + auditable

turnout.app provides election information, not recommendations. Every candidate appears with the same template. Every ballot measure is shown verbatim alongside a plain-language summary that does not editorialize. Always verify with your official election authority.

  • No accounts. No logins on this side of the system.
  • No tracking. No third-party analytics, no cookies.
  • No PII. The Postgres database has zero rows of voter PII.
  • Citable URLs. Every result has a stable share URL.
  • Open MCP. Same data is available to AI assistants for free.
Build with us

Use the data. Cite us. Plug in.

API & MCP
Connect Claude / ChatGPT directly to mcp.turnout.app — no API key required.
System status
Live operational health. 5-minute smoke tests on every public tool.