What was needed
Local government information is public, but it is rarely in one place. Representative directories, election dates, agendas, minutes, ordinances, meeting videos, and public records are spread across different city websites and document systems.
Residents should not have to learn five municipal publishing systems just to understand who represents them, what a local office can do, when an election happens, or what an official record actually confirms.
Meet Your Reps was built to consolidate that information without replacing the original sources or telling residents what to think.
Who it's for: Residents who want to understand their local representatives, elections, and selected city council actions without endorsements, tracking, or unnecessary jargon.
Constraints
- The platform must remain nonpartisan and clearly independent from the cities and agencies it documents.
- Every important factual claim needs an inspectable source.
- Agendas, draft minutes, approved minutes, action summaries, ordinances, and reporting provide different levels of confirmation. The interface must preserve those differences.
- The five cities publish information through different websites, document formats, meeting platforms, and naming systems.
- Public information changes. Records need review dates, source limitations, pending states, and a correction path.
- Civic information can become dense quickly, so pages must remain understandable on a phone and usable with assistive technology.
- The site must not imply that a scheduled agenda item was approved or that an incomplete record proves more than its source supports.
- Visitor privacy is part of the product. The live site does not use endorsements, ads, analytics, tracking, or cookies.
What was built
City and representative information
- Shared city pages for West St. Paul, South St. Paul, Inver Grove Heights, Mendota Heights, and Eagan
- Representative profiles connected to official city sources
- Plain-language explanations of what local offices can do
- Election timing and official ballot-lookup routes
- Clear distinctions between citywide and geographically limited seats where verified
Council records
- Selected city council actions and meeting summaries
- Filtering by city, review status, topic, and issue
- Separate states for verified outcomes, pending official follow-up, and unresolved source conflicts
- Plain-language explanations of what happened, why it may matter, and what residents can check next
Source and correction system
- Source labels attached to important claims
- Direct links to original city records
- Review dates and verification states
- Explicit explanations of what each source confirms and does not confirm
- A public path for submitting a correction or stronger source
Trust and accessibility
- Nonpartisan presentation without endorsements or candidate rankings
- No ads, analytics, tracking pixels, or cookies
- Responsive navigation and readable information hierarchy
- Accessible labels, headings, links, and interaction patterns
Key decisions
Show the source beside the claim
Sources are part of the interface, not a bibliography hidden at the bottom. A resident should be able to see what supports an important statement and open the original record.
Separate scheduled, pending, draft, and verified information
An agenda proves that an item was scheduled. It does not prove that the council approved it. The product preserves that distinction instead of flattening every document into the same level of certainty.
Organize around resident questions
The site starts with questions people actually have: Who represents me? What does this office do? Can I vote for this seat? What happened at the meeting? What does the official source confirm?
Build one shared system without pretending every city publishes information the same way
The five cities share a common public interface, but their source systems remain distinct. The data and content structure has to accommodate those differences rather than forcing every city through a brittle universal template.
What works now
A live civic-information platform covering five Dakota County cities. Residents can start with their city, see who represents them, understand the authority of local offices, review election timing and official voting resources, search and filter selected council records, distinguish verified outcomes from pending follow-up, open the original city source behind a claim, see what a source does and does not establish, and request a correction or provide a stronger source.



Role and tools
Product strategy, civic research workflow, data and content structure, source system, UX/UI, implementation, accessibility, and ongoing updates.
- Next.js
- React
- TypeScript
- Netlify
Lessons and what's next
- Transparency works best when it is built into the content model and interface, not added as a disclaimer after publication.
- Showing what a source does not prove is as important as showing what it confirms.
- Accessible civic information requires clear writing, source status, page hierarchy, and navigation, not only technically valid components.
- Municipal source systems vary enough that reliable automation needs city-specific source contracts and adapters.
- A trustworthy update system must preserve the original document, meeting identity, source status, review date, and correction history.
- The next phase is an autonomous update pipeline for city council meetings across the five launch cities. It is being designed to detect new agendas, minutes, action summaries, amendments, and replacements from each city's official systems, preserve the original source trail, and prepare structured updates for review. The goal is to help residents stay connected to local decisions as new records become available without sacrificing accuracy for speed.
- That pipeline is in development, not something the live site runs today. Its discovery step reads each city's official listing surface without writing anything, write mode is deliberately disabled, no pipeline output is wired into the public pages, and a person still has to review and approve a record before it can be published.
