The full story
Why
Before our municipal election I kept hearing the same thing from friends: you couldn't tell what any candidate stood for from the scatter of Facebook posts and comments. Every candidate had said something somewhere. Nobody was going to read all of it.
My first message asked Claude to scrape the candidates' Facebook pages. It said no. Logged out, Meta hides most of it, and scraping breaks Meta's terms, "a bad look on a site whose whole value is trust." Its research found public text already covered every candidate, so Facebook wasn't used at all.
Where the words came from
The District's election page (17 official statements), the Chamber of Commerce Q&A (10 fixed questions, all 18 answered, about 12,000 words), the local paper's questionnaire series (10 published by that Sunday), 8 candidate websites, and the recorded candidates panel. The local news site Castanet blocked the download, so it wasn't used.
The day
I started it on my phone while making breakfast, kept going while folding laundry and stretching, and moved to the Mac in the afternoon to preview things properly. Claude Code ran on my server: three AI helpers researching, then three building at once, one each on the sources, the site and the panel video.
| Time | What happened |
|---|---|
| 9:12 am | First message, on my phone. |
| 9:42 am | Plan agreed: my Bold Talks design in new colours, a clickable index for the panel video, nothing from my other work. |
| 10:56 am | Site built. |
| 2:03 pm | Moved to the Mac. |
| 2:32 pm | Live. |
| 3:11 pm | Speaker names approved. The video index goes up. |
| 6:32 pm | The triple check. |
| 7:01 pm | Shared with friends. |
There's no analytics on it, so I don't know how many people used it.
Design rounds
It's built on Bold Talks, my design system, in a palette with nothing of mine in it: ink, bone, ochre, pine and clay, with Bebas Neue and Inter. Every round started with something I typed.
"Maybe use some nice iconography"
Claude drew nine line icons, one per topic, no icon library.
"It's close but it's a bit off"
Quotes moved onto white cards with a pine bar and an ochre mark, the question asked sits above each answer, and an empty topic gets a dashed card.
"The line spacing on the title is just a little tight"
Fixed.
"That's a lot to read"
The panel page went from about 106,000 pixels tall on a phone to about 7,900, with folding questions and each answer moved onto the candidate's own page.
Two audits
Before it went live, a separate AI reviewer checked the whole site ("ship after fixes") and caught an incumbent flag that was wrong. That evening I asked for a triple check: "triple check that all content has been vetted, reviewed and we've not made anything up." Besides the video links, it merged three re-read questions and found the panel page hiding the two trustees, who had answered questions. All 339 quotes were re-checked against the live sources.
One rule for everyone
I asked whether the quotes read well. One headline quote had a speaking slip, a phrase said twice. Editing it would change their words, so the rule changed for everyone instead: avoid passages with obvious slips, never cut into the middle of one. Quotes went from 298 to 339.
Tools
- Claude Code
- Whisper large-v3-turbo
- yt-dlp
- District open data
- Node
- Vercel

