Civic transparency site for Two Rivers, WI. Ingests official city meeting documents (PDFs, HTML), preserves them as authoritative records, and produces citation-backed AI summaries for residents.
Topics (persistent civic concerns like "Downtown TIF District" or "Lead Service Line Replacement") are the primary organizing structure; meetings are inputs.
- Scrapes and archives official city meeting documents (agendas, packets, minutes)
- Extracts topics, motions, votes, and committee membership from meeting records
- Generates AI summaries with citations back to source documents
- Presents everything in a resident-friendly interface organized around civic topics
The site uses an Atomic-era design system inspired by 1950s-60s post-war optimism — Lustron houses, Formica countertops, Franciscan dinnerware, Googie architecture. The aesthetic conveys warmth and hope, wrapping civic watchdog tooling in the visual language of a mid-century living room.
- Living Room (public pages) — warm cream backgrounds, terra cotta accents, full decorative vocabulary (starbursts, boomerangs, orbital rings). Tone: "Come sit down, here's what happened at city hall."
- Silo (admin pages) — cool concrete backgrounds, deep teal dominance, minimal decoration (atom markers, radar sweeps). The Titan missile silo aesthetic — serious infrastructure underneath the community.
| Role | Font | Usage |
|---|---|---|
| Display | Outfit | Headings, stats, nav labels. Always uppercase, tight tracking. |
| Body | Space Grotesk | Paragraphs, buttons, forms. Readable at all sizes. |
| Data | DM Mono | Metadata, timestamps, status chips. Uppercase, wide tracking. |
| Color | Hex | Role |
|---|---|---|
| Deep Teal | #004a59 |
Primary headings, links, nav chrome |
| Terra Cotta | #c2522a |
Accent, action, section labels |
| Amber | #d4872a |
Warnings, active states |
| Forest Green | #2a7a4a |
Success states |
| Brick Red | #9e2a2a |
Danger, errors |
Full spec with SVG motif path data, component patterns, spacing scale, and CSS architecture: docs/plans/2026-03-28-atomic-design-system-spec.md
- Ruby on Rails 8.1 — server-rendered HTML, Turbo/Stimulus, ImportMap, Propshaft
- PostgreSQL with pgvector for embeddings
- Solid Queue for background jobs, Solid Cache, Solid Cable
- OpenAI API via
ruby-openaifor summarization and topic extraction - Plain CSS with custom properties (no preprocessor) — single
application.cssfile - Google Fonts — Outfit, Space Grotesk, DM Mono
| Document | Purpose |
|---|---|
CLAUDE.md |
AI coding agent instructions — architecture, conventions, commands |
docs/DEVELOPMENT_PLAN.md |
Authoritative product spec and architectural constraints |
docs/plans/2026-03-28-atomic-design-system-spec.md |
Visual design system — colors, typography, motifs, components |
docs/topics/TOPIC_GOVERNANCE.md |
Topic extraction, classification, and lifecycle rules |
bin/setup --skip-server # Install deps + prepare DB
bin/dev # Start dev server
bin/jobs # Start background job worker (separate terminal)- No SPA — server-rendered HTML everywhere
- No microservices
- No commenting system
- No public user accounts
TBD