Four layers. One civic infrastructure.
The Influence Graph maps the relationships. The Civic Advocacy Engine acts on them. The Publisher Network distributes them. The Regional Node Network hosts all of it — federally, statewide, county by county. Open source under AGPL-3.0.
The civic workflow
A petition becomes a ballot measure becomes law. We give citizens tools for every step — and a single lens that reveals the money behind it all.
Petitions
Citizens raise issues and collect support
Propositions
Issues become ballot measures
Campaign Finance
Money flows in to influence outcomes
Representatives
Elected officials cast votes
Meetings
Decisions are debated in public
The four layers
Each layer produces value independently. Together they compose a civic intelligence flywheel.
The Influence Graph
Components built · integrated view in development
Representative → donors → votes, with conflict-of-interest arcs surfaced algorithmically when donor industry and bill topic alignment exceeds threshold. The public-facing front door of the platform.
Civic Advocacy Engine
In development
Compose correspondence to your representatives with platform documents — vote records, campaign finance data, meeting minutes, ballot measure texts — cited inline. Lobbyist-grade communication, for citizens.
Publisher Network
In development
Embeddable civic data widgets that surface conflict-of-interest summaries, vote trackers, and donor maps directly inside regional journalism — building institutional credibility for the platform and a content flywheel for partner newsrooms.
Regional Node Network
Federation architecture built
The platform's infrastructure and civic-expansion mechanism. Each certified node is a deployment of Opus Populi serving a specific jurisdiction, operated under a license that aligns commercial incentives with the civic mission.
Layer 1 — The Influence Graph
The platform's flagship view: an interactive map of who funds whom, who votes how, and where alignment between donor industry and legislative outcome crosses from coincidence into pattern.
The Influence Graph is the interface through which citizens first encounter the underlying data. Donors and PACs visualized by contribution size and industry. Voting records cross-referenced against donor industry through semantic matching on bill content. Conflict-of-interest arcs surfaced algorithmically when alignment exceeds threshold.
The integrated graph view is in active development. The six tools beneath it are built, work standalone, and feed the graph.
Campaign Finance Tracker
Graph coreFollow the money behind any ballot measure, committee, or campaign. Contributions, expenditures, and outside spending — aggregated from public-domain state and federal databases into a single coherent view.
- Committee-level contribution tracking with donor details
- Expenditure breakdowns by category and recipient
- Independent expenditure tracking for outside spending
- Aggregated from public-domain databases (FEC, Cal-Access)
- Donor industry classification for downstream conflict-arc matching
Representative Directory
Enter your address and see every elected official who represents you — from city council to Congress. Bios, committee assignments, and contact paths in one place.
- Address-based lookup with geocoded civic district resolution
- "My Representatives" section spanning every level of government
- Detail pages with photos, bios, party, and committee assignments
- Built-in contact forms to email representatives directly
- Filter by chamber, party, or district across the full directory
- Effectiveness scoring from peer-reviewed academic sources (in development)
Proposition Explorer
47 pages of legal text become a 5-minute read. Browse every ballot measure with AI-extracted summaries, fiscal impact analysis, and arguments for and against — with full source text always one click away.
- Browse measures by status: pending, passed, failed, withdrawn
- AI-powered content extraction with plain-language summaries
- Fiscal impact breakdowns and arguments for and against
- Full text and PDF access for primary source verification
- Track outcomes across election cycles
Meeting Calendar
Every public legislative meeting in your jurisdiction, searchable by body — with agendas, minutes, and video links for recorded sessions.
- Upcoming and past legislative meeting schedules
- Meeting agendas and minutes when available
- Video links for recorded sessions
- Filter by legislative body (Assembly, Senate, committees)
Petition Scanner
AI-PoweredPoint your phone at a petition. OCR extracts the text, AI generates a plain-language breakdown, and the system automatically matches it to related ballot measures — all in seconds.
- Camera-based capture with Tesseract.js OCR processing
- AI-generated plain-language analysis with automatic ballot measure matching
- Real-time activity feed showing petition momentum with hourly trends
- Map view with privacy-preserving geo-fuzzed locations
- Community abuse reporting for misleading or fraudulent petitions
- Geolocation tagging for civic district context
Document Q&A
AI-PoweredUpload any civic document — a bill, a budget, a regulation — and ask questions in plain English. The RAG pipeline chunks the document, generates vector embeddings, and retrieves relevant passages to answer with citations.
- Upload and index documents with automatic chunking
- Semantic search via 384-dimension vector embeddings (Transformers.js)
- Retrieval-augmented generation with local Ollama LLM inference
- Answers include source citations pointing to exact passages
- Specialized analysis modes for contracts, budgets, regulations, and forms
- Processing runs on the node serving your community — not third-party AI services
Layer 2 — Civic Advocacy Engine
In development. Compose correspondence to your representatives with public records cited inline.
Lobbyists communicate with elected officials by citing the public record. Ordinary citizens, lacking the same research apparatus, send messages institutional staff are trained to treat as noise. The Civic Advocacy Engine closes that gap.
Citizens compose correspondence with platform documents — vote records, campaign finance data, meeting minutes, ballot measure texts — embedded as inline citations linking back to primary sources. Correspondence flows through a routing proxy designed to preserve correspondent privacy while preserving the integrity of the message.
Layer 3 — Publisher Network
In development. Embeddable civic data widgets inside regional journalism.
Regional journalism partners embed Opus Populi civic data widgets — conflict-of-interest summaries, vote trackers, donor maps — directly within news coverage. The platform gains institutional credibility; partner newsrooms gain a content flywheel built on certified public-domain data.
The Publisher Network is non-exclusive and preserves editorial independence. A regional node with two or three journalism partners embedded generates widget traffic and credibility that accelerates adoption across that region.
Layer 4 — Regional Node Network
A federated network whose architecture mirrors American democratic governance — federal, state, county, municipal.
Each certified regional node is a deployment of Opus Populi serving a specific jurisdiction. A shared federal layer ingests Congress.gov and FEC data once. State nodes own state legislative and campaign finance corpora. County and municipal operators progressively take over local jurisdictions as they come online.
Cross-jurisdictional pattern intelligence — donor networks spanning states, model legislation spreading simultaneously, astroturfing patterns invisible from any single county — emerges from the federated network itself. No centralized scraper can replicate it.
Real-world scenarios
See how the tools work together in practice.
Election season
A voter preparing for election day uses the Proposition Explorer to understand each ballot measure in plain language, checks Campaign Finance to see who's funding the "Yes" and "No" campaigns, and uploads the full ballot text to Document Q&A to ask specific questions about fiscal impact.
Community organizing
A civic group concerned about local development uses Petition Scanner to analyze a circulating petition, tracks upcoming Planning Commission hearings through the Meeting Calendar, and uses the Representative Directory to contact their council member ahead of the vote.
Investigative reporting
A journalist investigating campaign spending uses Campaign Finance to identify outside spending patterns on a contested ballot measure, then uploads related budget documents to Document Q&A to cross-reference financial claims — all without their research queries leaving the node serving the newsroom.
Built for real people
Every community instance comes with these capabilities out of the box.
Works offline
Progressive web app. Save ballot measures, representative info, and documents for offline access.
Multi-language
English and Spanish at launch, with community-contributed translations.
Dark mode
Comfortable reading in any environment.
Accessible
WCAG 2.2 AA compliant with keyboard navigation, screen reader support, and high contrast.
Guided setup
Onboarding wizard walks new users through jurisdiction selection and feature discovery.
Data portability
Export your data anytime. Your civic research belongs to you.
How civic data stays current
Government websites change. Your civic data shouldn't break when they do.
Government websites publish civic data — propositions, campaign finance filings, meeting schedules, representative directories — but they restructure constantly. Traditional scrapers with hardcoded CSS selectors break whenever a site is redesigned.
Our pipeline uses a schema-on-read approach: AI analyzes website structure to generate versioned extraction rules (structural manifests), rather than relying on brittle selectors. When a site changes, the system detects the structural shift, re-analyzes, and adapts — no developer intervention needed.
The pipeline handles three source types: HTML scraping with AI structural analysis, paginated REST APIs, and bulk file downloads (ZIP/CSV/TSV). Every extracted record is validated against domain rules before entering the platform.
Any jurisdiction, no code required
Adding your region's data sources doesn't require writing code. Communities configure their own data connections through declarative setup.
Every jurisdiction publishes civic data differently — different websites, different formats, different update schedules. The region plugin system handles this complexity so communities don't have to.
Region configs are simple JSON files that describe what data to collect — URLs, data types, and natural-language content goals. The AI-powered scraping pipeline figures out how to extract it. No scraper code required.
JSON, not code
Describe data sources with URLs and plain-language content goals — the AI handles extraction
Schema-validated
CI validates every config against a JSON Schema and checks URL connectivity before publishing
Community-contributed
Region configs live in a shared open repository — add your jurisdiction with a pull request
Self-healing pipeline
When government websites change format, the AI re-analyzes and adapts automatically
AI that runs where your community runs
Inference, embedding, and document analysis run on the node serving your community — not on third-party AI services.
Most AI-powered civic tools send your queries to third-party services. What legislation you're researching, what politicians you're looking up, what petitions you care about — all of it becomes someone else's data.
Opus Populi runs entirely on open-source AI models hosted on the node serving your community. Embeddings are generated in-process with Transformers.js. Vector similarity search runs on pgvector in PostgreSQL. LLM inference runs through Ollama with configurable open-source models. Analysis prompts are delivered to nodes through a cryptographically signed service that ensures every node uses the same methodology — see the trust architecture for the full picture.
No third-party AI services
Inference runs on the node serving your community
No per-query costs
Run as many analyses as you need
Full auditability
Inspect every model and every decision
100% open source
No proprietary dependencies in the AI stack
Built on open source
Every component is open source. No proprietary lock-in at any layer.
Frontend
Backend
AI / ML
Infrastructure
Observability
Bring this to your community
Every community deserves civic tools they own and control. Join the network or contribute to the platform.