Skip to main content
Websites Built Right

Source-backed civic information · Live civic platform

Meet Your Reps

Public information should be public in practice, not just technically available. Meet Your Reps brings representatives, election timing, selected council records, and official sources into one clear, nonpartisan place for five Dakota County cities.

Visit meetyourreps.org

Five-city civic information with official sources, visible limits, and a correction path.
Meet Your Reps homepage with the headline Your city. Your reps. Your say., a civic record masthead, and a five-city Dakota County launch area.

At a glance

Project type
Source-backed civic information
Status
Live civic platform
Tanner's role
Product strategy, civic research workflow, data and content structure, source system, UX/UI, implementation, accessibility, and ongoing updates.
Capabilities
  • Civic information
  • Source-backed content
  • Accessibility
  • Multi-city systems

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

  1. 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.

  2. 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.

  3. 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?

  4. 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.

Visit meetyourreps.org

Meet Your Reps council records page with a review status summary separating verified outcomes, records awaiting official follow-up, and data mismatches or unconfirmed actions, above a Find a record panel offering city buttons for West St. Paul, Inver Grove Heights, South St. Paul, Mendota Heights, and Eagan, a record search box, a status menu, and a More filters control.
Every record carries its review status, so a scheduled item never reads as a decided one.
Meet Your Reps representative profile showing a Can I vote for this seat panel explaining that this is a ward seat, with links to official ward and election information and to the Minnesota Secretary of State polling place finder, above a Verified public facts table listing current office, term expiry, official contact, and board role, each labeled Official record with a Verify link.
One seat in plain terms: what the office is, whether you can vote for it, and the official record behind each fact.
Meet Your Reps civic record on a phone showing a heading reading What these sources do not prove, a source limit note explaining that the official minutes record the vote total and a noted absence but not individual positions, a What residents can do next link, related record links, and the start of a Something out of date or incorrect correction panel.
On a phone, a record still says what its sources do not prove, and how to send a correction.

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.

Working on something similar?

Tell me what people need to do, what's getting in the way, and when you want it working.