Inspiration

We were inspired by how often culture is affected by law long before people realize it. Policies around immigration, language access, education, religious freedom, housing, public funding, and community rights shape whether people feel seen, safe, and able to belong. Yet the people most affected by those decisions are often the least likely to receive that information in plain language or in a form that feels relevant to their lives. We wanted to build something that treats legislation not just as politics, but as something that shapes culture, identity, memory, and community survival.

What it does

CulturAct is a location-aware legislative discovery app focused on helping people understand how policy affects culture and community. It pulls federal, state, and local policy data, summarizes it in plain language, translates it into supported languages including Spanish, and gives users tools to explore laws by geography, compare bills, follow issues, generate advocacy letters, and discover local community resources.

It also includes:

  • a Census-backed U.S. heat map that helps users see where policy activity is concentrated
  • representative lookup with contact information and recent official voting history
  • support for culturally important issue areas such as immigration, language access, indigenous rights, arts and culture funding, racial equity, and religious freedom
  • community resources and events that connect legislation to real local support systems
  • ElevenLabs-powered read-aloud for law summaries and selected text, with browser speech as fallback
  • interactive civic education features such as the Safety Guide, Law Workflow, Court Simulator, and Bill Simulator

How we built it

We built CulturAct as a React + TypeScript application with a Node/Vite server. The frontend uses react-leaflet for the map experience and Firebase for auth and Firestore-backed persistence. The backend aggregates legislation from Congress.gov, Federal Register, GovInfo, OpenStates, local public sources, Google Civic, official House/Senate vote sources, and the U.S. Census ACS API.

Gemini powers the app's plain-language summaries, comparisons, advocacy-letter generation, translation pipeline, and assistant experiences. That mattered especially for turning dense policy language into something that people from different linguistic and cultural backgrounds could actually use. We also deployed the app on Vultr using Ubuntu, PM2, and Nginx.

For accessibility and language support, we added ElevenLabs-based read-aloud so users can listen to law summaries and highlighted text. We also included a Solana Anchor workspace (SoH) for on-chain civic-action recording, designed for flows like proof of signing a petition, recording participation, or issuing future wallet-based civic badges.

Challenges we ran into

Legislative data quality varies a lot across federal, state, and local sources. Representative lookup for the U.S. House is much harder without ZIP code or exact address data. Vote-history data is not packaged cleanly in one source, so we had to work with official House and Senate sources. Map visualization needed to move beyond simple bubbles into a clearer heat-map style experience. Keeping the feed source-backed and deduplicated required careful normalization and caching logic. Designing for cultural relevance was also a challenge: it was not enough to show “what a bill is,” we had to think about how to show who it affects, why it matters, and how it touches community identity and access.

Accomplishments that we're proud of

  • Built a real source-backed civic legislation feed instead of a static demo dataset.
  • Added multilingual support including Spanish, French, Chinese.
  • Added Census-backed demographic context to the map.
  • Added live representative lookup and official recent voting history.
  • Added ElevenLabs read-aloud with automatic browser fallback.
  • Deployed the project to Vultr and got the full stack running behind Nginx with PM2.
  • Built interactive civic learning modules, not just a feed reader.
  • Framed legislation through culture-centered issue areas so the product speaks to identity, language, heritage, and belonging instead of treating policy as abstract bureaucracy.
  • Added a Solana Anchor workspace for verifiable civic-action flows instead of limiting the project to traditional web-only participation.

What we learned

  • Civic-tech products need strong normalization and fallback logic because public data is messy.
  • UX matters as much as data: laws need to be explained in plain language, not just displayed.
  • Geographic context, translation, and representative access all make legislation feel more actionable.
  • Culture-centered product design changes what “useful” means. People connect more when policy is explained through community impacts like language access, immigration risk, arts funding, education equity, and identity-based belonging.
  • Deployment and operations matter early when a project depends on many outside APIs and scrapers.

What's next for CulturAct

  • improve U.S. House representative resolution with fuller address handling
  • strengthen official vote parsing and caching
  • add richer demographic overlays from Census data
  • integrate higher-quality voice features and multilingual civic storytelling
  • deepen the culture-focused experience with stronger community narratives, localized impact analysis, and richer language-access workflows
  • connect the Solana civic-actions program to the live React app for wallet-based proof of participation and civic badges
  • move from prototype deployment toward a stricter production runtime

Built With

Share this project:

Updates